{"_id":"surrogate","_rev":"37-870a924e09d8254d1f725171c114211f","name":"surrogate","dist-tags":{"latest":"1.9.2"},"versions":{"0.0.1":{"name":"surrogate","version":"0.0.1","author":{"name":"Dale Bustad","email":"dale@divmain.com"},"license":"MIT","_id":"surrogate@0.0.1","maintainers":[{"name":"divmain","email":"dale@divmain.com"}],"homepage":"https://github.com/divmain/surrogate","bugs":{"url":"https://github.com/divmain/surrogate/issues"},"dist":{"shasum":"95d94e238ba6871450783b1ae8eb4a3d77467b8b","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-0.0.1.tgz","integrity":"sha512-VQM7SLPr0YUYmdS9r5IYBXyko9AJVrb3VtWfjuCLaRAv9Y+6sQAF+8agHKPDcW4UwDWwg0/2EyPR3MKpF0iuLg==","signatures":[{"sig":"MEUCIQCvijxWyqkKN+bMRPBFh/C5HeA4iTjtjZFLtOWKd32ONwIgDHEr7T19aVjSCOMmhI33kwZmNfCgtM8WkHYzilvDCwM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"divmain","email":"dale@divmain.com"},"repository":{"url":"https://github.com/divmain/surrogate","type":"git"},"_npmVersion":"1.4.3","description":"Mock API server","directories":{}},"0.2.0":{"name":"surrogate","version":"0.2.0","_id":"surrogate@0.2.0","maintainers":[{"name":"divmain","email":"dale@divmain.com"}],"dist":{"shasum":"bd0ca4ccdd2238b9b737c64ee19cbc55403f1a21","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-0.2.0.tgz","integrity":"sha512-8FSG1YvZmvdFlrSLndthMNjUnhFxNqnd6scejJUw/XTNjwU4ZrtCENUUprHQj4B/Vq9eBXx16qeXauVJBOy0GA==","signatures":[{"sig":"MEQCIAV9Op4MwrTiJfF2LDM3rF9mPcNzAueGVK0p/dfjUFbyAiAA+BU5Wcz89Kv0NrsXuizQHzbkm893pm7z4L0FzSaE2Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","scripts":{"test":"gulp lint && gulp frontend:test-phantom && gulp lib:test","start":"gulp"},"_npmUser":{"name":"divmain","email":"dale@divmain.com"},"_npmVersion":"1.4.3","description":"[![wercker status](https://app.wercker.com/status/56d7b9d8c5e5c14ce51d5115da64090a/m \"wercker status\")](https://app.wercker.com/project/bykey/56d7b9d8c5e5c14ce51d5115da64090a)","directories":{},"dependencies":{"joi":"^4.7.0","hapi":"^6.8.1","uuid":"^1.4.1","lodash":"^2.4.1"},"devDependencies":{"vue":"git://github.com/yyx990803/vue.git#19cfc9dd16faaf6f3451333cd14f755f7f434961","chai":"^1.9.1","gulp":"^3.8.8","open":"0.0.5","karma":"^0.12.23","mocha":"^1.21.4","sinon":"^1.10.3","lodash":"^2.4.1","webpack":"^1.4.0-beta6","bluebird":"^2.3.2","gulp-help":"^1.1.0","gulp-util":"^3.0.1","css-loader":"^0.8.0","gulp-clean":"^0.3.1","gulp-karma":"0.0.4","gulp-mocha":"^1.1.0","map-stream":"^0.1.0","raw-loader":"^0.5.1","sinon-chai":"^2.5.0","gulp-eslint":"^0.1.8","gulp-stylus":"^1.3.2","karma-mocha":"^0.1.9","mocha-loader":"^0.6.5","style-loader":"^0.8.0","karma-webpack":"^1.2.2","script-loader":"^0.6.0","stylus-loader":"^0.4.0","coverjs-loader":"^0.5.0","imports-loader":"^0.6.3","gulp-autoprefixer":"^1.0.0","webpack-dev-server":"^1.6.4","autoprefixer-loader":"^1.0.0","karma-mocha-reporter":"^0.3.1","karma-chrome-launcher":"^0.1.4","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.3","karma-phantomjs-launcher":"^0.1.4"}},"0.2.1":{"name":"surrogate","version":"0.2.1","_id":"surrogate@0.2.1","maintainers":[{"name":"divmain","email":"dale@divmain.com"}],"dist":{"shasum":"f05346fa377d1833fdb0c2e24b51b96651ab99dd","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-0.2.1.tgz","integrity":"sha512-sKk6SrM3bvTTf/57EyP5INsUfbAr31y4d9RANEoKpuNmJrk6nSA6nwI1OM6X3hbFqizv7L42xTX1SGRze3X39w==","signatures":[{"sig":"MEYCIQDsU4h4a726GMLdPnEXQlrXtbrf+Re/PouD4VOHwBycJwIhAKkagbemrCit/rxxuGytv3BDcfAyTzjekpKkqQFVNuhf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"lib/index.js","_from":".","scripts":{"test":"gulp lint && gulp frontend:test-phantom && gulp lib:test","start":"gulp"},"_npmUser":{"name":"divmain","email":"dale@divmain.com"},"_npmVersion":"1.4.3","description":"[![wercker status](https://app.wercker.com/status/56d7b9d8c5e5c14ce51d5115da64090a/m \"wercker status\")](https://app.wercker.com/project/bykey/56d7b9d8c5e5c14ce51d5115da64090a)","directories":{},"dependencies":{"joi":"^4.7.0","hapi":"^6.8.1","uuid":"^1.4.1","lodash":"^2.4.1"},"devDependencies":{"vue":"git://github.com/yyx990803/vue.git#19cfc9dd16faaf6f3451333cd14f755f7f434961","chai":"^1.9.1","gulp":"^3.8.8","open":"0.0.5","karma":"^0.12.23","mocha":"^1.21.4","sinon":"^1.10.3","lodash":"^2.4.1","webpack":"^1.4.0-beta6","bluebird":"^2.3.2","gulp-help":"^1.1.0","gulp-util":"^3.0.1","css-loader":"^0.8.0","gulp-clean":"^0.3.1","gulp-karma":"0.0.4","gulp-mocha":"^1.1.0","map-stream":"^0.1.0","raw-loader":"^0.5.1","sinon-chai":"^2.5.0","gulp-eslint":"^0.1.8","gulp-stylus":"^1.3.2","karma-mocha":"^0.1.9","mocha-loader":"^0.6.5","style-loader":"^0.8.0","karma-webpack":"^1.2.2","script-loader":"^0.6.0","stylus-loader":"^0.4.0","coverjs-loader":"^0.5.0","imports-loader":"^0.6.3","gulp-autoprefixer":"^1.0.0","webpack-dev-server":"^1.6.4","autoprefixer-loader":"^1.0.0","karma-mocha-reporter":"^0.3.1","karma-chrome-launcher":"^0.1.4","karma-safari-launcher":"^0.1.1","karma-firefox-launcher":"^0.1.3","karma-phantomjs-launcher":"^0.1.4"}},"0.0.0":{"name":"surrogate","version":"0.0.0","author":"","license":"ISC","_id":"surrogate@0.0.0","maintainers":[{"name":"divmain","email":"dale@divmain.com"}],"dist":{"shasum":"38e12af27ad548b1ddf7001aa38b1a7cb264fcea","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-0.0.0.tgz","integrity":"sha512-jPjuUzeEjbDFUVUS9EAnWZxWu3gWMq6bb2sTnhiilEcQuNgxfzwIo2+b60nbKIHDNx7gRdOdN6MHl65wMF6Uyw==","signatures":[{"sig":"MEQCIBGm2JY7TBf7f0MKWNNyayzs6+EXT4jCIJrL4437Opa7AiAIP5inFHj0QKhoWsZJ9RdsKhu4zfVwoL/vciemrgEpdA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"index.js","_from":".","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"divmain","email":"dale@divmain.com"},"_npmVersion":"1.4.3","description":"","directories":{}},"1.0.0":{"name":"surrogate","version":"1.0.0","keywords":["hooks","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.0.0","maintainers":[{"name":"divmain","email":"dale@divmain.com"},{"name":"jfrazx","email":"staringblind@gmail.com"}],"dist":{"shasum":"8122a5ab11cb04212bdfb996553fc918ea687661","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.0.0.tgz","fileCount":192,"integrity":"sha512-nJqu8dvsj3gDL7I5XxGraSqlSQ2KXlEWzw603yRtqS89OBRfMLkqsM6aLEmFjLyKhhLqhybnRWnOio0j/fQ05Q==","signatures":[{"sig":"MEQCIF06LELPAARxdNMir7k8V3Iv3nqlGd8YrYv9VRdn2MQvAiBNFo0jN1ntpMqq80wrkZhg1vN1tlJspQla2jX4idToIw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":136915,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgaN50CRA9TVsSAnZWagAA9AsP/3sQZxmETjRkUhv6UC2S\nyAsqwEVbYyOHOizALziN6Ii6L0naUuNR6+5kk/S5q4Dj6HJd63G72bJyDyJ2\n6/mW5zqAXZR98qzECNu1qeA6PPtIJ321in/kYyD2o3lTl3aUFMIDE/uCHCgg\nB+ruUL+glCPg/b5bkINvle/O0axaCnlQx7ScD4no9B3RL22n6fO/Gm6wfliA\ncC0c4O7HK50plBTFqYDCKOKLR6jfx6ZjOpDpM2lwinELhiFfsiPMjMSvGIM0\nD3HMc1fulXY6jzyhubORbNdo4ov5cjDGOmJZiZlVG+ruIaN3KvD7DDlj4/RQ\nqfibbCAihQHY5RMcZLsBWi9UqCyAg0nMW/C4bg+OyYllVsfPeCV/V44lZTDq\nMfltddPPowEdQYVSV+rRHcIiHlCY1+LmIaKRuuje6R6d2HiCPv/Spqy4j/5B\nLpOfy17TF63U+2yyrJ9kOx5MdYtkBHvwuG8iLj1teUsinyt8ApN0QtIAPHoo\nr6UJssYC2QJCgsCNAQun2KlPRertpEE9G27E8g3kombhFiQrAt62iHkm1bEy\nQSPIiHTy+ENHOZee+MgpGFdZLO3NgfJ7Q/OcODt59B8Bv0VGCVPVum4yONxc\nuWRSTnSv+aA9rPBywYMBTZAA4YQ3cc/AhChm4mt7U+7CwlXUCWi2m0QvTqz3\nwwS6\r\n=ciZZ\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"b70bb6787b09436ecd9a5d85f6ce43ba14124a31","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","postinstall":"npm run build","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"_npmVersion":"7.3.0","description":"Method hooking using ES2015 Proxy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.3.2","sinon":"^10.0.0","eslint":"^7.23.0","rimraf":"^3.0.2","codecov":"^3.8.1","ts-node":"^9.1.1","typedoc":"^0.20.34","prettier":"^2.2.1","cross-env":"^7.0.3","commitizen":"^4.2.3","typescript":"^4.2.3","@types/chai":"^4.2.16","@types/node":"^14.14.37","@types/mocha":"^8.2.2","@types/sinon":"^9.0.11","semantic-release":"^17.4.2","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"^4.20.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.20.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.0.0_1617485428046_0.745505924176799","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"surrogate","version":"1.1.0","keywords":["hooks","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.1.0","maintainers":[{"name":"divmain","email":"dale@divmain.com"},{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"83432a3a6c0a27f9514bdde64eaa66fb34178133","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.1.0.tgz","fileCount":180,"integrity":"sha512-yJ0LSGrSpaRl/fnVgLVqrcT4ESxQZf2fgBWxn6e/O0Bf7cWr0pgpofC8Cw7yQN4FVlf/Ml55tb5w39L1E6zUGg==","signatures":[{"sig":"MEUCIQDSULw8rZQyPzQAfhnrNRzjGqzITDXWdLJ4CSt4OrPcJwIgJjMGpr1e73P8YgOdVcMmq02z95ipuyagkfFM2BqxxYI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140924,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbU5YCRA9TVsSAnZWagAAc1wP/362Ug4QclKPGqWaGtqL\n+p7GkXFJosp2fas0KhfkwqttQZWV8vo4/IQliXakMe0io2NwOpB62xkZDEB0\nLqMPVTjQ66yB0Vn9leSD1deLee+us0IPvHRNzBT7zn6Klq9uHVpa/diyloy8\ntRUOfUIq276SpkdIMgJXy73gUsbt5J8v0N+YXPwFef260CmQpl0gQP5gkXO7\n/ETm8rxparwbfAg0BS6gFD7VsLf44SL2r6/l4E5n3T5A3kU+sXfhwZKlY3h4\n8I/4wyOWgrO4fVtWnGn+QzCWXaBUEjvJ12PZtW0HvlhZ4INdMuoyYhZnnkzp\nlFf09SPwdYI42HjB60ihFnQXRNzBFYjxe50JnUGKyIM7TKK2/utfzLn1HSj7\n2MyNmcLNiDWKuAY6aMZbaIW8RaKWUwHmCXPfOi9O1kxC+X1A3uOVWL4r1heg\nOtstYHBJAREiHmVgIUZa4vUVsQRvXVlFd3ung1NS8q2OavhAHJ1+5mH8qhw+\nzNPYne9PTkUZZh6MTpxPeO3b1JGxSh/27N90vCrMwCRM7XT1Pf8VZz3OXprM\nlo9yHLtQN0Q7ZQGrCe4jnTmqW4dwpjME1j6rZTtmt2w+DCgBigP/vEByFRnZ\nXQbeUc9ULdhrWNCNhvLCjvENLp0tEscXC2/Db8ya3Rs9IAUdQaEG9JvFpn5L\nnUWo\r\n=IxNB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"953f9293fc26f4ae46de96ad6c7edcdc3c4aef10","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","postinstall":"npm run build","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.3.0","description":"Method hooking using ES2015 Proxy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.3.2","sinon":"^10.0.0","eslint":"^7.23.0","rimraf":"^3.0.2","codecov":"^3.8.1","ts-node":"^9.1.1","typedoc":"^0.20.34","prettier":"^2.2.1","cross-env":"^7.0.3","commitizen":"^4.2.3","typescript":"^4.2.3","@types/chai":"^4.2.16","@types/node":"^14.14.37","@types/mocha":"^8.2.2","@types/sinon":"^9.0.11","semantic-release":"^17.4.2","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"^4.20.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.20.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.1.0_1617776216140_0.4306335897729672","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"surrogate","version":"1.1.1","keywords":["hooks","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.1.1","maintainers":[{"name":"divmain","email":"dale@divmain.com"},{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"582b47842b16130689b577d73006492d61664718","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.1.1.tgz","fileCount":180,"integrity":"sha512-94veRbENWz5c1hD96YjC/aw1wwxooW+NFk054/Rc7+AJ+eSUq4yrACbABwLJkmuQRaiqJL/OQifaTEHsyXQMdQ==","signatures":[{"sig":"MEUCIQDA/tBKYf2fLscnvCebfiaelWi9d/PRSUfljtHKV/8KkAIgVVtEzJ8yq6vTWmOF996BQz9bE7W4aZ8ZeQyMytfrIBI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140923,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbgE7CRA9TVsSAnZWagAArQQP/0EAVBKsHh2hkVBc3zfr\n3jBy3Ey69kxlAXb7+/42XTw/1RnyFy4em7B/ipOs7bIjCfEH0DuyEu8KQlr0\n6UaiqHyNCauBbP67EHHYTQiEnauG/uXMqFsIjLUCsbKbKZpuZC9E55dudutH\nC/yeOdLb0zLXhwaQ6IitsmeC7Zcbe1U0H4qwvexs5OKx6XZjwwhn33atos3V\nVIm/rUgD/EV5Jq4E+C51mRpU5/26qKZazMff+MMcsoKgBiSjL55pXr+j+P1/\n8xDbE/Unk77/viRglsd9AVE/jVtlUaI95w/aWG+11Ayr8+jcuVo1vv5yYZOz\nN27A0TaR6w3uPBWqKf02ZFmpPwHryDp84AgTgSloyJhdCXzS/mSrEf/8wc4j\nbQ6la92/I+BfWT1Go8XeAW8ahu9D6+rj9tCscw9j3YkvONnDlvK4U0alepCN\n4b0kY+jxR7pfRU1FLQ9nEcNyfhx4yjPlSHp1WTeHRyElFAyjLWa/VdIF9Z+l\nbiojHn0vItVXIfguoAM6JfWjFMuewt+YBarxncLdg9T2Pn4VUB2eqkefOotD\ncON+3LBHL9fwOo0Q2JYSlaOl0UUVsrztiCqZJ4YSuE6ztSoMnuzoDyqGem7Q\n/L/vc8eacIDPJXXkc4pJvec3JULByNw71XBWWh+62pZ9qL3KgyojUr1g5yUl\nntRa\r\n=DYy7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"246e4f94f2242444b71f4845f22b7dfdfd9ef738","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","publish":"npx semantic-release","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.3.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.3.2","sinon":"^10.0.0","eslint":"^7.23.0","rimraf":"^3.0.2","codecov":"^3.8.1","ts-node":"^9.1.1","typedoc":"^0.20.34","prettier":"^2.2.1","cross-env":"^7.0.3","commitizen":"^4.2.3","typescript":"^4.2.3","@types/chai":"^4.2.16","@types/node":"^14.14.37","@types/mocha":"^8.2.2","@types/sinon":"^9.0.11","semantic-release":"^17.4.2","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.1.0","eslint-plugin-prettier":"^3.3.1","@typescript-eslint/parser":"^4.20.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.20.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.1.1_1617822010871_0.7437021781227156","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"surrogate","version":"1.2.0","keywords":["hooks","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.2.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"54b70aab7a79b6648be70c3ce32adcb09d835dd3","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.2.0.tgz","fileCount":207,"integrity":"sha512-rHfNiVwt1Ats5CcNZaMiEuxszLvmNFWsLWEwi01Qqpohgeys0iruXHA4G2XGRuKsAbEJlhaCdUmhwiL9xp7wPg==","signatures":[{"sig":"MEUCIQDY/vJ2rJQlDaQirqD8yutv/oGD8jsN6rjwMMxF3kUAbAIgbLvP61HZj/43l3mvaSTpeE/A2x6asQsVN3VNTO1VWeA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":151466,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgo9xFCRA9TVsSAnZWagAAnWwP/R7+r+b+rRtZSK3RpTLK\nNZn9PFK7rfu+20Pxkg7rcQfrgxsquojehbCtWpaslgJaV4M3NAGdpJH+eOhq\neBkjB3ZbSB5PFKcyTpi/3CHGS3QPkUfqmZr3hoa5i4yyJ+OA4GqHmc3Q7vXr\nbcsz6z/GaP8/iVAoiHrYB+3k9+UkAQPJtPNsRaiKBCpb1xh0lWhYKj6TbdpI\ncbU9ZBXEVE4aRNt9wnByXlZ28elanZk71kmsjlhT6EzU8rmBjL6dLHIqy4Wa\nHPsUbPIp+OpH1htNrLIKHzHUUvksUkTJEDoKBvMf3lo44gO5i5/mtFdEp/5U\nQZaUXTPz16CvUnBFpo4lScmD98tKhuV46oV+4fJH0CqM02EnQby9FFOqrnLF\nOScXxmZj8voHA6TBAUzVTx9G0hfnmCp88ph94iuChwIwq7GB1lDhb95a5ZzE\njXLVixzzURx3Fcaoz5ySeTEmJnyo3DdpCJ0g5n/Pe1sWAY9dTAGsme637PEn\ndubemQ9n+BoT3bQu8xJ2fJCIl8+AKXwWpvRW02aPSga8Glq0Taki5NJgdhf9\nZVXcEUXZW1q84CBi8fuInV752SEP7cb65NpE4u2zCc31pd7qfbcniBwcI6nS\nytyVi+uZopvKRPUTt+3tPysanB347Pj6cHfx4SHiFyJzYVzqGeWmptLzDlcB\nA+8h\r\n=6iPz\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"d7687efd95b8c4e77f9ef4a8b6f5b9fbf5fc3033","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.4.0","sinon":"^10.0.0","eslint":"^7.26.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^9.1.1","typedoc":"^0.20.36","prettier":"^2.3.0","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.2.4","@types/chai":"^4.2.18","@types/node":"^15.3.0","@types/mocha":"^8.2.2","@types/sinon":"^10.0.0","semantic-release":"^17.4.3","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.24.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.24.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.2.0_1621351492409_0.6163186630176525","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"surrogate","version":"1.3.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.3.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"2e40067cff5d15af43c97b88942c3fcfec78f2d4","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.3.0.tgz","fileCount":207,"integrity":"sha512-5r2l+w+jCxmWd2VcOW1ZAP0ecvwCrvp4PVBNOhT0IH9Yii3E2xN0aNdF2hNydswsY2RNMpvqRB6nKf3BtD+Aiw==","signatures":[{"sig":"MEUCIEiTtBXTxPAw77FYw6VGFtN9H43ZfpWYYQjgtWNCWouiAiEA/PMpu1Fnn0doz8iEi5gxWXlfwAGMTRnDfWq9rz6T1Gk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtljdCRA9TVsSAnZWagAAnVAP/Rl3HCi8KtFepTU99THY\nU8p5vJYe5vjE/xaNXvo4MlandfNgSpB4jPppB3cuRWTC90381wRvVBR2vb4/\ncR+ZPvfDOwXLHy6iUdOH3g0yEV65skYPIOqSBM6TVhABx+XbE20eFksmIlWp\nKAGuXCMTU1nmkMpidMgFABODjWDfkVd62hNWutVhbdEfcWH45+i9vSDYhYDU\nPfeiNq0p67yNlhLGgo4k1HOQsEIzKbuDaEoEx1BfBz9JCO8Qk5pY7jWt3bOp\nhn0KvE4+dOEgDa7+97LKAMnExx7mu6t0gO5pk23Z3TAiA+sxY0l9IGE33KvU\nYHtjfOY9u0y47sUvyaCw/nMLjBygtpgOLLpgggazICufDOpeH8PfyyLrVFqW\neGVZoI2pj2WkKafobKcnDMTT+IjejXYuK2CH1UqaJTZHaSLA4kkBf3Dg+aYi\nZzMEMmdIL6qMnK9wWdT8yUQS/W0XQHUdDQ3FH290m1Vr75syzKQu5vObe59s\nmYlbOa4nfPLV9Qqd3wdbDhej4B6txZG0wzwCt1V0F+UUSDDN2zasDe/jiJak\nbZkIUsph0qHGm07UUog7X9cz2n10H1nwsfRtj6fgQiz8Zwj7OL1avciYM54J\nK5igbfIln6wEkQrkIPmJK7tjrVGDTaEHWAzlMTmQwl1+hDQ7JcUBkwgvTj0k\n6V6Q\r\n=IA7Q\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"56692cac4b9fd01d01e06bba30130e31620136a6","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.4.0","sinon":"^11.1.1","eslint":"^7.27.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.0.0","typedoc":"^0.20.36","prettier":"^2.3.0","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.2","@types/chai":"^4.2.18","@types/node":"^15.6.1","@types/mocha":"^8.2.2","@types/sinon":"^10.0.1","semantic-release":"^17.4.3","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.0.0","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.25.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.25.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.3.0_1622563036791_0.011209169513284323","host":"s3://npm-registry-packages"}},"1.3.1":{"name":"surrogate","version":"1.3.1","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.3.1","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"515702148e1cd3438c4982cd7bfd1c32b0895596","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.3.1.tgz","fileCount":207,"integrity":"sha512-672xqdgXIMdp22NwTtjSIzu/ppgFm9968RcMWFcw43mbWO0v8iO2Ov3TgCIdWe6RVUYgg0eGaOfo3LoZAtI5Ng==","signatures":[{"sig":"MEUCIGjoLCg3uEbSnDPqUTdrg1tdFSNzP297o8AZw6lF+qMFAiEA4pnn/tqhH07TO2enJRjTkK4Bu6mf9UZzuQvfgJKQKvs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153447,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtmJWCRA9TVsSAnZWagAAcvQP/1NE9vZfT3qlGJ+VKqDj\nhaH0HGDuSjqTupdLCM5tQ8l8pOqD1fnQ0/3pziimv4rxHOzZx+tzCtAwC6OR\nW8jIJGeLp7UNMLb/wKVaz6MTEa8Osx5kE62b7ltYdGey0eZk6RVxwWnyqvtg\niqNUxfXpHoT3rZt3VvZcu+hKoh4JGQRDejrQ4JspsR2h5/T2ZmlMV2zqqySn\nwUIbXM9nCiedNXqE+CqsSpOnOmPmjHpAJrWcwj76abTWDOD3VQONb7+ZD1U5\nvHyxl0eyDp2j25CRQF9gSOXXnwDabfVkJmDCb5thKEmIr9mbFjp2xjrHNyTj\n3oaF8mXPa5tOTDbVyPDu0GdTYsvXEUJu1zPbFhwOjQw5MKxhXNuDBfODmoyk\nFsGVUWfk/pOwYRgsY/i2o3oGQ4RfTFiFcN2tFPBvuH3+7AND1YjQfevyNf1y\nBZxhbABHSWMeUNQYsl8O4pu26njOgk1Ii61jPbjCHmYvYGr/qv2A1VmkTOB/\nSk4NFaQfH3ni4uGusOqexuJPc8mKKr6GEBR19gs/d3L0E86krlwuP95C4L5H\nQmpR2E9YDcNW8kAaHx7h5FwsH5nJdNzP8Y6SfxFHo4juJhPrmanOrIsDMj6i\nNYUChF30G8tMtji9fZVm/K/qKGBC85tV86V9iKAxn3j0kmjiZkunBBKiPp8w\niTl9\r\n=6JYD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"7a9fc0f662dcd64b4f0bfce57fd3c26a547c598f","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.4.0","sinon":"^11.1.1","eslint":"^7.27.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.0.0","typedoc":"^0.20.36","prettier":"^2.3.0","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.2","@types/chai":"^4.2.18","@types/node":"^15.6.1","@types/mocha":"^8.2.2","@types/sinon":"^10.0.1","semantic-release":"^17.4.3","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.0.0","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.25.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.25.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.3.1_1622565462400_0.4475043754454664","host":"s3://npm-registry-packages"}},"1.3.2":{"name":"surrogate","version":"1.3.2","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.3.2","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"de496ce7ed7588bf49974e707fb1f20760e68dbf","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.3.2.tgz","fileCount":207,"integrity":"sha512-YOyda/MSdJPH6GrXq/4dOpL6l7mh7dL4IuZu0JQ5a4pDwhhB1ccECwgPhBUovFQgf35tOvGGPeyZiMOQqZtoGw==","signatures":[{"sig":"MEUCIQCGSO7NyltNtvdLGGC1ETNuv+zCBhFcBVJRuFOdvJUJQAIgMopmyWIoH89To5dgwxgVE23Q3kbxT8Sg+Tzx5vi6HLU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":153451,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgtpFKCRA9TVsSAnZWagAAejsP/j5oCoTtnE7G8s4kWodJ\nEYCG6FzvLmvyyNJ4KQMHwuOIpYk9P4FE99/QDJuYfzRQwvQ//P1ycR8d9ciW\niiFLajllrA2mZloPEE+P4OheVmegCvtiKLjNDs9+cZxkyUBa3zeYoBEf6J2R\nydB5GJy04qt1ecJRlyunyD9V5TMYbmOnhD4XCm4pnMiiRvvis4JGcKR43kmz\nybSRwdzSl2H2eXveGcX77Po7WfzwMabqdzAmp/OXebw1ih+jBa2W2oHmOd/i\nTUzevStYG/vMcTCf7vsL3xAp3/f4TaJwunGLVM1nK0e/eYG9GknyLb98BfzY\n+3924wFLfJ/qKhojt9WSfwyO1RrGO3YyotdDvVRmtVtJtc6YlRS+26F90sWc\nsKGIT65Ns+IAna4ZU240zQXQbg1OVtoj229DVTlqcdQDrPTxLhtXuiyUVWgX\n7D2kLEtJt/fJ7gRDQhSKh3pn5PnsUboWC9S4mcd9KILh1U8KgULuEVOA3U/K\nboV7d0a6EEHlsOzLcdbggWKPFt3C1WfgaTHRQuGrz/iW4m4lg/Bn/aN7XLYe\nkMrSkFtQ1aq0IDbjtHYUeJAjEM+8NSj+s9JWqDXyiYyFqylYyBfemnKixYje\nQcytTAuHJdhfi1J//eohZ9hBk1aayWdYu4LapLnE7P8YFGA+wt0Bzg32xyXc\ndyHh\r\n=ssE8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"9a8f4b29ede7252372c7798e6211a1bab13f1f5b","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.4.0","sinon":"^11.1.1","eslint":"^7.27.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.0.0","typedoc":"^0.20.36","prettier":"^2.3.0","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.2","@types/chai":"^4.2.18","@types/node":"^15.6.1","@types/mocha":"^8.2.2","@types/sinon":"^10.0.1","semantic-release":"^17.4.3","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.0.0","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.25.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.25.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.3.2_1622577481671_0.8362932103643745","host":"s3://npm-registry-packages"}},"1.3.3":{"name":"surrogate","version":"1.3.3","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.3.3","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"2add3e78e4a124c201d23fdc0d006dd645970a52","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.3.3.tgz","fileCount":207,"integrity":"sha512-2al9i8cifF+ub7plKkOwlbk5NDvL5SV5MUYfhtNchZ0okpgKdOsXbqLGEAP6Ms2GXyGbArK3oHEXDjOVq9DEHQ==","signatures":[{"sig":"MEYCIQCvcte9rf3D5W6LGhUPKkltV/fnrrysF3gBp9vfbGjbZgIhAJmg6bJKiUelndAsVtkoWMB/im/l8PKUcmIWpm5KKERG","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154281,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt5/fCRA9TVsSAnZWagAAtwcP/RUx9MCryzxsyjnjqgLR\nie2sG9AE1pg77IIkQbOAMnUNjK/2ao+brJj6u5mEgxpGDiEgKKgPlcr1iUgO\nnYLs1Nnb5bFZLb50sp8PyyeB+APJcY+pqGzOp2nu+qaX1capX/R3nZyIzu+c\nWwBsN962uBAh3mYAs3cxUBGg5HE9Ljh/IySw7Zi4+g0BaQZ94L/tZPTyeY2d\nEtIJDtlwwMUzC6zHwQ/wwuVKlQnF1UjdDPGS74ASPvJsszS8BK8yLOjbARH6\nAmILb9xCTVe+ytY4CyoQ6kW+mGoi7UvVjkGxZNbkqg8Tj+U8iHNdWIxD/atY\nP9d5JSK0/IDKJLRgRXSShIbQNcyscDvHBQZhCtTiBB6Tkp7o6ZOljQDQnLlO\nSLqYbHRlInp8QGXb0IN93VN21BuqNDQBhLcNawNMVvOewJfU8ralvi3e6o4u\nQrnJNRb1ChIN1S4PyMjxq3v24sv7RZtMAylYM61A89WVsKVsAnTBIJZxiQ6K\ny6/AOt5PJfrbUEV8IkxCp3Ov4rQfpnzcjhSdv918uptQu6MxuZ+vE74jRGEk\n4hI2bt+TSZYyHDNN9GpOOw5AvBnVTYuF4Dw+oG5VzvqO+EZNcGdht3B0MZLS\n7J2CYULrVlS31/mln54W2MkvwsX3T8yYGAop0RwsMD5pLXDciej+pP5pCYoG\n4dHG\r\n=19Os\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"943438351dafe4497b98c5f73d354a28169f5570","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src ","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.2.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^8.4.0","sinon":"^11.1.1","eslint":"^7.27.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.0.0","typedoc":"^0.20.36","prettier":"^2.3.0","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.2","@types/chai":"^4.2.18","@types/node":"^15.6.2","@types/mocha":"^8.2.2","@types/sinon":"^10.0.2","semantic-release":"^17.4.3","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.0.0","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.26.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.26.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.3.3_1622646751547_0.6241434038536615","host":"s3://npm-registry-packages"}},"1.3.4":{"name":"surrogate","version":"1.3.4","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.3.4","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"7ec9dd12dade37f918b02c1a4d30d8ef223df05a","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.3.4.tgz","fileCount":207,"integrity":"sha512-xJbZ0UGueuyfHGsBPcPAhlERA0o9hVaTyvNcmd5+alkMd88Oq1HP5jalrsUuOYE87hIQRnARqxGTI1AizNzOxQ==","signatures":[{"sig":"MEUCIQDOBYUWXNn707/pe+SPArBoX/fY1LOVpO6qlZHvY3iNDwIgb/J32KEOgud07281AGLRxFEcsCsUe+81ZUxtDbUKk8g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":154434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3K0OCRA9TVsSAnZWagAAaD8P/Rqonl8SXbvfZf6rSUh/\npfui+E6DXn5Tl/MmBGZcYlTU9HkeIKl22ktx+AiOBx00dLhy8hRYK5TxAjIJ\ncGcaWsTsQd6w0POzl1J+uNZ/5azkS/6jbzMQrFYDzNbvJq4S9RWl1L4iFM1w\n1tY14fN9kSMSmn4HCJ0b4XgsXLZD7yQMgc+AB3GQ9gE05UsI3K4RKje+YNS1\n7Beigdv4BXo6FqOLoXl3ybqDWHRoqpBJRFNxaBc9JavtziKogdHfvOdU8Zh8\nqF+2yy7PLoKupZ0yQM92M/pRMnzP0D6RCPjYAvricJbr43l0JfF3TiJhMpNG\nZCZSItQxq5Oj8AULOdeBjr3d6PURtd76ZKjqjcz58Y0JyTHfoJKz1/jhdSVw\nBT8ZVFJpiKGloCDXWX09OVL5ojlZ3UFdpz1zDPvJAsRhge0Z3JIKSIBM4FZs\nMMIjJfOdm7cG78tq+pRU2grD85emxXtMUE0rqH+cmZbrLZfobZ8az/z5yAOu\nTobbdJXQL0oxVYLUjM12byXuN0Cc7eQzNFys3K7QUGxk6YnMKIyeH3W/wmKL\nlzLtxCbNwxBQtSqRT1r4NoDPLSs1971IWiyJ4xtbOsetprsSMS8Qp/DMB2aZ\nxi3JkwVNcsg3x+mCyRjHKvqmnIEByZIRQIsw9cKf3ZHHWOUtJ31EN44fkitR\nZ0vt\r\n=Qa4A\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"92807462821b240e432dbe305aa0c6fe70032951","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^9.0.1","sinon":"^11.1.1","eslint":"^7.29.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.0.0","typedoc":"^0.21.2","prettier":"^2.3.2","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.4","@types/chai":"^4.2.19","@types/node":"^15.12.5","@types/mocha":"^8.2.2","@types/sinon":"^10.0.2","semantic-release":"^17.4.4","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.1.3","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.28.1","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.28.1","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.3.4_1625074957984_0.26106485068193863","host":"s3://npm-registry-packages"}},"1.3.5":{"name":"surrogate","version":"1.3.5","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.3.5","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"f99a3f3baa394fe2ae8ac8eebe1c29ec2947b551","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.3.5.tgz","fileCount":207,"integrity":"sha512-XJV2w2uvkpOl56efpB828sOPgfWEGAgGQseMXRCdmt5nt1SEdGxrlvZeXORqS/VQHmqjesoYYCEh8kTIzzbI+A==","signatures":[{"sig":"MEUCIQCctRnAJkD/mJ9h8jtTOfdGEnY5WcCRC36uM9MjtoK4VwIgS0nQQ8/NdEl3EXRMBtK79oR3qqHNalegYC9nqG8IXJE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":158477,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3dnjCRA9TVsSAnZWagAAOeEP/29DNL3oX7KYJsnS4aZg\n+1WYJ7/ZEgY40SvzV6kfbwwd9sKV5hspw+s1R/KYUycKu5Tm5pW9v6OjFlxW\n4x3Yt2BwZtIu7K/Wequ6EslV98X85P7C3iA6KBOzIsnf3fCqQaqFBKJtBvkh\n9WkrHwjZeGVwy60pJld5j/ASWXEf5MiDi/hYwTXBvhvpdoJqKy4HiJZpaUQT\nhZLjawXcUnMwsq6yRUD3ftLEiA7uhsYJAyXrr5PQLsQCXikBO8CWFednSvak\n5AHavcQLb6vvkmES89FYvyu5D1mRJx6ZLZIQOzIIN9A23Re/GIKFFbJhopYV\ntZ4gXYfSVSrnFv9Cx47R5kPrpg9sL4gAKx7oT9hFhrgp46Vztzk/wnicV7JH\nFyYI7/e+U2rO7XisH7wx6eFxqbohlYKtFxX0HNB1cI9qmndNMaeXJG6IMlOq\n5v6s2MCuS+bVtCKbzWYf7dZWEV4UZeUSeGHlGFSf41GtyzsB6Zy3fx1YlN9Q\nD7jOhMktr0ZeoJxiHwlbYhzVY9iU+xKiPxKO6+gyuX8W5airYEkzFft/f454\nsAfS3omiQtQkJ4a553Aq2S+phZs2g0sL2wB1ONkqlVNvdVsAdit9J1jHWNUx\nL/rkdxsVod5BxNhWc5OLyBtJLSOQixYt2PvVb/3+vPQlbCDM1spISHAxkPu8\nhitw\r\n=UDtj\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"e4d309ac807bf1a27a020f3e4eaf0aab6536cfa4","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.10.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"15.5.1","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^6.0.0","mocha":"^9.0.1","sinon":"^11.1.1","eslint":"^7.29.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.0.0","typedoc":"^0.21.2","prettier":"^2.3.2","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.4","@types/chai":"^4.2.19","@types/node":"^15.12.5","@types/mocha":"^8.2.2","@types/sinon":"^10.0.2","semantic-release":"^17.4.4","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.1.3","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.28.1","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.28.1","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.3.5_1625151970956_0.918427524360206","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"surrogate","version":"1.4.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.4.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"0199b56256140d0453eb833b8fa4a7bef0848b80","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.4.0.tgz","fileCount":249,"integrity":"sha512-cgpv5RwOnykRseVy+2utrRRDDOfbVQecBnaRh5gy1KondMkl3Mk2taipSCCZ5dqjGQQNoQiIt9rIhoKHdf5CFg==","signatures":[{"sig":"MEUCIAtNZchMPyT9WJSug893FuiQdESu7hcZDxZD1dI/RkXlAiEAt1GEjyNjvmtrrWH8AwKUuJ07G+AnHu8394muGY2F0po=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":185021,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8HtoCRA9TVsSAnZWagAA40UP/RNOI8gnVt+EppxvnOvB\nMn8f5UQPQ7sOG31fkIx1RNmOsPFyBtZLeZeHOx6oW7yDA+pD5gAkY5fq+GGr\n78948BudNRYNCKKj2EDoT4anrQbFjReSHZ0lqKScYcDSoW3phWc5JtgjeDdV\nm/SgjbFP1mzQz8oqQ9Jj+8aqUzhrDzdw5S8RCbRUNFhRFnOAXXJs1w8cy9eG\n5ULYJzxM5OS4TQNBe8hCzpPFeYd6iXMvYICb6PQ0cJxcGGYCykAM34DtiMOg\n9V7XKJSJtqiLZ4c3fC8097EJr/iD7hSKxAFCMkLlYlC+3YvVspOPkuXwFs+z\nQdqFhPUiadFKl+szApO2xoEGnshkv/1uLZaTyzFN8J4YmAeOV8SyheQplVOk\n8ove5Jhw0Bs0mVH/VOVYp39b/Qyg3HQI9F0LsqiSqui93zzV5vmZfhQpt3Fb\ntOPc6+pORNKvTZPdw7yWl2BIdfI+1ryR/AMQUK2j45kuBYCC31nnZKwZQUaJ\n1GQNuoalNvIpb1MjF4Qejp5J3J79fntrf6Bkzv9PW9Y1wpQvydBFN7Vta6kY\nv+7AeXN8c1JajcapTmwkeETgNK/MI8CN5RygePgDcr4d5IdEd01omcQF4uVL\nisl/A5kBYH5Jp3XhahY+y2uhPB6aJ5Wn552VD9AUBXbG4Nx1U63YUJVhHGg3\nN+Zn\r\n=6i6U\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"1a93aeaed72cc64f4fb65b5dc1126c010785d5e7","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","precommit":"npm run coverage:test && npm run coverage:check","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.18.1","description":"Object method hooks made easy","directories":{},"_nodeVersion":"16.4.2","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^7.0.1","mocha":"^9.0.2","sinon":"^11.1.1","eslint":"^7.30.0","rimraf":"^3.0.2","codecov":"^3.8.2","ts-node":"^10.1.0","typedoc":"^0.21.4","prettier":"^2.3.2","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.5","@types/chai":"^4.2.21","@types/node":"^16.3.2","@types/mocha":"^8.2.3","@types/sinon":"^10.0.2","semantic-release":"^17.4.4","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.1.4","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.28.3","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.28.3","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.4.0_1626372968727_0.1460893688372067","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"surrogate","version":"1.5.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.5.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"32885d0e29c9fe74a5e0173aed5bc57395af5858","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.5.0.tgz","fileCount":276,"integrity":"sha512-1NxCetmH6bhcpKoqvZDJF045dkSSBBbrnCKCke80phYkSYcWVJiqsN5hj5Dz+1FBbmTwJIU97m13sDhpc7Q/zw==","signatures":[{"sig":"MEUCIHX5ATlI/Ndy8KtXpK3wPsrlOqV52+qrSsp/JTeOt6FmAiEAgcmYW8m7A4B8IeA2MJBsOmgJhKoFXHFyFQFP/KNha7g=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":203304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEUCXCRA9TVsSAnZWagAA6MoP/Akntf7ufldUF3j6CEW0\n5PNHkoDDNEcKDaTPWAnMOR9E3sJvoEmK1KietMaZCCpuJOmFfJUjQyylVS8Z\nzuLuscB3Q5/fksKi3rvpn4y3egSUEfdoeMDfTO1OfDx4KcO+wZhzFlLP+MNl\nlGm0UcVOHK8qAeDzJDJjE1ROC2ZMoFUAiu7mozQW8Trmak1StCsqWEpJVHHE\nYZgLMW1OOQGkoGvd7VrQnIxzHryVMJ6wRHav783AiLgB3n5at4KrDQaOf4zv\nQyTqmoNI3C/xWyEwxQkV5bNSie1QFF870s08mgBvG6c/lm927/uc5zFgxeqS\nWN6rSwB8wCQ6Vi5GSSZWkz4jNokBIwWDqvseZGQS8WEcXYmc0oV3o2y5bwFT\nejr7avo6ZzMlGrKqg8OzqKEP7stAQdldbuTdX7mPf4R8fQdU6FS0cHBbs5Wz\nOEfQse/59BJfoP7b0nBNnNeZeBI/R37tuJt73F2I0buosnlMKpPjj4ryysBJ\nD2QYaF88L8JYNUNzDyPrNmx97zbW56jMhrMoKsoksUg1xiLyDGM7dS777qVX\n1C6o+e3fZMIDzmWVWCgMRe0qrxIOAwVmEQSygs0dFC9mgqVtxP0Dgu/q7dbt\nU6AePToKdv2ZDVjlzF17yIyxBGuxRZLp2hTKcb366buNXIcNUp80p08IMHNN\nEuSa\r\n=PXp8\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"aaf1b07c7d33d4b80ef195d6cec1e303cf5dffdc","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"7.18.1","description":"Object method hooks made easy","directories":{},"_nodeVersion":"16.4.2","dependencies":{"uuid":"^8.3.2","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.4","sloc":"^0.2.1","husky":"^7.0.1","mocha":"^9.0.3","sinon":"^11.1.2","eslint":"^7.32.0","rimraf":"^3.0.2","codecov":"^3.8.3","ts-node":"^10.1.0","typedoc":"^0.21.5","prettier":"^2.3.2","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.3.5","@types/chai":"^4.2.21","@types/node":"^16.4.13","@types/uuid":"^8.3.1","@types/mocha":"^9.0.0","@types/sinon":"^10.0.2","@types/lodash":"^4.14.172","semantic-release":"^17.4.4","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.19","applicationinsights":"^2.1.4","semantic-release-cli":"^5.4.3","eslint-config-prettier":"^8.3.0","eslint-plugin-prettier":"^3.4.0","@typescript-eslint/parser":"^4.29.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^4.29.0","@istanbuljs/nyc-config-typescript":"^1.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.5.0_1628520599541_0.5830667117923065","host":"s3://npm-registry-packages"}},"1.5.1":{"name":"surrogate","version":"1.5.1","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.5.1","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"3fea2ca4b5acdb201426789c5431d144e2806740","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.5.1.tgz","fileCount":285,"integrity":"sha512-DyJMiakL8RmlffPuVTQS8xNAGnQ/Az+grjh4WBHMBJltWAigHlENwcxctTgbp+zPhE4mTu6BXvLccMLx8MSW6g==","signatures":[{"sig":"MEUCIEDgjLbAOt7LNeamo1YRUxs3+rnqZvsJR4tEnscZfYxJAiEA9mZeTrFzHN4qCSzjslmZ1kBHApJZaD2fbSpMHWuhAlo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":211312,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiK5mVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmreBQ/6AgvGbL0v6uxzv5m5NexCLMDJIOjCMwnRtDXHmmYZ5/6+45UN\r\nSjxHUIvKsXVGqpmk+JGxgf/58p4QgImbtwmlelA5KreV3E/fU+KqBmCG6REN\r\nMBZhckFSv8v3PDbs8iN5wL/m36JTJxtiXEilQKLAKAcbOmnBConuzjasR6oy\r\neQYAkT5+vD6V2CLcdPlCjjmX6EIBCQyyXEyTrMzjZk2PT/Vh5i+ZjJaCjBMe\r\n9DVjDxWixRiHfhq3J+RwuUGpckCDNn2mm5gNNaY9dmuX9/iJHQFCWxMeGyJD\r\nGjGAcEM0UdoyahMevnQIHHZfPW0if+SUbEFEa4coXshR9x8tg2lcdKdVtEMj\r\n7MyxaYuc1BamZVBq06LAcAmVQaDZpSAipJi9MtqWp0eORBQZdWAow6761reo\r\n3qP6ki2b/6uKbg7DQyt4y8QllxWP6KYSAeq9oWfKpIC3jTBenMCbExcuVkF0\r\nFuTm1taAw/9JzKwluscgAhhdjcc3pudoA8J08C3wcaq5wYkkHysogYrlF8bZ\r\nDS9X6xkNMUdG9bE+4Dg/PttaPzKXIHcn6GIph3faQWBD/DV4YPYf00SSfzr9\r\nzose5b64WJmTi/sVuuUvG2S+twhuPxadc7p/tqMOnvY8+c+aYcfEU9ZF1OoP\r\n4rL2GxRZHhPwFus1gKJokk4kSkxDKTFkjYQ=\r\n=arKc\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"types":"./build/index.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"6b8ed92df2bb37231134f4556692eab91119c504","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"8.3.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"17.3.0","dependencies":{"uuid":"^8.3.2","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3","reflect-metadata":"^0.1.13"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","sloc":"^0.2.1","husky":"^7.0.4","mocha":"^9.2.1","sinon":"^13.0.1","eslint":"^8.9.0","rimraf":"^3.0.2","codecov":"^3.8.3","ts-node":"^10.5.0","typedoc":"^0.22.12","prettier":"^2.5.1","cross-env":"^7.0.3","commitizen":"^4.2.4","typescript":"^4.5.5","@types/chai":"^4.3.0","@types/node":"^17.0.4","@types/uuid":"^8.3.4","fast-redact":"^3.1.0","@types/mocha":"^9.1.0","@types/sinon":"^10.0.11","@types/lodash":"^4.14.178","semantic-release":"^19.0.2","@types/fast-redact":"^3.0.1","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.21","applicationinsights":"^2.2.1","semantic-release-cli":"^5.4.4","eslint-config-prettier":"^8.4.0","eslint-plugin-prettier":"^4.0.0","@types/reflect-metadata":"^0.1.0","@typescript-eslint/parser":"^5.12.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^5.12.0","@istanbuljs/nyc-config-typescript":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.5.1_1647024533682_0.7291897153076652","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"surrogate","version":"1.6.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.6.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"8c775f6a724ea6008b1234c50eec203c4279cd32","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.6.0.tgz","fileCount":288,"integrity":"sha512-VVokQTKUDcmwCmwM5QQY3GGVbxFcOEDXzDHAYnRQ0SzZkd6MS7wt3hxHk8YrE080aRYGBfo/QnnOlNDKfCmysw==","signatures":[{"sig":"MEUCIQCihzFzQjs5UkdF7zZzRr03Mrd53j+Wgo8h5Sxel7QKwgIgbu1AGoAoIxag61fYerLGKl9OlVQ9dbEshFUhUCB9TLc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":217669,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi7arXACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpcnQ//VfB5jqREIdj7YSdxu+Y0gPTo4m9jg1zNUIg1Ptp+lIg8glby\r\n9GEWzHslE8RNjlnsP6Jd+VJG5Kw3ehItgP/eiWg5/aA/nNPJon0rP2Xuxk6B\r\ncj+HTJH+IMu97citKa7f0Q3+U6XCNnCFRcjaWHFaWm8JygqLCzWiuGjyOCA3\r\nbn9hO6dH9SpfgjOvaE+Frzvc+Y0LmgxswaRy79DK9vB7ylnkPu66SPZnRxjP\r\n+w/Yt/7Hng6/ujPhDZQ1oRKcjsPrFVdE9/b4NgGypqLrKAztHsUu1TC96NaZ\r\nFkRbumzHnkGRMvSlemWgdFgllB6r+0bQCU8Co8Jt/eph/bnb1W9ak3ZNtY22\r\n7gTrc8VzHPRBa4LjeMV2ujfrw+GArlRU6H7sMd5t199PwV48d0XZxr417txo\r\ntaO5Q/Uh+bvyBYVCv8E5s0Nyqp3mzcOgl4B3eBBLeVRfRURNaCnHhxAcuLWb\r\nTSsgaLBHidRtGciEebEudJKfWOZ014iX7XA8Mbl2sXH3i/cwdv9BTDgoDL9K\r\nl6McIiQUL4xHo3OLl8Nj1VMSJlAPM3WQTXYda2A45mCjuE50MIebdwEAND8o\r\naw5wEpDEVD1VYqAwfKQot113r1OZYkuznjLNNYhFfD+DwI9vUHIo6wpNIvk9\r\noMRaHKd9OeNt5BPkXp2SedLkkox7kO5Z6Ug=\r\n=feC2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"types":"./build/index.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"33459f7fee141b1eb7d60a65c64f13095efc6f06","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"8.13.2","description":"Object method hooks made easy","directories":{},"_nodeVersion":"17.3.0","dependencies":{"uuid":"^8.3.2","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.6","sloc":"^0.2.1","husky":"^8.0.1","mocha":"^10.0.0","sinon":"^14.0.0","eslint":"^8.21.0","rimraf":"^3.0.2","codecov":"^3.8.3","ts-node":"^10.9.1","typedoc":"^0.23.10","prettier":"^2.7.1","cross-env":"^7.0.3","commitizen":"^4.2.5","typescript":"^4.7.4","@types/chai":"^4.3.1","@types/node":"^18.6.4","@types/uuid":"^8.3.4","fast-redact":"^3.1.1","@types/mocha":"^9.1.1","@types/sinon":"^10.0.13","@types/lodash":"^4.14.182","semantic-release":"^19.0.3","@types/fast-redact":"^3.0.1","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.21","applicationinsights":"^2.3.4","semantic-release-cli":"^5.4.4","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.2.1","@types/reflect-metadata":"^0.1.0","@typescript-eslint/parser":"^5.32.0","cz-conventional-changelog":"^3.3.0","@typescript-eslint/eslint-plugin":"^5.32.0","@istanbuljs/nyc-config-typescript":"^1.0.2"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.6.0_1659742934845_0.14550880938226407","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"surrogate","version":"1.7.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.7.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"9a0299a51976385fc2660c4e492e816b6a71931a","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.7.0.tgz","fileCount":291,"integrity":"sha512-7NhjRFOHckRGhWa2sPxaKHlz3uPRpt6W/uKq4XYQgrUHdespzLgJ6e9JLhf/Zhl5ZtriPgFGhUv2ZqbTLwP76w==","signatures":[{"sig":"MEUCIFf5b+kqfHqf5DeX8uPIELScInFiEcDrUnxvs2utfEIvAiEAkgSD1kw3BreJajiYm+uc7r9H9JWelCugeGthMEwA9iQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":220973},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"types":"./build/index.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"d5e85323f2e6bafccc230099a6b318b71d772309","scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","commit":"git-cz","predocs":"rimraf docs","prepush":"npm run coverage:test","prebuild":"rimraf build","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"9.2.0","description":"Object method hooks made easy","directories":{},"_nodeVersion":"18.12.1","dependencies":{"uuid":"^9.0.0","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.7","sloc":"^0.2.1","husky":"^8.0.3","mocha":"^10.2.0","sinon":"^15.0.4","eslint":"^8.40.0","rimraf":"^5.0.0","codecov":"^3.8.3","ts-node":"^10.9.1","typedoc":"^0.24.6","prettier":"^2.8.8","cross-env":"^7.0.3","commitizen":"^4.3.0","typescript":"^5.0.4","@types/chai":"^4.3.5","@types/node":"^20.1.0","@types/uuid":"^9.0.1","fast-redact":"^3.1.2","@types/mocha":"^10.0.1","@types/sinon":"^10.0.14","@types/lodash":"^4.14.194","semantic-release":"^21.0.2","@types/fast-redact":"^3.0.2","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.21","applicationinsights":"^2.6.0","semantic-release-cli":"^5.4.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^10.0.3","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@semantic-release/github":"^8.0.7","@typescript-eslint/parser":"^5.59.2","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^5.59.2","@istanbuljs/nyc-config-typescript":"^1.0.2","@semantic-release/commit-analyzer":"^9.0.2","@semantic-release/release-notes-generator":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.7.0_1683643090212_0.5882822726511725","host":"s3://npm-registry-packages"}},"1.7.1":{"name":"surrogate","version":"1.7.1","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.7.1","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"90f3da8f321aa93c56c03340ccde566710df3189","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.7.1.tgz","fileCount":292,"integrity":"sha512-E0cFo4XjdqGsX2BY78dfNzGhGh9RD4fpcr4uV/3aofvi96rLCXndVPpO/voRX2YVmGC5pXKAIoaqjIesnYloYQ==","signatures":[{"sig":"MEUCIQD1c7arOn7q5OjtMj83YmvKVXKqQ379itS8/+1ds6lEMwIgIzC572gOKYWUdbgduwkPuaHvchxMtvgYyVUEQ8dRYh4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223276},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"types":"./build/index.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"5d4fd70b2b22f6902c1d4adcf23822a4fd47d42d","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"angular","parserOpts":{"noteKeywords":["BREAKING CHANGE","BREAKING CHANGES"]},"releaseRules":[{"type":"docs","scope":"README","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}],"@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/github","@semantic-release/npm"],"branches":["master"]},"scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","predocs":"rimraf docs","prepare":"husky install","prepush":"npm run coverage:test","prebuild":"rimraf build","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"9.6.7","description":"Object method hooks made easy","directories":{},"_nodeVersion":"18.16.0","dependencies":{"uuid":"^9.0.0","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.7","sloc":"^0.2.1","husky":"^8.0.3","mocha":"^10.2.0","sinon":"^15.0.4","eslint":"^8.40.0","rimraf":"^5.0.0","codecov":"^3.8.3","ts-node":"^10.9.1","typedoc":"^0.24.7","prettier":"^2.8.8","cross-env":"^7.0.3","commitizen":"^4.3.0","typescript":"^5.0.4","@types/chai":"^4.3.5","@types/node":"^20.1.7","@types/uuid":"^9.0.1","fast-redact":"^3.2.0","@types/mocha":"^10.0.1","@types/sinon":"^10.0.15","@types/lodash":"^4.14.194","semantic-release":"^21.0.2","@types/fast-redact":"^3.0.2","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.21","applicationinsights":"^2.6.0","semantic-release-cli":"^5.4.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^10.0.3","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@semantic-release/github":"^8.0.7","@typescript-eslint/parser":"^5.59.6","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^5.59.6","@istanbuljs/nyc-config-typescript":"^1.0.2","@semantic-release/commit-analyzer":"^9.0.2","@semantic-release/release-notes-generator":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.7.1_1684731785677_0.7416870392526655","host":"s3://npm-registry-packages"}},"1.8.0":{"name":"surrogate","version":"1.8.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.8.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"a861fd599f3b635145143451a3c32d7da3b8b4fd","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.8.0.tgz","fileCount":295,"integrity":"sha512-5JVevNb+XS/EFgk0QgXn3dllKdeHkFw+s20AVF5OC7bC03MkZ6lcE8xxghua30GWw1+NU1LxNvViB02CeeHrLw==","signatures":[{"sig":"MEQCIEkrQaZ47fSySXgtNzBLujtNEHiNntV6thiaOGvlq6YyAiA29nn9lof9IcaSuaR5Sew8nWkeY4u4f/3TUU97JpbHSQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":223703},"main":"build/index.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"gitHead":"6921339d2296ac266bafdb7b34cf855eb3d1d26d","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"angular","parserOpts":{"noteKeywords":["BREAKING CHANGE","BREAKING CHANGES"]},"releaseRules":[{"type":"docs","scope":"README","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}],"@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/github","@semantic-release/npm"],"branches":["master"]},"scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"tsc","mocha":"mocha","predocs":"rimraf docs","prepare":"husky install","prepush":"npm run coverage:test","prebuild":"rimraf build","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","prepublish":"npm run build","test:watch":"mocha --watch","semantic:cli":"semantic-release-cli","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","build:examples":"tsc -p ./examples/tsconfig.json","coverage:check":"nyc check-coverage","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","semantic-release":"semantic-release","prebuild:examples":"rimraf build-examples && npm run build"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"6.14.18","description":"Object method hooks made easy","directories":{},"_nodeVersion":"18.16.0","dependencies":{"uuid":"^9.0.0","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.3.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.7","sloc":"^0.2.1","husky":"^8.0.3","mocha":"^10.2.0","sinon":"^15.0.4","eslint":"^8.40.0","rimraf":"^5.0.0","codecov":"^3.8.3","ts-node":"^10.9.1","typedoc":"^0.24.7","prettier":"^2.8.8","cross-env":"^7.0.3","commitizen":"^4.3.0","typescript":"^5.0.4","@types/chai":"^4.3.5","@types/node":"^20.1.7","@types/uuid":"^9.0.1","fast-redact":"^3.2.0","@types/mocha":"^10.0.1","@types/sinon":"^10.0.15","@types/lodash":"^4.14.194","semantic-release":"^21.0.2","@types/fast-redact":"^3.0.2","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.21","applicationinsights":"^2.6.0","semantic-release-cli":"^5.4.4","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^10.0.3","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@semantic-release/github":"^8.0.7","@typescript-eslint/parser":"^5.59.6","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^5.59.6","@istanbuljs/nyc-config-typescript":"^1.0.2","@semantic-release/commit-analyzer":"^9.0.2","@semantic-release/release-notes-generator":"^11.0.1"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.8.0_1686897102672_0.9479082278623225","host":"s3://npm-registry-packages"}},"1.9.0":{"name":"surrogate","version":"1.9.0","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.9.0","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"185226af3d46f18eaac03d10e7da3e7c9a9ec620","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.9.0.tgz","fileCount":333,"integrity":"sha512-bDx+mM5K/fzT1QhrAQyYmKt2CVbuz9RPKehuaDg3LUvyJGqM0MRHkGN+OU71JsUMb4mY4IZESiUD3PyYi7xlFQ==","signatures":[{"sig":"MEUCIQCZS1U1U/ymD8PUhlJ4OXxoGBrqMwdG/SCl7L6Gi5gIoQIgc2YEPHLARfjK/WTTb+/r67L11xQPTOzsygi9Dh1yGc4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466673},"main":"dist/main.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"types":"dist/types.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/module.mjs","source":"src/index.ts","exports":{"types":"./dist/types.d.ts","import":"./dist/module.mjs","require":"./dist/main.js"},"gitHead":"db0005cbfe9b2039df8bccc336c4163640fb69f1","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"angular","parserOpts":{"noteKeywords":["BREAKING CHANGE","BREAKING CHANGES"]},"releaseRules":[{"type":"docs","scope":"README","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}],"@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/github","@semantic-release/npm"],"branches":["master"]},"scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","lint":"eslint ./src/* --report-unused-disable-directives","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"parcel build","check":"npm-check -u","mocha":"mocha","cspell":"cspell cspell lint --no-progress --fail-fast \"**\"","compile":"tsc --noEmit --noErrorTruncation","predocs":"rimraf docs","prepack":"npm run build","prepare":"husky install","prepush":"npm run coverage:test","prebuild":"rimraf dist","prettier":"prettier --write \"src/**/*.{ts,js,tsx,jsx,json,md}\"","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","test:watch":"mocha --watch","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","coverage:check":"nyc check-coverage","prettier:check":"prettier --check \"src/**/*.{ts,js,tsx,jsx,json,md}\"","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","precoverage:report":"npm run coverage:test"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"10.9.3","description":"Object method hooks made easy","directories":{},"_nodeVersion":"22.17.1","dependencies":{"uuid":"^11.1.0","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.7","sloc":"^0.3.2","husky":"^9.1.7","mocha":"^10.2.0","sinon":"^15.0.4","eslint":"^8.40.0","parcel":"^2.15.4","rimraf":"^6.0.1","codecov":"^3.8.3","ts-node":"^10.9.1","typedoc":"^0.28.7","prettier":"^2.8.8","cross-env":"^7.0.3","npm-check":"^6.0.1","commitizen":"^4.3.1","typescript":"^5.8.3","@types/chai":"^4.3.5","@types/node":"^24.1.0","@types/uuid":"^10.0.0","fast-redact":"^3.5.0","@types/mocha":"^10.0.10","@types/sinon":"^10.0.15","@types/lodash":"^4.14.194","semantic-release":"^24.2.7","@types/fast-redact":"^3.0.4","eslint-plugin-node":"^11.1.0","source-map-support":"^0.5.21","@parcel/packager-ts":"^2.15.4","applicationinsights":"^2.6.0","semantic-release-cli":"^5.4.6","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.2","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@parcel/bundler-library":"^2.15.4","@semantic-release/github":"^11.0.3","@typescript-eslint/parser":"^5.59.6","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^5.59.6","@istanbuljs/nyc-config-typescript":"^1.0.2","@semantic-release/commit-analyzer":"^13.0.1","@parcel/transformer-typescript-types":"^2.15.4","@semantic-release/release-notes-generator":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.9.0_1753331657360_0.6744073703233517","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"surrogate","version":"1.9.1","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"author":{"name":"jfrazx"},"license":"MIT","_id":"surrogate@1.9.1","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"homepage":"https://github.com/jfrazx/surrogate#readme","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"dist":{"shasum":"f39c90bc43d2de35314f31b8d65ccfcbfe62880d","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.9.1.tgz","fileCount":333,"integrity":"sha512-SYlwCh7bSM26wzwZ9eaMOJyrrds08ICLApbyvf9oa6hmapVH1aPRGRi+zsIcLynkhAKRlJCHaTKz6jk0Dstigw==","signatures":[{"sig":"MEQCIERhMXPVaaX2zhaUT0D7l2MCFP+ZXwoD1eVnUQRYfd+JAiAyavByNngbzRGs2WCzF/oNn8Yg4NVKqmd3pJe51W4iTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":466670},"main":"dist/main.js","mocha":{"spec":"test/*.spec.ts","require":["ts-node/register/transpile-only","source-map-support/register"],"reporter":"spec","recursive":true},"types":"dist/types.d.ts","config":{"commitizen":{"path":"cz-conventional-changelog"}},"module":"dist/module.mjs","source":"src/index.ts","exports":{"types":"./dist/types.d.ts","import":"./dist/module.mjs","require":"./dist/main.js"},"gitHead":"f60ee08d6870dc79b94694167f091304532c2f47","release":{"plugins":[["@semantic-release/commit-analyzer",{"preset":"angular","parserOpts":{"noteKeywords":["BREAKING CHANGE","BREAKING CHANGES"]},"releaseRules":[{"type":"docs","scope":"README","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}]}],"@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/github","@semantic-release/npm"],"branches":["master"]},"scripts":{"nyc":"nyc","tsc":"tsc","docs":"typedoc src/index.ts","lint":"eslint ./src/* --report-unused-disable-directives","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","build":"parcel build","check":"npm-check -u","mocha":"mocha","cspell":"cspell cspell lint --no-progress --fail-fast \"**\"","compile":"tsc --noEmit --noErrorTruncation","predocs":"rimraf docs","prepack":"npm run build","prepare":"husky install","prepush":"npm run coverage:test","prebuild":"rimraf dist","prettier":"prettier --write \"src/**/*.{ts,js,tsx,jsx,json,md}\"","leak:test":"node -r ts-node/register/transpile-only scripts/leak","precommit":"npm run coverage:test && npm run coverage:check","del:merged":"node -r ts-node/register/transpile-only scripts/merged","test:watch":"mocha --watch","coverage:post":"codecov","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","coverage:check":"nyc check-coverage","prettier:check":"prettier --check \"src/**/*.{ts,js,tsx,jsx,json,md}\"","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","precoverage:test":"rimraf coverage","precoverage:report":"npm run coverage:test"},"_npmUser":{"name":"jfrazx","email":"staringblind@gmail.com"},"repository":{"url":"git+https://github.com/jfrazx/surrogate.git","type":"git"},"_npmVersion":"10.9.3","description":"Object method hooks made easy","directories":{},"_nodeVersion":"22.17.1","dependencies":{"uuid":"^11.1.0","@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^15.1.0","chai":"^4.3.7","sloc":"^0.3.2","husky":"^9.1.7","mocha":"^10.2.0","sinon":"^15.0.4","eslint":"^8.40.0","parcel":"^2.15.4","rimraf":"^6.0.1","codecov":"^3.8.3","ts-node":"^10.9.1","typedoc":"^0.28.7","prettier":"^2.8.8","cross-env":"^7.0.3","npm-check":"^6.0.1","commitizen":"^4.3.1","typescript":"^5.8.3","@types/chai":"^4.3.5","@types/node":"^24.1.0","@types/uuid":"^10.0.0","fast-redact":"^3.5.0","@types/mocha":"^10.0.10","@types/sinon":"^10.0.15","@types/lodash":"^4.14.194","eslint-plugin-n":"^14.0.0","semantic-release":"^24.2.7","@types/fast-redact":"^3.0.4","source-map-support":"^0.5.21","@parcel/packager-ts":"^2.15.4","applicationinsights":"^2.6.0","semantic-release-cli":"^5.4.6","@semantic-release/git":"^10.0.1","@semantic-release/npm":"^12.0.2","eslint-config-prettier":"^8.8.0","eslint-plugin-prettier":"^4.2.1","@parcel/bundler-library":"^2.15.4","@semantic-release/github":"^11.0.3","@typescript-eslint/parser":"^5.59.6","cz-conventional-changelog":"^3.3.0","@semantic-release/changelog":"^6.0.3","@typescript-eslint/eslint-plugin":"^5.59.6","@istanbuljs/nyc-config-typescript":"^1.0.2","@semantic-release/commit-analyzer":"^13.0.1","@parcel/transformer-typescript-types":"^2.15.4","@semantic-release/release-notes-generator":"^14.0.3"},"_npmOperationalInternal":{"tmp":"tmp/surrogate_1.9.1_1753386857525_0.16678285906782309","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"surrogate","version":"1.9.2","description":"Object method hooks made easy","source":"src/index.ts","main":"dist/main.js","module":"dist/module.mjs","types":"dist/types.d.ts","exports":{"import":"./dist/module.mjs","require":"./dist/main.js","types":"./dist/types.d.ts"},"keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"scripts":{"cspell":"cspell cspell lint --no-progress --fail-fast \"**\"","sloc":"sloc ./src","test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' mocha","test:watch":"mocha --watch","compile":"tsc --noEmit --noErrorTruncation","tsc":"tsc","predocs":"rimraf docs","docs":"typedoc src/index.ts","del:merged":"node -r ts-node/register/transpile-only scripts/merged","leak:test":"node -r ts-node/register/transpile-only scripts/leak","prebuild":"rimraf dist","build":"parcel build","coverage:check":"nyc check-coverage","precoverage:report":"npm run coverage:test","coverage:report":"nyc report --reporter=text-lcov > coverage.lcov","coverage:post":"codecov","precoverage:test":"rimraf coverage","coverage:test":"cross-env TS_NODE_PROJECT='./test/tsconfig.json' nyc mocha","nyc":"nyc","precommit":"npm run coverage:test && npm run coverage:check","prepush":"npm run coverage:test","lint":"eslint ./src/* --report-unused-disable-directives","prepack":"npm run build","prettier":"prettier --write \"src/**/*.{ts,js,tsx,jsx,json,md}\"","prettier:check":"prettier --check \"src/**/*.{ts,js,tsx,jsx,json,md}\"","mocha":"mocha","prepare":"husky install","check":"npm-check -u"},"author":{"name":"jfrazx"},"license":"MIT","dependencies":{"@jfrazx/asarray":"^1.0.1","@status/defaults":"^1.6.1","uuid":"^11.1.0"},"devDependencies":{"@istanbuljs/nyc-config-typescript":"^1.0.2","@parcel/bundler-library":"^2.15.4","@parcel/packager-ts":"^2.15.4","@parcel/transformer-typescript-types":"^2.15.4","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.1","@semantic-release/git":"^10.0.1","@semantic-release/github":"^12.0.0","@semantic-release/npm":"^13.0.0","@semantic-release/release-notes-generator":"^14.0.3","@types/chai":"^5.0.0","@types/fast-redact":"^3.0.4","@types/lodash":"^4.14.194","@types/mocha":"^10.0.10","@types/node":"^24.12.4","@types/sinon":"^21.0.0","@types/uuid":"^11.0.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","applicationinsights":"^3.0.0","chai":"^4.3.7","codecov":"^3.8.3","commitizen":"^4.3.1","cross-env":"^10.0.0","cz-conventional-changelog":"^3.3.0","eslint":"^10.0.0","eslint-config-prettier":"^10.0.0","eslint-plugin-n":"^18.0.0","eslint-plugin-prettier":"^5.0.0","fast-redact":"^3.5.0","husky":"^9.1.7","mocha":"^11.0.0","npm-check":"^6.0.1","nyc":"^18.0.0","parcel":"^2.15.4","prettier":"^3.0.0","rimraf":"^6.0.1","semantic-release":"^25.0.0","semantic-release-cli":"^5.4.6","sinon":"^22.0.0","sloc":"^0.3.2","source-map-support":"^0.5.21","ts-node":"^10.9.1","typedoc":"^0.28.7","typescript":"^5.8.3"},"config":{"commitizen":{"path":"cz-conventional-changelog"}},"mocha":{"recursive":true,"spec":"test/*.spec.ts","reporter":"spec","require":["ts-node/register/transpile-only","source-map-support/register"]},"repository":{"type":"git","url":"git+https://github.com/jfrazx/surrogate.git"},"release":{"branches":["master"],"plugins":[["@semantic-release/commit-analyzer",{"preset":"angular","releaseRules":[{"type":"docs","scope":"README","release":"patch"},{"type":"refactor","release":"patch"},{"type":"style","release":"patch"}],"parserOpts":{"noteKeywords":["BREAKING CHANGE","BREAKING CHANGES"]}}],"@semantic-release/release-notes-generator","@semantic-release/changelog","@semantic-release/github","@semantic-release/npm"]},"publishConfig":{"access":"public"},"gitHead":"58e4f9af235785ac5f56ae8231931768ebfa672f","_id":"surrogate@1.9.2","bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"homepage":"https://github.com/jfrazx/surrogate#readme","_nodeVersion":"24.15.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-U0/2HdYxOPhJ1OsRpDyuH6uueuqnqR2zRlkpt3lhzpnRkx8S6kzRk7PMmU0ISUzCJFMwROSQbwGmESMPYY0zBQ==","shasum":"1a9836d41c47226e923763d72f41db75148a1d7b","tarball":"https://registry.npmjs.org/surrogate/-/surrogate-1.9.2.tgz","fileCount":333,"unpackedSize":469920,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/surrogate@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGyzNw9HARAkz5L2gU9RmccvYltezz5y6ZD7a96XuK58AiABMpdi4W0ip0yf5uGiORo+iicP7ekbcszj28K+uRLTVg=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:65275109-f17f-487b-82d8-86e2bed4c1d2"}},"directories":{},"maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/surrogate_1.9.2_1779289619571_0.43173051222391634"},"_hasShrinkwrap":false}},"time":{"created":"2014-09-05T07:51:06.579Z","modified":"2026-05-20T15:06:59.996Z","0.0.1":"2014-09-05T07:51:06.579Z","0.2.0":"2014-10-03T18:22:13.060Z","0.2.1":"2014-10-03T22:14:15.815Z","0.2.2":"2014-10-03T22:19:13.338Z","0.0.0":"2014-10-03T23:26:11.727Z","1.0.0":"2021-04-03T21:30:28.254Z","1.1.0":"2021-04-07T06:16:56.300Z","1.1.1":"2021-04-07T19:00:11.055Z","1.2.0":"2021-05-18T15:24:52.628Z","1.3.0":"2021-06-01T15:57:16.954Z","1.3.1":"2021-06-01T16:37:42.565Z","1.3.2":"2021-06-01T19:58:01.824Z","1.3.3":"2021-06-02T15:12:31.658Z","1.3.4":"2021-06-30T17:42:38.160Z","1.3.5":"2021-07-01T15:06:11.118Z","1.4.0":"2021-07-15T18:16:08.889Z","1.5.0":"2021-08-09T14:49:59.698Z","1.5.1":"2022-03-11T18:48:53.941Z","1.6.0":"2022-08-05T23:42:15.008Z","1.7.0":"2023-05-09T14:38:10.403Z","1.7.1":"2023-05-22T05:03:05.892Z","1.8.0":"2023-06-16T06:31:42.915Z","1.9.0":"2025-07-24T04:34:17.547Z","1.9.1":"2025-07-24T19:54:17.710Z","1.9.2":"2026-05-20T15:06:59.730Z"},"bugs":{"url":"https://github.com/jfrazx/surrogate/issues"},"author":{"name":"jfrazx"},"license":"MIT","homepage":"https://github.com/jfrazx/surrogate#readme","keywords":["hooks","hook","proxy","hooking","pre","post","flow","control","async","sync","api"],"repository":{"type":"git","url":"git+https://github.com/jfrazx/surrogate.git"},"description":"Object method hooks made easy","maintainers":[{"name":"jfrazx","email":"staringblind@gmail.com"}],"readme":"# Surrogate\n\nEasily create `Pre` and `Post` hooks on JavaScript objects.\n\n## Install\n\n`npm install surrogate`\n\nor\n\n`yarn add surrogate`\n\n## Usage\n\nThere are a couple ways to manage Surrogate. The first is to utilize an exposed helper function, `wrapSurrogate`, to wrap objects and register pre and post methods through it.\n\n```typescript\nimport { wrapSurrogate, Surrogate, NextParameters } from 'surrogate';\n\nconst guitar: Surrogate<Guitar> = wrapSurrogate(new Guitar(), options);\n\nguitar.getSurrogate().registerPreHook('play', ({ next }: NextParameters<Guitar>) => {\n  // do things before running 'play'\n\n  next.next();\n});\n```\n\nCheck [examples](./examples) for expanded samples.\n\n### SurrogateOptions\n\n| Option           | Type                          | Default Value | Description                                                                                                                        |\n| ---------------- | ----------------------------- | :-----------: | ---------------------------------------------------------------------------------------------------------------------------------- |\n| useSingleton?    | boolean                       |     true      | Informs Surrogate to operate as a Singleton                                                                                        |\n| useContext?      | any                           |       T       | The context in which to call surrogate handlers. Handler specific contexts take precedence.                                        |\n| provide?         | any                           |     null      | User provided content to pass to handlers and conditionals. Handler specific values take precedence                                |\n| silenceErrors?   | boolean \\| SilenceErrors      |     false     | Specify if Surrogate error output should be silenced. Accepts boolean or function that will receive the error and return a boolean |\n| maintainContext? | boolean \\| string \\| string[] |     false     | Maintain context for methods without hooks. Can be a method name or array of method names                                          |\n\n### SurrogateMethods\n\nAfter wrapping your instance with Surrogate new methods are available, `getSurrogate`, which, when called will return an instance of Surrogate Event Manager that allows management of pre and post methods and `disposeSurrogate` which will restore all methods, deregister hooks and remove the current instance from Surrogate management.\n\n| Method           | Parameters | Returns               | Description                                            |\n| ---------------- | :--------: | --------------------- | ------------------------------------------------------ |\n| getSurrogate     |    n/a     | SurrogateEventManager | Provides capabilities for managing method hooks        |\n| disposeSurrogate |    n/a     | T                     | Cleans current instance of Surrogate handlers          |\n| bypassSurrogate  |    n/a     | T                     | Allows calling target methods without running handlers |\n\n### SurrogateEventManager\n\n| Method              | Parameters                                                                     | Returns               | Description                                  |\n| ------------------- | ------------------------------------------------------------------------------ | --------------------- | -------------------------------------------- |\n| registerPreHook     | (event: string, handler: SurrogateHandlers, options?: SurrogateHandlerOptions) | SurrogateEventManager | Registers a `pre` hook                       |\n| registerPostHook    | (event: string, handler: SurrogateHandlers, options?: SurrogateHandlerOptions) | SurrogateEventManager | Registers a `post` hook                      |\n| deregisterPreHooks  | (event: string)                                                                | SurrogateEventManager | Deregisters `pre` hooks for the given event  |\n| deregisterPostHooks | (event: string)                                                                | SurrogateEventManager | Deregisters `post` hooks for the given event |\n| deregisterHooks     | n/a                                                                            | SurrogateEventManager | Removes all hooks for the current instance.  |\n\nSurrogateHandlers is any function that accepts a `NextParameters` object which can be used to control flow through pre and post hooks. It may also be the name of a method on the target object.\n\n### CommonParameters\n\nCommon parameters passed to all handlers and conditional functions. (runConditions, runOnError, runOnBail)\n\n| Property          | Member Of          | Type        | Description                                                                            |\n| ----------------- | ------------------ | ----------- | -------------------------------------------------------------------------------------- |\n| action            | ProviderParameters | string      | The current target method.                                                             |\n| correlationId     | ProviderParameters | string      | Unique identifier for the current hook pipeline                                        |\n| instance          | ProviderParameters | T           | The current unwrapped instance                                                         |\n| error?            | ProviderParameters | Error       | An error object, if passed                                                             |\n| hookType          | ProviderParameters | string      | Provides the current hook type as a string.                                            |\n| receivedArguments | ProviderParameters | any[]       | Arguments received from the previous handler.                                          |\n| currentArgs       | ProviderParameters | any[]       | Array of potentially modified arguments passed to original method invoked by surrogate |\n| originalArgs      | ProviderParameters | any[]       | Array of arguments passed to the instance invoked method                               |\n| timeTracker       | ProviderParameters | TimeTracker | Provides access to the current time tracker                                            |\n| result            | ProviderParameters | any         | Result of original method invocation if run                                            |\n| provide           | ProviderParameters | any         | User provided content to pass to handlers and conditionals. Default value is `null`    |\n\n### NextParameters\n\n`NextParameters` is passed to all hook handlers. In addition to `CommonParameters` you'll receive the current Surrogate wrapped instance and an `INext` object that provides functionality to skip hooks or continue to the next hook for execution.\n\n| Property  | Type      | Description                                            |\n| --------- | --------- | ------------------------------------------------------ |\n| surrogate | Surrogate | Provides handler access to surrogate wrapped instance. |\n| next      | INext     | Object that provides flow control capabilities         |\n\n#### TimeTracker\n\n| Method              |  Member Of  | Parameters | Return Value | Description                                         |\n| ------------------- | :---------: | :--------: | :----------: | --------------------------------------------------- |\n| geStartTime         | TimeTracker |    none    |    number    | Returns the start time of the current pipeline.     |\n| getTotalDuration    | TimeTracker |    none    |    number    | Returns the total duration of the current pipeline. |\n| getHookStartTime    | TimeTracker |    none    |    number    | Returns the start time of the current hook.         |\n| getLastRunDuration  | TimeTracker |    none    |    number    | Returns the duration of the last hook.              |\n| getTimeSinceLastRun | TimeTracker |    none    |    number    | Returns the duration since the last hook completed. |\n\n#### INext\n\n| Method   | Member Of | Parameters                           | Default Value | Description                                                                                  |\n| -------- | :-------: | ------------------------------------ | :-----------: | -------------------------------------------------------------------------------------------- |\n| skip     |   INext   | (skipAmount?: number)                |       1       | Method that will skip the next 'skipAmount' handlers                                         |\n| skipWith |   INext   | (skipAmount: number, ...args: any[]) |      []       | Same as `skip` but will accept any number of arguments, passing to the next executed handler |\n| next     |   INext   | (nextOptions?: NextOptions)          |      n/a      | Calling next may advance to the next hook.                                                   |\n\n#### Next Options\n\n| Property  | Type    | Description                                                                                                             |\n| --------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |\n| error?    | Error   | Passing an Error may result in the error being thrown, depending on supplied handler options                            |\n| using?    | any[]   | An array of values to pass to the next handler                                                                          |\n| bail?     | boolean | Indicates all subsequent handler executions should stop immediately. Target method is not called if bailing in pre hook |\n| replace?  | any     | Replaces the original arguments passed to the target method.                                                            |\n| bailWith? | any     | If bailing, the supplied value should be returned                                                                       |\n\n### SurrogateHandlerOptions\n\nWhen registering a hook you may provide any of the following options.\n\n| Property       | Type                           | Default Value | Description                                                                                                             |\n| -------------- | ------------------------------ | :-----------: | ----------------------------------------------------------------------------------------------------------------------- |\n| useNext?       | boolean                        |     true      | `true` indicates usage of the `INext` object to control flow, otherwise Surrogate makes a determination when to advance |\n| noArgs?        | boolean                        |     false     | Specify that `NextParameters` should NOT be passed to a handler                                                         |\n| ignoreErrors?  | boolean                        |     false     | If true and an Error is passed or caught Surrogate will not throw.                                                      |\n| useContext?    | any                            |       T       | The context in which to call surrogate handlers.                                                                        |\n| wrapper?       | MethodWrappers                 |     sync      | Tells Surrogate if it is managing synchronous or asynchronous methods.                                                  |\n| runConditions? | RunCondition \\| RunCondition[] |      n/a      | Conditions to determine if a handler should be executed.                                                                |\n| runOnError?    | RunOnError \\| RunOnError[]     |      n/a      | Functions to run in the event of handler error. Runs regardless of ignoreError                                          |\n| runOnBail?     | RunOnBail \\| RunOnBail[]       |      n/a      | Functions to run in the event of handler bailing.                                                                       |\n| priority?      | number                         |       0       | Used to determine the order in which handlers are executed. Larger numbers have higher priority                         |\n\n`useContext` option defaults to the current instance. Specifying context should be `surrogate` will allow hooks in the pipeline to trigger additional hooks. This can be extraordinarily useful but has the potential to cause recursive loops.\n\n#### RunCondition\n\nA RunCondition is a function that receives `RunConditionParameters`, which includes [CommonParameters](#-CommonParameters) and returns a boolean indicating if the current handler should be executed(`true`) or skipped(`false`). All run conditions are executed synchronously and all conditions must be true for the handler to execute.\n\n| Property                    | Member Of              | Type    | Description                                         |\n| --------------------------- | ---------------------- | ------- | --------------------------------------------------- |\n| didError                    | RunConditionParameters | boolean | Indicates if the previous handler passed an Error.  |\n| valueFromCondition          | RunConditionParameters | any     | Value passed forward from previous run condition    |\n| didReceiveFromLastCondition | RunConditionParameters | boolean | Indicates if the previous condition passed a value. |\n| passToNextCondition()       | RunConditionParameters | any     | Function to pass a value to next condition          |\n\n#### RunOnError\n\n`RunOnError` is a function that receives `RunOnErrorParameters`, which includes [CommonParameters](#CommonParameters) and the ability to recover from an error.\n\n| Property           | Member Of            | Type    | Description                                       |\n| ------------------ | -------------------- | ------- | ------------------------------------------------- |\n| error              | RunOnErrorParameters | Error   | An error object received or caught from a handler |\n| recoverFromError() | RunOnErrorParameters | boolean | Function to recover from an error                 |\n\n#### RunOnBail\n\n`RunOnBail` is a function that receives `RunOnBailParameters`, which includes [CommonParameters](#-CommonParameters) and the ability to recover from a bailing handler.\n\n| Property          | Member Of           | Type    | Description                                |\n| ----------------- | ------------------- | ------- | ------------------------------------------ |\n| bailWith()        | RunOnBailParameters | any     | Function that accepts a value to bail with |\n| recoverFromBail() | RunOnBailParameters | boolean | Function to recover from a bailing handler |\n\n---\n\n## Decorators\n\nPerhaps a more convenient way to register hooks is with decorators.\n\n```typescript\nimport { SurrogateDelegate } from 'surrogate';\n\n@SurrogateDelegate()\nclass Guitar {}\n```\n\n`SurrogateDelegate` registers your class and will automatically wrap instances of that class with Surrogate.  \nIt supports all options from [`SurrogateOptions`](#-SurrogateOptions) as well as option `locateWith` which may be provided to assist Surrogate in\nlocating method decorators for a particular class. Should only be necessary if multiple class decorators are utilized.\n\n```typescript\nimport { SurrogateDelegate } from 'surrogate';\n\n@SurrogateDelegate({\n  locateWith: Guitar,\n})\n@MyOtherClassDecorator()\nclass Guitar {}\n```\n\nIf you wish to use `Surrogate` [methods](#-SurrogateMethods) inside this instance of your class you must extend `SurrogateMethods` interface.\n\n```typescript\nimport { SurrogateDelegate, SurrogateMethods } from 'surrogate';\n\nexport interface Guitar extends SurrogateMethods<Guitar> {}\n\n@SurrogateDelegate()\nexport class Guitar {}\n```\n\nRegistering hooks:\n\n```typescript\nimport { NextParameters, SurrogatePre, SurrogatePost, SurrogateDelegate } from 'surrogate';\n\n@SurrogateDelegate()\nclass Guitar {\n  @SurrogatePre(({ next }: NextParameters<Guitar>) => {\n    console.log(`Tuning guitar`);\n\n    next.next();\n  })\n  @SurrogatePost<Guitar>({\n    handler: () => {\n      console.log(`Put guitar away`);\n    },\n    options: {\n      useNext: false,\n    },\n  })\n  play() {\n    console.log(`playing guitar`);\n  }\n}\n```\n\n### SurrogateDecoratorOptions\n\nAll `Surrogate[Async](Pre|Post)` decorators accept `SurrogateDecoratorOptions` or an array of options and must decorate the intended hooked method.\n\n|  Option  | Type                                                 | Default Value | Description                                                                       |\n| :------: | ---------------------------------------------------- | :-----------: | --------------------------------------------------------------------------------- |\n| handler  | [SurrogateHandlers](##-SurrogateEventManager)        |      n/a      | This function or array of functions will run before or after the decorated method |\n| options? | [SurrogateHandlerOptions](#-SurrogateHandlerOptions) |      {}       | Options defining `Surrogate` handler behavior                                     |\n\n### NextDecoratorOptions\n\nAll `Next[Async](Pre|Post)` decorators accept `NextDecoratorOptions` or an array of options. Any method decorated with Next\\* will be registered as a Surrogate handler. Therefore, you must supply the target method the Next\\* method will run with.\n\n|  Option  | Type                                                 | Default Value | Description                                                             |\n| :------: | ---------------------------------------------------- | :-----------: | ----------------------------------------------------------------------- |\n|  action  | keyof T \\| string \\| (keyof T \\| string )[]          |      n/a      | Name of the target decorated method, accepts regexp string for matching |\n| options? | [SurrogateHandlerOptions](#-SurrogateHandlerOptions) |      {}       | Options defining `Surrogate` handler behavior                           |\n\n```typescript\n@SurrogateDelegate({\n  locateWith: Account,\n})\n@Table({\n  timestamps: true,\n})\nclass Account extends Model<Account> {\n  @NextAsyncPreAndPost<Account>({\n    action: ['update', 'save'],\n    options: {\n      useNext: false,\n    },\n  })\n  protected async logActions({\n    instance: model,\n    originalArgs,\n    timeTracker,\n    hookType,\n    action,\n  }: NextParameters<Account>) {\n    const keys = (model.changed() || []) as (keyof Account)[];\n    const changes = keys.reduce(\n      (changed, key) => ({\n        ...changed,\n        [key]: {\n          current: model.getDataValue(key),\n          previous: model.previous(key),\n        },\n      }),\n      {},\n    );\n\n    telemetry.trackEvent({\n      name: `${hookType}|${action}|Logging`,\n      properties: {\n        action,\n        changes,\n        hookType,\n        model: model.toJSON(),\n        arguments: originalArgs,\n      },\n      measurements: {\n        lastRunDuration: timeTracker.getDurationSinceLastRun(),\n      },\n    });\n  }\n}\n```\n\n## Acknowledgements\n\nMany thanks to [Dale](https://github.com/divmain) for transferring the npm package name.\n","readmeFilename":"README.md"}