{"_id":"unbounded","_rev":"85-6c6e4f283034ec9377057b4aea6662fe","name":"unbounded","dist-tags":{"latest":"6.3.1","next":"6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f"},"versions":{"1.0.0":{"name":"unbounded","version":"1.0.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"ssh://git@github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","opencollective","flattr","paypal","bitcoin","wishlist","---","slackin"],"config":{"patreonUsername":"bevry","opencollectiveUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"ssh://git@github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"Source + ESNext + Require","directory":"source","entry":"index.js","syntaxes":["javascript","esnext","require"]},{"description":"Babel Compiled + ES2015 + Require","directory":"es2015","entry":"index.js","syntaxes":["javascript","es2015","require"]}],"main":"index.js","browser":"es2015/index.js","dependencies":{"editions":"^1.3.4"},"devDependencies":{"assert-helpers":"^4.5.1","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","eslint":"^5.1.0","joe":"^2.0.2","joe-reporter-console":"^2.0.1","projectz":"^1.4.0"},"scripts":{"our:setup":"npm run our:setup:npm","our:setup:npm":"npm install","our:clean":"rm -Rf ./docs ./es2015 ./es5 ./out","our:compile":"npm run our:compile:es2015","our:compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:verify":"npm run our:verify:eslint","our:verify:eslint":"eslint --fix ./source","our:deploy":"echo no need for this project","our:test":"npm run our:verify && npm test","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:release:push":"git push origin master && git push origin --tags","test":"node --harmony ./test.js --joe-reporter=console"},"gitHead":"273a41d9b2e998ca64b5416b78375aa5cb4031e8","_id":"unbounded@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"bevryme","email":"us@bevry.me"},"dist":{"integrity":"sha512-BbODOcrYPNgrpniyvOfu9MqYEOlBswtZUH4QS0XS9LL6giwMO192ufpoX5Scln/fRxiGuyuyxRahBHjID9vnNw==","shasum":"1535ab1853c7663070e31031b971333f6523b7da","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.0.0.tgz","fileCount":7,"unpackedSize":15302,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSJ5WCRA9TVsSAnZWagAAyM0QAJEnXY6rrtLg2KQfI2PD\nBUUZ2pQwg5h3svIg5RO/qRcN3k8WqMZ7N5EKnU+HlAI8+0HUYvROwyIb/97Y\n9yh/9+Z/N/7kiAjUOCjjbyl9WublrQa90lDf/rI1QcuSEVRPBQviiTWOSOVV\nqzppx0Ptf0HdxpTJfPt4wBQssF89nLelQ/F+TBMI02iUF19HAiNKnkxUiVhA\nFRsR/1mMT+lEPtBdtYh3PiuLZwTqPgnJR4oARfoE4xgeWvlyGOGSrvIwNloi\nq40fZkWDwcJA/4rKse0UEyev7/GkuAS1XeeERPDyXmkMV/D0vox79GXno5dU\nse8E0MPEqbKw8ZXrcjWATlnoU3qPYqxamB7x6p4wv9XBe4FtAVzy2QVuojse\nlgu2RhXGQzckufcEXI7oELZA0i+dDS0yFzEMVrtBLedbN7keo1A7i2EtiOq/\nqh+RQM3g/068pdY//loNRs/DZIETAE+liy/LKPLjU9fkydUz7ND2CCER1IYA\nLc9gx1fV8F6BZyYhRcBwrvNXg1t8yDt02TQpj+/dTed+sll/GFntGYuFZIkv\n2ny/QCpOGcPuJgfLcdZ9+G9ytZlyuq50ssy179dhJHPy37ZUlszozwTSzH3T\ngKWDqdTmkVrsMSAv7BIVXxlTQzFtVByfhV3cce20XxFgK48Ny9cWwq/SMZTc\nZSbQ\r\n=tKJJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDg6VktY0RS4xIjJZ+bNEuh9uJa6AQCMTeTW4URg088ygIhAJCVA1xaUXo9uNpPOgEwhCYap+iN8BmmKv/ll/O/u7SH"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.0.0_1531485782120_0.7583382756758921"},"_hasShrinkwrap":false},"1.1.0":{"name":"unbounded","version":"1.1.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"ssh://git@github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","opencollective","flattr","paypal","bitcoin","wishlist","---","slackin"],"config":{"patreonUsername":"bevry","opencollectiveUsername":"bevry","flattrUsername":"balupton","paypalURL":"https://bevry.me/paypal","bitcoinURL":"https://bevry.me/bitcoin","wishlistURL":"https://bevry.me/wishlist","slackinURL":"https://slack.bevry.me"}},"author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"ssh://git@github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"Source + ESNext + Require","directory":"source","entry":"index.js","syntaxes":["javascript","esnext","require"]},{"description":"Babel Compiled + ES2015 + Require","directory":"es2015","entry":"index.js","syntaxes":["javascript","es2015","require"]}],"main":"index.js","browser":"es2015/index.js","dependencies":{"editions":"^1.3.4"},"devDependencies":{"assert-helpers":"^4.5.1","babel-cli":"^6.26.0","babel-preset-es2015":"^6.24.1","eslint":"^5.1.0","joe":"^2.0.2","joe-reporter-console":"^2.0.1","projectz":"^1.4.0"},"scripts":{"our:setup":"npm run our:setup:npm","our:setup:npm":"npm install","our:clean":"rm -Rf ./docs ./es2015 ./es5 ./out","our:compile":"npm run our:compile:es2015","our:compile:es2015":"babel ./source --out-dir ./es2015 --presets es2015","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:verify":"npm run our:verify:eslint","our:verify:eslint":"eslint --fix ./source","our:deploy":"echo no need for this project","our:test":"npm run our:verify && npm test","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:release:push":"git push origin master && git push origin --tags","test":"node --harmony ./test.js --joe-reporter=console"},"gitHead":"6dc644cc51ed49c46d8a65f76f960f3ea02f25ff","_id":"unbounded@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.3","_npmUser":{"name":"bevryme","email":"us@bevry.me"},"dist":{"integrity":"sha512-kmPrjST7m53WbxoMqk6QUFvWOp/ZGssCA0Zls63pbt+7cZqST4i0YIVLNX97ZlsMv/ml+0CPBVN15sVdSi/yZA==","shasum":"7bcab4f99615a33687d306cf2c050c635cecc7cd","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.1.0.tgz","fileCount":7,"unpackedSize":15694,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbSK4QCRA9TVsSAnZWagAARW8QAJtLITxNlTInd1eLo7eJ\nbqL9U5r3/oGIcTKGJe2ujU20f8MF1KPIQ+s9W6Oc6db82T2nJ4jQTQxo32v+\nyBe+qUWgJyn3COWSksglgzDb4k5ES0KDOXsem86LtQ1pqsKCXNT5ky6ep2Di\n7ihRKQREoqIOIznuqXgm6KFudxYS+jeBjKSpCioKivueYrDPsiMPdNvUMrnu\nhaUdgvBOsP7ESMA0a+ZEJAI2HLmV0VOfECsFCp1kq8IpvA53zyt+q41f7o1D\nIxcbhPoIgXcsKsowGKFiOvLWnC8U6UuqiEoBEuZwBvqbu5a3ueD3jow2PzHc\nBUx3vv26Q3j5CqmD0yP5KYO6Hsqo9JPCDQ8jw2qCMztq5gm/XV9WsO7K/jsf\ns8LkcVmCOSMN6kCLWunqnERHmvslnSHtmtQWJ5fYnjBNHLHr7lOS/6fq/4Oz\n/k7MQNE6p2oHmKMAb5M7OA2u8PhPvIuix1mbyi+6xjqVVSxrMFTKEFfNBlw5\nyIxM0MiPqmXiD2qVxihRyopyJwI9EaJNWAKFUScbjButMLCzcK7ZkLuUwZ4p\nsXX7Uw1No36QPYW0bom6i3ctJAu16PWYoN4PPWLikA38cVmxxtIrsA/WjLcq\nAxiDrFD6B2Jrys+y+MYH1M758YzT9SP8YUJxWBrIEHWqaLLqoQDiRzH2w7L0\neVXl\r\n=y1nw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCoLU+xthtwQm37spwxmu6Cn+NkSDfwBDzy01ee7zH2AIgS8Rjt/b/DSObWr/7VaGoAZ8kiBdWH2VXO4yQJV0toC8="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.1.0_1531489807988_0.599222399716983"},"_hasShrinkwrap":false},"1.2.0":{"name":"unbounded","version":"1.2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","thanksapp","boostlab","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist"}},"author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 11","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"esnext compiled for node.js 0.8 with require for modules","directory":"edition-node-0.8","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.8 || 0.10 || 0.12 || 4 || 6 || 8 || 10 || 11","browsers":false}}],"main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.1.3"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/plugin-proposal-object-rest-spread":"^7.2.0","@babel/preset-env":"^7.2.3","assert-helpers":"^4.9.3","eslint":"^5.11.1","eslint-config-bevry":"^1.1.1","eslint-config-prettier":"^3.3.0","eslint-plugin-prettier":"^3.0.1","kava":"^3.1.0","prettier":"^1.15.3","projectz":"^1.7.4","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-0.8","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-0.8":"env BABEL_ENV=edition-node-0.8 babel --out-dir ./edition-node-0.8 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:npm","our:setup:npm":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-0.8":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.8"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"c44902a4fd5d4f05b274d7371a8feb8d67f78bfd","_id":"unbounded@1.2.0","_npmVersion":"6.4.1","_nodeVersion":"10.15.0","_npmUser":{"name":"bevryme","email":"us@bevry.me"},"dist":{"integrity":"sha512-D/ENuBtxxwhxEiSXHgHwM/UXsDRuXz7JwqBQ54zrbaqmbmSWPvsGMzslr5mEftsDo1KOfl7vEIXGCamWBlAT6Q==","shasum":"9be43ccfa5cbc0fcd177bc7b96298deba9177117","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.2.0.tgz","fileCount":8,"unpackedSize":20102,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcKw3dCRA9TVsSAnZWagAAaecQAJsPyY7Cs6DUsOMk8f7R\naCJ5opBpPqWp6NSFfEIulNIJ2iSIXeLyFCMuOfWFw1teBX+9lsYN6GJxI0Yv\nmvfBtlbUAiEEjFXTmLtrp5tPtWdf9I3gTRsEQUfLVV2/YBeFR7oZSW5wZKwQ\n+BCTVZSSGiKoHmHX571B9CgT+aUoOJQzW9byH4ywPe2e2AvXEyhdfK05Lbob\nh5KD3Ua+WlSwVbn836Onht/n2v0P/ClKkQQ7eoL8h5DlC1QlwJS1vY2cZLBb\nfqPikN4eZrLL+4pKXtMrc00gYvTldCKdpNLjBL/zPTKkom1+i9IV4Q7rnboj\nvoqEfN8kNjS5/GeSKl6oFuC41VRs1Scdmg7x7Q6hbFLFgSJHvdOEbs/u8Y8a\nw4S+l68jpEtlxbmOctj//fah5ut2WYHru8F64mzecEhZP4eBjZbbNEfxjwT1\nX+hGxrVAmTA8UfrghGSeUVn64QY9wNzfJk7nc8bIygZ3fsGDCzjzbneLS+Ua\nLXSpH2vXL3yy4cCrqO5BOkcmoTW2m82NyCPv2xPAqPgNbKU7N7Rh8TmojPl2\nJXs79idSxp1tZt9u/yFihyDRP3emyHzLU1Kv1bFi2xTJhicTGYSnCm0aArUI\ngVcEfxl1D5rITmWRwEFQcEK8ljvZfBkswcSmZgCqgwkqMPw56PLz1u3VWwBR\noK2+\r\n=wwNa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDEheI+iaFZ/uYkLGgBlVKBI9LSoKIHIGP4XEbdWbcwOQIgfPdSVxpnM9Yi7U4F8+ltob36bJX1WIP3S/f4If5PoFg="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.2.0_1546325469101_0.0443288554727177"},"_hasShrinkwrap":false},"1.3.0-next.1573626172.160ad2a59b276257efed9cb7a482df23de838d78":{"name":"unbounded","version":"1.3.0-next.1573626172.160ad2a59b276257efed9cb7a482df23de838d78","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"esnext compiled for node.js 0.8 with require for modules","directory":"edition-node-0.8","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.8 || 0.10 || 0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-0.8","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-0.8":"env BABEL_ENV=edition-node-0.8 babel --out-dir ./edition-node-0.8 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-0.8":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.8"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"160ad2a59b276257efed9cb7a482df23de838d78","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.js</code> which uses <a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a> to automatically select the correct edition for the consumers environment</li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li>\n<li><code>unbounded/edition-node-0.8/index.js</code> is esnext compiled for node.js 0.8 with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@1.3.0-next.1573626172.160ad2a59b276257efed9cb7a482df23de838d78","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-vE9w65A4B3RnSzOIoiPrzy7as/H5izlHokKbVqp2IR06t3MQdnS7NDNcMU+A3JTbUkJBfWuBVycKOohlIWjp+A==","shasum":"23d94313e2383f54aefb1e37544d022096971f00","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.3.0-next.1573626172.160ad2a59b276257efed9cb7a482df23de838d78.tgz","fileCount":10,"unpackedSize":19892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy6E+CRA9TVsSAnZWagAA/UgP/1npXugNB+WB+UK1Cpa9\nHHyZ8aFYQEP5AfGM9QOh6uG/UIw67KeS8VdoaOULjs2P0vkYB2eRn+Gjz+TD\nJHIpGNcRBHmbzN+tcL5Sqck4AgDVQezuHrC0JxLewkmHP+zTbj3cEQNnKoki\nxjRZsZGkytm1U5bOimcqdloBRppjpyFaR+MyZMB8JrizeC9rNn4MGMRodlUm\n5re/ala732yf6FCZLZMSp5tBAj8n+l4X+kh/vdur3AGkyQlSSmSJ1HgekNgB\nkuLoifuTYzI4Ft2THJAX+ULx4DUvXijtyTemY2Mq2FXtIj1MR/JNfu8sSL9U\nYOAE9WpBUs7XyBNUojwigktY6LhlHsOD8M9yAHn3NgpbOGViWiE/PKY3+9Qd\nI9bQQRCuMjSJ8iefOPN49RB/Eqrigws7SLBDrYMuCco9k7ejHWlhdLFE0oQT\nPhcmiqtBboGft/QwPOcgNhoB0fIa6DY2lmABzXJEST2R9z/7QS1BqsKIDvAC\nmJ/0qFIbv0Vr58tVRfKhItYrG8aAQhyNtv3wn/WjMtuQldNFFzhv4+3Dv5Ns\nQxo0xUywJEmWO2NEwS0zPw+p6FsGyRQjZTpsQ0YoFfdkyZtzLb5Ags4vybAr\nZCQzDtDplWHOaLHm8uEK+4QXfFmsf/EoN4ykF82YgD+L5JoyoRUvTMRVy2Qx\n69md\r\n=fOQs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDijIL6iRXbyU6gwrP3ZBGS6XY2Ps7bbtdkoqiAewhMbQIgFlHeQsB0FgPLbUJT3FB2JhPI89n5J6AfEGD/FOMGTSA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.3.0-next.1573626172.160ad2a59b276257efed9cb7a482df23de838d78_1573626173735_0.1823370603169998"},"_hasShrinkwrap":false},"1.3.0":{"name":"unbounded","version":"1.3.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"esnext compiled for node.js 0.8 with require for modules","directory":"edition-node-0.8","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.8 || 0.10 || 0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-0.8","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-0.8":"env BABEL_ENV=edition-node-0.8 babel --out-dir ./edition-node-0.8 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-0.8":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.8"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"160ad2a59b276257efed9cb7a482df23de838d78","_id":"unbounded@1.3.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-RWVCkvcoItljlNTz0iTdBQU6bDj+slVLNaWN7d6DXgH02FfYrz8ytcJ4OPW8b0HqmCehwufJHOIzjHWrQUXBvg==","shasum":"eb8de64d092d6b9a85023ed1623b06891474f99d","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.3.0.tgz","fileCount":10,"unpackedSize":19835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy6HjCRA9TVsSAnZWagAAXLEP/2zW0n9U/qdcf4z+f+Xf\nTKVnaEThkhIfdeMP0cqb+YuaGnHzqgVmNsQslhGOJbiSmrtuqvUddljAB+VR\nXsZ+yJQw0vtFhSacAiZbZizoP3HYiOrTWNtOxtgQh2TWYHeZGXKB3+p+WQE5\naRZvoww/z1Y3jzEbxEp6DQE9vNSoKq/q/xDinnwue0DdUVjDg0wgXgFnCAIH\nfEK3YnO/Vg5gpYrKO++ABaAa77xhLniia+VdJPr/y6GOc8NfOG7GIRRkLJET\ndXhqKAr7qrqKJYTBheAS2C7LGacsOYOkx151TdwQxsdjv1B2rdtiaLtzjKep\nxwF0UbeDNy9v4WXPYDA35WRc8nJ/0RAadtVHUUYkgftf3wrjD7S0xq0lQ9I9\nqj08vRo0xmSKgbLoxjnDmG24PNeHOVtF2OpUqhN8g85v7jLjdRlqTgazvMha\n8FSfeQGpVELVUAmQGnaDmFFmttHwIz3Gg6l5gfdYqCIGx++9CgXltJY4oIet\nfxEuRqLXDv1Hv85g56MBxNhU6r0VoRi1hCdmELlboAnHwO0JmaUwxJtY1Tj1\nAz2mIiUgowew+tN5SAwXwNnFbUBOprZMVGnGqEPsfVurotIqAVQevXoLcW2R\niL9Myrflg/sMbGdW7DCV3bcr34gh6FB8umHDHwYt6rCGP/5v+PqFOJe7Fu7H\nfmMR\r\n=5DBi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBufhPzedQgZfUmTJNBCYcif17V6M96SWBKO6gwsIwJgAiEAunvdTljQPBAkdXmUyRb9W6USiP7ajuS+tqbOyIcFRxo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.3.0_1573626339446_0.6957307260728456"},"_hasShrinkwrap":false},"1.3.0-next.1573632800.8e763ed2e1b3c328b6659f6c16093f8dbed81222":{"name":"unbounded","version":"1.3.0-next.1573632800.8e763ed2e1b3c328b6659f6c16093f8dbed81222","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"esnext compiled for node.js 0.8 with require for modules","directory":"edition-node-0.8","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.8 || 0.10 || 0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-0.8","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-0.8":"env BABEL_ENV=edition-node-0.8 babel --out-dir ./edition-node-0.8 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-0.8":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.8"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"8e763ed2e1b3c328b6659f6c16093f8dbed81222","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.js</code> which uses <a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a> to automatically select the correct edition for the consumers environment</li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li>\n<li><code>unbounded/edition-node-0.8/index.js</code> is esnext compiled for node.js 0.8 with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@1.3.0-next.1573632800.8e763ed2e1b3c328b6659f6c16093f8dbed81222","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-paY0lLVMtkm1snmPaM7xW9HVf7/r7sGTMVWv9RG4tMJntJeZlZ0RyP0lomnZMP5qyDseqyz0j2YlA2Ki6mRSiQ==","shasum":"14dfe26a88de5956d3ce45bdc1ba578329a204ba","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.3.0-next.1573632800.8e763ed2e1b3c328b6659f6c16093f8dbed81222.tgz","fileCount":10,"unpackedSize":19892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdy7siCRA9TVsSAnZWagAAKLcP/ivj9yKqB1gFhBG6tD7B\nLeb9vMD2ta2FALE66NeCLPQ07X+0Jy4GObDQ39O/mZDeZGta1zCKJ0TddDnv\nihsHte7cuVtfAMJV3ye1SnlPqBJgHw3v0DTP+vO/c+Q+fU2QQFbm8HkBxxC/\niFakzRkl13y4kqGKVxSR7iztFFxIzpMaupQ6l47SLsuhHbaZGFMJHzTq4K0E\ncxgX7N54+bAo5C9hbjJEX984JmZa3KjcJ19Wjrvh6XlhqgaDO02KsYopgscB\nRGqTF2wlwm8yCJ1ehXtBiAVe2C0YLdKxUBQqzzQ837PEzVBjXJSjAvVy+t9j\nLjcp7zrvibQmeDRPa7vHFVC42HfA0/h1JyvqzgIYwQBbOfG5FA1fSiuzfBEc\nYJ1uCU9kK/2VTNiADVIfrbfvBMP9HAgH4CXS2Y9f233Itb3INqksUSMmO+wB\nJ6SRNbP3qhfbXntcqL0OsBFTzr6RO37nRcP3kpnY6n4ZO60KbceabNBtJGG2\nZjBdWmYshv9abxpAKwnd0fTl8nP6/Deqjra4Hyg/eBL8NTdR5XRhDHyZX4iz\nrZzvc6yhjeB4eHI1XrCcslD7wWxbId4iQB05p3n5wYytEPL6oIsRUFaMWGpJ\no272bjqIJFyaxXFMc9zId2lmo/IWuChp2EoYhDEJVOqRqej1IBW9ake8/f1q\n2/5O\r\n=fB7m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID3uR5oGFvU1FQyyUad77NEl2LeTC29u3ysen/B+nQ2/AiEAoYCdcl9oZpv1xANMpoFV9louTHOiEGSaYdjHJsKVQAY="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.3.0-next.1573632800.8e763ed2e1b3c328b6659f6c16093f8dbed81222_1573632802508_0.00688651154204134"},"_hasShrinkwrap":false},"1.3.0-next.1573740413.0351fe0baf6b0628ace8d039e0d0846041bbd969":{"name":"unbounded","version":"1.3.0-next.1573740413.0351fe0baf6b0628ace8d039e0d0846041bbd969","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=0.8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 13","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"esnext compiled for node.js 0.8 with require for modules","directory":"edition-node-0.8","entry":"index.js","tags":["javascript","require"],"engines":{"node":"0.8 || 0.10 || 0.12 || 4 || 6 || 8 || 10 || 12 || 13","browsers":false}}],"main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.2.0"},"devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"4.10.0","eslint":"^6.6.0","eslint-config-bevry":"^1.2.1","eslint-config-prettier":"^6.5.0","eslint-plugin-prettier":"^3.1.1","kava":"^3.2.0","prettier":"^1.19.1","projectz":"^1.10.0","valid-directory":"^1.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-0.8","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-0.8":"env BABEL_ENV=edition-node-0.8 babel --out-dir ./edition-node-0.8 ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-0.8":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"0.8"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"0351fe0baf6b0628ace8d039e0d0846041bbd969","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.js</code> which uses <a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a> to automatically select the correct edition for the consumers environment</li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li>\n<li><code>unbounded/edition-node-0.8/index.js</code> is esnext compiled for node.js 0.8 with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@1.3.0-next.1573740413.0351fe0baf6b0628ace8d039e0d0846041bbd969","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-U3PdudhlDaj4pzR9DZQsBWLtmXebgi8cCegUtnOwb31AKBQiDxTiYQRjRw9Olp/dAhzX4BAprQ8t567+IoPMcQ==","shasum":"a601fc99b05c0f94bd8e2b8cccaa6cfe2b799a84","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-1.3.0-next.1573740413.0351fe0baf6b0628ace8d039e0d0846041bbd969.tgz","fileCount":10,"unpackedSize":19892,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdzV9/CRA9TVsSAnZWagAA2skP/0Ev4pY4Z19/MGjck3BN\nrCSPqVNPElly0RuzwKMcs4qYziZBOyyIDFkA6QBC1fmUR1EEfE+oe0J9pb0u\n2sRbCx6Cn1yFGg9zuDdW5Gs89cviuRsn22twNZ/kJnjLuDAoAGlsBM8pRWGH\nMatD486NPeBb7k2zfUsp5iONheo/yAIkwQIsdSM5G9hsLPWo52ExarF1kwYl\nb4cLkPrZW48f3tsrmN4xDHJeF9XfRbmcOvt06UF3tsxu+BpCNopQcCE6hQ3g\nooLaOIIDjyTGttrbW18P9X37e6p1gPHmqPRiPXOYn9blKw7HZaIc0qiXbTof\nuvISgnUIkZPglLZoztSSHFto9GkL5hFNcJBm52A7rCqsqpg5zi8r4zfpg+sL\n/2i7eaVGOE4mnrnSBbHu1elNxowJxa2O2cKDDexZlpZpm0fD43l/KZRnWDYA\nGB9nIge9737zBleLlDrnT6ZBWzTshP+xLcPzjMM6vrI/JDBqC1hr9KO46DAP\n9JSlJikwuNJGymwMbj5ZGUyiBLo+gd26Lr1UZGSBlZOFQeDBQFL5NC9MksoG\nLwDqu5Ow4lSxHGnDyjBoseWXMXaH0EWIvAEUkQFnBrsirTZEO3dY9agubi7F\nqi1jd6Kqw33eB5Rv7iiB/anGeOew42Aq2A3CJ/aPkLO/JK5yEIF7xCR+hxej\nMyDu\r\n=qzki\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICOoY88J7Wm+ibt68aq++AC88aEHs/vVVwF47Ma6QlXtAiBJZSuCGIzxJNVzCcZK3KA6FommiD+I5kdX7Ip1wtzflg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_1.3.0-next.1573740413.0351fe0baf6b0628ace8d039e0d0846041bbd969_1573740415281_0.7575356474123625"},"_hasShrinkwrap":false},"2.0.0-next.1574062176.b11846a2df03b76797cc017f56b5af1d4e90b4a7":{"name":"unbounded","version":"2.0.0-next.1574062176.b11846a2df03b76797cc017f56b5af1d4e90b4a7","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"5.4.0","eslint":"^6.6.0","eslint-config-bevry":"^1.3.0","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1","kava":"4.1.0","prettier":"^1.19.1","projectz":"^1.11.0","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"b11846a2df03b76797cc017f56b5af1d4e90b4a7","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@2.0.0-next.1574062176.b11846a2df03b76797cc017f56b5af1d4e90b4a7","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-fHorUTIZCyED6yySRe8GnTDOHbCwyFbEf5/jtpludGcjDnL/4DI9x2eL5hfTVWpfG/ibRBT6dPEq7+Hl+pitzA==","shasum":"7fb26af0f9870d28805885afc109805e671adc2c","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.0.0-next.1574062176.b11846a2df03b76797cc017f56b5af1d4e90b4a7.tgz","fileCount":8,"unpackedSize":18358,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0khhCRA9TVsSAnZWagAAEiAQAIAUmP8kqZuGnVLfc94y\nK2vqpdxBGyv4vmMfDSK0XVKE0vpxBjDYi6oQ/s/xfGzHGQREoFcZc2OBmYAl\nNC/IpK2Md9ZHJNdoOlTBvNJcelf9VMVYnzUQaVCWhz/a7b+Q45xaAVw132P6\n4B/jpO0IV2G1b4KloDIy4CvNKegQAqR1I+8cH8ghf3BBsL/j27CeU2nClSOG\n7V5yzuNre1u6Fag8/tciw0HkPN8Qf2IJZlTj3qL9gY01EkCY54Jc1vO6VcUz\nyQZ5WpuXZW+Pj9S2jOs9Q0uJlisjhQ7Xlg0IA7rF1qtRO3W2C3oN/M4PunQu\n9NiZ9rIV4p4Mfm8JgCt6hmPC1vpv7VZjj7kGzW0AuauRRTSrj6jb8l8pxdPJ\n2sYZfWqVB4DZhRtyIi/hIqx6W0XSR6JPqJOIRJRYYi2m2cTXNcO9PWWTw0MM\nP2HIukqumNftTTerGTC0EVLt/IZe6XwXGGP8HPQTvKTovZwoHUKV/5aIzYc0\nICKJv2d/GrTc0bwjkfSl0pfBF8eMDsBnG2i6G8gMLkfiCzp31n+98h9mNIgD\ntU2483Ql88gfB1NEIom4X6RLlCTpNeP5XrQYS9GhHGs8oP8yDvqBdnG2i0C2\noQG+c0k0KvtFSRy9LPkelmYxvYCUbsoH8lWp+dktKOPfw2F1eKwdyWuGIaJQ\nOzjC\r\n=vr7i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHP8ReO8VDtwiRQ5EDhcfl4pBpKE9fyWJskVGTBc0BAQAiBuM9ms2zt7bfGJ9UuYd4NPYE4jccVBUBLIa7kYGDE+Qg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.0.0-next.1574062176.b11846a2df03b76797cc017f56b5af1d4e90b4a7_1574062177600_0.04078198323455928"},"_hasShrinkwrap":false},"2.0.0":{"name":"unbounded","version":"2.0.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.0","@babel/core":"^7.7.2","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","assert-helpers":"5.4.0","eslint":"^6.6.0","eslint-config-bevry":"^1.3.0","eslint-config-prettier":"^6.6.0","eslint-plugin-prettier":"^3.1.1","kava":"4.1.0","prettier":"^1.19.1","projectz":"^1.11.0","valid-directory":"^1.1.1"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"b11846a2df03b76797cc017f56b5af1d4e90b4a7","_id":"unbounded@2.0.0","_nodeVersion":"12.13.0","_npmVersion":"6.12.0","dist":{"integrity":"sha512-qdgLsg/rV9B/rGVqFyI4kpWyNMys/CancS8fxCHiQaxBdDBmq2NYH3l1aBntuVW2opK/9+7ovRY4aOSxe0m+bQ==","shasum":"cd27e7d78382d5ed9ae8e4d91e3f07ad01048430","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.0.0.tgz","fileCount":8,"unpackedSize":18301,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd0kikCRA9TVsSAnZWagAAoS8QAIcrLgPnSwpgTPvPIlj/\n+ELdXMCanpAI6DOrIECGLqMvaRiKCGoYwKH6nQmmSVIdH2kU5dYHq1LY+56a\nOXuzDK4bEzSxWMT0kbkdYHXQvIvCUd0o1Yi7QKuvfZnoi53dicqAMoFygJkc\nCm2nadZJ6UqQ2AipjwsaJ0b/qTB+mHbjdgEBf2XlJQ6gPiUF5el5Akp8XvC5\nYgZdvJqhoxVQMBrZnzuoIrf7FLGHjTNf5yHko1ZsQipX74tW6En8Y5S5DYg9\ncPoEcPeK789Gcm7L+T2DbVyMhV4LT3zj0dRRPH8TElbUs6KnmUEnuSqwkUn7\neEH8HEo3KpesZOdX4U4bcXl0W9DxJJIOyjvU0FlnjEz7ieev9QL0haOvZkT8\noXtVl03YOqdioqVyZekVzkXJ+ljbSRXRmGWnLc+D6KtogdirmWWFvbW+zNIj\nE3jfVQiGjgBTgGxKFqy8sBfiZHapHWgg1gTdGCpeSUzRBpo0q3Ra6Kb7E3ax\nqY8PXVHSGvOnyqSetyEHraVLAPZD7XqXRb58Cmp4n45YdRtTkBiNQhm5MJBm\nzX4iWOYxb2ibmfkdiUsYABAcpP6VY7dBIRYpAhfMkP8KCjlzMS854sQYhWWj\nBWYwuQXHLWN0JdRq/amkC4kPQlvu7Lg1K42SVwOSR6IELFoyOEWtBaKZYrpb\nwjLg\r\n=Nlvh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBEC6EmL0AdiyF+ACxnF6c/i2G4sZ4D7YwA9cfFih9X1AiBNJf1GB0piYopZjyxISjCyuF1VDhP/s7cI59JJ7yDnYA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.0.0_1574062243826_0.44255329564655255"},"_hasShrinkwrap":false},"2.1.0-next.1575156676.fcadb4aaf71155c727aca4e7840e1c3c69dbba68":{"name":"unbounded","version":"2.1.0-next.1575156676.fcadb4aaf71155c727aca4e7840e1c3c69dbba68","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.4","assert-helpers":"^5.6.0","eslint":"^6.7.2","eslint-config-bevry":"^2.1.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"fcadb4aaf71155c727aca4e7840e1c3c69dbba68","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@2.1.0-next.1575156676.fcadb4aaf71155c727aca4e7840e1c3c69dbba68","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-xuaZNIgQtsK5XJPRja5NSlB5UJXOpvK60cxYfCY70c9UwjPR5PFq33QOmXkltqnNOxaNKEJSnOc3spiBy4GNFg==","shasum":"87d8c7ef20bd0e4fa6a408947e7b32d22c20010c","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.1.0-next.1575156676.fcadb4aaf71155c727aca4e7840e1c3c69dbba68.tgz","fileCount":8,"unpackedSize":18562,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4vvFCRA9TVsSAnZWagAANHIP/1qc25+I8Ivz1DGYIb0j\nFulQDG52IHNC6yODz1tyHqPQksTwWkfEayAdRjcOD8uT7gBOKUHA+2Hk7JD9\nOffx0uGCRqWTSLwwvZMiwjocR+DVgnI6nDjzQdgtWe15gW0WDPUXAcvikXwJ\nF2hnSU3yE926MNaC+Q7QldGmH47vb5iPVzy/kPXtlEv/LkGrO1Cj4nvx5cQf\nD5PWiOJQVLDZzkxpwn/seLq11He3ot3PUN5SaMwLAQ9jj9kf55Q891Cxnwbx\nfK4lAhIxaEAJYSJq43elkNU2o/lXCtVPTQ5n+tfeKrnYq5VkDMDgStNscRke\na12WYpF3BgJD2OtqidmX8UBYi5kO8cTTWr/6vqzmTaPQTHKZEJIV2QPOKu59\nB2pc7dkeazfcc5b50yxQI+rJCrZae4Ria7QW6WYTQzqa3uQRMUAScZjVP5hr\ntJtOI+7OLVuHtrf5ZM7om8opLrlXyx8C+/yoBbsRwVkhkovQojEuOWcN7EFk\nYFh6Kdgsmhf7nEnK+c/FyBW/tOToMO6U3uEH5LNcDBZmYNKeV2LoUB19hWaa\nJj57LVe2y48Cv9cUE2U5dsyf/4CDndGMfDvMVOZqY3yV9JnUWrCmPCGZAwSX\n1DjjfGwCelR0ENldrgswnV1/DJFQkvKjB5HJjCGuSCq1+n/q7g8ScY8uIOKe\nXdYF\r\n=zHD+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBqiTDyv8R32uvw6Uw25Qc6QqmbKTUlUc6/UosOyv7rwAiAvUtcsmUOJOKs9g9XZ7J8+igCGTd0w9b2/5OajJQzT5w=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.1.0-next.1575156676.fcadb4aaf71155c727aca4e7840e1c3c69dbba68_1575156677360_0.9904328718735862"},"_hasShrinkwrap":false},"2.1.0":{"name":"unbounded","version":"2.1.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.4","assert-helpers":"^5.6.0","eslint":"^6.7.2","eslint-config-bevry":"^2.1.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"fcadb4aaf71155c727aca4e7840e1c3c69dbba68","_id":"unbounded@2.1.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-0drKMxltFaBXZF9gthIURTSzzr2xZzu45UgMigEt9VDpZfBwtbEuPU5lm2FqPB0QdajHnZ7u2gzlQ9JFIfv5lg==","shasum":"1c4395c4b4d43fb1f1266166e242bb526d864949","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.1.0.tgz","fileCount":8,"unpackedSize":18505,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4vwQCRA9TVsSAnZWagAAuMoP/2G2sffcaB+PLl+rSdMJ\nXOkoIZ6lbRDEpQCyvHHoNC1F6X8exrO6WDSZpH4pL2m1EIW5OsTQI7XuNFow\n3J2esrkLMV1ttkWz/ZlPYoWe4Zc1Pxcxd6HTQ6qUjrtebNlsLo0RHhzkbts6\nArIhiVcgHO7zGAEv0kIKlWqjJuBTOfRuDsq0XSm4NSXuiWVUPXB8Q5AoOXk/\nlePyhAUxkL57oZi3i8GhDZH2+i5/I75jwm4OhJKJugVUGo9bqiNZ19M5fLVI\nmV7oJ7o1NUJ2WfhyCBN4nUcsoHTuZgK1M2c2b4D/vlCWrJb3qkeR+Gr7bB9z\ncTSITgwH90FD0ShHpznG6gsAfqJKE/U7osHTATznaGa7I0aq+utjyrESAK6V\nv7IxBvVsHZkuNAZ6cM/kVCUZRmy574AYNATyrvNVAijETf11JCu5eBcGhGhW\nEK2yG7A9Ci5/vmrFCSdSW0qByrIBPKXkeeNZ+hW8PKYqXQpABdc5dVF9Ig17\n1YPK/F3DKZgoK6bX9TmnXQ6Mu8g7mY1i84Lg8bbP0fTq0dumuoIKx5u4PPmI\nmqWi9HcOumvgzik/D/We8/B5Iiys+sQs2DNCGRyAuPW8I306EiyJLenOMdqW\ndTNaW/ewLs6ySgHiCQlJjTEj+2ZN/OA+dx0p+Pyp9X6fE0MHsQAUqI2eNlEc\nc9eF\r\n=w+qb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJOWTMjeLMDp7DRz0KS96LMiyoLnzZdMzYyXLGvoxxsAiEAj7KqgC0eTnf18hdvJiW11BuIIwsqni9xlPwgIsIQHDA="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.1.0_1575156752304_0.027223428089363066"},"_hasShrinkwrap":false},"2.2.0-next.1575219949.c81c860d68208f95aeeb3081e2d526cb7b23b4fa":{"name":"unbounded","version":"2.2.0-next.1575219949.c81c860d68208f95aeeb3081e2d526cb7b23b4fa","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.4","assert-helpers":"^5.7.0","eslint":"^6.7.2","eslint-config-bevry":"^2.2.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"c81c860d68208f95aeeb3081e2d526cb7b23b4fa","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@2.2.0-next.1575219949.c81c860d68208f95aeeb3081e2d526cb7b23b4fa","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-FS9NO3AulpPWzOEBHdUKvdSj78ia4XaViItgGdUbBZANEZEWzKcmsJvBmAXz5Jv4nRHv63euadu9I2Ld6djWfw==","shasum":"6208283cb9683781d7c40a10ea7ede0f0af8e9ad","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.2.0-next.1575219949.c81c860d68208f95aeeb3081e2d526cb7b23b4fa.tgz","fileCount":8,"unpackedSize":18767,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4/LvCRA9TVsSAnZWagAAIvkP/Apyqh5hXOwi4OsUKgtE\nPAGBMckysM6Gnc5G6FRRZ7sCxo9kv9/UhxzjCwAzrX0n+HDEKPihhE/jifN9\nYsi0xjDa+gSCeXiG96ZnIRC4kHb5+wLdmWANAY/ED8J1nufbt1yDWVrslvmj\nuw2RkFsHiO+eAdxNj+0OehecLzicUCctBWAnbGIcTi1diWjC16+4R7v/hPby\nZPE8abqOVOhs3nix9zr09LOtOD9KZGqwQqZtEEI4n1WsT6yzN7aAGZP84bJM\nZbg97+YsFTKkCP4AqVebMO11oS7mGSF/cxHkSkDeXUuQ0y9MOgFy5gx0q7Zs\nOAPd60575bKq4r1OE7PMdDZPbYkuN19zTToFSSbuPNif0j+CPjhLNYVaEgTe\nYRjtVDfUHqktsq3X9Y0XJYjvjCHgOGiwgva2ZLWEswieF2sZEKg5LkqBK5Y1\nr0KPUH604KlwEfxcXvI+db3CdhrrFcmDlTS+t+MXx5VNSfm9rfdDhshYFvCv\n3lKG89kmQRC1xUx8Qqil63AVoveDuLoyuCjyKWKx/ahEtBt8+Sbe0ki8rvUu\nC7lF26bZ8Uj8bpoPyYVTeROa6BiN9MNS7eiqXW3nVMJstQhCsjeE/qmmdwL2\n/gdxFvzuZaW/ZRXgTjM1/HnnRWrRnOZL4agj9r0+4+PJDctH0p7DF9/Q5MFF\nBd/c\r\n=IXs5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+Vfji3JuANrvBfRzVEwuFvc9CXHFaLI5ctwEw+jQj5AiA7coHAT6BVLovsakfJ08A9dSYXU7NONDEQP++T00xilQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.2.0-next.1575219949.c81c860d68208f95aeeb3081e2d526cb7b23b4fa_1575219951426_0.1949897704616752"},"_hasShrinkwrap":false},"2.2.0":{"name":"unbounded","version":"2.2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.4","@babel/core":"^7.7.4","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.4","assert-helpers":"^5.7.0","eslint":"^6.7.2","eslint-config-bevry":"^2.2.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.2.0","prettier":"^1.19.1","projectz":"^1.13.0","valid-directory":"^1.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"c81c860d68208f95aeeb3081e2d526cb7b23b4fa","_id":"unbounded@2.2.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-rb+ILMrQ5Y4Z+oUrddBLnn3FnVzKpkazb865hiRjUas7wKmyQADpvZ/eE1mTy5skKrU2/rLL+ly8LHN6k+NZGQ==","shasum":"2fbcfa1bc4134f159e5b6eb376cacf7760c0372e","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.2.0.tgz","fileCount":8,"unpackedSize":18710,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd4/MYCRA9TVsSAnZWagAAvJIP/iwaf4Y3/EZg2azspj2D\nCfHUeOYM8643+cwpM9SZfgvdboTmtzJ4VnCUrFkOQWwCkq/aZ9+krAt24JUz\nadIdmDxyVTG469iWh/ujnrkLnmoEyx7WXoepU0KaUCvzM4fXWqnnyCHHsaqn\nE2SpNJu2RPxY/9Lek/COSH8NVLaMrwxfw/DW5rN5Rm7b9l/HW+XjNc2Ea6Zk\n3nFiT9MFeXWda8hUmi8HhJqrdX+dTvMz+YtYRTXcaKFRW9cvyZc7zA5NLALd\no9P9XuS6JR9vH6puGl63AW3vu2O7+tuwftJfAoZMwNj46Z8QqY2umTUyf6Ip\nXZlUCaIpTJXPNutgthvgYUx2U15Ws0T6ZWbNJygdrBzK+2sRuvTkRM0LfArm\nB9YX7ZWfjeteyF2IC31TrRMti1ks+wHdzqCtYSkgRp4MUyee8tA+Q+jra9ty\nBqAepytKKi+Cw2QiRC+co+hm+MJ9ftH0p3vnR/JOvuivNlesU0ZfETUIDCdz\nxrqwzOtcxsA/Oz6qZ+Z1QPtsj+QxY74/LwYA59nyn7TZTyzO3LjC9woexMo3\nvoYJhweJlyTKqDS4652vts+D16ZSJ7q1ucaGC46PimgCCtOJOz2Mk/RktJGN\nu3SrSc3CL2Q7MCQNCW9h9ckuC3tI1e25g5axRFjk4Aus+gKkytaAwbAZ/jh5\nitYA\r\n=fXIB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID517rwSK+hIBjwLbiDOo8ERrmww2AeO1GDEkZBElip6AiEA0VRQv6TP2dn3kwOFFl81v2M2JprZ7eBZv50KKbZNUdo="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.2.0_1575219991652_0.5007700475815566"},"_hasShrinkwrap":false},"2.3.0-next.1575922704.a6d4291acc93cfa980b912c450d545b06f3edcca":{"name":"unbounded","version":"2.3.0-next.1575922704.a6d4291acc93cfa980b912c450d545b06f3edcca","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.5","@babel/core":"^7.7.5","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.6","assert-helpers":"^5.8.0","eslint":"^6.7.2","eslint-config-bevry":"^2.3.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.4.0","prettier":"^1.19.1","projectz":"^1.16.0","valid-directory":"^1.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"a6d4291acc93cfa980b912c450d545b06f3edcca","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@2.3.0-next.1575922704.a6d4291acc93cfa980b912c450d545b06f3edcca","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-bONE7VeUN1VuSOhwOzltYfortqqsQdDXorr3Xy9aZ6L/owBaR+VHFcmHFGRnO89zMl9i3icouIMfxov2D0zE0w==","shasum":"9d728b40933664065a6942308cf14ceb52794b50","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.3.0-next.1575922704.a6d4291acc93cfa980b912c450d545b06f3edcca.tgz","fileCount":8,"unpackedSize":19605,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7qwSCRA9TVsSAnZWagAATZwP/3hR3fiSHJy1Zzbmcbsr\nW5/BihqqkUMtFW/ImCb0a+qFj3M4jXYZS9drkrLiric866vyNjRihxBB7k7L\nnTvpTQVYchPF3zbvw0lE19QiWe3j4YUoXxN2faVeZIEpJucU91c30vm2qZHO\n2rjABlqFBvBPnV0F0Cw/T5QCL0hWuakuREO7ql+hI8ZZpM6SLswaTgxiuPZV\ndqYB9hSyadlX65RU3vn5ppVuRkdVIXfek7i7DO1aVrPDUM2RxrIGFwGWElZa\nD5lGU+QK6iZzJfrkEZf2gfFgFkjpdCipc/CvZWN8HeJU2zFZ9rjLjk8aJlg2\nerlO9UleEPBbRIat3pXbzHkjdyFdW0PLz40bJSYWf9t1ksQFaVAhOWedbvzz\n/DC2uFDxTmg6QjBA1wumdqcFumoUvBdifMv/LaKyAsHPsQ6Muuq649ysZga7\n4vBKFb4uFKuxNACZaP77Bh/9O3Xt8I5df6qezLCidtOA4t9iQma5jfTaN+i6\nZooM09CURpQptINYwYt+3DfL9fBIHjmMxP+i9TnE1YAQj4ziEj8f5mBnPyYg\nTm+veMCU27v+ClTuBo88vXqTUlfohw5g5zIqj+pmMf8nDHTknOTEwm5NDj1H\nrcNq88nGvm4b/LL5sRQ0NcdE2nqlbi06H2orAx6KXF/U4GpouXZHgo/RIMav\nZVyu\r\n=ohlV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDugeBt0GSU2V7+TIsjknqxwmAxkXwTu2Ya00bx0DO9/AIgbGonSVVLJX4g+fW901k6j+QaTn7CoEh+QiTKRoepms4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.3.0-next.1575922704.a6d4291acc93cfa980b912c450d545b06f3edcca_1575922705736_0.30991095487944964"},"_hasShrinkwrap":false},"2.3.0":{"name":"unbounded","version":"2.3.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.5","@babel/core":"^7.7.5","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.6","assert-helpers":"^5.8.0","eslint":"^6.7.2","eslint-config-bevry":"^2.3.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.4.0","prettier":"^1.19.1","projectz":"^1.16.0","valid-directory":"^1.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"a6d4291acc93cfa980b912c450d545b06f3edcca","_id":"unbounded@2.3.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-gjT7NZ8g29UDlB1nrFVLWs1A2tRP3rSyCdvX2Vu185SI1PGmhjcxaCfVh64Oaz6rKBCrXwhTQD56/m+ox4FPKA==","shasum":"80bfdbb2f448b61b4992b4fef8f4f6d35c50c459","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.3.0.tgz","fileCount":8,"unpackedSize":19548,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJd7qxNCRA9TVsSAnZWagAAOhIP+gIVBJuB98VLHIsU1R1N\nwEzbUKN9+n4a/jGalnntE1SrWe3v/DgfY7oYO8XQ/IVLEFX+uASv+7zQJTHD\n0AIt/EWnZOOArULOWINgTqTXFbQ6uBuLEV57i8gZWkSUu5HKplxwT/j8CEFq\n1JkmCbDauszOcLBj99lwmjXnzT7HGHH0QOm9w/5qPtw+jDcQTOQKltJV9vuq\nRP2d7iBhKlITrg685dqBOPIVKM1PHwWO2LZAT5kuZpyKclWgAQveiwcgKg61\nOcVT5BwMrAGJG6xn1T0E5qksG+464ZXkjp+TxVAyvPPaKc7OYLfz8C8CvbcL\nLAEsaHsRdYDaGun/XwZ6bHwXobgonQPt+aHmKYMPGCIq+lmLo06YkPqguxWH\nwvEPBXBgd4n96szOzHhCnlyObHVHM/C6RwOT+VRFhI82ySnj1uplZ/ftlkgp\nPTUgxB/E8hCFVuWS1JRfb2Klks8sIJIRyElt2cQ+GLc+Q40XpL60uH36vY7D\ntkzBlz6bLg5Qyn1nqvWLVWIwY8gHXT7euBcz7CSsdQnhz3sAJjBzthh/TQ7p\n9Z8yI4Ve9W6yKc13tRAx2k9eYR9g/ffUZ69siFCSDq4vD78nuXW5N2l4dlsn\neaHZwh2Kq/BMGKn2FRIpBNpt1O0PmdwAwf1ngLJkEj6y+2SI9IlqaIdopuwF\nBiXK\r\n=/fIk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICDepBQgeZhHJaUMcAk+mF3kGtitTA0WJTMIttOWPBvzAiA5pSDkYmBUNu9eO4TGUfjLLqBJMXP2uk5fS61No+lrqQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.3.0_1575922765227_0.14133032300258708"},"_hasShrinkwrap":false},"2.3.0-next.1584137852.214918e07c0ea3056922b13008bf113089c423e1":{"name":"unbounded","version":"2.3.0-next.1584137852.214918e07c0ea3056922b13008bf113089c423e1","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","unbound","unbounded","function"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"http://balupton.com"},{"name":"dependabot-preview[bot]","url":"http://github.com/apps/dependabot-preview"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"esnext source code with require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"8 || 10 || 12","browsers":false}},{"description":"esnext compiled for browsers with require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.7.5","@babel/core":"^7.7.5","@babel/plugin-proposal-object-rest-spread":"^7.7.4","@babel/preset-env":"^7.7.6","assert-helpers":"^5.8.0","eslint":"^6.7.2","eslint-config-bevry":"^2.3.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.1","kava":"^4.4.0","prettier":"^1.19.1","projectz":"^1.16.0","valid-directory":"^1.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:projectz","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write ./source/**","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":"defaults","modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"214918e07c0ea3056922b13008bf113089c423e1","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Require: <code>require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is esnext source code with require for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is esnext compiled for browsers with require for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n``` javascript\nconst {binder} = require('unbounded')\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n``` javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a () {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"http://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li>\n<li><a href=\"http://github.com/apps/dependabot-preview\">dependabot-preview[bot]</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=dependabot-preview[bot]\" title=\"View the GitHub contributions of dependabot-preview[bot] on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@2.3.0-next.1584137852.214918e07c0ea3056922b13008bf113089c423e1","_nodeVersion":"12.16.1","_npmVersion":"6.13.4","dist":{"integrity":"sha512-TMWUOQ3FLgMDBZB4gogNpJdoGixH0+dSgyQP9l/WRpmZyDaKIXY2DeX3YdjdiykPIIFW7TyAuiYbLQRP1fcsbA==","shasum":"add52f9e4bec605ee773340f3987dbff7fe98b09","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-2.3.0-next.1584137852.214918e07c0ea3056922b13008bf113089c423e1.tgz","fileCount":8,"unpackedSize":19605,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebAZ9CRA9TVsSAnZWagAABpoP/3YJYcpp6+TvK5i1svZI\nzohXGDBjK5jR/ZDogUHMFwuVuG+VXqgJB0sG9oH3nN58+0Yr+nmGdcofoAiN\n2b4CobRb5dB7cexNc/GP3Po3IfK0LfaRpUfadzRhKZx2rcmpuRtaqpXCQLZ+\nuRR7cFJt8lNZ73Cwt7iZU/V+sYS2347ri0CWmpMbphorCah5qLSmvl0L8OtV\nKHy9xSZc+G6J1zfMacluZbc5PsaKpwHU24UWJCtNBhaLrLZ1pjuJsanV2uS6\n+flBbgqcfka6BYwqGZqFiLl/8Rw80D1HfxNpvcVtdm3XINf3RpGeE+WiWB1O\nOzDmZ5osznggjcTmtcZqD979dgU/PHxXX/1n+563sm57bShWUcg/yeMzKw3C\nknb1U8rHYNGkFcsBugUtGBSUgFQ2RTEyAK1NW2VR7o8ZNk4LD+/NHvOUTusw\nLFx5CdMgDxLEBfpJNRWAGQ2Ilh2KMwjzK81ee78BAfvgcaCoQN4266QVQX9i\n0IHNksfrn1966neuBIOj8l7Mneja8a+u6b59I4H9UC17HQdlFxNHJ7mH/cCb\nSFNw2JphdAwoXwcR3vglAVX+sd09X9WjIq+nP9XoVY2U30mLzWb0e7u8dLot\nGTNvK3ypqkVy107X/e226VN5GRNaGeJnsBKgnDKYves5MlFyPY4SAzronQsc\nrIPT\r\n=cB9g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5I/IPArUmxphjCfm/EHF4p2VZA6EkDOWVGfWbLM020AiAvTOZuPwj9PMQPAEC/1u9DW9AAIz2JgGCccpxiziuBsw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_2.3.0-next.1584137852.214918e07c0ea3056922b13008bf113089c423e1_1584137853326_0.5493420656449934"},"_hasShrinkwrap":false},"3.0.0-next.1589196829.ddf16d69635ec0199f4dda39564cb8ad83df7a50":{"name":"unbounded","version":"3.0.0-next.1589196829.ddf16d69635ec0199f4dda39564cb8ad83df7a50","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.3.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.4.0","assert-helpers":"^6.2.0","eslint":"^7.0.0","eslint-config-bevry":"^3.4.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.0.0","prettier":"^2.0.5","projectz":"^2.1.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"npx @bevry/update-contributors","our:meta:projectz":"npx projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"npx eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"npx prettier --write .","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"ddf16d69635ec0199f4dda39564cb8ad83df7a50","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.0.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.js</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://github.com/balupton\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://github.com/balupton\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ Benjamin Lupton</li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.0.0-next.1589196829.ddf16d69635ec0199f4dda39564cb8ad83df7a50","_nodeVersion":"14.2.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-DYsKXSO24GbaaEokRPZIIfiKjbiwa2NCw/cXUPmKYUYhNvz3OaQCJF2IaEgSQk+wZPYg9j02vutEzc/0Z4wGWA==","shasum":"bb25368b030ea51ce211a5fb17b7fda6a6bb61e1","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.0.0-next.1589196829.ddf16d69635ec0199f4dda39564cb8ad83df7a50.tgz","fileCount":8,"unpackedSize":20861,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuTgfCRA9TVsSAnZWagAADAIQAIXOaN+ek2OhfSveMCJK\n0NDhRbmIb7BsFZ4gN2Tz/884R6jsydgVKKrrdQA5ePvWlb0YSzBo0vqPtQ7N\nG8L0Blqtr1RtEHCtfP+lEOZ21K5oX+LmcffORDRzGga9IEf8u/rj6XElAN3A\nY2Bna0JBibQy3jBPz5xzEkPmLKChIYSG2HGQgfBO9/sJD1obXm55qWRdjgis\nVl3nCBIN7sEIP2wzf/W6XUiHeg2mUFn3LRZMroa5k2FkCkW67vJPv9dccVpj\nDME+S9MGpVDlaGRHsrlwImdjUyspMWAUFwHtlOkb2e2BpLP/qr9emwVooDlo\nQkg0C/2BQouh+Cai3nV9UnCNRIsSzbtGJ3RiFn/wa7WBbzHjgpLIEKPaRuBK\nE9e+uiC05OlntASAqOniwjaFn+DHaiy7yzf05aL6leFoDZKsoAkTIw+sJm7b\nvOTS2AdPnrWeUQ4vIiL0ly6iWX7Hxsk6SGOH5DpHdzP5XBB2tFMmHnAen0Ip\nk3tZyvk8X4UffDFJzODKcFiZayHjcI1EStzEV5czde/F9nBd5RwHxO+lYNya\nRLzErI9RrTSkh5Ko3lm7QXrgJVXovNK0kWURCnhe/hwHmlAWQmkIAqu4kKAI\nDT9oK/LAXkU1cAwi+Bo2PAqVBHqG13qFUCOJrJVCsEiZdAZfkcPV3hzdtM1a\nF5/p\r\n=KcDc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCJyFVim04ock9MN6je1n949heLaWI9DQC/fr4Op6zHAQIgUvu5CkRSXz1m0Ktc3BZqUy55qASiPTOXjrfWhGnnC1M="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.0.0-next.1589196829.ddf16d69635ec0199f4dda39564cb8ad83df7a50_1589196830817_0.39662329878624836"},"_hasShrinkwrap":false},"3.0.0":{"name":"unbounded","version":"3.0.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"index.js","browser":"edition-browsers/index.js","dependencies":{"editions":"^2.3.0"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.4.0","assert-helpers":"^6.2.0","eslint":"^7.0.0","eslint-config-bevry":"^3.4.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.0.0","prettier":"^2.0.5","projectz":"^2.1.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"npx @bevry/update-contributors","our:meta:projectz":"npx projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"npx valid-directory","our:verify:eslint":"npx eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"npx prettier --write .","test":"node ./test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"ddf16d69635ec0199f4dda39564cb8ad83df7a50","_id":"unbounded@3.0.0","_nodeVersion":"14.2.0","_npmVersion":"6.14.4","dist":{"integrity":"sha512-8csrT0unWywljd+/LPAEORdYJKnFl7l1XKYOF2rCq2AM+0LCzYAvxQT6qOY8n6zhHpPAWkKOWHeiXkyNfdGjJA==","shasum":"3866d15ef7ef82f802983c98a4c0a11ccd119f02","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.0.0.tgz","fileCount":8,"unpackedSize":20804,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuThbCRA9TVsSAnZWagAAW30QAIyXyc4onZrnYWVxVrok\nX9sVUxwwBlWZwUv3oN60mfpzI7FMix9pbmrqgcEZVFcRF6oHFlEsc9nUndXU\niIuIRO2gG5XKQtWsKolC0Au4Piz1znmlN8MHCrrvzA2DRdTu+ypPb6iCaoY6\nU5IDhSZmgHu+60hpekSTjxYKsrFfu9/1gwaoAgFS0MoF+7S0nXvQywjxcsiR\nSdFrtgiowI0uBDjSIWd6qNULaucsziYlcnwrYjvF9pgx0THBNf9kRjtusHBK\njextTfrqsRBwF2dmUJCtvJDSo2eAhFZMnuHxB+TpeYIXbE5rQesEoA6fIJNf\nPIzpfl6znYWRhAx/D6jCtimQDE5AiM4O8lqaBDqFwg0b6ZWex1oO31AcF2gH\nIHLUYkay1hRGskKC3zJjpbTtwe2SaA8c1fE3hwBNfywl3EIk8uzwoZWWY4fY\nFRyJ2ie5T5kDC6hf35+BSJHTqNibuvJfxZFJYr/eV05FjDbtFDJfbNjcYZMx\n+/W75P0xBWoc5sIrBmeiRTqb+ryBLNagc/DPlwAkQZDJlA09ZPPV8Ht/Q/9q\nlqAsusVnyEpKKrgMxtV5LbHkC+vKoYlKGopTg9e2IOhmfbaBVSfRbSkDnZfm\nZZdzJVXy5cCJQkelYyGieGmiaN4Qg/zcSauOtFlvGW/egF5QS9kcujIEQfNw\n1Hom\r\n=Ljdw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCemHAlsPI5bwMZ3hneC0uFn5e/yQfrCAQI+UgS0kBFKAIhAOY5SYfC7pNIVIECES/TnSIAjVUyz9Nk0ImEfWarKRuM"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.0.0_1589196890937_0.5931085516047061"},"_hasShrinkwrap":false},"3.1.0-next.1590011404.3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da":{"name":"unbounded","version":"3.1.0-next.1590011404.3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.5.0","assert-helpers":"^6.4.0","eslint":"^7.0.0","eslint-config-bevry":"^3.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.1.0","prettier":"^2.0.5","projectz":"^2.2.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.1.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.1.0-next.1590011404.3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-HXF2Htg6PIPoJxxzpmunrWetV1HOdut3McBlIdcq4M6PNEJ91jR4sLi+KATR2BdZ+Mhg9Om3Yx1eMuov1tm7yA==","shasum":"c0f688ddbb8effc3e9cc875eab39b4cb0aeebff1","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.1.0-next.1590011404.3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da.tgz","fileCount":7,"unpackedSize":20699,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaYOCRA9TVsSAnZWagAAV7MP/3O0erF7kcTM9q/8YneC\n/WVHNP1OT0qKDMs4ghg0eoA+hFVzorn7cwtgFZaPxIdvM9Hlft6i+PHcKDNs\nirp76kjdVtVRQNTLFGHZ5ntTdMDNjgycU4S+ib/48C+Fy87LhHConVCrXZ8+\n4SlYljiyxw4Pah+PC6waH6KSh/yv+w89wLeFcHD2RGlunUN0HSl0Ls1JJ3SH\n0TnSBRdlhXPHhxa0YfaR63cEmFMErilqBDzbV4aq2DR/dIh2p83dm8iRpwHV\nAdgHYZWWjKoSwEGYtQ2gk5+EUtLyJ5ZgBqn8aHDiem0qAJJ81We9C00c21uo\nPLntF61x5d7De9UxlIvtqv3J2GX98up0Y1B7D3822lMHM8mBjQw9M0ihgg5b\nHTJZoCJLDz3wti1otB8KrIeblnzpd0gNu0Nth9tejVwFzfBMylwjN5fAy5Bi\n1i8yFkj9o7N9vHJKHIgyBBvN9xenGxfqFbabG5MfEIK0wdomDZFCEvmMTFyH\nQ/pUpvSEnWbrfe2827eA2ppgz/w5iDz87T0WHiWJVYdHNW2zBpWMTRHHSLFo\nNvaoUNiPt091sXL5zQINpp3VdgaDCm3TvoglkZXQqJ0yrIB3lopMKaKBvXpm\n1Isek0d9ZBWXaIcv9cYYdFK3Z4ZoLqMI4Jch6LbS2CjTbKYAfuGWGrYFOIOt\npbzV\r\n=PnP/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFlu1cb0eQP0Qzwxfdq30izXBBF7Xe/hKMCQJqqm0Xq9AiB88Uy3dgh5fRYTY/aWIBfpdzLjTr5M3xsVMp2Tz0r09A=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.1.0-next.1590011404.3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da_1590011406038_0.22208949004110523"},"_hasShrinkwrap":false},"3.1.0":{"name":"unbounded","version":"3.1.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.5.0","assert-helpers":"^6.4.0","eslint":"^7.0.0","eslint-config-bevry":"^3.5.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.1.0","prettier":"^2.0.5","projectz":"^2.2.0","valid-directory":"^1.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da","_id":"unbounded@3.1.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-5wWBOjHTaWm/qg2Nd/fywMKzl5I74rKEnv5RNvLfx8KzpfilFfnneI9ySMBqA2RD/XtLzlC0KISgJZ3D+tVpMA==","shasum":"c5cf6b3064c85efc80565163ab141f9d3ff4465f","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.1.0.tgz","fileCount":7,"unpackedSize":20642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaZnCRA9TVsSAnZWagAANlYP/2gin2IN0oEjfHhg0QXf\nEKWffzJhGc+liumKQzbfxC3laHHq4N+fNq8WZ+UjvkxFZc4k+NrmhIembHuI\njOPh4qbRVjGr36ftvVy7/bBN98hPxeQtiyzXNbzpitoahRWA3LKi1NCmn59X\nW+kJW3UQAELXlGhThy5RCxFZA7kP82UZEHTWq/FozqISwWl33DJNDHMCE28d\nK/un5qnfgy6mLfNMg8CLL1bhbORmgM6owAttqqHQGAbCZX/9CeDG4QPsT1ya\nPw6F715baWLGXEmK17O5YBe9HaVI5C8zXmhh3Zfle5TiQb9Zg+AN/lOLlmcA\nAuc3dg4aOlHbEhYuOXtlBXmkLTlOR6hJs0qs3QTcGXIYrOlR3GoXb6gr1ePl\n3GcI+irEGp/CBZLK3eN7yN+cu4XqZocCKn2rWGAeZfUTxhg+90i3phAGqf13\nzy3ZijO1ihVox6696iciRT0V0dW80Sndwg/R27VO5kIYiepJgFmhWqBi8//P\n5LD9Q6gVEjKVQCbHxG43hsaOcilWIDpuw/pkrwRaQdCuKqtHKZ6QYyaOF3lD\nhGuYv0B7BeiFpBSGvjOs4R34ydVc45rrZrkqmKzyY8JbWl2CmeEhIR0+sut9\n9tmEwmmkpHdV6tnPvuTFeg0vVEYxC1zMHsO4nwCDD/KohqUZR2zz+ClZsQYE\ntk9/\r\n=CiVc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCigE2u7BBaTmjkCXFfLO4GAOxHknfYFwGm16vhfIGL1QIhAIB9kjyKn5+J3zVNOuakFIU65qSI36KlhbOg+2A8prgr"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.1.0_1590011495335_0.5791905984895565"},"_hasShrinkwrap":false},"3.2.0":{"name":"unbounded","version":"3.2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.6.0","assert-helpers":"^6.5.0","eslint":"^7.0.0","eslint-config-bevry":"^3.6.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.2.0","prettier":"^2.0.5","projectz":"^2.3.0","valid-directory":"^2.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"5150f8fd1c6020772defe056453caa4c48763c1f","_id":"unbounded@3.2.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-/k/htpGdz0hFnWl7eGVIUHYaqt52lnOizY2TGzg1UGIiZcmGL4XNvuCEDOgK/7zmct8WJukWd5QL22CcDEA0iw==","shasum":"ee386a8fd3a2001f7ef0df8cc85ae9564ee6f767","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.2.0.tgz","fileCount":7,"unpackedSize":20835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexntDCRA9TVsSAnZWagAACkIP/1pamJU7jr+eR47DYpEQ\npVFG55IPCIk6yU2Ky/wr+aJAnvb2H/bOc/SfA5hRhyO7u3HmOPm1Zd4NgLAm\nxMkB+9rkOb8mn3kXFIPEeEjCg5QBRjjheDch66LofF1DRRCVhGxJ9uzc9NW3\nWAsCUucmUNcEctL8Vvz67H0IY6dRiHJt6AAgIRERClsV0QzmFxg/m/tS3jMh\nMesnU3EBOz98p6/+Pa8JEjI4/Y4puu+CjXpDS1bABhWPL+H0/lWTomsHmtah\ndyND/voD6d6YSi6rVNbtw21Zk7vqyIN7iqDOAS/+0JeDLWMWk9m+IPG2Tw1G\nzE7fncsZt6pCVXj+7jRW9GKzI50zszdPhlvcqHRZQSB1ZaM2NRzyLeaoEFPQ\njVB+slfEuLnpl78iq4rE62dFmzX6iPeJQ7p4UZWUUKsvNuyOjqi6AP3qUptT\njPETEFpZapVm2WLewM23cNQC9KzzbE6joFkDgzJyblpytEAIbU8q2y7m0pl4\nmrt2vvBS5DwDRjacFxBa1lYOXlivc+BeAnyOUkp9IdFy5nG/Az27Aj6vCOUx\nEHe93zEWXup1UZfKXWf8AH1atR4QBJdPy3ucOvNJ4oTxvhfmmx8MgYNLHZ7d\ni4NL2+eW+kCC3lQoQGNqbx4DW7U7u1TZK2IdksTfTMJ37DHyT0D+mtGY/i00\nyMye\r\n=TTnr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoQX72J+a/BOMxPippPGA8P28n1M0V10dbu2gcmbIs5gIgB70F81uu4xUVW63LU9+PVQbESa+1d3TsPfroFyVF4yE="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.2.0_1590065987109_0.7888314762514559"},"_hasShrinkwrap":false},"3.3.0-next.1590083193.6d40cd3e434e0f366c2afdc38b2047a63ca66d21":{"name":"unbounded","version":"3.3.0-next.1590083193.6d40cd3e434e0f366c2afdc38b2047a63ca66d21","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.7.0","assert-helpers":"^6.6.0","eslint":"^7.0.0","eslint-config-bevry":"^3.7.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.3.0","prettier":"^2.0.5","projectz":"^2.4.0","valid-directory":"^2.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"6d40cd3e434e0f366c2afdc38b2047a63ca66d21","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.3.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.3.0-next.1590083193.6d40cd3e434e0f366c2afdc38b2047a63ca66d21","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-7ZSFRox+ZymVfbdeF9YmnwnqNSDcR6laP9HBGdoPF2GgngbKBhTuVFmKcr6q+vLiXGBMvflZfK1zblmRyAn5mg==","shasum":"3a0f09372dff7908e9f898f0e21654af65430ced","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.3.0-next.1590083193.6d40cd3e434e0f366c2afdc38b2047a63ca66d21.tgz","fileCount":7,"unpackedSize":21085,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexr57CRA9TVsSAnZWagAAgWwQAJyUpBd3GoEsYNtFEWMk\n3zLLAQd8Ik+Eh0WA7HAYF4U/uPT66Ev3hi7bLRoLYDQw9qDgFx17eDq58fkL\nadoOvzrA+ihCcg2YYijRkmJJPO3nQO9KOt6phPEQdOQPcVsub9gq8ZQz3WxW\nERwsjM21PgCaC23RQY0f1hQjMkIwCZ6mpKe0z43yeojCUPwrTyiel25FV1XC\n2Z1uBZgm6MuJcLcLFI+m6aL4EDk3FykvfSef0odBNuV4kqlJVHnpGFoiKKd0\nm0vBEAInbyrmtsxKOM8SYv97U+dLSSDOAiZt+DxHBepXqzAl3fyKmEwm0V1H\nlWV1StN/na8vFwsDIH6O4bGm9ZQcdmjcgyef9CJbDuRzxUQnVmw1UoqDmKr7\nuG51tcy+bm5r8sOgF2g0jsioP408Ad+bsfPw6Fgw3/ACc+y/VcNac1qeIZ5C\njwzF76wMAH/gBAqQYeuvu/LsM3DAn/NPk3LUFdtQNniFKSiyfX0ySxMbtvUa\nUvwZmYrDUUedok/yYCYr650lErByc3iZ9k+NLqfzGqbGwCW8JfYuUYOsPP2e\nJKC1w0xEjkwgqkiEaC7JU8Uv7l45+PTEDz/bB2kYGOWiTyi4au/RjF2oLO+N\n0/LDe3AFTidFAPVHpZuaip2BIlLFLKXJeYmP/zJd56bD3j9Ub1caKA3M+5KA\n1zym\r\n=smhh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGyRQSBSghVxpU+6MbhlaUmgUQqZkflLSly7eXgluPcZAiAOQ4oqFiC1NNr4WdXzCseKbZpdWRnWibKE41qbUn+vsA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.3.0-next.1590083193.6d40cd3e434e0f366c2afdc38b2047a63ca66d21_1590083194814_0.3569325507413321"},"_hasShrinkwrap":false},"3.3.0":{"name":"unbounded","version":"3.3.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.9.6","@babel/plugin-proposal-object-rest-spread":"^7.9.6","@babel/preset-env":"^7.9.6","@bevry/update-contributors":"^1.7.0","assert-helpers":"^6.6.0","eslint":"^7.0.0","eslint-config-bevry":"^3.7.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.3.0","prettier":"^2.0.5","projectz":"^2.4.0","valid-directory":"^2.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"6d40cd3e434e0f366c2afdc38b2047a63ca66d21","_id":"unbounded@3.3.0","_nodeVersion":"14.3.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-He5JA5WueLeMpFt610HDTrZo08gdHgzhNNjUGj3kaJj5r+969szLx1MNXif1NjFlmV5UGERhoJT2P2rTYFOuDA==","shasum":"e0126cca22b1566af3c2b7df851cdc32fa86ceae","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.3.0.tgz","fileCount":7,"unpackedSize":21028,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexr62CRA9TVsSAnZWagAAdrwP/jIsv8w8JZJIKh9JInrD\nQfTbgK0OmqWo3Lm73mGRxi1+k4gebnC+SvP6sG+zc02k8upWnmccPBlv5p0U\nZQwNbgZ12Pf1bvIXBsyfBeyQaCllUU0jikF6KThZM1zQc+0W+GmpWIGSBlPs\nk2bcifYbHsZRCPLR6cNHqWfzLWXMWq4svbmqxEel8G4DXRFvKq5OqO/QgAe+\nlD/wGG7zyuE71769MmgcxD3KjNYHRE32YyIOGXNCfmJuRjSlO2IiSB7BFHg9\nyJ1EipXQvkV1+KEj6GP6DRD05JzMvC2X9IWapALpajSX+m85LF4iiBwyDqZM\n6qt1/2mh6GDleeojdZg9eoHlV0KgV4kTk62vhR0yKWZ9arTzdSth1a96IyYr\n3ioL1wApebNEzTOZgERw/VWpNF7ZcpV4mzph9Ro2z8qiKOBrz+Z/+qKMg+wI\nnggiIDWWkCJNVPTql07oxtz9Z4rd3Y5pExvxM6Wz42R0955UpF8tOG66T/u2\n3BhXUVpZGaKOiGvXpgEO49nzjBmrsh9yv4XI52V/myarSSzWaVPcCqdj5oo2\nse/WEyst9VSRLeDIZEVN7TKzZuuEtEJ4XGLloNG3qIYYmw+3nfoQyg//D/CQ\nxkB1Is8cd6mz6E3p2HlQi347Seq2TgWm0MpmK/q9MP0WMAGlZrj34KKeQEsR\n9/i/\r\n=HwA3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVplB4qzDf3kA8Id1fUSsJkOGVzRXxwoVJseTJ7qwQTQIhANGDnVExBlvvYF1Yz8c9EIXV4n4bhnI2gENDehCkAFxJ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.3.0_1590083253676_0.21656152890662517"},"_hasShrinkwrap":false},"3.4.0-next.1591787819.d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22":{"name":"unbounded","version":"3.4.0-next.1591787819.d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.1","@babel/core":"^7.10.2","@babel/plugin-proposal-object-rest-spread":"^7.10.1","@babel/preset-env":"^7.10.2","@bevry/update-contributors":"^1.8.0","assert-helpers":"^6.7.0","eslint":"^7.2.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.4.0","prettier":"^2.0.5","projectz":"^2.6.0","valid-directory":"^2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.4.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.4.0-next.1591787819.d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-eOIfKjJR4NX9AP4ZH12ZBVIFpoUdr/wmWl1gKcNIKanEKA3UkG1bQAop1konboGiDlSKH2iOzlKrLEVj1SWqtw==","shasum":"434de3e25d6ce553754fd1bb960d2012ce8fabb0","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.4.0-next.1591787819.d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22.tgz","fileCount":7,"unpackedSize":21283,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4MEtCRA9TVsSAnZWagAAmdYP/1RpjNdOLeOfu76e6kyQ\nr4003VOLiRBXmVXNmOPGpAnGzazY8WtRm9EDfS21SDwlrd0gjhOL231f+ToE\nQ2AyszbzRgzKYs744OzdLNWUzi1PpVp2j69gcaRwEGO2rIoierVTyB10ueLX\nB8GK14cyjG9rpglkVb+mLqYPwu2vDKmXbmdbbTRrbExwrGUUMwuWbOdU/MEq\n/TLehZUlrB6QoXsIN9tawEAW4kiNRublJRjIRNIxmjeUktvx2ugNMTQFD5Ui\n/SZXh5QcbzzT0AfACRc3AEoZPRsFDOml+yXnTLzWZf68Y+zgo02/ibdRAc1g\n/2/8E6fUWNS8jDwH7oUGfw6/UAqMPMYCjTes5Znlyh6dfDkBgoKwY0cSrJ/W\nIGPZg4dfgm/8SYQItRLdGpi23J6TDFCr97p0YQyxeb41jPmuZovm3lj5OM1k\nZWjUg80qTPT6vdwqiM8gHv5X4gP9ahRQfexZxVnUlr4qMskG8i72TNMctDd2\n2XClEgvBKh+/fRStIzQmuqcPXv8aWodMjyzIIoV04xv321G4Hq4ROOsuZlXP\nT3pPsFxJ21GIupiJ8hu/kXFen2mPSHGrOOV5lv2sMxc4JStTUgGRbz6sqSTz\n9TbQAP1XUklndkEblGm0mjO51r/BTGq6CQ9D2beIeYGeaxy86EdpP3WTpwwz\n+8kV\r\n=XkFb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLd+SkuMwOuaqpqE00XKk1N7kNgltcxwhTGHPuUDeOFAIhAIpjXW5L9lcjyzFconuJUjWLfIwbAbFS7I5f+KMWM78K"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.4.0-next.1591787819.d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22_1591787820696_0.7654778970323604"},"_hasShrinkwrap":false},"3.4.0":{"name":"unbounded","version":"3.4.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.1","@babel/core":"^7.10.2","@babel/plugin-proposal-object-rest-spread":"^7.10.1","@babel/preset-env":"^7.10.2","@bevry/update-contributors":"^1.8.0","assert-helpers":"^6.7.0","eslint":"^7.2.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.4.0","prettier":"^2.0.5","projectz":"^2.6.0","valid-directory":"^2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22","_id":"unbounded@3.4.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-d9LOcaNowWY9zEynpOzRCd7lpABqVD7svxkUBzZ6Va5QixAL0l3VjIXHwXli00ovHj19ABBcI9VeZYOke/hTsQ==","shasum":"0e44520a5c3e5759fbf15ef32ead744046cd20a4","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.4.0.tgz","fileCount":7,"unpackedSize":21226,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4MFiCRA9TVsSAnZWagAAGCQQAIFhiotJwewb6IWvNtNY\nwBpJ+yRMSQuKGVqoIEMn0OKeDt1Io8Nw2U5S794uJI4esBgYlkgufHiHDReJ\nOu4IbL7afpUkqtN6g8oKOY6Hhd18ADWDPiyQlmgQLBqglPVi6zHrnzeeT1sS\n4fXaWJiH1t1oNPUlA6e4OOYpZ5CIFy+T1KWyt1wvkvNS3oSIWhCvXPKbZvMy\n0o25WB7otZ62SWzJQlwW0L8KpdYlUe1s7mCXg4nUhJMsphTDog4c4C/QJHt7\nAiM4YyvE2hY87qNgifPUpBFjn3sygenxNEymLrILZ3FqDdSAYMT8WIJAbxeF\nPKsQBQj7QASH5Ztzt1gwKvPGINSHGiiXMR+g3zQTuEcFfSVXH5exwdaMx+4u\n/IekbBFNG2avHoWFES5kz+cKuozJyEqwJJ2+5hIqFgpbX9W7xcMVOdYZ9yhy\nY8ormD/zL+ZEnkdu1VmQ74y8q6swfaV1I3gipKxHUH7/6m73EyiOpY/GfkmZ\np5ydX0R211VxqE1uCVGym0Lsnmn1BwWv8MyNgmRWEjl6gz1qACuyJozIVSC2\n+ySiWgumlv6lw2ujdR6gVXClVyMTTkb4BIxriBDIqML5j3SPm6UroLZ7NeG1\nODjZzA+SqkO6QF9i135oSXwGnUeD9Ch9f0Ey8Zud0TFfGj9Miw+7ta07Yj8N\nQJ+w\r\n=aRj5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF9Ymbd/svsuLQ4jezfSfnEAf5d9VKqtcSEDO8YidFCbAiEAhNQwW1xtCKfoaFbXya9OxKE8TBqws3yqJlEEQODEG2g="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.4.0_1591787874235_0.8513187392170618"},"_hasShrinkwrap":false},"3.5.0-next.1591803704.8320cc54458f33fd5897aa85998199fa67cf260f":{"name":"unbounded","version":"3.5.0-next.1591803704.8320cc54458f33fd5897aa85998199fa67cf260f","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.1","@babel/core":"^7.10.2","@babel/plugin-proposal-object-rest-spread":"^7.10.1","@babel/preset-env":"^7.10.2","@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.8.0","eslint":"^7.2.0","eslint-config-bevry":"^3.9.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.5.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"8320cc54458f33fd5897aa85998199fa67cf260f","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.5.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.5.0-next.1591803704.8320cc54458f33fd5897aa85998199fa67cf260f","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-pO+dQQ9/4QE6VOTPdg3pUm+VqYy+oU4UbYP3zhTQZocs4T8bibUJv01pmGBNp90wEnap3zTNJDg9gpvk4GcfVg==","shasum":"9841c74302edcfc0d8e8f527f54e29353cde91c9","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.5.0-next.1591803704.8320cc54458f33fd5897aa85998199fa67cf260f.tgz","fileCount":7,"unpackedSize":21477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4P89CRA9TVsSAnZWagAAGYEP/A9BU1f3J/YW2fq8MkDo\n42F7SBPPWqu6x9YfnntQvwpliBtClnJ0G2Gd3sbf2oEnixIx2laVNheT4BfZ\nf1+R/qfbbIQa08c04h29lFhpEABi6kZoEfnEODo9t6OViI0D+ny51Lo8vkEq\nwHn7lJjwHKp6BP/uX2Miylfy//gicdnFgkL6rDv2KlLWQ1pnE8m1ojKv+4wJ\nl+sHhNFygyaljOyZUd2VkjDfDQJXXucxRRejXW4oDICqUeY+s4k0qtgQ1AEQ\nT7MbCzLAUehvpAqHqrTkew/SujX/9NpKiwLIUDPnhDknWifU0pCxxa1wcAA0\ntfj+mADxplBjoXhyxShTuKIuO2bjLbBy8P/JUwyiHnNlr2NXc5SqJIp5+clg\nO/7kq/+P8/xdOJHMteVIi5snRMFmDSCF6GvmWpyxE4qkj/0ujNgaW25evEXR\nzf/gsMKTR5dQRJAAzA5yFLMrJdex3SFvlJvDlLHcvzrl2+KL1vVclW7E3JnJ\nL/T7aQ+5DG1uSLGI9eyK4KZYdS7gmlQAiU5cX7bfbeW4sG3Uy8jOcXA7sNij\n6gp2kPbX3VqwcQgE/EeFmx8NDeRKNuJoM3uoPdcrNctFt2OfPacRD+YcK7VU\nCwnQkfjNlNZvyv2XRTitGfO6vu/23ISKkSpbaAeavqew5L/QQkGZpVgu29QU\nAIAU\r\n=thxk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9MIqsMpjUCWhrQSRmrgHowkz/6+Rbniy3ffVHskYwqAIgCTcjxyI4KQRXfNcTO9lLCCbOex2sfFbWplhNAj3bj3s="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.5.0-next.1591803704.8320cc54458f33fd5897aa85998199fa67cf260f_1591803705921_0.4459368964812611"},"_hasShrinkwrap":false},"3.5.0":{"name":"unbounded","version":"3.5.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.1","@babel/core":"^7.10.2","@babel/plugin-proposal-object-rest-spread":"^7.10.1","@babel/preset-env":"^7.10.2","@bevry/update-contributors":"^1.9.0","assert-helpers":"^6.8.0","eslint":"^7.2.0","eslint-config-bevry":"^3.9.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.3","kava":"^5.5.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"8320cc54458f33fd5897aa85998199fa67cf260f","_id":"unbounded@3.5.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-+L0I0BxMMguIyWBL50R994o1HzZE6AGpcyr8XhQ6qn3FcF4C0+bKuBqUSX1tpZYVQuqVSwatzxOR7eKX6ecOLw==","shasum":"38b3d4b1e008e0585de5d8036e4e4dbbfed42df1","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.5.0.tgz","fileCount":7,"unpackedSize":21420,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4P93CRA9TVsSAnZWagAAJ80P/2jfpD2GD8+MPcbJa1Vk\nJQ5bVVkJuIo2QzImneWLBW/TE1t1pGeSr1mnUR26vuoeVfnKvZUBorM+qqI3\nWqmdF0EOnu9M69/X+Cszh2Eq40uV/7xgVXO6NVbDjh3uLMU3r6YtrvLDvXFa\n/otxSzrjvWzZKQbk5tiro4+zw4An6y5HB5MyENkpjapxbM1oKb2xyNZh9Vds\n7twZQyTJCH9R8LxJ8dO1nuSuiurPhwLwOQcdDGFOVOnGjsA4G/Tw5+Rv/7+Q\ny0rUEZAozhZait6Xvw89uLmgEp+L6oTGViHSfMLrYQvJeaEnlio6tbkLhfcg\np9rcTKheVTnLOODSBSTtaleXkcqcmYsGjeN4UnYLLILJVk+9ax7Zc44RJOUy\nCuRAUVYhQ9HdF6B2fU39qGU2QXIxq4FWHfCaeD3zeRf8GTgsDN/YWONtzK4f\nhM/B92sDAhkeBvV45u6enD/g5xuOrMYBpF3Z+w6QfMbHnExrME7Eugb+YmHD\nUav6gDPHEni+TqviwTRchJ26K4021sZyOusOpYrauuDm+6wEMkwwiJxyibQf\neVXLTLLh0Tcvgc2JWxX7chaWSBmKy57jMZaMxjYcot5wc7qlokNnwxruz3LU\n2tDdbCwjZT+Q4kv7Ir8wrp7uSRHJjofiFu7l9p6IIegFBunho+6WrccpgEC7\nFAsu\r\n=4yQ3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCnMFa8r2K1bW1Ijd9RYUXgsGOvYmByO9NjAWgIdAAGVwIhAIb3VYBZ4rR+qf/FBQHf2PyWGpRUy/FSr2qr88KI2TrC"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.5.0_1591803767408_0.791040759999214"},"_hasShrinkwrap":false},"3.6.0-next.1592656790.3a852de18c30d6c479c21f8b6f2b721cf7520e8f":{"name":"unbounded","version":"3.6.0-next.1592656790.3a852de18c30d6c479c21f8b6f2b721cf7520e8f","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/plugin-proposal-object-rest-spread":"^7.10.3","@babel/preset-env":"^7.10.3","@bevry/update-contributors":"^1.10.0","assert-helpers":"^6.10.0","eslint":"^7.3.0","eslint-config-bevry":"^3.10.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.6.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"3a852de18c30d6c479c21f8b6f2b721cf7520e8f","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.6.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.6.0-next.1592656790.3a852de18c30d6c479c21f8b6f2b721cf7520e8f","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-+bbMBEPep+r3tv6TQIu4nOTe4HU+XHta88xcSs4CRN4VqanuX88Ebnu8U6TJJYqbLtxfiY+JQMxlGC+oXpImdg==","shasum":"5ef56e42cd43c664eb8082438374a3c4ec43e99b","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.6.0-next.1592656790.3a852de18c30d6c479c21f8b6f2b721cf7520e8f.tgz","fileCount":6,"unpackedSize":21405,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7gOYCRA9TVsSAnZWagAAZrYP/AmRC9Tdxprb3nDb+NQ0\nMEQqdHhN+VqqtYD+lsO4COdgxcO159HKTjblUmbjfRdjJVC090gM8TAxix8r\nZ8vPgAIROZtknIUfGwoePiPrwKFgqM/kTkgTMu18/fGKRNU3v8+arH63xuKV\na0Av9zlRpIPzhmWa+E8/99DkJDeNb63vuuDN6vZgY6V43JIrSlm3tUQS29tu\nN5us6vK++Fk/v5rjKM+vLJ3wIZmARNJ3mOrOZHntk19+SqOy8lDaRD4BDw6h\nzsN78AvORArZmVtLA88IPcfsxZo1gTBrGMRP0FmGujZ0uYWM5WZHdbkcKbV5\nUd8pP/KHlqsaYJ0wSAyR6ZgtPfmlzX+5jzWUii0r/CY1kNFLlCNj6kbFA2gM\nAqm4T2FaOB3evnFWhC3AzlbQFvhRVNFoB/A5eZbY+e03hTw8BeKoAxTz9aT4\nVD1KMCDGanXVheUxQVMmX8hLSJyMO404wXEuV80lTfHClKjqmcX3yVrp/902\n9SuCFVWTvwpQ8UZF2kQ3hTtWhnQKww+azBWx5xmfDX4WTRiZkRBesc6htEKn\nNfkLvnaPAbPUkWQmftRl0d0KbuMDQfFKc7FZwBgYAb+hlVIKRLELPkN+acED\nV7pAgGNZnEowUctw3fYfbKHQTBh5w6ZRo5TFbwtfUmpYHyIl5FefKmV3dMVR\nXOET\r\n=gXt3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID84hpC9Vmtffnmeh2+yjCF9DjiqTUjrqPZG3iHa1LjHAiBC9zWbz8hpxomRLfS+1jfMgv2Qj1rJ1sq7rVk6h9tcWA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.6.0-next.1592656790.3a852de18c30d6c479c21f8b6f2b721cf7520e8f_1592656792272_0.906778510394668"},"_hasShrinkwrap":false},"3.6.0":{"name":"unbounded","version":"3.6.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/plugin-proposal-object-rest-spread":"^7.10.3","@babel/preset-env":"^7.10.3","@bevry/update-contributors":"^1.10.0","assert-helpers":"^6.10.0","eslint":"^7.3.0","eslint-config-bevry":"^3.10.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.6.0","prettier":"^2.0.5","projectz":"^2.7.0","valid-directory":"^2.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"3a852de18c30d6c479c21f8b6f2b721cf7520e8f","_id":"unbounded@3.6.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-hWsxvo2MylIV7C/Ggkq9UAH4Pe9CqU4VR3nsRfpBgFzx96mRapw4kvsjnqvKa3f9Af3KDFWRR8aF/6i9+GP/9g==","shasum":"4dd209e2a36df9526857914521fa830353e98d3e","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.6.0.tgz","fileCount":6,"unpackedSize":21348,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7gVmCRA9TVsSAnZWagAA4P4P/Rdt1sIRAaUP/5Kz+DHD\n9HhIHqKnUp/P7ElZDvZNSyg+QwNNGoGlpT4FhqVt0MIY+VkZ0/gcyfdamoA3\nS+jKu/Va3EtKt+BWOlZRwzDWBB9g1CjKld/eWuhlraGLmQHAYrcLKT8y0zuP\nlJdbx8PyjxXdk+vwgi7j4WQMkbCgNqTU6+1O1UulUEC7mtEK5y/AZzol10VN\nQbgmNN0BcFFnt5h56UOuCIoBY/XUrZ+B4CE88EMfW2dwDfB/Rx97nF8ZHDQp\nO15eHtbW+83wMeckwAlRJMnQ/H4KYyFg6eQXxVZlvEtnP/gsThVCkTJ98mWX\ncX/V+8KzuB6DpSE//dIlk1F0+fS2e3T72Og7ZCyL37vOzS408rTGGm+ezaVK\nJzDnHh8pJYkdwMOpPYx58vK9GiVKycEZ6nhAoBcHCNignzodDP/mCHZjlmWX\nSjyWK63jm8AgX3CLAF5IMCziK+wtJOG51bWZn0ybDkLIw23N43LUCJStIvfP\n76GOiJ8EdblnGIpoaScpg8GWH/BKEViXSEATQFUhAlKbDD7mtVpXIPzd4Cam\nT7sd/Ak5XU8Z9nFglLXeAKQ3DFyGQDm8CGwwwRB4uDsDup3qanRybQPWbcY2\nTGDLNECCguvhywNRaz1LGpTYKypy5kkaHApb2hBuSckowLBdLy3MNDfi7+V/\nfzm3\r\n=DX/G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkmbdkyWQHFgWsQG9oS3hc3WiFjhFjzHoDVqV8xmjJfAiAZ6L12x6tmLca7zHxFU89/YUUZI1LeVbDzMSaaNigHrA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.6.0_1592657253843_0.8092745184349368"},"_hasShrinkwrap":false},"3.7.0-next.1592730641.ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069":{"name":"unbounded","version":"3.7.0-next.1592730641.ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.7.5","@babel/plugin-proposal-object-rest-spread":"^7.9.5","@babel/preset-env":"^7.7.6","@bevry/update-contributors":"1.9.0","assert-helpers":"^6.8.0","eslint":"^7.3.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.9.0","valid-directory":"2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"yarn run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.7.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.7.0-next.1592730641.ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-eDmpEY84Hxaz0CkHCOtfN8z3NRVT+KDIOlLIDehaoLuOTIxRwg6ZCgz8WwTxqBdIcbnbRMFqAEd7sGaP23cReg==","shasum":"e3d16bb75592c74a18a2e5d0e2f34e5aac7581e2","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.7.0-next.1592730641.ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069.tgz","fileCount":6,"unpackedSize":21641,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7yQTCRA9TVsSAnZWagAA2eoQAJwoOXxtcbioCF3bPdBD\n3soR/A3+HYRZDFMLrT9GEjkPx0H+KzzB2gw4AxNe82GycwBO3SuigQdjPxZB\nmTzLM4FIsLjUixG+Se/5FxZ1d3MMfesqcoLvbRm9DMpvg1K4+/d3Pz0PgwkT\nNX39Tj4YjeKjVF8nLUTA4BKEyUi9Dx46IucrjmA43S+++w/um5BDsy1xVnkU\n0k02nMgeqzneZN2pRINrwPT5HE9DVnFEKPyFh934Eo1sZsjZYrKU8RY8Gge4\nOY9OXZc1mn/5UHN0PEU2d1aqHym4+YglZo0ZlfeFkz8higywr39lP1UAvZbN\nF8XKlHasPOhKa0984h6AO3YSu2K0+eemzkho5BVQfGpgFGd0bjO2vZceoBAz\nibHTObQCIzRhf+IlfUHP1+qkT+5EndhykpvswYp5LSisZohX2zeuIdj0pAIf\npj5ig+5+FQCYBITQO2FBGsgiqPoMsJePT2fBdJ77zs+u3UVoD+uY43ia4zZi\nBUXCmUUWGyKC4UAGlGOUoLJm3h6oJoHk0wKXPPAc9IDqxf3C3xJyEHPe9R8T\nXRPM8MgCNjJ8mndB41fuQo6jgbfGXnG0LQoODEbgGU95xx/1G4OU4Ssu5UcP\nTZebkBW67q/WiztTKaZkE1fl4BbPxFcp8BKIMm389mE0tExVBTjGGdTucibU\nX5gd\r\n=OjJK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8f5eGEa+XiFdWEkNmQ9GBMeOGXSWwwp0rj8kzLmUVxwIgPbEZmUv85OdEPkrdqTIyKHK/mVpL712NSwBhHttvFaQ="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.7.0-next.1592730641.ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069_1592730643333_0.834416558661184"},"_hasShrinkwrap":false},"3.7.0":{"name":"unbounded","version":"3.7.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.7.5","@babel/plugin-proposal-object-rest-spread":"^7.9.5","@babel/preset-env":"^7.7.6","@bevry/update-contributors":"1.9.0","assert-helpers":"^6.8.0","eslint":"^7.3.0","eslint-config-bevry":"^3.8.0","eslint-config-prettier":"^6.7.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.7.0","prettier":"^2.0.5","projectz":"^2.9.0","valid-directory":"2.2.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"yarn run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069","_id":"unbounded@3.7.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-gqIxGgyzb1krnJHGk2BkGUlDTDJRvogqi05hsWKyie0m67Hihqe3yYmeEnnPnQKI8tC4b3NR9/JjF3fWR4G/Kw==","shasum":"c1f8c97b5d173e7e7a1ff0349da00269c6fd9662","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.7.0.tgz","fileCount":6,"unpackedSize":21584,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7yRUCRA9TVsSAnZWagAAGIMP/0FizCG45PVe1Lctu0vs\nPNILgCeAvChtJDEj7UcdZGfiBaYoD/E9KpSmNcCmv8yYH5tJiZHSO9A8/GvM\nfp0bKhQ7ob32SeRURwta6qiHkvnwPO33ieSpppuY7HV6byPRX1WKn4Fsc5YI\n2o6Mh+vYsqlCdBkqUSSoMMKdus1+FKDDd0DFcsVgsxAPINzXUIiH3LV+K3b7\nNowpz2mS9xe1dgTU0vBE40pnJ7jybC+HneQxbN0rjwC7Lviph0xILelc//b0\n/TEr8AeqNWkSLPQS148Y/Y2+4wSzmFvunBQgZTkOomf8a48bWx02u4cny2A4\nhwYiX7Fcd7nBUS4/iwvNz5CSOhiGwhzZ+ACLOyhS/oHtLJITLSwvYncQ2iuz\n8CI60CtGShI9QjiDa5v5xRxPTJos6G/zColMSx+nYdaBfSrRXoQeZmI3fy2j\nzyhP10s38KLN+MgKhU/2DonjIJAUGpVfurL25edBEEqyhn2CCaSRc3CBMevC\n3F5w+994sdvlQFXI636cFpKHBPeZFsxgvE1TXzz8HDmSQT4wxg2vXzIGsRvD\nJafEfYdFr3AbX8/BvgZ12m5LWLi3XxFFwo6AnXjE4iEXW/FD0XfwWEf3POQz\nuQqTLErXbvGIuwRN7kWS34cZl1UYcJMIqaaM5BRyw6A94gM/tpV2t2TNfD4q\n4ccK\r\n=gj48\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdJ/iWiCH9pEnqZuM1mI/MZIwx1H+Sm9u+KwyPBcMJ3gIhAPxZDcci9K7OwSdpDNwjIKn3Jn6hzAzNxHOpYXkVUEqQ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.7.0_1592730708295_0.26258813431793215"},"_hasShrinkwrap":false},"3.8.0-next.1593061737.5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57":{"name":"unbounded","version":"3.8.0-next.1593061737.5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/plugin-proposal-object-rest-spread":"^7.10.3","@babel/preset-env":"^7.10.3","@bevry/update-contributors":"^1.12.0","assert-helpers":"^6.13.0","eslint":"^7.3.1","eslint-config-bevry":"^3.13.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"yarn run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.8.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.8.0-next.1593061737.5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-rwh9+2Kq7UXrqd+VvjCRSPSfvpPnkFLSjbmCSypix1CNXzOoLNzvluy/GEiOM9iRg46VIjSjhvG/nBtkZ6TraA==","shasum":"b9d07633a51dfb20931300ae52418090417dbc48","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.8.0-next.1593061737.5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57.tgz","fileCount":6,"unpackedSize":21845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9DFrCRA9TVsSAnZWagAAF+0P/21Yxmo86vxNofDFF2Tx\n/X6D+wt/x9eHC4QnNl2ouyQRZF5a2BAFS45Byzy85TcgRd/kLtY4Nj9tmPMZ\nc5P4UzFwirxEIXc1/vdmYiRxq0h/god0K6J5h4S0n/cHKNKmHeyK3Rd2riD3\n9uN4oqXhWRlSwoSD11hYhlvqaqRS7JZBgOV54SLsuz1VgPsEjYpz4DLIAW6n\nwR2pW5IWgQwgdNefz0JwacoZaT+KjwP1e2gq3T6EPWSBcnJlqymVYof65hth\n+bua4kGkXCA5iiAQZOh9SQxCS9/iXN5t3ZtO90vIwm/j58v8ujouOfv2VBQn\no7cAJ3BkdlJlW+9oEEKsR1r8/Fpbtn61NcnGbWmt8PPJBhoQKTCo03wYFzds\n8N/AM7rcty0/pC15kHZf3qEyYF971hHSlFTsweGOxFuj9/tfzf32YjwXq5ex\nXV3rqnWKeTaLcCNejx1ww09k2XlhOJcKearSOW6kVxJaoKhUYB8Nt/zpjPbj\npdFvLxfvLw4MIjjCntJSagtCSGZLVmC0MEsB240LlaXWuol27JllgKwF6SbF\ny80wpvCMRfM5GFzJ8rWotEmiMCrNXbUS7dBzUUFJ2pWDdoMO+sVGk3yDA5ka\nTcABcOTlM47OJ7YgJWAXUXzXs7yMI3dHZY3VHrTQt7+lPYAUx2cfxWZ638Ib\nVX8C\r\n=GJWV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChmpPQPoy77pUDEk42SvewtKaCe8yl0989r44rn/TTRwIhAPcdAJGV22dJiVq8cpj7+qKxwBcQS9FIezEEw1BnHu/t"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.8.0-next.1593061737.5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57_1593061739160_0.5029590161969237"},"_hasShrinkwrap":false},"3.8.0":{"name":"unbounded","version":"3.8.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/plugin-proposal-object-rest-spread":"^7.10.3","@babel/preset-env":"^7.10.3","@bevry/update-contributors":"^1.12.0","assert-helpers":"^6.13.0","eslint":"^7.3.1","eslint-config-bevry":"^3.13.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"yarn run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57","_id":"unbounded@3.8.0","_nodeVersion":"14.4.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-kz/lmG1QEGqlRaGMHEm7cTdKvKvRgaUl/F8d3YuBz5eyIdloubiddDUYqa48PSOz1pQZupyE0rnlRhkA27zxPQ==","shasum":"b6bab7655277a5c2b86d609e6a0c98ad95489443","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.8.0.tgz","fileCount":6,"unpackedSize":21788,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9DGqCRA9TVsSAnZWagAAmzUP/AggfY8xTcY0PWxrGhnu\nT6mlLQ0UEXxZptHjgXYDgiIfw3M2vVBqHXfGzjm95sSDNuI0scujM8bBifA7\nAUNISduqI/szsUvdg683YS1oK1CK+fwcLR68/H7sp6ExjS2zltxp8F7ebwja\ntxgnwERgWqieB+LuObcU+41L+27Xkjb6ktvcfhNchpdcCLTOgfhdwUNfuqlz\nYp4MD4txBmd5dFGmaMaGFoGal/hkeLUm/qr7wu9WvAFq3JuCfM7wGmu2jMEt\n8qAi9c75XlPe6Gp8o/uJA8rdrk1oJkFf/wCuGUQ7f8Wa8VSW1/cO0kxUEQZo\np24Bms6kHJi1Mg4+6obqWqAXcyFQIBKM1TDRRQrOgaQhQKeYsTWfKXX13dKF\nPmXnPJckG9NaPaWwS44yLzPqMgFn4a9P6m6sgdp6K/efpCQzJ/sKP/tzKpVz\n/Q4aHpInMnhTshba0tH/TBM77apqz6hRJvRU8TAOCwrzTTNEIwzbdd4MKAQs\nrqrJHlYc9C0gpvhdBB7TDo5bmsnZqEReLRaTfIBB8W73qEuDBWuYKXCz9mDk\nUP0nodIo/T9OdglXlK7BKE6sv0wEf+qcVEgeSay0FxDVBvqJOGWMILu2wX8L\n8lGTNDGeB5zTvMl6r6xtooWOYlMbAuthdJJHgJwfEkUqwtPULTuBEV/5/iq5\n5Al/\r\n=eaZ7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPCciZNTUDAKwL8dy69tz7WIHVF2k3RqNlwJkhKp8bcgIgJ5fXmBZasCMNcED+4XEmI74FanCnQXEQ7yFksTIFn0k="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.8.0_1593061802157_0.3315011995682209"},"_hasShrinkwrap":false},"3.8.0-next.1593741946.f8dc5f5cb939275fe36536d24806c17f127ee35a":{"name":"unbounded","version":"3.8.0-next.1593741946.f8dc5f5cb939275fe36536d24806c17f127ee35a","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/plugin-proposal-object-rest-spread":"^7.10.3","@babel/preset-env":"^7.10.3","@bevry/update-contributors":"^1.12.0","assert-helpers":"^6.13.0","eslint":"^7.3.1","eslint-config-bevry":"^3.13.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"yarn run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"f8dc5f5cb939275fe36536d24806c17f127ee35a","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.8.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.8.0-next.1593741946.f8dc5f5cb939275fe36536d24806c17f127ee35a","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-tO4EDH76Q5OdqwTmvLmyHuDJtwBdGACib7AoF2v/w45e7pQHluXbOJVmcQDA4Nnltnph7lVsTyzJN9jjfv5OuA==","shasum":"f313d99ef71080a16616811eb997fa0811a06c5b","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.8.0-next.1593741946.f8dc5f5cb939275fe36536d24806c17f127ee35a.tgz","fileCount":6,"unpackedSize":21845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/pJ8CRA9TVsSAnZWagAAcokP/i0ZyOopvxs6/Ymr9pwm\nU+2bdtUB3WqI+eUVYb1Iz0g0Q3RXSkYpN2Zo3IkD/wvwSsOhJLX8p+7NKKXl\nqgWQJYT2QFYc21/wMl6it44ea/StCJACvTQBZFVrzrUEaS08JaS3LzwXQcD8\nRaHGk001wMbjxkquhO5P4F8ZZTT3cMDqxQS8v4gGBXHJ0m4r/QpN4GHrHNqo\nxDtv1DedYdTGA2BvkJR18uEQDZhwAqjVuF3JLqVlTwqtNZYSjmM5i+qdKZlO\nF5QQpfc3VRHtBGuOYRx3QqsTpMEGnEtkCm4+HWTIMW+XzOvKSFOvxJOQrDZH\n4Oc/Wz3/uxGoWANOFbglr/icShZ6rP9jZXtRryAqwBwsx3sC12bDAfXcqkRC\nhncCZCJZoZ8ZBcEwLzLPsN+X2/cTrDOZc3r2o6eZNpzbxRnVQPeVt/31Nog0\n+71nR0OCOHC+qiTkZbk1oGZo/Mhz8hz3Cu8swb/c3cQ0+ITK1VlxpPp3DqNs\nWacIeORyzCqmUSfP14xbaPHb//f5Eln3U33letezMFqZQlPADz7Z9Ihu9udQ\nDeFBfZBiGvcj56F6z8ACIyWZ5ZYize30l8qnLBPSE99Ok+BapZnBd7NpcnMk\n0OBxlrrPqeoYtevYgm9IKiVVvZZzL4XLeLUBoqCerPAr2afOVrKNA5EFZL61\nrw5c\r\n=HR6K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWZRxf9bdkmpVQDgrFUtGG3n0sep6/ZbkYOvTkGN4BfQIhAIsbly5xeoW5QdHr6o/tyN8pbrxX2FrFQfA8TBqaLfST"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.8.0-next.1593741946.f8dc5f5cb939275fe36536d24806c17f127ee35a_1593741948150_0.2609294274125271"},"_hasShrinkwrap":false},"3.8.0-next.1595337406.9d03f25b19a5b223c3ebea9063e0d4dd10baacdf":{"name":"unbounded","version":"3.8.0-next.1595337406.9d03f25b19a5b223c3ebea9063e0d4dd10baacdf","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.3","@babel/core":"^7.10.3","@babel/plugin-proposal-object-rest-spread":"^7.10.3","@babel/preset-env":"^7.10.3","@bevry/update-contributors":"^1.12.0","assert-helpers":"^6.13.0","eslint":"^7.3.1","eslint-config-bevry":"^3.13.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.8.0","prettier":"^2.0.5","projectz":"^2.11.0","valid-directory":"^2.5.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"yarn run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"yarn run our:meta:contributors && yarn run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"yarn run our:release:prepare && yarn run our:release:check-changelog && yarn run our:release:check-dirty && yarn run our:release:tag && yarn run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"yarn run our:clean && yarn run our:compile && yarn run our:test && yarn run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"yarn run our:setup:install","our:setup:install":"/usr/local/bin/yarn install --ignore-engines","our:test":"yarn run our:verify && yarn test","our:verify":"yarn run our:verify:directory && yarn run our:verify:eslint && yarn run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":false}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"9d03f25b19a5b223c3ebea9063e0d4dd10baacdf","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.8.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.8.0-next.1595337406.9d03f25b19a5b223c3ebea9063e0d4dd10baacdf","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-xQgH4Y9uyVV9puZJ8GSQrNr/QjBScIpygyZfuZGEM39GzYf/H4Y+ltMpHOxZIStxiOOOmppIAUwnryL2DB5Dig==","shasum":"9ca10f447a03085751c4452aec034a2a33a19006","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.8.0-next.1595337406.9d03f25b19a5b223c3ebea9063e0d4dd10baacdf.tgz","fileCount":6,"unpackedSize":21845,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFuq/CRA9TVsSAnZWagAAChkP/jegRjrhWYuz8/sz7LUe\n7ON6oa/ghwgykbZpUusP1d7Cq+oisteAsHdHBJyzye47feeZAmssa0jiFsRJ\npxTMX8/uiOYqxehNxxHhThjTjN2FXt4cYCeq8eNJrg71+VvwW929oAhiw/WW\nttnmg9jscMVwFKu+meVxPfXRfN/hxMC30erpQE12tL/17Qzu68rh31IhNGd5\nCpetDCgeDOiipT8gfbVwtYdtuQXq60nBY8im0ZR5bqDqBOiztQMWZ2fBubmA\nrWpdWmXpwUYU0NyX6lB9u3HeR15XjMY6TZWRXm1wx7bqWsUi3FvxHcHeqR3j\ngLh0m5kpdKZ1z8pm0aCTJXC3FKPQ9IaV+zJXpg90B99X2vbFMX8RsOiKL0Th\n031aH6g8SiRVueNFE2H1LsfcyfzPoCv6+i3aAPQXz1WXqyG0lopUHVckz3/b\nHokpyRqxoxY5u3DTlulREU5lKISXvk3aPlbwMbcygQWa5yVrK5hakAnnRnQp\ns3x65hzFbap5GNL8s+fL4xSERhTihuGB5+G7vqgVyGiZ8DLmYUS1bvmzXQvS\nZrk+B5tJlQiH69d9Tv+8RXuPua2JhBRgtQP3PxVlR9BRiNiDioz1QDBuKN5S\nFKoj0DIE7N1zB00gsl+9dnQ2F3UfBMbEBg1fi5THBSkakn0ia0yqiNOZbvQf\nlJ/y\r\n=Lpub\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2iOoQ9+Fd2g5K+JXL2xIC3mI0X+MdUQtFp4vWri65fAIgZQKlc8QvgNh5RTd5geaMY6EftGmGNUEl7MVijwtMkiM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.8.0-next.1595337406.9d03f25b19a5b223c3ebea9063e0d4dd10baacdf_1595337407168_0.317204425462706"},"_hasShrinkwrap":false},"3.9.0-next.1595453244.a1b3b298dcfb490f5752d90d3259117d7eb35314":{"name":"unbounded","version":"3.9.0-next.1595453244.a1b3b298dcfb490f5752d90d3259117d7eb35314","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/plugin-proposal-object-rest-spread":"^7.10.4","@babel/preset-env":"^7.10.4","@bevry/update-contributors":"^1.13.0","assert-helpers":"^6.18.0","eslint":"^7.5.0","eslint-config-bevry":"^3.17.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.9.0","prettier":"^2.0.5","projectz":"^2.12.0","valid-directory":"^2.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"a1b3b298dcfb490f5752d90d3259117d7eb35314","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.9.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.9.0-next.1595453244.a1b3b298dcfb490f5752d90d3259117d7eb35314","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-KNx+t1TFs2dFT+0KS9ML6T0Csota6X7CWULmEXYpwnes/oG3Rm8TP2dexO3Fom33pZhA1+xDChX4+OkC0InmQg==","shasum":"ed5438e9c073d7ce75247447732ea5d4c6fef3d2","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.9.0-next.1595453244.a1b3b298dcfb490f5752d90d3259117d7eb35314.tgz","fileCount":6,"unpackedSize":22035,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGK8+CRA9TVsSAnZWagAAncoQAIrtnVSF/ehoV7inE7yJ\ndAWlfOSmaNPkcbpMRsk1zhHm0sq1tgU8UzNpkpYamT0HMvVDlI1Q0djjD1qF\nt/9Vh5U26lTp3IqO8Ai6/D+7TPnwLESXHHwRKj7Gy/PmT4IiIUZwh6CGICoX\nLr+PgI1YZcBART0HrlPPpknPxiyh+OOe2SsUU+8bQPyn4IQ8/kdTOQRaY/Lk\ntF7A06sZFfiD1tLBsD8yVCY+EmrvmRgUFz4EIPV3PNdKhdhWErSv+UPOe86b\nJzIRmAsM9mXDD8dqxCfIIIm9BytbeITbDIIxa3vSO10d69Y7UdtYgdZ/GdBc\n7ZOt8B2tTNX/0+lRlOrHkjOiWL1WZG67WkUpiqvisMtNXdPyVRzYwXf+oMld\n2+6E2z1CBIO5nMXvhiRlfCFAS8DKEMk426rQU9eWQ5lOg0udl7wSoR5z8FHy\ncvOdtgbDaVt6W5wzBXBg9GpZIDuUYFBxKjFreD+lsoMcJvNDR7cCYpQJl5gG\n14gnkWScBRDBsYMD/L16fprY0c6mgKJqcw6KDDU5Md7EA3XAf0ABs1H/jAbr\nznncxRz2HBSOJCwdjR67LIzC0CyiqXKf5tnQ8hElyv3yp0vkzK/xKbqG3be2\nFij2aP+3L55Jcz2krpi6fVvIjOaLKbF1xvICP27ngKmnBZw04vNu2Z+hjD0c\n+ZB5\r\n=/q/8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDEcPKzW8dNyV6tUqgsjYz/G1nEX31Xhxeu/KqheflRFQIhAIAFdRJZtlrsyJYxA9cu/Y20rUcZbIiVSgg06yOzQAGp"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.9.0-next.1595453244.a1b3b298dcfb490f5752d90d3259117d7eb35314_1595453245585_0.7060068786102383"},"_hasShrinkwrap":false},"3.9.0":{"name":"unbounded","version":"3.9.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/plugin-proposal-object-rest-spread":"^7.10.4","@babel/preset-env":"^7.10.4","@bevry/update-contributors":"^1.13.0","assert-helpers":"^6.18.0","eslint":"^7.5.0","eslint-config-bevry":"^3.17.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.9.0","prettier":"^2.0.5","projectz":"^2.12.0","valid-directory":"^2.6.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"a1b3b298dcfb490f5752d90d3259117d7eb35314","_id":"unbounded@3.9.0","_nodeVersion":"14.6.0","_npmVersion":"6.14.6","dist":{"integrity":"sha512-ZoADOmAv2zcbz/yI6Ni/liTqga2lArNt1/Tg/moVtKA+yT8WEaepKd9ewIIg6fzM2yRnxSp0jteml1/fOu7NHg==","shasum":"1cdf7f8b2bf7128e841ae2b8a81a4fcc171cfe03","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.9.0.tgz","fileCount":6,"unpackedSize":21978,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGK98CRA9TVsSAnZWagAAQAsP/R/RCsv6sL3qVtTu6mDV\nn6wyOHsfr52BurRuZgn5G4+uwk6tm7rboby/MMDVx4czkZ+LnBbedC01P4s8\ngFDGxmbFnkIpaxpHmzM1buN+VLTh5tsdK62NyxC63qnuC59Er0mqPNtGB4Oz\nDJVrS+wCSIdkM9CbpEBxhMWogpvaVCjoMmSH5Zq1K5D3BgoerUz5Zrd190+k\nU562jVIDelzOIBGnm/jFNTVaTYaPfm18s/Nb7EIPKqrXDVINFD7gHPHb3zvC\njMP6mUC7TrJPNoehy7k403AjKFMOQor4fa9AD23/2xJq33ggpa2fs8J4Cf4M\ngFxJJ4hVcFmzHKc1pYVSKwbYIuSCuJkoxqvdTG+wLPVSXcnmGg3f4PWIc5gL\nQRsuOSwggzunywrjA5iS4dbXBQ3Tl3QfIzgb7Xi+pXXA5rxRK1uA0cfc9xm+\nt0/i888N7XEBM1bBeQCdeK4aXV3e3GkRZB1bDALoyxQOChufK06f+Ns9iUoC\nNCRbdqJqEEjbvjN0vfHstO4TuAQ73Ft4I9Swtn8gmfbmToEdlL2UFVd+q3oA\nfoEI5JuxTikYIDTNZLWXInrI/PVWgI8Eygq7b/gLPlkU2shrQ+4ikWWi6Zcx\nVNkO9lZ9/Yrf2HQ38VSkVSYKDmkRaKmyF09BGkZIk8Ouj8weKwjWbZwc78RN\nUGmb\r\n=4dOj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMT314+E/fi9o0h/F+rjZVHa4c09c/BqyJHI/M39c1DgIhANVlvYQazsoTaibCwkmKw98ZLoSlJ3AIJFJY0TpNJl9e"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.9.0_1595453308236_0.20710162834177792"},"_hasShrinkwrap":false},"3.10.0-next.1596524684.0a3a93fcfff36d62442a6c90ce29a46a47127c56":{"name":"unbounded","version":"3.10.0-next.1596524684.0a3a93fcfff36d62442a6c90ce29a46a47127c56","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.0","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.0","@bevry/update-contributors":"^1.14.0","assert-helpers":"^6.19.0","eslint":"^7.6.0","eslint-config-bevry":"^3.18.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.10.0","prettier":"^2.0.5","projectz":"^2.13.0","valid-directory":"^2.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"0a3a93fcfff36d62442a6c90ce29a46a47127c56","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.10.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.10.0-next.1596524684.0a3a93fcfff36d62442a6c90ce29a46a47127c56","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-ySRQV5kMeJCYpSxIWtk7aJaB3f8gVQTxeb1mks7pIF+ENBGLltfRtZGLYve2gmztbt1WpX/Arbu9pTL9rcWXMg==","shasum":"2a1f9975177cbebc07dde203260e7f82354d8e26","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.10.0-next.1596524684.0a3a93fcfff36d62442a6c90ce29a46a47127c56.tgz","fileCount":6,"unpackedSize":22234,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKQiNCRA9TVsSAnZWagAAQIgP/jamWjkpfm38u9bwkqDn\nhlinbstWluO0rRtQEahVCOQSl1J2P8Kotxf54TbXFx1b+RGnX+hCTlCWmaLE\nP7voJxUAmUZVhDV2B9vgRmv0CCj3PcJlTZRJAm6UOHJtVKZVZ8GJbBB+RFhD\nbGMhSV93S/0auQhxYJXQV6JR8/FOpiEdk8U+og8pJadV89ThjTdjwEAreKo6\n1MZ49h0m9y14Qz9R6xSzEoSYoe3UfaYFek8scKfZbO/IOXz154Jy6DsVhly6\nxwyIHe5VNIokPqfQw0JYfHm3Q4shrEu/Hthoo7och9vzDofIbswhRLZGqNvj\nug0vBYHxmWg3DmZh2/rjrEfG3XRoNBonCGDyC3QS814wCmLOQWxP90zLlP4u\npOWJNFp+MNx2qGy82oXqMVyzfMay3vmQ5xqFjfIHrNj/1FrkMbv3t/rbscDE\ngeggmD0zLm+N0O7bTOv6c3gioeaOWS6gExMoBQMTu0y5o2mPO7NZxpsu7iot\n7ZW/KMFr7fex7HXqADNjoaJ+dXsPJCaWDu6+9ydCfreOS3XmOINV7xVFnWqi\nHlTcLVgvGxXa0PVU5XjMCu2iUwD2EmdOWbxqTHoQHJCg2iXTGhQhL6l1JBg/\n9t9LcB4SRBhldA8v+cXN11yQR9aMjeTdmuZ19EJTbsvA7ccp/wMX1fAjooop\nTazI\r\n=zI8t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGMtZwh6SpjnIoJfm6A9Cc//PYanxt/lgw9NhSoDBZ8zAiEAiQz0NG7cr2SELzO7mr5/WqpKLbsxq3mwah6pyuzLpkc="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.10.0-next.1596524684.0a3a93fcfff36d62442a6c90ce29a46a47127c56_1596524685516_0.10225157119312178"},"_hasShrinkwrap":false},"3.10.0":{"name":"unbounded","version":"3.10.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.0","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.0","@bevry/update-contributors":"^1.14.0","assert-helpers":"^6.19.0","eslint":"^7.6.0","eslint-config-bevry":"^3.18.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.10.0","prettier":"^2.0.5","projectz":"^2.13.0","valid-directory":"^2.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"0a3a93fcfff36d62442a6c90ce29a46a47127c56","_id":"unbounded@3.10.0","_nodeVersion":"14.7.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-qGVIYD/A2islX6FoisbuN70kgph+vbD9Z8nN2O9xOx3ePwTzLODzQNkY633gwV+x35k53MOKnm+KGj3xZvHdVw==","shasum":"4690873d4ae656ea8b1e73e8c1e4809c10ceca4a","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.10.0.tgz","fileCount":6,"unpackedSize":22177,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKQiwCRA9TVsSAnZWagAA2W8P/RWaG/8DspL+qNohi8oI\nDnqT2wfs7jRyKEmD0yKO0Pie+FwD9K4hIMHvsluWRQKzc+OSAPHPRBRTjUb/\ntM/nsFIOiTfXc+ZjndI1T/Iqc38Hi2k3jvWJ3B7Rkc4GMNYKmCUM515/07AV\nYt/Xu7xCzNz5I2Y52i56GWk9LXnmbS1gST+uVhqm3OiRoZSICCIgDjJi/Ucn\n0o45LCcFxFEFVdA7DPAMgNAKTH39uQ9oz3CfySNOTj+b2c+tgo6DwcmbG3Q9\nqdk3rw2eLJ9q7grevoSAua76t8p2zzE3GI6zyD/jkEQbnVL5boyy30ujvXSE\nzJUpI/sT+3VcICs5+DLcs356UC+R3z/+ggYwiIPuCFN1fUd08KY+E6unOCeJ\nPGob0Z7RyKuBmrHX3VH7xGWEwTeYsQX7KU/AJugUAbyNgawkC2fapPOicsg7\nyRV/aQ9UaXfgSS8eRjyDZ3Z2vRYx/wldVgcnFyBlgelj89/xp5weEWitqeBS\nudwj744USQxERJP5t3tilSdkLuQuBqDEcyl3CJKtg4AL10XmaTNH87AS8OI6\n910dST5qnsUWERsGeldj60g2n6nj72B+vW4lnpCnym0Ki46pZwrnj8XRj5Ye\nObBfKY+g8R5roo08dRR93H+LzJXZ2OTA3cGf4VtQ5lxu8EHvJE8Q3/+cQnf/\n71KF\r\n=HpY8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2ifGhMlikvtYAzXZoRPz4VYqCsjBYiJSr7VMObeWsuAIhAMrEAxti2PoKEWyC8+GFBVa/p735OkgimPyLY1gk3coQ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.10.0_1596524719935_0.725489743902876"},"_hasShrinkwrap":false},"3.11.0-next.1597703092.b6f7ac775ae4df5924d960d75cacad4f74467c29":{"name":"unbounded","version":"3.11.0-next.1597703092.b6f7ac775ae4df5924d960d75cacad4f74467c29","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.0","@bevry/update-contributors":"^1.15.0","assert-helpers":"^6.19.0","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"b6f7ac775ae4df5924d960d75cacad4f74467c29","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.11.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.11.0-next.1597703092.b6f7ac775ae4df5924d960d75cacad4f74467c29","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-AzNb48/zC8XhNVZJuYuU74w+axE8bBOtVVlo8T2M5H/1D0BUrEsqdpP2NQquc9SyefCjcPeDuiPbGbCSQswQ/A==","shasum":"36a6643e81d08ae9b3fcf77c4d21f319cfb3960d","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.11.0-next.1597703092.b6f7ac775ae4df5924d960d75cacad4f74467c29.tgz","fileCount":7,"unpackedSize":22668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwO1CRA9TVsSAnZWagAALdYQAJr+Oeqn7bzgp1AdoPWL\njbw8fnVUksOPAp4ocb3ZmhdfG0RT/T1rH5lNx0ZY4RUj9iqd5sRvd+65+e8H\nnDfE/tHt7FjmFbDnZhS6zEku5fjxErtHHKwqJrS0wPv4zGVLBpX1KfnRuRj6\nYbLaHecL/IWrmXnFp/jqTWx8DUqpFjNMAAzYTE8JxaAMCDqQv67so4+TuRSD\npUUky9LBE1MZQi74btmRbu9cc+FEDeamoj69LZn4eKfYSzuxbZZSivkew/E2\nLzbIBKh3sOikGTCW8tfG+tNBh+dm+uGHc3o4AWwdxUDNHZPi0Ajk8HYdL7Lf\nuFzaREEIL6ggTv7WSJ2/2kqL7IRhT+HwPOEBI83rCI5X8LjBG3hE4H12hCZO\nsdQdUSowGDPTEH83GghGDpAMC4n6O1L8SM2iic/xXMXuvnlpwEOdfR7zHG96\nU6uDYbkKvrxRvNyTisNep7ZruOBa3qvY4K8lE5vfHmVUdWHZmoDPifshix/G\nExRSB1rkyfRZFrwxvUw/m+vSqbBh6+JOyeutFRI9uU7hgPXxDRtOlqzoQbQc\nj0jD7ZHrrSdX+n+lssWbwxoa+4Z3H6TosUFxqkEnJxYpuzkOyqw68DZCfydU\n7ibyUd3yNFWmxTE1DvjYKdQvXQMpo/UMLDi9ox8BiPrcrnpf9PdB7p96jPVZ\n2cY5\r\n=Xy8K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBub5kRQ4yx+K7TRhjaOuTwSZROQ2h5deBebDMAF/Q2AiEA4lGHiNdcbUCtrM7V/FEPnaNRAqOqGKKGmXgWzsWOH4g="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.11.0-next.1597703092.b6f7ac775ae4df5924d960d75cacad4f74467c29_1597703093521_0.6936362281952715"},"_hasShrinkwrap":false},"3.11.0":{"name":"unbounded","version":"3.11.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.0","@bevry/update-contributors":"^1.15.0","assert-helpers":"^6.19.0","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"b6f7ac775ae4df5924d960d75cacad4f74467c29","_id":"unbounded@3.11.0","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-2IShzswkyv+PJfXBaNpYsjs3xKY46xtqde39W+7xjb3AiffKGXS3FSfaWfbHxsmRk546nKpV9wIRXy/x7rx2yQ==","shasum":"a4ceb97d97212d4fbd05639039cc25cb35925926","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.11.0.tgz","fileCount":7,"unpackedSize":22611,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwPNCRA9TVsSAnZWagAAK4gP/21br1KBhyCs5cQuoxu3\nCw5zXWyP0QuvIfuZP+kBBo5Qmk8/d+ace0c0BHA075GOLhmiH8yWW34M9HBw\nGX3L/y+mnUINwGXwQmrqBmkI8VSEaXa3EiYp6HbweN5vdFHsHaEy1Rv685Pv\n+sltwjage2Ok9oI0Qkwp2NgNS4Fx8aJru35QH1RgcAbBkIStymWe2SN03+hM\nzH7XAVOmY8S+u8VewyUjs28sGrUt6+t2/si01Vr5lLoAZRKzhGGqf4NkQz/s\nMf7jV5NH2m7bClooJ1L94LRFSDNl+0KkxvpSh0Vjz5ge4q75z6fj4x4H0Qa+\nbcR7X64ZupnA9uslksRWv0/QuXLnneOdyEN7kv3w6ySi9BGwEKKPYvAeb2xT\n/Lj4crBBk9wAXJD9lev9rTK5qHOHh49iWM4gXZmr7M3NcWWCvODEr99UDgNf\nIZaytMyzVX/PQgaNgecjoL0x5przhtvONb8ybb7VqjKfQWBUflgT3RB8ReCI\nZyzZrrLbA8AwHELSq5cAXUOIm/8+XXueLO2SHLdtVATQydHsFYFMyPBpNoj+\ntKO6tlpPAB1vUdZVT6N6ILWkBSCrPdgNRX/KpEFQkF25aOYKOJpPVkFIraUO\nd2O/zF/VFFfpzC5ky8wwOEyeH6feBoy0A8SxHCPbbzrSaBVPFP9B+xnSQifq\n9/W/\r\n=bvpR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsUrtAbmzGbusyxLykFaz7MwOD0mDVuRgQH0YUhRn3agIhAIpxD80IWdjzrU6iWGWbRn0582B6zMz7+zV4ELcH1/xh"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.11.0_1597703117007_0.998479775279921"},"_hasShrinkwrap":false},"3.11.0-next.1598187659.c4498df92962608e5483a047840d1e3eb33a8793":{"name":"unbounded","version":"3.11.0-next.1598187659.c4498df92962608e5483a047840d1e3eb33a8793","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.11.1","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.0","@bevry/update-contributors":"^1.15.0","assert-helpers":"^7.0.1","eslint":"^7.7.0","eslint-config-bevry":"^3.19.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.11.0","prettier":"^2.0.5","projectz":"^2.15.0","valid-directory":"^3.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"c4498df92962608e5483a047840d1e3eb33a8793","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.11.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.11.0-next.1598187659.c4498df92962608e5483a047840d1e3eb33a8793","_nodeVersion":"14.8.0","_npmVersion":"6.14.7","dist":{"integrity":"sha512-oeoqkBIwupmCo0Xs+5d14FIJtWDSO52E6RAsERP7kyxRebQgY2K9x47pCP4capncTQRjFDwILevDCZ8GtKLIeQ==","shasum":"6e3516e40604c2a5481028e253c7cd0841263dab","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.11.0-next.1598187659.c4498df92962608e5483a047840d1e3eb33a8793.tgz","fileCount":7,"unpackedSize":22667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQmiMCRA9TVsSAnZWagAAn28P/0GNIdvu7q67NCGWXDS0\nnSPW3MXgfw4W2sXNZoP/nTbPQvtE/h/JtAj4uJeyxkQWwddKFJeoEse9nI2a\n/llADRRZjnbV0VKQSJ4DF5owMxa7hJMnqWmKr/mqwPHrZdtcUz/kj22lRstA\nnv7m3GkiKJ4axS/MxGD9pIx3v9B5Oi1Dx5k00M1XcOqCgEpjnUGaH+EU+tko\nJxRUaY3NPF90NuFBeFDG3QWDl2DxLNDuA8yXKRqRgE0wgMB8ENht2+W2Mae0\nDKpFBd27FWl5UZxSVcZKDpwd2KMYqcs2QDQ41bpIrTdwHAv1hepLlEbq67rL\nS4TYo5OzybdfP3IyKEBnxud52YaKmODoscQ6w47CNKWHldBF9/uhLGqPk5Pq\nz+mrI2h++WPl57abKvndqmVZaPK/eEv88F08Kh7Za+E/x77MMJymxTglmUzs\nqEsslXczdKDzlPiKdRXLZtRtTF1Yq+umjDTGCHlXE+cIKLw3IHwSuXqpPn/e\nqSaIyyMCE0GKS5jxrwQpd47aVe77UsvkwFwrUwGb/X7I3VROueiuNMUdm06g\n0JFMyxrScoxibM1Fesebhh5afgnlcNh5XBcG4rlCdQmxwJKi4ogoZsdDCCCO\n83SqfrFTmwWVbdW2Gqbk8SFjfoWUijn27WuXrBJcZxyFBn5L2OgXi50pw4jU\n2A0n\r\n=YWi3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDLndqyw0je9H5S3yltDTrUJEhy0SuM//xASDx8XLhmAiEA6tXHZGsgzfwPOCZiRMsPhG+z/gR0DVa+MaT5/BNuBi4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.11.0-next.1598187659.c4498df92962608e5483a047840d1e3eb33a8793_1598187660315_0.08690576595649824"},"_hasShrinkwrap":false},"3.12.0-next.1599282377.ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad":{"name":"unbounded","version":"3.12.0-next.1599282377.ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1599282377.ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-TNPOeCccgegfyH8IlVjNDlCJWQFSV9I1majrgv1BprNAAvM+8xQ37a81UTRJ4hSxyBrcV9fKFk+15KQd1WjcpA==","shasum":"cdbd0550b2fc1023fff4c508f47d1edbf7be0428","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1599282377.ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUxzKCRA9TVsSAnZWagAAlV8P/0YvxTJNa8BRkJItrqjd\nwb0ZSKQt8MarBLI89q4u1LAAQc3dYHrvSUttHbjFajcKlePpehGUi1bEDKon\nNjRAlN2chjLaeDGv1tshw4uuRj0EFKHUak0ZQctcxdOinbJKOLwK70BIDVoS\nsMV/Eh+LLH0mJqczDYwr6JczxCr5SpCxyCusepS3FbYwRDBOdbRiRbbWMETS\n3IJKb2WT94y9caBbDPF2AhzRkC0UKHaidHjm1GviT57cASkF8mFOYH6UUcsV\nLWpc9rMLrGEGM1jq0ctboZHESbGTBFKertmgA38PWJxtxtxBU9Vha8oWobjq\nVqytEoD1wUxSrlnyYpScJ80YVUqiAHzxfDhmqs+fi0iontc5S9R5F96QRESX\nXZSdMDRJI3nEWCfl4m6nAMHIrwcsnJ0c/Z1y4ycxMfa7aYaAVG652TtaZC7F\nao8g1Xk2975Bi/ujDjXISdJQI4tlTiCAqx2kjUWmNZ8j4BFgKB/bA/qCRQVF\nIiXdoabKZKE7iYwBQm82R8GRFbQuFyuOnpha2Sfb3OXx15m8ZqYx6+tjhxAJ\nwWwH0ZL43nXV1V5XLj0GCv78MKGEYtaKV7lyxeTt5+A+lqoPZxOFvbqtcI++\nJp4KCr2YqkBV49A8fuNbIRydtafqKGJLLoOOItZeiY3HvEhjfMbytRKAJo5C\n+a+C\r\n=YLFY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICeGNn6rHcQF+0Gq1SOj1Unpiquwgz4OPGf828hVOB0iAiAkHcDuZPRkOv+BOMmdX03h7wEwg8X8oiZ9xhvpxnrxvA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1599282377.ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad_1599282378206_0.07243052360428726"},"_hasShrinkwrap":false},"3.12.0":{"name":"unbounded","version":"3.12.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad","_id":"unbounded@3.12.0","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-ahkylByvfM/6Fexzv3rj4hqwWGuEql7pF6m9dxkW0PRzDlJnwZ9nZ8d+NjT2x7/q4+/Lzoqe8ywCSr+VJD3t5w==","shasum":"159bc6c0d75bab973cd682cdbf902b6a36f02ab2","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0.tgz","fileCount":7,"unpackedSize":22847,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUx0GCRA9TVsSAnZWagAA9ogP/iO3+/NtUOslkK5hqALX\nolbxCZbNmG3ln0NlLQpyqegL2qfKHIP4eDDutw62i1Bb2SdEUwNPEe9F9fnX\nALxsIL9CVJG+cosGSOVboexUGZgbL3G4ZqHFS2EdJLG4XUk85wdR2HGQaWfN\nHqcmjjf7GM5eY/q1cVL6lWhejGt9umGHpHPuroA4JUYkSby4iLcHizy/dHFE\n5lgBtGIox7idpLiIHQmNoGU0rBEQ5IJxaxvHptNsKpB+Nm9saNVhkcj0dCEp\nsdak3LbMd4E1Rb2KQ6C4+R1OqM1OysDvNg8n7+qS6+DsDw0gdAYBVYsL4a+u\nVhRNuMfcyWdWsLEFpflii5S0tNWZ35nmd8JNtBuuOKXa3DLMVuMp2eGynrV8\nZPFLEJG47AeVgTX3vOnvwFTQLUB3rhOIBkxkzFoAiChApG57ygn5CsPeqok6\n1d2uCS0rzxWpv2Kt7q2mpBoEQcxEPaGYL8IfxmxnhJg2xEN8WW68b/dEELOf\nkr58tEuJmI1/yTAP2ChUlR37kctLsN9vasEewIlFuHam3WejYpt17e1z0K3y\ncUUnbssGGhYQgKlZGeGJeBigysQIrxya8Tg1tq3nKnn9TR+GMQIdy+Ly/325\ntWl0xnAqRjikX3cR2iMU8Lz/JJ87Aa8C7WezorGcl3G1fToWrzCwn7t0KSVM\nBkl1\r\n=WVy2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQgU99D/uNyB9tS3XC6Dy94MuZ8KWQ+NggF3O61ZaeYAIhAIJrFPfJVoiHPRnZk0+lBakDRZkT4KuYkMrdt7Lr6eT4"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0_1599282437585_0.03140585047659794"},"_hasShrinkwrap":false},"3.12.0-next.1599394100.85bd140b851295009779cc45274650ecb1d69b76":{"name":"unbounded","version":"3.12.0-next.1599394100.85bd140b851295009779cc45274650ecb1d69b76","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"85bd140b851295009779cc45274650ecb1d69b76","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1599394100.85bd140b851295009779cc45274650ecb1d69b76","_nodeVersion":"14.9.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-erk9zOvYH106JT6oyeNsEM0wJ2zNxKVZlyzJ4fp6AD4TX2EzQgXgRkExYXffY69y3B8dEudk1H5EaOsXZMJvpw==","shasum":"979a6698ee434a167170bbf9dc0c7b0aea304816","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1599394100.85bd140b851295009779cc45274650ecb1d69b76.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfVNE2CRA9TVsSAnZWagAA2i0QAImfOOdMWV1bS/R/SLXL\nO7F8879ttp/V8Zh30/c++GCZ1Vd359xBIZE22mKM9m2e9XXakqCPySHipMrD\ncEcuQBjA6uHsg7bmadKlwjNcZio5k6CZaQXksRroWuYqt6C5oSG8Nxt/RNu3\n7NlOzWke9JnB9aTFNj5MPcHxOjTrQC0PTDUf9bki6BaKeSfWd1FluyddqdKP\nSqRx7drtQuutO1KEzqA+fiW+6c1gU8lcH7NbobP3oWkQ7sIKo2DOU472e6UW\n0nwkru2OM3+t2i5qiBFVS+8ijIDqMsEHl+KwRzAEIHwCImiAm2SXeZmslb7p\nublVzLY7pTo9etVPaWQgUtO8k3sLIVK0d5QAMtVVSLIeU3hJuEKvDP/iL4qi\n3ey3OzkxJzbPCJDmvYktQG8x1sMDeUYD8qPq0WCNVbGiErJcWR38Px0y8QeK\nK/2GtZj0aacMivRudhBZvM9zxsmJxkVAVPD0UntlD2x6p6T9mYySxi5XY6kJ\nrUGjNtRpuGSdtGRz4n2fWVpAi1NZbvH+EoKjvocqCRoqC+0qee0pQRtBlA6C\njiDYyJ+X/ogTCgTvP6ohXjxnVX3gQshFpp/ySbK3VKGYO9NQ5lx3TqnRZ8i0\n4nB7Ct3PE5ZUQz9KbzwqlxsA6p9FqZc86ZJMMyMerV8LH7cpF+sNcwNtjZLX\nMvX1\r\n=tgGG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDxKkGY5wYFjqo9+7EPEcxMtdwXoaRqbXkmeqniU9w4ZwIhAOW9SvciORrhtBMlV7hsFT9hH2/eI3UEz5ZzxNnJYKhu"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1599394100.85bd140b851295009779cc45274650ecb1d69b76_1599394101787_0.12543525439605197"},"_hasShrinkwrap":false},"3.12.0-next.1599988998.1bce7ef161aa6d67f455cb6b17043656c7fda8e8":{"name":"unbounded","version":"3.12.0-next.1599988998.1bce7ef161aa6d67f455cb6b17043656c7fda8e8","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"1bce7ef161aa6d67f455cb6b17043656c7fda8e8","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1599988998.1bce7ef161aa6d67f455cb6b17043656c7fda8e8","_nodeVersion":"14.10.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-kJwlIwJvDFFd1IPseZg+0XYyATuTrHKpyXpLWgAr7qKA6lbMYPtIXETn11mLGqfAsZi2RsBtKlSneVKnDOd7Nw==","shasum":"393a3b3cfaabc12ce09923ce32605237be425092","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1599988998.1bce7ef161aa6d67f455cb6b17043656c7fda8e8.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfXeUICRA9TVsSAnZWagAAhVMP/id2ZTCSCevfzU53PcXc\njQM2a8ipQAky9OTQv7ykIwnlFIk6B2sonPOXFBO15HgfdjNIcAQLULUawBcx\nLixoC62sZgUr9Ig5IE/c5Ae0imMrick6tnxbg0GUN8ZPwtQx1J82QqTG7YQN\n7d2AIbkEnYNXa5Q+F2XvcSVLYaXhGbkG/Ie06rOHEvX32KRuWiqOTSlU+2kA\nUsSZWF+4NsjM5xq6oZp7xVt4LrQJ9h2SFiC3EwBDeRRmvrmqCfAOyP+bVY/j\nmD9/Ms9Mg0kcgFL5bSLzGe+3gBFv7ynEb6xzjVrtw6j5Hc8ByG9I6LqO8KK/\nwRBh8QqcfyzjesBUqjqeAcP88tgzfUy4SHDLg7nHrdZ8GXMWKwgTSuw9Ck1Y\nLANsE0yKkYNLx7wqoLdFPvo7UwdMBAKGauvH957K8mE2oNddTUq8e6cQ222s\ncxLgxoSc8pLap/XZ4pSfvuqznHPBXYagWyw1GHi4KrJmavuChpmsUGFD0U13\nlnJzszHTSV/WgnYHOn+iQ1b88xqTzZ0zH1ME24VOZjmLpwl1sfHN3C1q+rCl\nVbCkJOPNThtnUet+wi3OcH69of2Bc5T/EG1WPVpxuYjKMNjE+HGqDyDd0DCQ\nW5UWctx3ZErGK1Vq4OXyCBR9CCKNxJDrv+LzEI/3hRaIhFDfsqqYRjWgvK7v\nCm68\r\n=ELBK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBlUmlXTPbzF/uyzzp1Oa0UPAXPZ4Vx0DA87GIksz8OAIgNDQ5/DWqCIJ0mdX9JZ8Bzc4T9gBcNClNvwQ4+WdaTOM="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1599988998.1bce7ef161aa6d67f455cb6b17043656c7fda8e8_1599988999998_0.26347344256241323"},"_hasShrinkwrap":false},"3.12.0-next.1600596137.8afc56f8d5ad10d889938504a94dd3c16f90a041":{"name":"unbounded","version":"3.12.0-next.1600596137.8afc56f8d5ad10d889938504a94dd3c16f90a041","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"8afc56f8d5ad10d889938504a94dd3c16f90a041","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1600596137.8afc56f8d5ad10d889938504a94dd3c16f90a041","_nodeVersion":"14.11.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-QAL1ayhSJxeTpKMZ/0kznoaQ5q6LyhD1d3JcveOU8aDcNT5mRugfWOpcl5wmpQIbH56GNV2XA3fg3V1z+WrXtA==","shasum":"7a8e96706803d06875db97dd0f0d25ae63288523","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1600596137.8afc56f8d5ad10d889938504a94dd3c16f90a041.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZyirCRA9TVsSAnZWagAAfMIQAKTKDGzsX0utf546rNeV\nabROYSEbI+yO+YE60Pco4p3pQzjzmfZrayau+XbTayuwvx6J9IvSQwSvqn7t\nF4qXPAeX7PTrY8OIoe4Y4pdfoRy5LtoYoVFyhKeGsDqT+t8H17bnFdQf9vB4\nMb94lzm+6Lf6As4n1GdXPgSsBIIHW0jH6R54JEyik2H0BAsf3TCIMHdAraPB\njR9EN0Cdarl+bRvlF2zqphLVjtk0bDTh7Iopp/+uzTt90vx45QyjMymsPmYG\nje5JBzwM2Q7HR60RbwoyNC7+vo278umXeicOTAlJTPgt3oJud6/6YWy7q0D8\nX3ZEoyiDb82EhmbxDbaHKBkunpDEF8jj+S3RfDbcIF1gY/YfIyEylY/iap/b\n5LH8c6X6gMoT9BQudQZ5YQ8U0rzBuRy3xF6Xdh9ivMy3QXp5X3FzglGCfZ8V\nbWc3efnpiyHdTGQQdGsYsywXWdz1A0raQn3Z4Ad752wHXK7TitUoJbIMp30G\ncDISmRnxUFQ95jyMJRZcvlYBTvElPBQ9yQ2y/q4j+za87g4uVAvEIxYNl8V7\nlKstqbxfvt2/6ILTeYjmjMN0g+DgRlJg2LxZjuvMTL4JzX3Kqz1PbWH/+qJJ\nK7gt26+EErUC9OFLmSEwTMNbCAIXGIfxXC7Yrr9p6cb1b530zB/OQyVMTbpO\nuVpP\r\n=Ht2O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+hkk9eabpAzT8GEJEw/HRaNHH8UL5lay7o015FBA7wQIhALbDkwPWd6oXsnZlsyBxj9wbxp+D2ye+BgcnWVdIucJG"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1600596137.8afc56f8d5ad10d889938504a94dd3c16f90a041_1600596138504_0.9706675063236336"},"_hasShrinkwrap":false},"3.12.0-next.1601205035.029aebd0969afd3e2614e7d6989846da9e43e96e":{"name":"unbounded","version":"3.12.0-next.1601205035.029aebd0969afd3e2614e7d6989846da9e43e96e","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"029aebd0969afd3e2614e7d6989846da9e43e96e","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1601205035.029aebd0969afd3e2614e7d6989846da9e43e96e","_nodeVersion":"14.12.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-9kE5J5u2jyOV6ioCegi+UhI7LSGLmDdrSJjrmWbx2A5KdNsEy6KEAJdYgMNYXDbLDxK7iFKRdywYRFVHuQcO/w==","shasum":"9739ab0be435e5acb19e8a88eaaf2aaddc0146fc","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1601205035.029aebd0969afd3e2614e7d6989846da9e43e96e.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfcHMuCRA9TVsSAnZWagAAJZMP/1vpfHkTqsJFTbnCfMgW\nMewULLnJLWtQuxdFVJo3Ddl9JPa8DrI1z2Z3H29q7eWnoCaWQTSdOb9nRNNy\nOb5vACAkwVYt4y99aofF/pEN1BccQ3RmaOJVItrqzcCO5CuM2FTmmDVMuugV\nFXQUbxwQbqligY61W/lk0vlXSM1HfhGmeP93zyerlvtKamUjAnxaP6AX35Ld\nKAAUJnUhEOJ8MfXTKakBIToWNc7v/EiiNzhAXRSTRYTsX1if64L+qp9dc9vU\nwljPcJtfJHn9pdXDrkiMOdM5M8+H+5JFTOdfPUGIvJ3cF2MtAgEUNZJVXJ8/\nY/r8GP6ArdxDQ/lqtx9ugZw7RjJwj9EdJXjLUpr/Hhe4HzVXb/ViMzQLct7/\nZ1LCIvZIcFpru7XOimGhu5kjUcAIrMiQaKbL+snr+AutTdD3rli3VlxcN8b1\nYPJcC3+ATcNT/Nu2++St4aEgqlYwhukOj7Fr2a1Md9HkEDw54rV35E+WlCEX\ntAfNmR2LPFntjJcZFp/uPACC8em69sa/fMSAyGJ89QYv3nPHQMO+TPuRBhIV\nzaTaPijBD0RDHM3iCqVP+Rff9rQ019fjwf6pwvukgSf3+ZFiIjl0dzJL7HqV\nR447jb2QHFwHgPiF4NfdLyy8cjMB6Kw1q85xCypMekAJPD3XBSTwHjjRX7Aa\nZ1+l\r\n=LNEy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCf/gJ41U5m6+vvjva9F+miRyP0bgWTsvHXt7fPqrn6+QIgUgHq4H7bbAKMJNq+Fq+3esAxxMA16IYh6srOcVe/Y/0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1601205035.029aebd0969afd3e2614e7d6989846da9e43e96e_1601205038271_0.7648960831093419"},"_hasShrinkwrap":false},"3.12.0-next.1602405886.c843541ac6a8e6c9174dccb8c54f3d9dab3c8689":{"name":"unbounded","version":"3.12.0-next.1602405886.c843541ac6a8e6c9174dccb8c54f3d9dab3c8689","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"c843541ac6a8e6c9174dccb8c54f3d9dab3c8689","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1602405886.c843541ac6a8e6c9174dccb8c54f3d9dab3c8689","_nodeVersion":"14.13.1","_npmVersion":"6.14.8","dist":{"integrity":"sha512-K8n8uSTn/PoZn956tyoAR1Mxux44YgYVL+Xp0880ZDkhVnDhQ9zED+N/+BFbEPg7Ypi5NNtJB9bhuTZ0UQ4Abg==","shasum":"7cbb779110f932ff2c67fd931728ebebb874d44b","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1602405886.c843541ac6a8e6c9174dccb8c54f3d9dab3c8689.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfgsX/CRA9TVsSAnZWagAA8mIP/j4YGOSl5MVEti2Y4CVc\nm8kWjIlyopl4JfJaf5FFn3BzgKnnEP0lRP1sxQux2cdp0xuzdDT1R7v18FMk\n0TYd0KeyyrmBrBRgCK6JTlYKu7wMrtgybbnPtOodf6oDGb9EmfWrmacC3URe\nVayaDe1DE5d+Eilkyo0scul05gogygtDOZpCJLA6IEHrezTtmIDxyEUsnO+Y\nsqWGI52/KA6a6LDAOeAIX5YcCcpKS+p+AMSBiUHN1j6nXuEj2Fx+O1YEi9rG\nnW/HR1hMLNvSC2VbeR7wDZFXhJaoLufCU6uMrLeuryGkaEsfNjoc8HqUTDvy\nXCjuakZk22oFrYgFglWKcb4TlQfUx0S8BCLYLcsXXAxl+7lqD0J01BXbFZFm\nwiBr10g+WqqNVf0dL4tA2dnJuEnvYYGHmlxgHelKJQIaP4FKEHojkUk+Rtas\n2PJu7pKK9HggflJarmo32FgXrYpjr/+y3ZmubWYLnvSXPYQxufEOD36npGWC\nyzK/4zKD4CG2aGBbMLPAjW2RNhBWpQ1uVyG7CZ6Gi6EpbFTdSJMXz6KaXW5j\nlNG8xvBT/oj0CXDiZg+RocFw7MpLpR59vkqqtuN8nNh72lgex1KGDUljHhW1\nxWh4TbH5wh8EHQaLmiWwwGDlC+u10yMkCnov1cA+qQQXic3JGH/OcQJaUPer\no6KQ\r\n=AF/E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICnSBSqBo6upmAYGmnKPl8b9yuM0zTKXbG8Q8ph/L65AAiAbmufU623wmj5LqOCJ4+eUbf63XexxP4tEIXJxV0qcHw=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1602405886.c843541ac6a8e6c9174dccb8c54f3d9dab3c8689_1602405887366_0.8624173880021564"},"_hasShrinkwrap":false},"3.12.0-next.1603016262.faddeaef278e8c291a14dd6a10d798de464b1e99":{"name":"unbounded","version":"3.12.0-next.1603016262.faddeaef278e8c291a14dd6a10d798de464b1e99","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"faddeaef278e8c291a14dd6a10d798de464b1e99","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1603016262.faddeaef278e8c291a14dd6a10d798de464b1e99","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-l4i6n5LKw7LCO4ddjwI83gS1bd3uGzzHn2PYTDvvjkuEyzfENuXm7/ItSgyx2cwFCHPcTL87LJvfn5A1O2eLCw==","shasum":"fea7c75bffe19971d4821254547f814bb3e3c441","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1603016262.faddeaef278e8c291a14dd6a10d798de464b1e99.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjBZICRA9TVsSAnZWagAAFRcP/1Gmm8liA6Qxji1LU8Xb\nm7SIDUVgrvtU3nKXBXHZ2D78MWeqsGZkg/ZgH46CAPN4Ksg06bve5eB4ikyv\n1ORGTwQ9MNI6Kc6ZpE39hjcY/P0+h7hTiK1IpxNO5aY2afHuu8Zp9jBUXPZh\nhItkXxcqlzUfk/nbL8Zdi/HuRz6W/aluFC8geV1Wl1iwKY2Qy+6W5X4hTdMX\nne9r/yJ92Os5ZvqLRg9AMZwRT37zFnh/nhHdjeJ68tKLKWevp8fFK9J5IIp+\nVr1yVtjRJ9kkxxQU4NGSnJmfyvwaklrMEUYHm6aZFP0uBcoIi3I00W2LLV/0\n4hbkT50mWlGAcE2Xhm6HPjOcHNviVx1A1NN5TzjxxBS32pKiAUF/AnvAnv2f\n2GUUur9nkW5b0D0tzIk4lInqiqNfwVE/GnEmRHO+dwx3eWLsFz5dqfTTx0uB\nSUZRqJ3QCJV49Uy7Ywa8c/XUbUEHesRJFLPVeysO3JqwyDGHodqMVG15a9Mj\nxLGal28LT+9rDCN2IS2ivIEKecgti3k6Y0WE++OIafekOR9kYPPcP+Eqm/Sa\nZfRdxaoaY0JSQj2ak8oxdqK0p6T+497S7pDbKIA2xA9/gdUIfxwnKmTeJC0A\nfvwG4URwAHtB90aE1xZe5KKAALRo1XQqADTJWsC5t1cHB/bu7yfZfUJyLiBN\nKx8F\r\n=xprV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDRihTJfUcfjZyi2Hg1AsYXzW/Mh+LcPXFQT6yXIRWYIQIhAKWXfueqliu2fmOjVIIgA0yIOWPK1E8pyoakwfJFch83"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1603016262.faddeaef278e8c291a14dd6a10d798de464b1e99_1603016263772_0.3293527502155762"},"_hasShrinkwrap":false},"3.12.0-next.1603620000.9a1e223641e4335d8e801ecd5ea8fd8644a4b59e":{"name":"unbounded","version":"3.12.0-next.1603620000.9a1e223641e4335d8e801ecd5ea8fd8644a4b59e","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"9a1e223641e4335d8e801ecd5ea8fd8644a4b59e","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1603620000.9a1e223641e4335d8e801ecd5ea8fd8644a4b59e","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-a5eIpd6BA5cpoDQMQ8TBbbLj9f7f2sR4LDEb77WgyAEe3Y4uUqZmIHAbhQvTFhxiIBbOae4tjdK3Pp0s104JCQ==","shasum":"174aecbbf0d35640577fb9b93774a494034efb2d","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1603620000.9a1e223641e4335d8e801ecd5ea8fd8644a4b59e.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflUyhCRA9TVsSAnZWagAAbKsQAI/qfu0IB8Vtb90eVFrI\nQiT3CLbWiF9NuQq7DpMkrJE6gad25oRX8qBuQ/+lqLeqrth7ewB8WKV/Awdy\n+tk9BlRLFWeko5KKfCGt5TdAjZ6h852ZTJl8DwXCdFH8FjbZIGLhXhBJ+ReQ\nOSwce07FsgV1znc8u/jtvIpiCFZhVonq2fJbexsKsXoW4M7NULE6XcnrX11r\nDLnewCGRhV/pOewibBC4q1GYnfx5r54QfindmXXiNp8X0xdI4aOBCmUQuMyL\nO2OxVnzd3tcpv3VfNu+wHtHAyrKSIRJsSi27xba5bVRJMRMDq/Gzr7XAnGC4\nHa//vwJ+VsB+qfW0SymOZ/eYxWMIX4TSFpADn9/VUtgUZcOGp0DZJBCNAbWw\nmpRtOkQx4O2/oWg1fR/H/FeZb1y8cV6K97SYesfkDuVN+pscntuDy7TxVAut\nhW41s42tMeqqisP0XzgStwlC8iJ0D2Mq758zjVz7waIARD0PxdzsMRyV6jJk\n4YEy7ITo7kgYHuaw9KQ7y9FUgCIJKyUev98OvcF3eedZ+insli7+9W3Wxu7N\nexdLwwhcuagIrMeFXOq9ahodj4idSyk7JM1FNqRvWij1a1roPFBU2IoTXeq+\nH/3TMhwRMdpgsUA1/atmaJ9zrlX+Lg9yUCH0OfkGWr6PWZRcXNQtTb/YUOpE\n0Rfl\r\n=OCde\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB5HcPUoZkylBq0iCAzla/kNa8MGu3XNCMRrsA83RvAeAiEArXEBNttaCqoqtqiqrwlKHX4HiO7lj0ucnZyuC1Speag="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1603620000.9a1e223641e4335d8e801ecd5ea8fd8644a4b59e_1603620001329_0.36545346380946575"},"_hasShrinkwrap":false},"3.12.0-next.1603629402.e59eae313cd5c9d0bb8e2d3271a9798a9cc06902":{"name":"unbounded","version":"3.12.0-next.1603629402.e59eae313cd5c9d0bb8e2d3271a9798a9cc06902","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 13 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 13 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.11.6","@babel/core":"^7.11.6","@babel/plugin-proposal-object-rest-spread":"^7.11.0","@babel/preset-env":"^7.11.5","@bevry/update-contributors":"^1.16.0","assert-helpers":"^7.2.0","eslint":"^7.8.1","eslint-config-bevry":"^3.22.0","eslint-config-prettier":"^6.11.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.12.0","prettier":"^2.1.1","projectz":"^2.16.0","valid-directory":"^3.3.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"e59eae313cd5c9d0bb8e2d3271a9798a9cc06902","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.12.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 13 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.12.0-next.1603629402.e59eae313cd5c9d0bb8e2d3271a9798a9cc06902","_nodeVersion":"14.14.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-h/iXezifBr7sSI5a0UfyTbtqTqsJJto6xk9OiQgaatb/IhJJtkLnG5SFGetNIhtggGCHC79LeA5bJzjL+GyfJQ==","shasum":"4939e79ca47f925fc04f621038a3dbecbab4848a","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.12.0-next.1603629402.e59eae313cd5c9d0bb8e2d3271a9798a9cc06902.tgz","fileCount":7,"unpackedSize":22904,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJflXFcCRA9TVsSAnZWagAAF4MP/15JmdP0AV/u2I8ep786\nctIt4Zp59QhPymwR/gwYcY4FkThL9iZFUtePWHHOcHwr8GJAug1aIUmLkmCh\nzt92P+wrWt73IXwkd1iPu9MV1A+2zOSr9b1WFjkMsY2FGpMPGL3rR997PQsx\nRO5HP8f43ENtAhnbPBUT3k/Rfu4h5Ad+hMoXfChs+I1NudrcbW7Uoymn/QTP\n03sa79fscSea3Bk/uwQMAKDtDUFOuRurEpdWNS7pvR8r6eH1lqx0bbLfFNoV\nl7qIt7CgOFnkvOIHQNIKv3/X3lz1q49Rm2fpMdYUfH5r2MAihAm+1POt7+pZ\n5i5PZPbbFoPZdiUYbjsTmE7bEMTlgoI+yYpvrGiEAnTe0uSZQy6uEvtJAXnz\nZpoOWomg2JyKsLpB7gq3WX2k2XzKe8aLvfSC6wzdklpnu0fYHtgSHT8MdIK9\ns4/QsVAN0+5CV1DtFnJ5BVHcVdWofA951NTimKXO6NzUsbPZGAcp7eso/CZt\n/CxIuYgDqZCBYXmovSx0GrCeBbu0cnw/QR4uEoZvCkkPwQ9d/qk3cLdPjEtL\nzZwOTmiTjigtCp347sAONqQklwKcgG/PAQeoZxI7h31IK37pYlH9j3261nJn\nHFCdaqrGa/8Oyds+BDxh7JvBGZ+fJ9DRFI52P9gD+EjFEvriP1p4LOEbL++8\nR8z1\r\n=XiXx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJdR53gQjAs8kNBFF9JsJfRIUq9jBjCPVQYXssnmWqcwIhAIjBMvG/fXUUEox/yjhIQ42k35F+31wJ/lW9nVHc8Y7/"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.12.0-next.1603629402.e59eae313cd5c9d0bb8e2d3271a9798a9cc06902_1603629403910_0.6431239721368966"},"_hasShrinkwrap":false},"3.13.0-next.1603943786.7c80415f07e6c32f7924a76d583b15bd46446197":{"name":"unbounded","version":"3.13.0-next.1603943786.7c80415f07e6c32f7924a76d583b15bd46446197","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.12.1","@babel/core":"^7.12.3","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/preset-env":"^7.12.1","@bevry/update-contributors":"^1.17.0","assert-helpers":"^8.1.0","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"7c80415f07e6c32f7924a76d583b15bd46446197","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.13.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 15 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.13.0-next.1603943786.7c80415f07e6c32f7924a76d583b15bd46446197","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-YTdt90VuFNPUVCmrOop4iY0M6Kd8NELGeKWq6aiwJR9aiuUjPIQIfUC7SgO9O86BFJ7hbTPh7DkfKoyL0v/mNw==","shasum":"64454d7a37f96003e7dfa81a44329317d8709075","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.13.0-next.1603943786.7c80415f07e6c32f7924a76d583b15bd46446197.tgz","fileCount":7,"unpackedSize":23103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmj1sCRA9TVsSAnZWagAAwpEP/RWSl/p1yYVdD0pbI1/Z\n4pZz97MAXi8HHh1f8vXiMMLEnoC+1RMGV9GfC7Mio/PqILbBb/8csT6c+ETs\nA/NlcL3EtK7flHi9FxTpoy9ZUPg92lP/6edGO9EBIDqNWnprqqVKGy+YdaDA\nmHpFpixn7up0nCxmEvG9sC43Glh0gNT0X94OELMnZWxII0yvMBZm5Yob7rG5\n/6I+9GxZ8lrMNVACFtggTpGfJN73Rm/SZBL6ASC4bZ9YN24cXFJhrJ2yoraC\nnI5pOPI+X+wIPNZocOVTSJLNLw6HiV1Yq3p4/NH88RbIVzAM94GsktLOPnrs\nLZdXpSCW61ENTjTDulCsJ4EFJShppEknGSVrMbFpa6ypsdbKwmNJ/8qTvm7d\nkrfJhzTOEdPamB7QNSjtpHKeEVpvVOxXR6PKsCx269Cr69E9DI5j+w2Mq4Nx\nJNeGGMP+RDcR9GFRAC1xMEh2PxBgK7tzhSkwQ8RQPFPo3DRcHx0NRERY9H+U\n0xY3uudStDJOgB/1RINwv5yfLQkIDvCWv5rN+2G+Kx+toh8z9vrWbVahMd0S\nQAiNxxndLbLvFUphwlncSDy8EPk6NNxWS+JhneMEKYPZyEbfBYp59pUWknjY\ntMTmT+d9Gjffe4KMcXws98sO1yXhnBvTSt92a4SZswmTYYceCFvVzunDuTmo\nncbh\r\n=ql85\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLpKjBmO6SC3pXC2NFycM7/pJKpoiu2QdSXZ8Af+GrNgIhAJCHf4AJMFJnDTu2pxO6yYF3etnvwhe5lSdy364wQb3q"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.13.0-next.1603943786.7c80415f07e6c32f7924a76d583b15bd46446197_1603943787915_0.9438821417552925"},"_hasShrinkwrap":false},"3.13.0":{"name":"unbounded","version":"3.13.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.12.1","@babel/core":"^7.12.3","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/preset-env":"^7.12.1","@bevry/update-contributors":"^1.17.0","assert-helpers":"^8.1.0","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"7c80415f07e6c32f7924a76d583b15bd46446197","_id":"unbounded@3.13.0","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-biPOTr/SqIpqcpRC4czLMuPIWJ1H27w6/BUjv7tGTBappz8Ekiw9mHk1iOOTNNkzvaNLJj5TXiHIuLpkQPdXdw==","shasum":"89fb70391a2b47fb24f2a024e18c0f2c5f89780a","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.13.0.tgz","fileCount":7,"unpackedSize":23046,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmj2LCRA9TVsSAnZWagAA9CEQAIPPagRdFWAyaoxU1B/D\nV/6GEl0QjQuXdRw3mbRr3VFcRD6L10D6prWJF5nZUMxeXeV+ii0byRiModCa\nFUvt8NgdNzMT7V5upTAoznx9K1M+IERWPYHYNxSjiuAP7TFFJjUCBEERf9sb\nR7UAE9I9XOL+2gOEqd8kc6LDJtLID86fKffZC40CvdCiZVAWWWGp7AgUksB7\nH1qmmthHV2kVMNkjfX55eEEOrhD/3BOBsHBqCmZgHWNnNDRG9akEksdt6+q2\ncqv2wl7LIDBAiVcHKn25rnw79rLxGKEPMBcxq1iE1hkqHkcmxQgSWdoKe4Jl\nd1DnJP63j7LGunqDlGbmdeAjzMrtGe4vio70DuEX8COVys/KkWoEl99y0ZXM\n0okzDHUCVQMZqzVlw6lA7VJdnRJh4NNSXwK2b1hpiHiGcoFhBYiaD8y/6ams\nZnCACn4Yfu0yFJldfAYQjXVUCej/16MqF1AVLpBVoVbeosJbt+h9H55l1ix1\nWPqceNvOxaAvmqU7DozHNykoUlaMs+vs7i+eoX0mW0yIHbj98c5yMUotCQtv\nZSfEqHja3V4i9hcoDtU5EK5tbVXwdcFf1L73kWuCOZI5LK3p/MulhNV50P2d\n54oF8uBLqbUI0EWRvl+gyffIKyq4I2Ksh1TUctT/fLN6OmVjW5vVawidJYHq\nICGv\r\n=TJIj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGOFK4cSxAlMPv7Or+LEnuHfBd1G+R1+YGofIb4pjWDLAiEA6qDuIXTxOsicVFIHx1QCOu+JjCY3n1xlIiQtbyOXgNY="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.13.0_1603943818744_0.37409880598731027"},"_hasShrinkwrap":false},"3.13.0-next.1604232432.2d46d8729e85d8c94ae9e18876105558c8805e8c":{"name":"unbounded","version":"3.13.0-next.1604232432.2d46d8729e85d8c94ae9e18876105558c8805e8c","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["travisci","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","travisTLD":"com","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 15 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 15","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.12.1","@babel/core":"^7.12.3","@babel/plugin-proposal-object-rest-spread":"^7.12.1","@babel/preset-env":"^7.12.1","@bevry/update-contributors":"^1.17.0","assert-helpers":"^8.1.0","eslint":"^7.12.1","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^6.15.0","eslint-plugin-prettier":"^3.1.4","kava":"^5.13.0","prettier":"^2.1.2","projectz":"^2.17.0","valid-directory":"^3.4.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin master && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"2d46d8729e85d8c94ae9e18876105558c8805e8c","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-travisci\"><a href=\"http://travis-ci.com/bevry/unbounded\" title=\"Check this project's build status on TravisCI\"><img src=\"https://img.shields.io/travis/com/bevry/unbounded/master.svg\" alt=\"Travis CI Build Status\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n```html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.13.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 15 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","_id":"unbounded@3.13.0-next.1604232432.2d46d8729e85d8c94ae9e18876105558c8805e8c","_nodeVersion":"14.15.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-l4rgjHazzZsIq7o5W84B/A6gJK+S2dae+RyNh/xiockaRocqINUp0+rmh3UhFR69CgXBfN+7UDx4B+sUMADl5A==","shasum":"5a71f092998498a8d1174b2fb8112a7d30003cb5","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.13.0-next.1604232432.2d46d8729e85d8c94ae9e18876105558c8805e8c.tgz","fileCount":7,"unpackedSize":23103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnqTxCRA9TVsSAnZWagAAaF0P/0GcfCUG6+tqIxHc+icc\nnQXzQFlZq/IuSt2F3OgqFOqczS+gAPOztf6kgSfGWfKQxhUQ9x1xsy8vOL6A\nB3XArldQXJdNM9pyh6jHXHtBxvwM6B7NTkDKJmTpcTjoanVn0Dq/EOStuUQ8\nXlt+Cu8ExNlKFZboiw92vDU4cVrGBwCUmn5Zz2mwNK7sD+sQYizlIh/iqoEV\n5RNrXwDAiwwxAO1QoH9pgqUg3i267PGseQtF/PM/iTJXQY5/TlHXKdxbZMUS\nuBwxSsaEkf8/FIzTMklKJ5R5V6urglGfgT3hNNfG+/Dgn2tPCKOXmLbWTPsY\n7x83rI7G7gp16hJzfq8AEP/nkWawC/c8UJcRkbgWxaGA99MT2ZH1CwnO7L20\n8ZYBA1MDx51FH0CMymSbIyDvtotPTUjwLTdcoX9CZR0/AtHWH66xGkuUYA3U\nftwfI4xe7a7RKsi8mmDsSTgioOe4Rmj5Yq/1XsRCHLLi9a3SdpsVUbuLDLAU\nSdRnalKyD8OYqZZC89q7S6dy5Jm9pYYBPOjWzMXmMNFcH8xYpRkDDHIHdRWz\nhBkEnu9u414GLR21HsWj66hoxj2K/VYru8zDCWdlEBKXLBLpikXq0Wuqt/+A\nYkwJiTnqRZLoWfUwODNPvM/UHbC5HvTfKQIpObo7LVle1Su79PH044ve1wJT\nnNKS\r\n=R2se\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFaSrdhxs6QqnsoF9szEkzJxzN+HfM0r13txNM1l2WxMAiB6x/a6CtZjxcOzK+OkXRhjXb1dDYdwF4FAiK0Sj3ENew=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.13.0-next.1604232432.2d46d8729e85d8c94ae9e18876105558c8805e8c_1604232433269_0.6329063237356263"},"_hasShrinkwrap":false},"3.14.0-next.1627432248.50f678d99538d52dddf021af1764833fa8fdaa73":{"name":"unbounded","version":"3.14.0-next.1627432248.50f678d99538d52dddf021af1764833fa8fdaa73","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/plugin-proposal-object-rest-spread":"^7.14.7","@babel/preset-env":"^7.14.8","@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.2.0","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.14.0","prettier":"^2.3.2","projectz":"^2.18.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.14.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"50f678d99538d52dddf021af1764833fa8fdaa73","_id":"unbounded@3.14.0-next.1627432248.50f678d99538d52dddf021af1764833fa8fdaa73","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-eNhaDoKLwvVb+B6pHS76pmpGrqf0W/QdmFgwO1ZPS/+eJyjP8ZFtK9+XbhlRHQ5UpEZez5oCIARoyfnma6gdSA==","shasum":"841bd692e635a2e4d161aa629e42552897e3e6d0","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.14.0-next.1627432248.50f678d99538d52dddf021af1764833fa8fdaa73.tgz","fileCount":6,"unpackedSize":23120,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAKU6CRA9TVsSAnZWagAAdJ4QAIZffuJGq45AxhPuKgDK\nKpQQmdbUuq2KxFnUWXOhTsy6si6FAJCKVKqNRPkuOwNf5h1taPB/lrBkBZza\ngt+/CrMHIttY7owtH5x+TM3N2kzAZtrTKn/HWyFqz60qk783Qx//dqP8Vjnl\n8I5frHnVSiz011SaaG55hdW1pg5mMI0b6gV9zhyvX2sMe2haiTo6trkAkZSW\nubc2/oelpol/bQV4OcV9kic4vRpYz22CWZ0S1PI/srfSD/WUbQiWDzqIMovH\nr2zTeEBG/CISsEqeVujr2VNH1A3v7Pem6LZAM1/FlLcr7YrLL1Ots3PE/Q4U\n8/v4gPpDr/kUPbCZbyZPlwldhjZQL667j4MdK0W4TQfZ0e5DMdXFcFuKjOVe\nXsDj3m2dDf+XDk9cf5KAlvqHXiI7HwReL+inuZOlG1+NO4wKPiyLXjd9J8Ms\neR42vFNG9bSC3pMAkCZ3J88B50PiWUAxSvDnlgwlKfzcDWIPyX3bcU3qDQv7\ng+RlXNyRS7M9NiwyYX8FbjCMdSxCCVzFcT/RoIVVwqVKsSTXh5eJ9DC8bCqW\n5jO0UqzgctNk7Gm0xoxsQWCWkpfxx7u/hYjVaVP5SdxD0K9AxjqnYNUfPCUf\nFWgAqXt9IF3kA/QTwz53PevtnKmK/gBnxKjyavrb+D7s3IufzLno7et+ca1p\nnwx2\r\n=Y5cy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAvWixzlcm/5bvzRTDl172QsLRsjY1+L/hTim0pe8u+vAiBjXIm/eevKEYYdnpG2mVnr4Lb4zkkMy500M74fdYiQ5g=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.14.0-next.1627432248.50f678d99538d52dddf021af1764833fa8fdaa73_1627432250095_0.05188105760501216"},"_hasShrinkwrap":false},"3.14.0":{"name":"unbounded","version":"3.14.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/plugin-proposal-object-rest-spread":"^7.14.7","@babel/preset-env":"^7.14.8","@bevry/update-contributors":"^1.18.0","assert-helpers":"^8.2.0","eslint":"^7.31.0","eslint-config-bevry":"^3.23.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.14.0","prettier":"^2.3.2","projectz":"^2.18.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"50f678d99538d52dddf021af1764833fa8fdaa73","_id":"unbounded@3.14.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-e0Fxqlqf+OZ5lLMhoZ/4HPP3D2H8kXAhJ04N4ui4wZ53wBQ999QXwj1uhrCqkKMWJ4OIxqZnVIINJUBa55XH6g==","shasum":"dac32e72c971445a4bf833e733d7e2466a78e882","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.14.0.tgz","fileCount":6,"unpackedSize":23063,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAKVOCRA9TVsSAnZWagAAjgoP/AjHIQtgCK05Nf2v8Hma\nmSrqazOhGmNSj7MbnrDG/N/QFk3zJkhdwOdkY0uubXr5fB0o8T+OynmWNqGj\numYG3MKSVSOcdbBbQ+bYjL4Qu2oDiubttCZNdFX/vL/CJJtLzPqJZWzMmwI2\nAbw53rr+nKk1/dcNdJZz8ZaqpykmmHoCQi2OE+wCgRGfQRQBvJ4kzpRNAB6Z\nmx0L0bJWVlRHOT+km/NKx2WU7zb4I99x5R49kM0Nz8duyqTC1OSQe07jwplm\nhH36R761JD1PjxX/e6G2JGaA14pR+l2bZIBeemXNLV2/BC5SW+jhmWAXxk5q\nvWSxudhh2r5LkZh6DFhNV0HSAnc73rF0EvtaTdi5JgiRedgN+yjh5c61vVWs\nNfzza78Yh/84aP/satINZBKWr1WpzpqJaEBLCa3khKAdUZ//KGQxcXCG8yW7\nlQu2mc2B0vRKLdehgXwydX5obs7MCJOYE2jnp9vc/qEeqN8lvw4Iamj8mzHY\nUrrEiTC98os+8tiZWSjeX1IvO6+IbFOYJ3XmuUwoDvLp9xgclInz9a/0LIKD\npKUdiWQPRNL5Ud1ZyGILfemrGLNwk08gFXMfYY16tbRTjc46/hlIpq0gxxFU\nck89iAGvnqoxwPV3pE6MfyOtWRZvhS8RKiUzWsLqgJGdNIULhENU+lXxAxyI\nIExb\r\n=U4DW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYJayNyfgNnGKWWqbypB+zobwyVs7OEPZKydPE5k/anQIhAJpw77WliexGfEwYo/iuxF+7wur/EsBTRZ2MIYvNALR1"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.14.0_1627432269900_0.48253109232002633"},"_hasShrinkwrap":false},"3.15.0-next.1627673316.0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e":{"name":"unbounded","version":"3.15.0-next.1627673316.0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/plugin-proposal-object-rest-spread":"^7.14.7","@babel/preset-env":"^7.14.8","@bevry/update-contributors":"^1.19.0","assert-helpers":"^8.4.0","eslint":"^7.31.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.15.0","prettier":"^2.3.2","projectz":"^2.22.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<span class=\"badge-daviddm\"><a href=\"https://david-dm.org/bevry/unbounded\" title=\"View the status of this project's dependencies on DavidDM\"><img src=\"https://img.shields.io/david/bevry/unbounded.svg\" alt=\"Dependency Status\" /></a></span>\n<span class=\"badge-daviddmdev\"><a href=\"https://david-dm.org/bevry/unbounded#info=devDependencies\" title=\"View the status of this project's development dependencies on DavidDM\"><img src=\"https://img.shields.io/david/dev/bevry/unbounded.svg\" alt=\"Dev Dependency Status\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.15.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/MIT.html\">MIT License</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e","_id":"unbounded@3.15.0-next.1627673316.0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-70oNMu1b3Wb5je8qF2S+wZqdE5uTdGE/hPyH0dr9Llh2gFtBardRl4K2mquu/O8IJHlsi6QV55o0SCaqgARqEg==","shasum":"30d49a0aa1161d889b72b788e1b7f979a0c9e97d","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.15.0-next.1627673316.0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e.tgz","fileCount":6,"unpackedSize":23333,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFLmCRA9TVsSAnZWagAAK38P/36mWaMFRquoY2pGKyIl\n5M4yANJp6ZfteO26qCAhQPeQdgvmX5u50a4SQGY1biFXZV8GVl1i7ogjo7ID\nCPgLCzfE/wvRgqcvUsZpvf16l+B8m6DsEylbyO6MewaPiqFDH2QUgY5ydZta\nZBNqW85QCLrdK6UX/N4UMhKxYpb9s6SWrSnObm9+eDC+Qgphs/7mH5dmmxqE\nHlKD58h650du349ruvqJZtBsh0EcSD1daaOy4a0oHuWpziXQvay6YEEuvOcT\nl95W0altssGn3Yj8r7b7gVZP86redwZ/ed3F4mirs5SX81OY09LkUTeaXVki\nlZnvixKurmv2vWhBQOBPtTJKOcAXonxybJOeG/GBfOXcOivxHytuqR0QQ/uB\nsd6OlWIVYBtHtsFKpuiJ/bw3TqkJHJkfdOSm3PEEDqNU4Lejefzv3G4Ynx8x\n2FwOwXtH0NUIgrsMu+CCJFrVOZI6/NiFowrqRLpRDViGbNUvUnO35UU5WR9V\nONAhDk4Mz6xXOFSOXijr4DJG5DRYEcv4DLmPkytPN+liHgp4b6e8cqg9w8c2\noqe8Sj+lo1ob7ggQU7cgx3poZJn6h1WK0WRUp94e3Hw38V9irXdZBrmOqv9E\nUbAqzr+Epf/cS3tz3bvxf0RcHEuJNQOsCdOwsvd2wuVrLG1RyUVcz+R3u73G\nQK2N\r\n=nhwP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFplZQfOecd9e5B8s3jCATPRN4GxUaIgQiWqhzafzxGwIhALDhHkSfewBjWpfYdNp4LnFm/AWcCF1lzsBHrE57AJiZ"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.15.0-next.1627673316.0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e_1627673318219_0.9224178330842516"},"_hasShrinkwrap":false},"3.15.0":{"name":"unbounded","version":"3.15.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"MIT","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","daviddm","daviddmdev","---","githubsponsors","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.14.8","@babel/core":"^7.14.8","@babel/plugin-proposal-object-rest-spread":"^7.14.7","@babel/preset-env":"^7.14.8","@bevry/update-contributors":"^1.19.0","assert-helpers":"^8.4.0","eslint":"^7.31.0","eslint-config-bevry":"^3.27.0","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","kava":"^5.15.0","prettier":"^2.3.2","projectz":"^2.22.0","valid-directory":"^3.7.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"echo no need for this project","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep v$npm_package_version || (echo add a changelog entry for v$npm_package_version && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (echo 'proper changelog entry not found' && exit -1) && git tag v$npm_package_version -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"gitHead":"0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e","_id":"unbounded@3.15.0","_nodeVersion":"14.17.3","_npmVersion":"6.14.13","dist":{"integrity":"sha512-XqCeEuYLw2KNSUNyny+eUaJAKvhDc70gcRqyykLGWneD20Oj/olNp5nhfPzG2y74tmXGu240emTFj+Xndynhig==","shasum":"a892cf9bc27a29d4f57f84fc3bbf12ecb5cf4829","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.15.0.tgz","fileCount":6,"unpackedSize":23275,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBFNpCRA9TVsSAnZWagAAJA8P/2LyuKnpl7+JwGJyTVds\nVunoSX9B6Tey+cOBdYc75z6aYBIjVeDMHNhQ3qr3sPCEG+zDBJL446kDp483\n2AcNIh7hZ+cysVXkE+zyt2Ownrl+i42Hz8CzCYOVDw7EmfM3QtEW+H+GM2wW\na+YPWHZB9SamcL6IeMiCo/HfFSVJaldd1uqzfalpkrCiwQK2M9NCJpMtoY+n\nBc83TmMvWJulSiMUZZ51DWG2v3lb6gQi4F5Y04m9D0xyBJJywtRZQilO7oSg\nEwpOMgvDc1gKu83llvGb0+yZN7JThu7+IAWHrum23hLxFnfPqlnLhKokdXIa\nYD5NyisZ9KRkDbErP39NYTotuEpmoZFRnCqBzjNBo+618Hdry4gEXmJFWr+v\nNWYHeSbMpVVkFNz6cCht5cgJ2TLNqMxqQGSk3H+rrpMIE0pOyGgSafuGEKrP\nX2/jzrmuI1NcNOzwhNZVbKOHX5g88/Qprcj8IwfaCwGMNb6D/+lOtH8CKXQr\nK8tt8HTjh+enrE4QYxG8UQNO6WPLQcvDWiUAF6vVwXJ2JOhucyS5S2QvgQjX\nX6xBnA9bXbWotMgXQaJDoTESiboacIrkFAklS+/12HHp33QguhTWwmZYJB1W\nZHimoPBgggqAckRUxpoqMtoy0gy2NfCTDgzszFtCi7oXCUpMjyWUeldZKROl\nTel8\r\n=x6QS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEmMf4grjVZbxyLn1IGQu+s6ORIiA7YbBk1PBXq53sZEAiBTJEjjSk2GT35VzfvPvzI2GcA3m7NQY+dennJXJg7zpg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.15.0_1627673449077_0.8143763326525082"},"_hasShrinkwrap":false},"3.16.0-next.1698929636.499996fbcab3426a9795718ac1d1e9fe3bc4b52a":{"name":"unbounded","version":"3.16.0-next.1698929636.499996fbcab3426a9795718ac1d1e9fe3bc4b52a","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.2","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.2","@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.28.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.17.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@3.16.0-next.1698929636.499996fbcab3426a9795718ac1d1e9fe3bc4b52a","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@3.16.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"499996fbcab3426a9795718ac1d1e9fe3bc4b52a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-FKscARCSd/ShcgeLhS01N+JFNKBjfo/7D4Vxu4ZEaFxWIYIFoRL8Z28/baqtRNXqdDeBPrVduwVKgfl188wAHA==","shasum":"9cc30b2e3687580459d7d0e376c401e588802756","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.16.0-next.1698929636.499996fbcab3426a9795718ac1d1e9fe3bc4b52a.tgz","fileCount":6,"unpackedSize":27043,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDzBUBq7xyNtgd9SEreR7+AldVqU3M8/UqQwuZk30YU+AiByZrx2DrgQiRQTX9JnnbMXWSAt0XPiQzCKhwt7xtqd8w=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.16.0-next.1698929636.499996fbcab3426a9795718ac1d1e9fe3bc4b52a_1698929638274_0.018940533492124656"},"_hasShrinkwrap":false},"3.16.0":{"name":"unbounded","version":"3.16.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=10"},"editions":[{"description":"ESNext source code for Node.js 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.2","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.2","@bevry/update-contributors":"^1.22.0","assert-helpers":"^8.4.0","eslint":"^8.52.0","eslint-config-bevry":"^3.28.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^5.17.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.0.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@3.16.0","gitHead":"499996fbcab3426a9795718ac1d1e9fe3bc4b52a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-rR48YO4+fIJhZK3cbMtUfniny2EO1/XnrIopp8xKyUubtUeuz/kYLRGu51Fwavi1ZDTFRqrL71dMeN3Pfv/4qw==","shasum":"4f2b12ff14b59db291eb433af538079871b34639","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-3.16.0.tgz","fileCount":6,"unpackedSize":26985,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGeoZuTZjKwpo/q7zzcOaU5jbCAuk8plW9GnzSTNNGJkAiAs+UOOvgnuHxI6Y6X6vWDyOW+ZL4Ce5wZ9pAgjuQzriQ=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_3.16.0_1698929677819_0.20303230585926735"},"_hasShrinkwrap":false},"4.0.0-next.1699812242.13d7c0ec33fa159a6936e1c8452dbd4322f5e279":{"name":"unbounded","version":"4.0.0-next.1699812242.13d7c0ec33fa159a6936e1c8452dbd4322f5e279","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"ESNext source code for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^10.0.0","eslint":"^8.53.0","eslint-config-bevry":"^3.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"3.2.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@4.0.0-next.1699812242.13d7c0ec33fa159a6936e1c8452dbd4322f5e279","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@4.0.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/source/index.js</code></li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"13d7c0ec33fa159a6936e1c8452dbd4322f5e279","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-lfNqDw9CPwbt/CZDGiOJqeSd6r1HXPcZ5G0u7erKtmwkqUhNDq21757V/1vGwVcd1xfJFpt7DliwdSCK2fHo0Q==","shasum":"f923e2a32495841c07a2fe693a7aa4242ef18042","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-4.0.0-next.1699812242.13d7c0ec33fa159a6936e1c8452dbd4322f5e279.tgz","fileCount":6,"unpackedSize":27054,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHSm/HgRW45mcFOZTvy5TS+3s42eobJwFbF/VRvTM+LlAiBkDTSnKJ1PCxW4asDL9JgYzFN5vhlSrjx4uoURnPhPpA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_4.0.0-next.1699812242.13d7c0ec33fa159a6936e1c8452dbd4322f5e279_1699812243396_0.35919932005222077"},"_hasShrinkwrap":false},"4.0.0":{"name":"unbounded","version":"4.0.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=8"},"editions":[{"description":"ESNext source code for Node.js 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}}],"type":"commonjs","main":"source/index.js","browser":"edition-browsers/index.js","devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^10.0.0","eslint":"^8.53.0","eslint-config-bevry":"^3.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"3.2.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./source/test.js"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@4.0.0","gitHead":"13d7c0ec33fa159a6936e1c8452dbd4322f5e279","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-fxxoPR52EY6/C5nc8Q2TbI0np/0HJ8z/QeLAK0l6t2VixsWKVU3UFKoby5XUElH7QXupFKDxKlv23uIapCJFYA==","shasum":"d154fd150af84c22d604fc40aef39cf4e3061921","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-4.0.0.tgz","fileCount":6,"unpackedSize":26996,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID+uQr/mqlF3KGfjkZxHIKSOBJH7jBE3ZJMGoAWmDqaaAiAJ05H1W7LLFMnd3Mwl2aZ1jMH38GsFmE1rc68ZS73fjg=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_4.0.0_1699812245087_0.6061969488774015"},"_hasShrinkwrap":false},"5.0.0-next.1699827224.210bccabfcfad6a03d7d883f891af49a4e2cbc3a":{"name":"unbounded","version":"5.0.0-next.1699827224.210bccabfcfad6a03d7d883f891af49a4e2cbc3a","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.10.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.1.0","eslint":"^8.53.0","eslint-config-bevry":"^3.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"3.2.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.0.0-next.1699827224.210bccabfcfad6a03d7d883f891af49a4e2cbc3a","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@5.0.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"210bccabfcfad6a03d7d883f891af49a4e2cbc3a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-qM3eVXEU0QrlEgBbK88V0G/ydnnNAecmacgPYBZruMuwqXDo/8w6bP3pwLHMHFLmxNE22lgp8PUrTfBbrixjrg==","shasum":"6581b294d7e6439ef4a3139e8a2064eeabd4febd","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.0.0-next.1699827224.210bccabfcfad6a03d7d883f891af49a4e2cbc3a.tgz","fileCount":9,"unpackedSize":29774,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICS2PdB+vYO0U35zmcGbH134ROAvabgJBN/dxnnnlJ/uAiEAxy41CSIdQpxuo+ZZtVwvLPtAxK689jg576e9HCYkmSs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.0.0-next.1699827224.210bccabfcfad6a03d7d883f891af49a4e2cbc3a_1699827226975_0.30301623900156804"},"_hasShrinkwrap":false},"5.0.0":{"name":"unbounded","version":"5.0.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.10.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.1.0","eslint":"^8.53.0","eslint-config-bevry":"^3.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"3.2.0","prettier":"^3.0.3","projectz":"^2.23.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.0.0","gitHead":"210bccabfcfad6a03d7d883f891af49a4e2cbc3a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-J2CofDiL0Ac0+biY/ZtFGP8l0+6HJG3Cd5b6k4ahqp4mwrgrH327o+yjI6fHxiHFi6M01dgsn1itVSBK/t1byQ==","shasum":"70f9177a8906b73fea9e643299b185468d8d1cea","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.0.0.tgz","fileCount":9,"unpackedSize":29716,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIED1UoFMqWiEdagZkKV4NIsnGcvCfji0VL1x9hOOkKLoAiEAyzx2n+hQdTZX2tHJzCk/KB5k1NDDTJig2uu+yxZnFoI="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.0.0_1699827233613_0.7167760305094013"},"_hasShrinkwrap":false},"5.1.0":{"name":"unbounded","version":"5.1.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.11.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.2.0","eslint":"^8.53.0","eslint-config-bevry":"^3.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.0.0","prettier":"^3.1.0","projectz":"^2.23.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.1.0","gitHead":"82df04fc710ed7752916382d8dc3e93b698942b3","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-MMiuCaqRYzWGuHC2DgMNXnRPiDyI2hURt77M+8yIeepefT4S62so5iDK1KvQ7x3qKJI52e8rhJGYgiu4ViJsHQ==","shasum":"4a96c0524ddda8cf25e69f59e85a62e934b1e0fd","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.1.0.tgz","fileCount":9,"unpackedSize":29745,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCaySegw2+VpJoJZyJSzbu2Jgpuxs87QFBERkoH2N7yDgIhAP+hfAjoG4K4PxvXgtQQpeKOWXdLDfK8W+S9SY5MbZtA"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.1.0_1699876507452_0.07972990224192356"},"_hasShrinkwrap":false},"5.1.0-next.1699876514.82df04fc710ed7752916382d8dc3e93b698942b3":{"name":"unbounded","version":"5.1.0-next.1699876514.82df04fc710ed7752916382d8dc3e93b698942b3","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.11.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.2.0","eslint":"^8.53.0","eslint-config-bevry":"^3.29.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.0.0","prettier":"^3.1.0","projectz":"^2.23.0","valid-directory":"^4.1.0"},"scripts":{"our:clean":"rm -Rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.1.0-next.1699876514.82df04fc710ed7752916382d8dc3e93b698942b3","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@5.1.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"82df04fc710ed7752916382d8dc3e93b698942b3","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-t32SpN+WjfGdPvAFVU0HvRZUmtWgJFVGsJCxC4N3XrR+yYXMIOqGl/k2A4BHxvjZZmDGakRgjHIokblK7Eu0Vw==","shasum":"42d73c24e8bd235a6316d26e014e2c0c98ebfbf4","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.1.0-next.1699876514.82df04fc710ed7752916382d8dc3e93b698942b3.tgz","fileCount":9,"unpackedSize":29803,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwm8msob8Q+bNiyBBmLzV71h/pl7iSA1z+Qq7tOsXY3gIgUjFlAQgffP51FAfdM9dM8+jnzPMRLUrBpl9rNaf7XG8="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.1.0-next.1699876514.82df04fc710ed7752916382d8dc3e93b698942b3_1699876515623_0.28558969320578353"},"_hasShrinkwrap":false},"5.2.0":{"name":"unbounded","version":"5.2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.13.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.4.0","eslint":"^8.53.0","eslint-config-bevry":"^4.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","valid-directory":"^4.2.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.2.0","gitHead":"697c3bf0955c224d6072acf9d7df053a8b3f5934","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-/DKuVxnOBgTB85FUcSKAyjPBCsu0mVvG7JtRMQa4+EzyBYS0zYEzpcts5R9QrjL7kE9Jy1iu4XQdAYv/itf4qg==","shasum":"932ea8bcb2ee46051a7f0e76b864dfbac58ea928","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.2.0.tgz","fileCount":10,"unpackedSize":31449,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsPX8CkAnOLERjda4p0Zd98rlB1RtD5tdZWdLHSNZ/EwIhAIDCTFh9fezKid74eJNBDGL2OkkPfuBipPND4O4NjTV9"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.2.0_1699978149496_0.7500627213181463"},"_hasShrinkwrap":false},"5.2.0-next.1699978157.697c3bf0955c224d6072acf9d7df053a8b3f5934":{"name":"unbounded","version":"5.2.0-next.1699978157.697c3bf0955c224d6072acf9d7df053a8b3f5934","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","flattr","liberapay","buymeacoffee","opencollective","crypto","paypal","wishlist"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"balupton","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.13.0"},"devDependencies":{"@babel/cli":"^7.23.0","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.4.0","eslint":"^8.53.0","eslint-config-bevry":"^4.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.1.0","prettier":"^3.1.0","projectz":"^3.0.0","valid-directory":"^4.2.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.2.0-next.1699978157.697c3bf0955c224d6072acf9d7df053a8b3f5934","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@5.2.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/balupton\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-flattr\"><a href=\"https://flattr.com/profile/balupton\" title=\"Donate to this project using Flattr\"><img src=\"https://img.shields.io/badge/flattr-donate-yellow.svg\" alt=\"Flattr donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<span class=\"badge-wishlist\"><a href=\"https://bevry.me/wishlist\" title=\"Buy an item on our wishlist for us\"><img src=\"https://img.shields.io/badge/wishlist-donate-yellow.svg\" alt=\"Wishlist browse button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"697c3bf0955c224d6072acf9d7df053a8b3f5934","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-5w5h8pYACyRwtZxa3gRStBxVhfhMSEBnk8T+LlJnMFqIE0BetuRpBfs8CfSXULkjpybUxZ8TAkWCQOJQq8HumQ==","shasum":"d46fd1034043bd9f787024c1875bcd098e8a93cf","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.2.0-next.1699978157.697c3bf0955c224d6072acf9d7df053a8b3f5934.tgz","fileCount":10,"unpackedSize":31507,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbq95QckpiRKP8kc1ClYvCvFAimhAPtZNWzx8yigUWhgIgQW6xR9DUMoP1fS/a5EuGiiWOqJN5hQo5Oc5HsdbiOHI="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.2.0-next.1699978157.697c3bf0955c224d6072acf9d7df053a8b3f5934_1699978159796_0.2470069716015264"},"_hasShrinkwrap":false},"5.3.0-next.1700543226.a4928270a9b1c70659dc52d141e073541a5cc754":{"name":"unbounded","version":"5.3.0-next.1700543226.a4928270a9b1c70659dc52d141e073541a5cc754","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.13.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.5.0","eslint":"^8.54.0","eslint-config-bevry":"^5.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.2.0","prettier":"^3.1.0","projectz":"^3.2.0","valid-directory":"^4.4.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.3.0-next.1700543226.a4928270a9b1c70659dc52d141e073541a5cc754","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@5.3.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"a4928270a9b1c70659dc52d141e073541a5cc754","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-aE303KybfgKhCfDh0Y7T+3lccjK8LPj5h8giqDwdTguVSJprDpzzvjGQshsSkHhvL3ovMx8Rt9maIk0HaCekBQ==","shasum":"216fe366077d80739f309fb4b664b6b0c98837fb","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.3.0-next.1700543226.a4928270a9b1c70659dc52d141e073541a5cc754.tgz","fileCount":10,"unpackedSize":31245,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHkeHBSIGaphsTyjwwKpGv5Le0UJwhiwjxFzt/pFFAuwIhAKhrsBYfU8DgLhPEwN2Px5Qb/O65Q0dESa5mJYM+fysB"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.3.0-next.1700543226.a4928270a9b1c70659dc52d141e073541a5cc754_1700543227917_0.9116065224312442"},"_hasShrinkwrap":false},"5.3.0":{"name":"unbounded","version":"5.3.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.13.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.5.0","eslint":"^8.54.0","eslint-config-bevry":"^5.0.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.2.0","prettier":"^3.1.0","projectz":"^3.2.0","valid-directory":"^4.4.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.3.0","gitHead":"a4928270a9b1c70659dc52d141e073541a5cc754","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-ykI4nE6hOLgKYCoC37uaSMyItWJD+pIsbd+p/+qshHRQOvTYASFOnzOI6BH6YejM3YwjuTjcgcXT3tZpCIwC+w==","shasum":"407e0849adb174f1d737aeb09fca5d47b39c154a","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.3.0.tgz","fileCount":10,"unpackedSize":31187,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB14UOpHyHcq3wZe7YlnBc2qPhNO9dQJdP/cNqBnLoQGAiA/jbDf17/CRqg8n+hpeXaL48UzJvqsSCeg0BiRZeRTXA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.3.0_1700543231298_0.8594907758370967"},"_hasShrinkwrap":false},"5.4.0":{"name":"unbounded","version":"5.4.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.16.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.6.0","eslint":"^8.54.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","prettier":"^3.1.0","projectz":"^3.4.0","valid-directory":"^4.5.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.4.0","gitHead":"3c3b5167495a918fa8387fabe586eda8fef58a4a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-WHERFq/Dai+nSE8zJEC1K38IvZW7NF4EmYGQPN1S2bGx72Bk9nOH7dmBsukxWoT2vqe2KkHgfvrg8ylP5L7LFQ==","shasum":"8cc44c229ea3a482992077777fd4fe61ca04cd1e","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.4.0.tgz","fileCount":10,"unpackedSize":31187,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCruFpLe7Bwuz16v0hHG1vy1u/oIlqwlpHKZ7kpO7m1wIgH8jB6+6ueYOrfnNqQB3oqniHF7sV/Rdte4oL2Fjdk8U="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.4.0_1700864936131_0.27483450756029804"},"_hasShrinkwrap":false},"5.4.0-next.1700864934.3c3b5167495a918fa8387fabe586eda8fef58a4a":{"name":"unbounded","version":"5.4.0-next.1700864934.3c3b5167495a918fa8387fabe586eda8fef58a4a","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","esnext","function","node","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"ESNext source code for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"source","entry":"index.js","tags":["source","javascript","esnext","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"ESNext compiled for web browsers with Require for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":false,"browsers":"defaults"}},{"description":"ESNext compiled for Node.js 4 with Require for modules","directory":"edition-node-4","entry":"index.js","tags":["compiled","javascript","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}}],"type":"commonjs","main":"index.cjs","browser":"edition-browsers/index.js","dependencies":{"editions":"^6.16.0"},"devDependencies":{"@babel/cli":"^7.23.4","@babel/core":"^7.23.3","@babel/plugin-proposal-object-rest-spread":"^7.20.7","@babel/preset-env":"^7.23.3","@bevry/update-contributors":"^1.23.0","assert-helpers":"^11.6.0","eslint":"^8.54.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","prettier":"^3.1.0","projectz":"^3.4.0","valid-directory":"^4.5.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:edition-browsers && npm run our:compile:edition-node-4","our:compile:edition-browsers":"env BABEL_ENV=edition-browsers babel --out-dir ./edition-browsers ./source","our:compile:edition-node-4":"env BABEL_ENV=edition-node-4 babel --out-dir ./edition-node-4 ./source && printf '%s' '{\"type\": \"commonjs\"}' > edition-node-4/package.json","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"babel":{"env":{"edition-browsers":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"esmodules":false,"browsers":"defaults"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]},"edition-node-4":{"sourceType":"script","presets":[["@babel/preset-env",{"targets":{"node":"4"},"modules":"commonjs"}]],"plugins":["@babel/proposal-object-rest-spread"]}}},"_id":"unbounded@5.4.0-next.1700864934.3c3b5167495a918fa8387fabe586eda8fef58a4a","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do `(fn.unbounded || fn).length` to always get the correct amount of arguments, or `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions.\n\nYou can use unbounded via `require('unbounded').binder` like so:\n\n```javascript\nconst { binder } = require('unbounded')\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = binder.call(a, context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\nOr you can patch `Function.prototype.bind` directly:\n\n```javascript\nrequire('unbounded').patch()\nconst context = { hello: 'world' }\nfunction a() {\n    return this.hello\n}\nconst b = a.bind(context)\nequal(b(), context.hello, 'context was correct')\nequal(b.unbounded, a, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@5.4.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> source code for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for web browsers with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-node-4/index.js</code> is <a href=\"https://en.wikipedia.org/wiki/ECMAScript#ES.Next\" title=\"ECMAScript Next\">ESNext</a> compiled for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"3c3b5167495a918fa8387fabe586eda8fef58a4a","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-njBTHzf1Odn0hLTknleMuuZUcNGn1r1KdyP8OWLPnSJORso2cqX3fKDJgGgf+K3CB/EX8hRNGZGzOien18WKhQ==","shasum":"3aae76347c1b0eb76e98a810e0cd15cb2c781ed4","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-5.4.0-next.1700864934.3c3b5167495a918fa8387fabe586eda8fef58a4a.tgz","fileCount":10,"unpackedSize":31245,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDW4w1izmUY8u9l2fkBBBjAi8lCzsun0Tqs5dL2vxDR5gIhAL7E3EvrkCRmXjIVgB2ll6aHdKHGyhjUDXJuwGrvYx3z"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_5.4.0-next.1700864934.3c3b5167495a918fa8387fabe586eda8fef58a4a_1700864997917_0.6261479536042787"},"_hasShrinkwrap":false},"6.0.0":{"name":"unbounded","version":"6.0.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.0","assert-helpers":"^11.6.0","eslint":"^8.54.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","make-deno-edition":"^2.0.0","prettier":"^3.1.0","projectz":"^3.4.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2","valid-directory":"^4.6.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"unbounded@6.0.0","gitHead":"2650039ae9d6b96aa009e7399338de263ed977bb","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-N05pUkLl6Zg20qFA5oIis6/9df5hoZNEUJwq8OiIKvXQltCOzbrV7xUAviakWo6hLdpbtj023mGjtmobgFbZwA==","shasum":"3d01f4b01f3d8923e01b89a1dbfd4ce62664a310","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.0.0.tgz","fileCount":18,"unpackedSize":45831,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtcLjtrEeZzD2DPj16imsEB4Pw+zEfA8Bvn6swcLf5TAIgJm4hkzBTUc046CBBmhkeXq7YL8nzqobysbYvLH/8jVk="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.0.0_1700972242998_0.8508044686399332"},"_hasShrinkwrap":false},"6.0.0-next.1700972251.2650039ae9d6b96aa009e7399338de263ed977bb":{"name":"unbounded","version":"6.0.0-next.1700972251.2650039ae9d6b96aa009e7399338de263ed977bb","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.16.0"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.0","@typescript-eslint/eslint-plugin":"^6.12.0","@typescript-eslint/parser":"^6.12.0","assert-helpers":"^11.6.0","eslint":"^8.54.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","make-deno-edition":"^2.0.0","prettier":"^3.1.0","projectz":"^3.4.0","surge":"^0.23.1","typedoc":"^0.25.3","typescript":"5.2.2","valid-directory":"^4.6.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5"},"_id":"unbounded@6.0.0-next.1700972251.2650039ae9d6b96aa009e7399338de263ed977bb","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.unbounded.bevry.surge.sh/docs/)\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do:\n\n-   `(fn.unbounded || fn).length` to always get the correct amount of arguments\n-   `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions\n-   `fn.bind(firstContext).unbounded.bind(secondContext)` to have `fn` actually bind to the second context, as `fn.bind(firstContext).bind(secondContext)` only binds to the first context\n\nTo have all bounded functions have the `unbounded` property, use `patch`:\n\n```javascript\nimport { patch } from 'unbounded'\npatch()\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = myFunction.bind(context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\nTo have only specific functions have the `unbounded` property, use `binder`:\n\n```javascript\nimport { equal } from 'assert'\nimport { binder } from 'unbounded'\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = binder.call(myFunction, context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\"><h3>Deno</h3></a>\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/unbounded@^6.0.0/edition-deno/index.ts'\n```\n\n<a href=\"https://www.skypack.dev\" title=\"Skypack is a JavaScript Delivery Network for modern web apps\"><h3>Skypack</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//cdn.skypack.dev/unbounded@^6.0.0'\n</script>\n```\n\n<a href=\"https://unpkg.com\" title=\"unpkg is a fast, global content delivery network for everything on npm\"><h3>unpkg</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//unpkg.com/unbounded@^6.0.0'\n</script>\n```\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@6.0.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for web browsers with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-es5/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES5 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 12 || 14 || 16 || 18 || 20 || 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-types/index.d.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled Types with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-deno/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code made to be compatible with <a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\">Deno</a></li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"2650039ae9d6b96aa009e7399338de263ed977bb","_nodeVersion":"20.9.0","_npmVersion":"10.1.0","dist":{"integrity":"sha512-iSEpocKmb+GcilL2ZqZ1dOanOlSn5ZOvmAmvfCQEPeDLbcNs/elHoVQDynKhm5PE4BCzQSxcHfGfFfiehxElPA==","shasum":"bcb6d915d52b260811d17f7673b7136988bc6932","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.0.0-next.1700972251.2650039ae9d6b96aa009e7399338de263ed977bb.tgz","fileCount":18,"unpackedSize":45889,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjTWcZOWaOagTM46914zAF1LVuhdDJm6KY8NnEUnzOLQIhAP1ZNZ+T0rPcy9qeZOfQD3MkBqBSPGNQ1Z+BB2zF0Aeo"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.0.0-next.1700972251.2650039ae9d6b96aa009e7399338de263ed977bb_1700972252583_0.7464668144261419"},"_hasShrinkwrap":false},"6.1.0-next.1701793496.b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9":{"name":"unbounded","version":"6.1.0-next.1701793496.b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.19.0"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.3","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.13.2","assert-helpers":"^11.9.0","eslint":"^8.55.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","make-deno-edition":"^2.0.1","prettier":"^3.1.0","projectz":"^3.4.0","typedoc":"^0.25.4","typescript":"5.3.2","valid-directory":"^4.6.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.1.0-next.1701793496.b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9","readme":"<!-- TITLE/ -->\n\n<h1>unbounded</h1>\n\n<!-- /TITLE -->\n\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.unbounded.bevry.surge.sh/docs/)\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do:\n\n-   `(fn.unbounded || fn).length` to always get the correct amount of arguments\n-   `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions\n-   `fn.bind(firstContext).unbounded.bind(secondContext)` to have `fn` actually bind to the second context, as `fn.bind(firstContext).bind(secondContext)` only binds to the first context\n\nTo have all bounded functions have the `unbounded` property, use `patch`:\n\n```javascript\nimport { patch } from 'unbounded'\npatch()\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = myFunction.bind(context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\nTo have only specific functions have the `unbounded` property, use `binder`:\n\n```javascript\nimport { equal } from 'assert'\nimport { binder } from 'unbounded'\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = binder.call(myFunction, context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n<h2>Install</h2>\n\n<a href=\"https://npmjs.com\" title=\"npm is a package manager for javascript\"><h3>npm</h3></a>\n<ul>\n<li>Install: <code>npm install --save unbounded</code></li>\n<li>Import: <code>import * as pkg from ('unbounded')</code></li>\n<li>Require: <code>const pkg = require('unbounded')</code></li>\n</ul>\n\n<a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\"><h3>Deno</h3></a>\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/unbounded@^6.1.0/edition-deno/index.ts'\n```\n\n<a href=\"https://www.skypack.dev\" title=\"Skypack is a JavaScript Delivery Network for modern web apps\"><h3>Skypack</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//cdn.skypack.dev/unbounded@^6.1.0'\n</script>\n```\n\n<a href=\"https://unpkg.com\" title=\"unpkg is a fast, global content delivery network for everything on npm\"><h3>unpkg</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//unpkg.com/unbounded@^6.1.0'\n</script>\n```\n\n<a href=\"https://jspm.io\" title=\"Native ES Modules CDN\"><h3>jspm</h3></a>\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@6.1.0'\n</script>\n```\n\n<h3><a href=\"https://editions.bevry.me\" title=\"Editions are the best way to produce and consume packages you care about.\">Editions</a></h3>\n\n<p>This package is published with the following editions:</p>\n\n<ul><li><code>unbounded</code> aliases <code>unbounded/index.cjs</code> which uses the <a href=\"https://github.com/bevry/editions\" title=\"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\">Editions Autoloader</a> to automatically select the correct edition for the consumer's environment</li>\n<li><code>unbounded/source/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-browsers/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for web browsers with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-es2022/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 21 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-es5/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES5 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 4 with <a href=\"https://nodejs.org/dist/latest-v5.x/docs/api/modules.html\" title=\"Node/CJS Modules\">Require</a> for modules</li>\n<li><code>unbounded/edition-es2022-esm/index.js</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled against ES2022 for <a href=\"https://nodejs.org\" title=\"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\">Node.js</a> 21 with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-types/index.d.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> compiled Types with <a href=\"https://babeljs.io/docs/learn-es2015/#modules\" title=\"ECMAScript Modules\">Import</a> for modules</li>\n<li><code>unbounded/edition-deno/index.ts</code> is <a href=\"https://www.typescriptlang.org/\" title=\"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. \">TypeScript</a> source code made to be compatible with <a href=\"https://deno.land\" title=\"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\">Deno</a></li></ul>\n\n<!-- /INSTALL -->\n\n\n<!-- HISTORY/ -->\n\n<h2>History</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/HISTORY.md#files\">Discover the release history by heading on over to the <code>HISTORY.md</code> file.</a>\n\n<!-- /HISTORY -->\n\n\n<!-- CONTRIBUTE/ -->\n\n<h2>Contribute</h2>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /CONTRIBUTE -->\n\n\n<!-- BACKERS/ -->\n\n<h2>Backers</h2>\n\n<h3>Maintainers</h3>\n\nThese amazing people are maintaining this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<h3>Sponsors</h3>\n\nNo sponsors yet! Will you be the first?\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n<h3>Contributors</h3>\n\nThese amazing people have contributed code to this project:\n\n<ul><li><a href=\"https://balupton.com\">Benjamin Lupton</a> — <a href=\"https://github.com/bevry/unbounded/commits?author=balupton\" title=\"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\">view contributions</a></li></ul>\n\n<a href=\"https://github.com/bevry/unbounded/blob/master/CONTRIBUTING.md#files\">Discover how you can contribute by heading on over to the <code>CONTRIBUTING.md</code> file.</a>\n\n<!-- /BACKERS -->\n\n\n<!-- LICENSE/ -->\n\n<h2>License</h2>\n\nUnless stated otherwise all works are:\n\n<ul><li>Copyright &copy; 2018+ <a href=\"https://balupton.com\">Benjamin Lupton</a></li></ul>\n\nand licensed under:\n\n<ul><li><a href=\"http://spdx.org/licenses/Artistic-2.0.html\">Artistic License 2.0</a></li></ul>\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-A30gVF+jArvIwqMmoyZzXSEelFpmoBT7g+PbzCg2YO/MldPuWQsFlZkSut3MEd8uXDdYGKufrr5W7gFK0owIIA==","shasum":"464775ddcde9bfcb18713b040d0889e173545d38","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.1.0-next.1701793496.b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9.tgz","fileCount":18,"unpackedSize":45632,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhVfiZlimeQsFIdao0IaqjDz0NXF1nOKQESw2ku/oRsAiACiGK3HlG2V47VCnPenflUPBfdHn+5a0q5DzIuBPexiA=="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.1.0-next.1701793496.b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9_1701793497993_0.3129832040777689"},"_hasShrinkwrap":false},"6.1.0":{"name":"unbounded","version":"6.1.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","license":"Artistic-2.0","keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"funding":"https://bevry.me/fund","author":{"name":"2018+ Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.19.0"},"devDependencies":{"@bevry/update-contributors":"^1.23.0","@types/node":"^20.10.3","@typescript-eslint/eslint-plugin":"^6.13.2","@typescript-eslint/parser":"^6.13.2","assert-helpers":"^11.9.0","eslint":"^8.55.0","eslint-config-bevry":"^5.2.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.0.1","kava":"^7.4.0","make-deno-edition":"^2.0.1","prettier":"^3.1.0","projectz":"^3.4.0","typedoc":"^0.25.4","typescript":"5.3.2","valid-directory":"^4.6.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:contributors && npm run our:meta:docs && npm run our:meta:projectz","our:meta:contributors":"update-contributors","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz compile","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:directory && npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:directory":"valid-directory","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.1.0","gitHead":"b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Urd4W0lyK0wTs9T26m2DxZ+LCh/JGhAr9C9G4LojxRAaxnAiT0Uv5+qgbjAFAQQavD8hzgcKCwMldJfrPekWow==","shasum":"eace5eca2f99f59eef746e5ba440d45314caf7e7","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.1.0.tgz","fileCount":18,"unpackedSize":45574,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEODlmU829p7MLx/SGeS6QXZ1paEABuiEss+bWn3+EZRAiEAiOnwx2YjkUMbCBpHz3RZ/Mb1M/+V+G8tKa9ug+Jafi4="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.1.0_1701793510351_0.7256653029857014"},"_hasShrinkwrap":false},"6.2.0-next.1703664355.2f0ee430c737562445f8596d433afc0b066af63c":{"name":"unbounded","version":"6.2.0-next.1703664355.2f0ee430c737562445f8596d433afc0b066af63c","license":"Artistic-2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io/) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io/) (https://github.com/codecov)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://bevry.me) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.20.0"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.11.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","kava":"^7.5.0","make-deno-edition":"^2.1.0","prettier":"^3.1.1","projectz":"^4.0.0","typedoc":"^0.25.4","typescript":"5.3.3","valid-directory":"^4.7.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.2.0-next.1703664355.2f0ee430c737562445f8596d433afc0b066af63c","readme":"<!-- TITLE/ -->\n\n# unbounded\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.unbounded.bevry.surge.sh/docs/)\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do:\n\n-   `(fn.unbounded || fn).length` to always get the correct amount of arguments\n-   `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions\n-   `fn.bind(firstContext).unbounded.bind(secondContext)` to have `fn` actually bind to the second context, as `fn.bind(firstContext).bind(secondContext)` only binds to the first context\n\nTo have all bounded functions have the `unbounded` property, use `patch`:\n\n```javascript\nimport { patch } from 'unbounded'\npatch()\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = myFunction.bind(context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\nTo have only specific functions have the `unbounded` property, use `binder`:\n\n```javascript\nimport { equal } from 'assert'\nimport { binder } from 'unbounded'\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = binder.call(myFunction, context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n-   Install: `npm install --save unbounded`\n-   Import: `import * as pkg from ('unbounded')`\n-   Require: `const pkg = require('unbounded')`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/unbounded@^6.2.0/edition-deno/index.ts'\n```\n### [Skypack](https://www.skypack.dev \"Skypack is a JavaScript Delivery Network for modern web apps\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//cdn.skypack.dev/unbounded@^6.2.0'\n</script>\n```\n### [unpkg](https://unpkg.com \"unpkg is a fast, global content delivery network for everything on npm\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//unpkg.com/unbounded@^6.2.0'\n</script>\n```\n### [jspm](https://jspm.io \"Native ES Modules CDN\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@6.2.0'\n</script>\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `unbounded` aliases `unbounded/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `unbounded/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-browsers/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for web browsers with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es2022-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/unbounded/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/unbounded/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://github.com/balupton) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/unbounded/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io/) — Empower developers with tools to improve code quality and testing.\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io/)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://bevry.me)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"2f0ee430c737562445f8596d433afc0b066af63c","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-QTTASodkwQjNrS9P+2nIRXTcBPCnlnNB47EpRUrnO4r4vR0BhJeUiaNEpGbYdJhg7onvxcd5P9UXuLmQI6MtBQ==","shasum":"fc6289a85bb818018ff48dda74b0ae7ad1c3bdc3","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.2.0-next.1703664355.2f0ee430c737562445f8596d433afc0b066af63c.tgz","fileCount":18,"unpackedSize":47904,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLC3E3FLSVadKzJLSechMCPwN7Y5fAea7VR26jk0JuvgIhAIui2iuV/ENbT2JlCN4NVSAl7zsnZvYKJGtBwPa06N5x"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.2.0-next.1703664355.2f0ee430c737562445f8596d433afc0b066af63c_1703664356927_0.0757130301364124"},"_hasShrinkwrap":false},"6.2.0":{"name":"unbounded","version":"6.2.0","license":"Artistic-2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io/) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io/) (https://github.com/codecov)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://bevry.me) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.20.0"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.11.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","kava":"^7.5.0","make-deno-edition":"^2.1.0","prettier":"^3.1.1","projectz":"^4.0.0","typedoc":"^0.25.4","typescript":"5.3.3","valid-directory":"^4.7.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.2.0","gitHead":"2f0ee430c737562445f8596d433afc0b066af63c","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-gQx0OS8Mg5usDTCmqaBGAfbbeRtBkFGWP6WqHbLsoEaRtCW7sY/1BrpkoW83SRZYROhF+lVOjK6y/mKz9VSjXw==","shasum":"e0a78ba76a5d8483fc5175969cb15eeb0df82383","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.2.0.tgz","fileCount":18,"unpackedSize":47847,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEjjcmcNJBhtHSUkIH+mjrrOu9YCOpJUi0HwLvTAsot0AiEArhKMHx3bfseuumro3683bAMQOSnYBMnHTzeWuOYsFk0="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.2.0_1703664467142_0.3051524832706407"},"_hasShrinkwrap":false},"6.3.0-next.1703780198.a19f9f048f2a8c3f257b337126ff35fc1ac62e4f":{"name":"unbounded","version":"6.3.0-next.1703780198.a19f9f048f2a8c3f257b337126ff35fc1ac62e4f","license":"Artistic-2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://www.pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.21.0"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","kava":"^7.6.0","make-deno-edition":"^2.2.0","prettier":"^3.1.1","projectz":"^4.1.1","typedoc":"^0.25.4","typescript":"5.3.3","valid-directory":"^4.8.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.3.0-next.1703780198.a19f9f048f2a8c3f257b337126ff35fc1ac62e4f","readme":"<!-- TITLE/ -->\n\n# unbounded\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.unbounded.bevry.surge.sh/docs/)\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do:\n\n-   `(fn.unbounded || fn).length` to always get the correct amount of arguments\n-   `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions\n-   `fn.bind(firstContext).unbounded.bind(secondContext)` to have `fn` actually bind to the second context, as `fn.bind(firstContext).bind(secondContext)` only binds to the first context\n\nTo have all bounded functions have the `unbounded` property, use `patch`:\n\n```javascript\nimport { patch } from 'unbounded'\npatch()\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = myFunction.bind(context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\nTo have only specific functions have the `unbounded` property, use `binder`:\n\n```javascript\nimport { equal } from 'assert'\nimport { binder } from 'unbounded'\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = binder.call(myFunction, context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n-   Install: `npm install --save unbounded`\n-   Import: `import * as pkg from ('unbounded')`\n-   Require: `const pkg = require('unbounded')`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/unbounded@^6.3.0/edition-deno/index.ts'\n```\n### [Skypack](https://www.skypack.dev \"Skypack is a JavaScript Delivery Network for modern web apps\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//cdn.skypack.dev/unbounded@^6.3.0'\n</script>\n```\n### [unpkg](https://unpkg.com \"unpkg is a fast, global content delivery network for everything on npm\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//unpkg.com/unbounded@^6.3.0'\n</script>\n```\n### [jspm](https://jspm.io \"Native ES Modules CDN\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@6.3.0'\n</script>\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `unbounded` aliases `unbounded/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `unbounded/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-browsers/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for web browsers with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es2022-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/unbounded/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/unbounded/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/unbounded/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://www.pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"a19f9f048f2a8c3f257b337126ff35fc1ac62e4f","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-B+ErOypLhLSiAHWqa/jCkCWDf2cgOv/kj4PY6+kWMp195wQUbjZH/gEo2xPUWFGCUsLdm+0KpPvsd15876TTvg==","shasum":"c3bcd57dd3fc773b7ac6a51d6d777eecdf5f7b48","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.3.0-next.1703780198.a19f9f048f2a8c3f257b337126ff35fc1ac62e4f.tgz","fileCount":18,"unpackedSize":49285,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeyp12pEw+CjLO/LqBcIMftSs3BZzhQntA/VVLIT6dyAIhAL5BwQmLdG20G9dF+GowlajkZKP7qpbR3mGDxR982JAx"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.3.0-next.1703780198.a19f9f048f2a8c3f257b337126ff35fc1ac62e4f_1703780249187_0.8224502072798994"},"_hasShrinkwrap":false},"6.3.0":{"name":"unbounded","version":"6.3.0","license":"Artistic-2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://www.pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.21.0"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","kava":"^7.6.0","make-deno-edition":"^2.2.0","prettier":"^3.1.1","projectz":"^4.1.1","typedoc":"^0.25.4","typescript":"5.3.3","valid-directory":"^4.8.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.3.0","gitHead":"a19f9f048f2a8c3f257b337126ff35fc1ac62e4f","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-jb+dVsuCSRdNzILzwxLVjgpeoHrbX/p6OSiN8GNMtk4ys1EFC8EYRoj4TsiF/lQS3X4uETiK5XUueJ2Tf9AO7Q==","shasum":"03dae30c8ea249ecbb90847388394dcf38f6abe6","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.3.0.tgz","fileCount":18,"unpackedSize":49228,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCVlATFRcMxqdXzaSB2/ArjiZ93PNn5rtK7MsxLYamGPwIhAMIPt73RmJPhlLtD2SRjhhcwtYGrQ2DobHxatUDl9d6y"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.3.0_1703780255607_0.8439400512979587"},"_hasShrinkwrap":false},"6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f":{"name":"unbounded","version":"6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f","license":"Artistic-2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://www.pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.21.0"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","kava":"^7.7.0","make-deno-edition":"^2.2.0","prettier":"^3.1.1","projectz":"^4.1.1","typedoc":"^0.25.4","typescript":"5.3.3","valid-directory":"^4.8.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f","readme":"<!-- TITLE/ -->\n\n# unbounded\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.unbounded.bevry.surge.sh/docs/)\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do:\n\n-   `(fn.unbounded || fn).length` to always get the correct amount of arguments\n-   `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions\n-   `fn.bind(firstContext).unbounded.bind(secondContext)` to have `fn` actually bind to the second context, as `fn.bind(firstContext).bind(secondContext)` only binds to the first context\n\nTo have all bounded functions have the `unbounded` property, use `patch`:\n\n```javascript\nimport { patch } from 'unbounded'\npatch()\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = myFunction.bind(context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\nTo have only specific functions have the `unbounded` property, use `binder`:\n\n```javascript\nimport { equal } from 'assert'\nimport { binder } from 'unbounded'\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = binder.call(myFunction, context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n-   Install: `npm install --save unbounded`\n-   Import: `import * as pkg from ('unbounded')`\n-   Require: `const pkg = require('unbounded')`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/unbounded@^6.3.1/edition-deno/index.ts'\n```\n### [Skypack](https://www.skypack.dev \"Skypack is a JavaScript Delivery Network for modern web apps\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//cdn.skypack.dev/unbounded@^6.3.1'\n</script>\n```\n### [unpkg](https://unpkg.com \"unpkg is a fast, global content delivery network for everything on npm\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//unpkg.com/unbounded@^6.3.1'\n</script>\n```\n### [jspm](https://jspm.io \"Native ES Modules CDN\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@6.3.1'\n</script>\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `unbounded` aliases `unbounded/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `unbounded/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-browsers/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for web browsers with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es2022-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/unbounded/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/unbounded/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/unbounded/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://www.pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md","gitHead":"1fa3ac2dd35799623f0f0c83cf7457fb19220e1f","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Iiyc/CA4etaNKrPrEbuQ+3XEbV3WZRjgbiU1yMq7ggw8AqQLlb1j/6Fkab7toFaFBMkS4fwq8CrRwZPIgeZeXQ==","shasum":"4b8d15b399c965c33dd3ee678a60a0b0ab1e8576","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f.tgz","fileCount":18,"unpackedSize":53752,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHLbn4+uFMe6fLhKLjObdCBolCcdIGmbGAN1qYleIhHiAiEA+4gaSPaxGmDqsjI4K4OSP+TSm0JstQsAj+R1SMmE4hs="}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f_1703831544516_0.9071973881285247"},"_hasShrinkwrap":false},"6.3.1":{"name":"unbounded","version":"6.3.1","license":"Artistic-2.0","description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","funding":"https://bevry.me/fund","repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"badges":{"list":["githubworkflow","npmversion","npmdownloads","---","githubsponsors","thanksdev","patreon","liberapay","buymeacoffee","opencollective","crypto","paypal","---","discord","twitch"],"config":{"githubWorkflow":"bevry","githubSponsorsUsername":"balupton","thanksdevGithubUsername":"bevry","buymeacoffeeUsername":"balupton","cryptoURL":"https://bevry.me/crypto","flattrUsername":"balupton","liberapayUsername":"bevry","opencollectiveUsername":"bevry","patreonUsername":"bevry","paypalURL":"https://bevry.me/paypal","wishlistURL":"https://bevry.me/wishlist","discordServerID":"1147436445783560193","discordServerInvite":"nQuXddV7VP","twitchUsername":"balupton","githubUsername":"bevry","githubRepository":"unbounded","githubSlug":"bevry/unbounded","npmPackageName":"unbounded"}},"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"authors":["Benjamin Lupton <b@lupton.cc> (https://balupton.com) (https://github.com/balupton): Accelerating collaborative wisdom."],"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"sponsors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew): Software engineer and researcher","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa): We're Balsa, and we're building tools for builders.","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov): Empower developers with tools to improve code quality and testing.","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Sentry (https://sentry.io) (https://github.com/getsentry): Real-time crash reporting for your web apps, mobile apps, and games.","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm): Syntax Podcast"],"donors":["Andrew Nesbitt (https://nesbitt.io) (https://github.com/andrew)","Armen Mkrtchian (https://mogoni.dev) (https://github.com/Armenm)","Balsa <hello@balsa.com> (https://balsa.com) (https://github.com/balsa)","Chad (https://opencollective.com/chad8)","Codecov <hello-codecov@sentry.io> (https://codecov.io) (https://github.com/codecov)","dr.dimitru (https://veliovgroup.com) (https://github.com/dr-dimitru)","Elliott Ditman (https://elliottditman.com) (https://github.com/elliottditman)","entroniq (https://gitlab.com/entroniq) (https://thanks.dev/d/gl/entroniq)","GitHub (https://github.com/about) (https://github.com/github)","Hunter Beast (https://cryptoquick.com) (https://github.com/cryptoquick)","Jean-Luc Geering (https://github.com/jlgeering) (https://opencollective.com/jlgeering) (https://twitter.com/jlgeering)","Michael Duane Mooring (https://mdm.cc) (https://github.com/mikeumus) (https://opencollective.com/mikeumus) (https://twitter.com/mikeumus)","Michael Harry Scepaniak <mhs1.sys@gmail.com> (https://michaelscepaniak.com) (https://github.com/hispanic)","Mohammed Shah <shah@idk.uno> (https://github.com/smashah) (https://thanks.dev/d/gh/smashah) (https://twitter.com/smashah)","Mr. Henry <hello@mrhenry.be> (https://mrhenry.be) (https://github.com/mrhenry)","Nermal <nermalcat69@skiff.com> (https://arjunaditya.vercel.app) (https://github.com/nermalcat69)","Pleo (https://www.pleo.io) (https://github.com/pleo-io)","Poonacha Medappa (https://poonachamedappa.com) (https://github.com/km-Poonacha)","Rob Morris <rob@prismatik.com.au> (https://github.com/Rob-Morris)","Robert de Forest <guitar.robot@gmail.com> (https://github.com/rdeforest)","Sentry (https://sentry.io) (https://github.com/getsentry)","ServieJS (https://github.com/serviejs) (https://thanks.dev/d/gh/serviejs)","Skunk Team (https://skunk.team) (https://github.com/skunkteam)","Syntax <scott@syntax.fm> (https://syntax.fm) (https://github.com/syntaxfm)","WriterJohnBuck (https://github.com/WriterJohnBuck)"],"engines":{"node":">=4"},"editions":[{"description":"TypeScript source code with Import for modules","directory":"source","entry":"index.ts","tags":["source","typescript","import"],"engines":false},{"description":"TypeScript compiled against ES2022 for web browsers with Import for modules","directory":"edition-browsers","entry":"index.js","tags":["compiled","javascript","import"],"engines":{"node":false,"browsers":"defaults"}},{"description":"TypeScript compiled against ES2022 for Node.js 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es2022","entry":"index.js","tags":["compiled","javascript","es2022","require"],"engines":{"node":"6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES5 for Node.js 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with Require for modules","directory":"edition-es5","entry":"index.js","tags":["compiled","javascript","es5","require"],"engines":{"node":"4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled against ES2022 for Node.js 12 || 14 || 16 || 18 || 20 || 21 with Import for modules","directory":"edition-es2022-esm","entry":"index.js","tags":["compiled","javascript","es2022","import"],"engines":{"node":"12 || 14 || 16 || 18 || 20 || 21","browsers":false}},{"description":"TypeScript compiled Types with Import for modules","directory":"edition-types","entry":"index.d.ts","tags":["compiled","types","import"],"engines":false},{"description":"TypeScript source code made to be compatible with Deno","directory":"edition-deno","entry":"index.ts","tags":["typescript","import","deno"],"engines":{"deno":true,"browsers":true}}],"types":"edition-types/index.d.ts","type":"module","main":"index.cjs","exports":{"node":{"types":"./edition-types/index.d.ts","import":"./edition-es2022-esm/index.js","default":"./index.cjs","require":"./edition-es2022/index.js"},"browser":{"types":"./edition-types/index.d.ts","import":"./edition-browsers/index.js"}},"deno":"edition-deno/index.ts","browser":"edition-browsers/index.js","module":"edition-browsers/index.js","dependencies":{"editions":"^6.21.0"},"devDependencies":{"@types/node":"^20.10.5","@typescript-eslint/eslint-plugin":"^6.16.0","@typescript-eslint/parser":"^6.16.0","assert-helpers":"^11.12.0","eslint":"^8.56.0","eslint-config-bevry":"^5.3.0","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.2","kava":"^7.7.0","make-deno-edition":"^2.2.0","prettier":"^3.1.1","projectz":"^4.1.1","typedoc":"^0.25.4","typescript":"5.3.3","valid-directory":"^4.8.0","valid-module":"^2.6.0"},"scripts":{"our:clean":"rm -rf ./docs ./edition* ./es2015 ./es5 ./out ./.next","our:compile":"npm run our:compile:deno && npm run our:compile:edition-browsers && npm run our:compile:edition-es2022 && npm run our:compile:edition-es2022-esm && npm run our:compile:edition-es5 && npm run our:compile:edition-types","our:compile:deno":"make-deno-edition --attempt","our:compile:edition-browsers":"tsc --module ESNext --target ES2022 --outDir ./edition-browsers --project tsconfig.json && ( test ! -d edition-browsers/source || ( mv edition-browsers/source edition-temp && rm -rf edition-browsers && mv edition-temp edition-browsers ) )","our:compile:edition-es2022":"tsc --module commonjs --target ES2022 --outDir ./edition-es2022 --project tsconfig.json && ( test ! -d edition-es2022/source || ( mv edition-es2022/source edition-temp && rm -rf edition-es2022 && mv edition-temp edition-es2022 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es2022/package.json","our:compile:edition-es2022-esm":"tsc --module ESNext --target ES2022 --outDir ./edition-es2022-esm --project tsconfig.json && ( test ! -d edition-es2022-esm/source || ( mv edition-es2022-esm/source edition-temp && rm -rf edition-es2022-esm && mv edition-temp edition-es2022-esm ) ) && printf '%s' '{\"type\": \"module\"}' > edition-es2022-esm/package.json","our:compile:edition-es5":"tsc --module commonjs --target ES5 --outDir ./edition-es5 --project tsconfig.json && ( test ! -d edition-es5/source || ( mv edition-es5/source edition-temp && rm -rf edition-es5 && mv edition-temp edition-es5 ) ) && printf '%s' '{\"type\": \"commonjs\"}' > edition-es5/package.json","our:compile:edition-types":"tsc --emitDeclarationOnly --declaration --declarationMap --declarationDir ./edition-types --project tsconfig.json && ( test ! -d edition-types/source || ( mv edition-types/source edition-temp && rm -rf edition-types && mv edition-temp edition-types ) )","our:deploy":"printf '%s\n' 'no need for this project'","our:meta":"npm run our:meta:docs && npm run our:meta:projectz","our:meta:docs":"npm run our:meta:docs:typedoc","our:meta:docs:typedoc":"rm -rf ./docs && typedoc --exclude '**/+(*test*|node_modules)' --excludeExternals --out ./docs ./source","our:meta:projectz":"projectz --offline","our:release":"npm run our:release:prepare && npm run our:release:check-changelog && npm run our:release:check-dirty && npm run our:release:tag && npm run our:release:push","our:release:check-changelog":"cat ./HISTORY.md | grep \"v$npm_package_version\" || (printf '%s\n' \"add a changelog entry for v$npm_package_version\" && exit -1)","our:release:check-dirty":"git diff --exit-code","our:release:prepare":"npm run our:clean && npm run our:compile && npm run our:test && npm run our:meta","our:release:push":"git push origin && git push origin --tags","our:release:tag":"export MESSAGE=$(cat ./HISTORY.md | sed -n \"/## v$npm_package_version/,/##/p\" | sed 's/## //' | awk 'NR>1{print buf}{buf = $0}') && test \"$MESSAGE\" || (printf '%s\n' 'proper changelog entry not found' && exit -1) && git tag \"v$npm_package_version\" -am \"$MESSAGE\"","our:setup":"npm run our:setup:install","our:setup:install":"npm install","our:test":"npm run our:verify && npm test","our:verify":"npm run our:verify:eslint && npm run our:verify:module && npm run our:verify:prettier","our:verify:eslint":"eslint --fix --ignore-pattern '**/*.d.ts' --ignore-pattern '**/vendor/' --ignore-pattern '**/node_modules/' --ext .mjs,.js,.jsx,.ts,.tsx ./source","our:verify:module":"valid-module","our:verify:prettier":"prettier --write .","test":"node ./test.cjs"},"eslintConfig":{"extends":["bevry"]},"prettier":{"semi":false,"singleQuote":true,"trailingComma":"es5","endOfLine":"lf"},"_id":"unbounded@6.3.1","gitHead":"1fa3ac2dd35799623f0f0c83cf7457fb19220e1f","_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-I02/dMCiMXSc+Hqi7U7fAcT9/XnQ0GgWSAqRfl2/7TRkrO7yeZw+0haDh5OpPljYjaRMzWODkMwpbMkCi47z8g==","shasum":"ecc52d13f1675bc2eac41d6a0c15cf1cd105ccef","tarball":"https://registry.npmjs.org/unbounded/-/unbounded-6.3.1.tgz","fileCount":18,"unpackedSize":53695,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdlYQJvjebiWCjJNCitFcVM2MPVBlGBzsb3TRLTjWN0QIhALdx8yzyGYpWI1Y1+Baqc75wptToOqqTJgc7xaLtJh9N"}]},"_npmUser":{"name":"bevryme","email":"us@bevry.me"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/unbounded_6.3.1_1703831574739_0.26878602231435944"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-13T12:43:02.119Z","1.0.0":"2018-07-13T12:43:02.195Z","modified":"2023-12-29T06:32:55.093Z","1.1.0":"2018-07-13T13:50:08.077Z","1.2.0":"2019-01-01T06:51:09.245Z","1.3.0-next.1573626172.160ad2a59b276257efed9cb7a482df23de838d78":"2019-11-13T06:22:53.850Z","1.3.0":"2019-11-13T06:25:39.564Z","1.3.0-next.1573632800.8e763ed2e1b3c328b6659f6c16093f8dbed81222":"2019-11-13T08:13:22.675Z","1.3.0-next.1573740413.0351fe0baf6b0628ace8d039e0d0846041bbd969":"2019-11-14T14:06:55.463Z","2.0.0-next.1574062176.b11846a2df03b76797cc017f56b5af1d4e90b4a7":"2019-11-18T07:29:37.717Z","2.0.0":"2019-11-18T07:30:43.968Z","2.1.0-next.1575156676.fcadb4aaf71155c727aca4e7840e1c3c69dbba68":"2019-11-30T23:31:17.500Z","2.1.0":"2019-11-30T23:32:32.504Z","2.2.0-next.1575219949.c81c860d68208f95aeeb3081e2d526cb7b23b4fa":"2019-12-01T17:05:51.524Z","2.2.0":"2019-12-01T17:06:31.787Z","2.3.0-next.1575922704.a6d4291acc93cfa980b912c450d545b06f3edcca":"2019-12-09T20:18:25.914Z","2.3.0":"2019-12-09T20:19:25.360Z","2.3.0-next.1584137852.214918e07c0ea3056922b13008bf113089c423e1":"2020-03-13T22:17:33.447Z","3.0.0-next.1589196829.ddf16d69635ec0199f4dda39564cb8ad83df7a50":"2020-05-11T11:33:50.937Z","3.0.0":"2020-05-11T11:34:51.073Z","3.1.0-next.1590011404.3a9ab9a3eb17ee10b6662ad38ab1f8462202c0da":"2020-05-20T21:50:06.145Z","3.1.0":"2020-05-20T21:51:35.494Z","3.2.0":"2020-05-21T12:59:47.209Z","3.3.0-next.1590083193.6d40cd3e434e0f366c2afdc38b2047a63ca66d21":"2020-05-21T17:46:34.973Z","3.3.0":"2020-05-21T17:47:33.923Z","3.4.0-next.1591787819.d1fd7dc5cb6f994198dfbbe28e312f7c8194ba22":"2020-06-10T11:17:00.811Z","3.4.0":"2020-06-10T11:17:54.433Z","3.5.0-next.1591803704.8320cc54458f33fd5897aa85998199fa67cf260f":"2020-06-10T15:41:46.031Z","3.5.0":"2020-06-10T15:42:47.528Z","3.6.0-next.1592656790.3a852de18c30d6c479c21f8b6f2b721cf7520e8f":"2020-06-20T12:39:52.416Z","3.6.0":"2020-06-20T12:47:34.096Z","3.7.0-next.1592730641.ded5dbdbb9e64a8f7e412b37a2ef209ed2d36069":"2020-06-21T09:10:43.464Z","3.7.0":"2020-06-21T09:11:48.397Z","3.8.0-next.1593061737.5f1459bfbf4fbd6b49838fc9c4eb6c75e70edb57":"2020-06-25T05:08:59.315Z","3.8.0":"2020-06-25T05:10:02.491Z","3.8.0-next.1593741946.f8dc5f5cb939275fe36536d24806c17f127ee35a":"2020-07-03T02:05:48.262Z","3.8.0-next.1595337406.9d03f25b19a5b223c3ebea9063e0d4dd10baacdf":"2020-07-21T13:16:47.356Z","3.9.0-next.1595453244.a1b3b298dcfb490f5752d90d3259117d7eb35314":"2020-07-22T21:27:25.710Z","3.9.0":"2020-07-22T21:28:28.390Z","3.10.0-next.1596524684.0a3a93fcfff36d62442a6c90ce29a46a47127c56":"2020-08-04T07:04:45.655Z","3.10.0":"2020-08-04T07:05:20.095Z","3.11.0-next.1597703092.b6f7ac775ae4df5924d960d75cacad4f74467c29":"2020-08-17T22:24:53.642Z","3.11.0":"2020-08-17T22:25:17.214Z","3.11.0-next.1598187659.c4498df92962608e5483a047840d1e3eb33a8793":"2020-08-23T13:01:00.477Z","3.12.0-next.1599282377.ac3d05160a27bfdeaacb240263a4b3ab7f2b76ad":"2020-09-05T05:06:18.319Z","3.12.0":"2020-09-05T05:07:17.687Z","3.12.0-next.1599394100.85bd140b851295009779cc45274650ecb1d69b76":"2020-09-06T12:08:21.900Z","3.12.0-next.1599988998.1bce7ef161aa6d67f455cb6b17043656c7fda8e8":"2020-09-13T09:23:20.178Z","3.12.0-next.1600596137.8afc56f8d5ad10d889938504a94dd3c16f90a041":"2020-09-20T10:02:19.320Z","3.12.0-next.1601205035.029aebd0969afd3e2614e7d6989846da9e43e96e":"2020-09-27T11:10:38.433Z","3.12.0-next.1602405886.c843541ac6a8e6c9174dccb8c54f3d9dab3c8689":"2020-10-11T08:44:47.502Z","3.12.0-next.1603016262.faddeaef278e8c291a14dd6a10d798de464b1e99":"2020-10-18T10:17:43.916Z","3.12.0-next.1603620000.9a1e223641e4335d8e801ecd5ea8fd8644a4b59e":"2020-10-25T10:00:01.507Z","3.12.0-next.1603629402.e59eae313cd5c9d0bb8e2d3271a9798a9cc06902":"2020-10-25T12:36:44.032Z","3.13.0-next.1603943786.7c80415f07e6c32f7924a76d583b15bd46446197":"2020-10-29T03:56:28.112Z","3.13.0":"2020-10-29T03:56:58.864Z","3.13.0-next.1604232432.2d46d8729e85d8c94ae9e18876105558c8805e8c":"2020-11-01T12:07:13.473Z","3.14.0-next.1627432248.50f678d99538d52dddf021af1764833fa8fdaa73":"2021-07-28T00:30:50.232Z","3.14.0":"2021-07-28T00:31:10.068Z","3.15.0-next.1627673316.0eb5a8cb25f3a6bda1c7f5c7e9b0a1e640887c1e":"2021-07-30T19:28:38.433Z","3.15.0":"2021-07-30T19:30:49.388Z","3.16.0-next.1698929636.499996fbcab3426a9795718ac1d1e9fe3bc4b52a":"2023-11-02T12:53:58.434Z","3.16.0":"2023-11-02T12:54:37.949Z","4.0.0-next.1699812242.13d7c0ec33fa159a6936e1c8452dbd4322f5e279":"2023-11-12T18:04:03.695Z","4.0.0":"2023-11-12T18:04:05.298Z","5.0.0-next.1699827224.210bccabfcfad6a03d7d883f891af49a4e2cbc3a":"2023-11-12T22:13:47.222Z","5.0.0":"2023-11-12T22:13:53.817Z","5.1.0":"2023-11-13T11:55:07.612Z","5.1.0-next.1699876514.82df04fc710ed7752916382d8dc3e93b698942b3":"2023-11-13T11:55:15.844Z","5.2.0":"2023-11-14T16:09:09.685Z","5.2.0-next.1699978157.697c3bf0955c224d6072acf9d7df053a8b3f5934":"2023-11-14T16:09:19.965Z","5.3.0-next.1700543226.a4928270a9b1c70659dc52d141e073541a5cc754":"2023-11-21T05:07:08.136Z","5.3.0":"2023-11-21T05:07:11.433Z","5.4.0":"2023-11-24T22:28:56.289Z","5.4.0-next.1700864934.3c3b5167495a918fa8387fabe586eda8fef58a4a":"2023-11-24T22:29:58.080Z","6.0.0":"2023-11-26T04:17:23.195Z","6.0.0-next.1700972251.2650039ae9d6b96aa009e7399338de263ed977bb":"2023-11-26T04:17:32.748Z","6.1.0-next.1701793496.b7a8307ca91727fa1e808d4c297b3d1c6cbcbee9":"2023-12-05T16:24:58.231Z","6.1.0":"2023-12-05T16:25:10.652Z","6.2.0-next.1703664355.2f0ee430c737562445f8596d433afc0b066af63c":"2023-12-27T08:05:57.084Z","6.2.0":"2023-12-27T08:07:47.409Z","6.3.0-next.1703780198.a19f9f048f2a8c3f257b337126ff35fc1ac62e4f":"2023-12-28T16:17:29.431Z","6.3.0":"2023-12-28T16:17:35.766Z","6.3.1-next.1703831519.1fa3ac2dd35799623f0f0c83cf7457fb19220e1f":"2023-12-29T06:32:24.680Z","6.3.1":"2023-12-29T06:32:54.908Z"},"maintainers":[{"name":"bevryme","email":"us@bevry.me"}],"description":"Function.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function","homepage":"https://github.com/bevry/unbounded","keywords":["bind","binded","browser","deno","deno-edition","deno-entry","denoland","es2022","es5","function","module","node","typed","types","typescript","unbound","unbounded"],"repository":{"type":"git","url":"git+https://github.com/bevry/unbounded.git"},"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"}],"author":{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://balupton.com"},"bugs":{"url":"https://github.com/bevry/unbounded/issues"},"license":"Artistic-2.0","readme":"<!-- TITLE/ -->\n\n# unbounded\n\n<!-- /TITLE -->\n\n<!-- BADGES/ -->\n\n<span class=\"badge-githubworkflow\"><a href=\"https://github.com/bevry/unbounded/actions?query=workflow%3Abevry\" title=\"View the status of this project's GitHub Workflow: bevry\"><img src=\"https://github.com/bevry/unbounded/workflows/bevry/badge.svg\" alt=\"Status of the GitHub Workflow: bevry\" /></a></span>\n<span class=\"badge-npmversion\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/v/unbounded.svg\" alt=\"NPM version\" /></a></span>\n<span class=\"badge-npmdownloads\"><a href=\"https://npmjs.org/package/unbounded\" title=\"View this project on NPM\"><img src=\"https://img.shields.io/npm/dm/unbounded.svg\" alt=\"NPM downloads\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n<br class=\"badge-separator\" />\n<span class=\"badge-discord\"><a href=\"https://discord.gg/nQuXddV7VP\" title=\"Join this project's community on Discord\"><img src=\"https://img.shields.io/discord/1147436445783560193?logo=discord&amp;label=discord\" alt=\"Discord server badge\" /></a></span>\n<span class=\"badge-twitch\"><a href=\"https://www.twitch.tv/balupton\" title=\"Join this project's community on Twitch\"><img src=\"https://img.shields.io/twitch/status/balupton?logo=twitch\" alt=\"Twitch community badge\" /></a></span>\n\n<!-- /BADGES -->\n\n<!-- DESCRIPTION/ -->\n\nFunction.prototype.bind replacement that provides an `unbounded` hidden property on the returned bounded function, that contains the original unbounded function\n\n<!-- /DESCRIPTION -->\n\n\n## Usage\n\n[Complete API Documentation.](http://master.unbounded.bevry.surge.sh/docs/)\n\nThis package functions like [`Function.prototype.bind`](https://devdocs.io/javascript/global_objects/function/bind), however it exposes a hidden `unbounded` property on the returned bounded function that contains the original unbounded function.\n\nThis is very useful as it means you can do:\n\n-   `(fn.unbounded || fn).length` to always get the correct amount of arguments\n-   `(fn.unbounded || fn).toString()` to always get the source code of any function instead of getting `function () { [native code] }` for bounded functions\n-   `fn.bind(firstContext).unbounded.bind(secondContext)` to have `fn` actually bind to the second context, as `fn.bind(firstContext).bind(secondContext)` only binds to the first context\n\nTo have all bounded functions have the `unbounded` property, use `patch`:\n\n```javascript\nimport { patch } from 'unbounded'\npatch()\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = myFunction.bind(context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\nTo have only specific functions have the `unbounded` property, use `binder`:\n\n```javascript\nimport { equal } from 'assert'\nimport { binder } from 'unbounded'\n\nconst context = { hello: 'world' }\nfunction myFunction() {\n    return this.hello\n}\n\nimport { equal } from 'assert'\nconst boundedFunction = binder.call(myFunction, context)\nequal(boundedFunction(), context.hello, 'context was correct')\nequal(boundedFunction.unbounded, myFunction, 'unbounded was correct')\n```\n\n<!-- INSTALL/ -->\n\n## Install\n\n### [npm](https://npmjs.com \"npm is a package manager for javascript\")\n\n-   Install: `npm install --save unbounded`\n-   Import: `import * as pkg from ('unbounded')`\n-   Require: `const pkg = require('unbounded')`\n\n### [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative for Node.js\")\n\n``` typescript\nimport * as pkg from 'https://unpkg.com/unbounded@^6.3.1/edition-deno/index.ts'\n```\n### [Skypack](https://www.skypack.dev \"Skypack is a JavaScript Delivery Network for modern web apps\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//cdn.skypack.dev/unbounded@^6.3.1'\n</script>\n```\n### [unpkg](https://unpkg.com \"unpkg is a fast, global content delivery network for everything on npm\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//unpkg.com/unbounded@^6.3.1'\n</script>\n```\n### [jspm](https://jspm.io \"Native ES Modules CDN\")\n\n``` html\n<script type=\"module\">\n    import * as pkg from '//dev.jspm.io/unbounded@6.3.1'\n</script>\n```\n### [Editions](https://editions.bevry.me \"Editions are the best way to produce and consume packages you care about.\")\n\nThis package is published with the following editions:\n-   `unbounded` aliases `unbounded/index.cjs` which uses the [Editions Autoloader](https://github.com/bevry/editions \"You can use the Editions Autoloader to autoload the appropriate edition for your consumers environment\") to automatically select the correct edition for the consumer's environment\n-   `unbounded/source/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-browsers/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for web browsers with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-es2022/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es5/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against ES5 for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 4 || 6 || 8 || 10 || 12 || 14 || 16 || 18 || 20 || 21 with [Require](https://nodejs.org/dist/latest-v5.x/docs/api/modules.html \"Node/CJS Modules\") for modules\n-   `unbounded/edition-es2022-esm/index.js` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled against [ES2022](https://en.wikipedia.org/wiki/ES2022 \"ECMAScript 2022\") for [Node.js](https://nodejs.org \"Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine\") 12 || 14 || 16 || 18 || 20 || 21 with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-types/index.d.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") compiled Types with [Import](https://babeljs.io/docs/learn-es2015/#modules \"ECMAScript Modules\") for modules\n-   `unbounded/edition-deno/index.ts` is [TypeScript](https://www.typescriptlang.org/ \"TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.\") source code made to be compatible with [Deno](https://deno.land \"Deno is a secure runtime for JavaScript and TypeScript, it is an alternative to Node.js\")\n\n<!-- /INSTALL -->\n\n<!-- HISTORY/ -->\n\n## History\n\n[Discover the release history by heading on over to the `HISTORY.md` file.](https://github.com/bevry/unbounded/blob/HEAD/HISTORY.md#files)\n\n<!-- /HISTORY -->\n\n<!-- BACKERS/ -->\n\n## Backers\n\n### Code\n\n[Discover how to contribute via the `CONTRIBUTING.md` file.](https://github.com/bevry/unbounded/blob/HEAD/CONTRIBUTING.md#files)\n\n#### Authors\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Maintainers\n\n-   [Benjamin Lupton](https://balupton.com) — Accelerating collaborative wisdom.\n\n#### Contributors\n\n-   [Benjamin Lupton](https://github.com/balupton) — [view contributions](https://github.com/bevry/unbounded/commits?author=balupton \"View the GitHub contributions of Benjamin Lupton on repository bevry/unbounded\")\n\n### Finances\n\n<span class=\"badge-githubsponsors\"><a href=\"https://github.com/sponsors/balupton\" title=\"Donate to this project using GitHub Sponsors\"><img src=\"https://img.shields.io/badge/github-donate-yellow.svg\" alt=\"GitHub Sponsors donate button\" /></a></span>\n<span class=\"badge-thanksdev\"><a href=\"https://thanks.dev/u/gh/bevry\" title=\"Donate to this project using ThanksDev\"><img src=\"https://img.shields.io/badge/thanksdev-donate-yellow.svg\" alt=\"ThanksDev donate button\" /></a></span>\n<span class=\"badge-patreon\"><a href=\"https://patreon.com/bevry\" title=\"Donate to this project using Patreon\"><img src=\"https://img.shields.io/badge/patreon-donate-yellow.svg\" alt=\"Patreon donate button\" /></a></span>\n<span class=\"badge-liberapay\"><a href=\"https://liberapay.com/bevry\" title=\"Donate to this project using Liberapay\"><img src=\"https://img.shields.io/badge/liberapay-donate-yellow.svg\" alt=\"Liberapay donate button\" /></a></span>\n<span class=\"badge-buymeacoffee\"><a href=\"https://buymeacoffee.com/balupton\" title=\"Donate to this project using Buy Me A Coffee\"><img src=\"https://img.shields.io/badge/buy%20me%20a%20coffee-donate-yellow.svg\" alt=\"Buy Me A Coffee donate button\" /></a></span>\n<span class=\"badge-opencollective\"><a href=\"https://opencollective.com/bevry\" title=\"Donate to this project using Open Collective\"><img src=\"https://img.shields.io/badge/open%20collective-donate-yellow.svg\" alt=\"Open Collective donate button\" /></a></span>\n<span class=\"badge-crypto\"><a href=\"https://bevry.me/crypto\" title=\"Donate to this project using Cryptocurrency\"><img src=\"https://img.shields.io/badge/crypto-donate-yellow.svg\" alt=\"crypto donate button\" /></a></span>\n<span class=\"badge-paypal\"><a href=\"https://bevry.me/paypal\" title=\"Donate to this project using Paypal\"><img src=\"https://img.shields.io/badge/paypal-donate-yellow.svg\" alt=\"PayPal donate button\" /></a></span>\n\n#### Sponsors\n\n-   [Andrew Nesbitt](https://nesbitt.io) — Software engineer and researcher\n-   [Balsa](https://balsa.com) — We're Balsa, and we're building tools for builders.\n-   [Codecov](https://codecov.io) — Empower developers with tools to improve code quality and testing.\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Sentry](https://sentry.io) — Real-time crash reporting for your web apps, mobile apps, and games.\n-   [Syntax](https://syntax.fm) — Syntax Podcast\n\n#### Donors\n\n-   [Andrew Nesbitt](https://nesbitt.io)\n-   [Armen Mkrtchian](https://mogoni.dev)\n-   [Balsa](https://balsa.com)\n-   [Chad](https://opencollective.com/chad8)\n-   [Codecov](https://codecov.io)\n-   [dr.dimitru](https://veliovgroup.com)\n-   [Elliott Ditman](https://elliottditman.com)\n-   [entroniq](https://gitlab.com/entroniq)\n-   [GitHub](https://github.com/about)\n-   [Hunter Beast](https://cryptoquick.com)\n-   [Jean-Luc Geering](https://github.com/jlgeering)\n-   [Michael Duane Mooring](https://mdm.cc)\n-   [Michael Harry Scepaniak](https://michaelscepaniak.com)\n-   [Mohammed Shah](https://github.com/smashah)\n-   [Mr. Henry](https://mrhenry.be)\n-   [Nermal](https://arjunaditya.vercel.app)\n-   [Pleo](https://www.pleo.io)\n-   [Poonacha Medappa](https://poonachamedappa.com)\n-   [Rob Morris](https://github.com/Rob-Morris)\n-   [Robert de Forest](https://github.com/rdeforest)\n-   [Sentry](https://sentry.io)\n-   [ServieJS](https://github.com/serviejs)\n-   [Skunk Team](https://skunk.team)\n-   [Syntax](https://syntax.fm)\n-   [WriterJohnBuck](https://github.com/WriterJohnBuck)\n\n<!-- /BACKERS -->\n\n<!-- LICENSE/ -->\n\n## License\n\nUnless stated otherwise all works are:\n\n-   Copyright &copy; [Benjamin Lupton](https://balupton.com)\n\nand licensed under:\n\n-   [Artistic License 2.0](http://spdx.org/licenses/Artistic-2.0.html)\n\n<!-- /LICENSE -->\n","readmeFilename":"README.md"}