{"_id":"@microsoft/servicehub-framework","_rev":"80-8bf8cf2494f6aab77403ce1688c0c2a3","name":"@microsoft/servicehub-framework","dist-tags":{"latest":"4.8.55"},"versions":{"2.6.67":{"name":"@microsoft/servicehub-framework","version":"2.6.67","author":{"name":"Microsoft"},"license":"SEE LICENSE IN LICENSE.txt","_id":"@microsoft/servicehub-framework@2.6.67","maintainers":[{"name":"microsoft","email":"npmjs@microsoft.com"}],"nyc":{"exclude":["*/test"]},"dist":{"shasum":"cc0e4b24b2ab75137a75189d984dc937fc4c0d15","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-2.6.67.tgz","fileCount":41,"integrity":"sha512-XyHUaj9JxbklInJI97Apktg5z20Zus9fPGs6y3QHlqqhM/7VohVrOMRLKUgtiLeHYoIJGlwZEShHGaPo5dwrgA==","signatures":[{"sig":"MEUCIQC5s0F07rCRqCf91LoS3J/EY4Zd+1gwsfHtbDcdAbYfLwIgGFZbClx4FxbF+Sm/4iNrI2anCknvpZynATl5h187irU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":362769,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4VGrCRA9TVsSAnZWagAAdk4P/RaDJMuRGTlnVOdMNFGK\n5odSzr/M4Pgz+R55lB5XCt1pO/dlhIgfKRgSftWcn1KV9aMS74/regpJhYMQ\nbvitd0EUgUFZJiEj4l6F3W+UuAiw3TyQRxHP1zeFi/I06WDGBaVq7HmG2oS7\n+Xo/3YBOmKbmQ+2TIJiclhGMJEzF3mks+Mev7leEuES/87CR01QtVmWgYPDn\njPQZB1PF3ZOrW2+sFjRPscj2Ftbb2g36SsQL1e5pcH9IdIcBshApGFPidk4w\nTQZOATLoaGtxE5V4YJKAcbowNyOaHTkBZrQ5LMImPyR+ZEPgfwRK3fmVO3m+\n6TfT64bsIgm2cS1HzYBycQmfDAb43Bjq4Cxn80ThyG5AHoHQ6pj/hFcY5bQy\nvAwJJSpyac88hYTgSBC+Xog3axWPpZwJ3FPrUmrNhA+seadZ/eh+o3r0qPIJ\n3bUX/P5RO8cqv9TUu2oVaDZHNW9pas+9n9vDjuhec6EEJ8yfLlSZhQQ3r0J+\nVZQxpzCRM2Mt7Ozu1FcCR2pwtDR6fjRnJZnM506iWYvFJkhwJ1rCqB9byiQz\nRFtxipN+E3SzhOb2PlkqmWy9uel2BNF42QQCXL6h3968rEBrERDaSyn5JJRA\nhWhqCWNnE3ISNrUFTNB1U+qgaVDM92/HTXknBwCFJg4q3Hv9YpAz8T0fHQhL\n6yC+\r\n=DBiX\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","scripts":{"test":"nyc mocha --require ts-node/register js/test/*.js"},"typings":"index.d.ts","_npmUser":{"name":"microsoft","email":"npmjs@microsoft.com"},"repository":{"url":"https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_git/DevCore","type":"git"},"_npmVersion":"6.13.4","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"12.16.1","dependencies":{"vscode-jsonrpc":"^4.0.0","nerdbank-streams":"^2.5.60","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"q":"^1.5.1","nyc":"^14.1.1","gulp":"^4.0.2","mocha":"^6.2.0","yargs":"^14.2.0","eslint":"^6.3.0","tslint":"^6.0.0","ts-node":"^8.6.2","gulp-mocha":"^7.0.2","typescript":"^3.7.2","@types/node":"^12.7.4","gulp-tslint":"^8.1.4","@types/mocha":"^5.2.7","gulp-msbuild":"^0.6.2","gulp-typescript":"^5.0.1","@microsoft/tsdoc":"^0.12.19","eslint-plugin-node":"^10.0.0"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_2.6.67_1591824810726_0.2921459831888089","host":"s3://npm-registry-packages"}},"2.6.74":{"name":"@microsoft/servicehub-framework","version":"2.6.74","author":{"name":"Microsoft"},"license":"LICENSE.txt","_id":"@microsoft/servicehub-framework@2.6.74","maintainers":[{"name":"andrewarnott","email":"andrewarnott@gmail.com"},{"name":"jepetty","email":"jepetty@microsoft.com"},{"name":"microsoft","email":"npmjs@microsoft.com"},{"name":"rytoth","email":"rytoth@microsoft.com"}],"nyc":{"exclude":["*/test"]},"dist":{"shasum":"7c45717adea4f6fe2bd0c8bbe572f42c64a13a83","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-2.6.74.tgz","fileCount":44,"integrity":"sha512-QJ//zzvxffupIkzupnVbMYY5YDOP+g5FlG6x0Pl7svRyq8pAouiibckJJcZlMtsMypKWwAnVBKb9/sonEOsUxw==","signatures":[{"sig":"MEYCIQCDJLM5oOaTzZt/4SppoJsKx5Y7kSJKyy0GZ5AWnLckEAIhAKb9sGaQcSeoI0tdikycIx998dgi0CiGYLtj1qp3TRGt","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":386723,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4oUCCRA9TVsSAnZWagAAHg8P/2vb2xVQX+H9MG3G8OrU\nBDQOogPtbkq8BvYNaCwW42zYckEgs805mtnHSUi5H16reV7f3xK0Az0fXNln\nZNctLRCYrHSUeCOa1Otg5lHa87ap26smFgBmPXCgTe2bDJCE62kgJIF72Nz7\n1/ZiS2NoQNALrFYtfHpNspNi+bybFo0gAQueaoKq0BwLotBoKJlQdgzXzTee\n3sErwTnUuXqdkp/Q9a/MzkPCEXAVxGdECoKNpfYu754LXJoTk/JKYEDVMekd\nbVXUOP3vHk5O5X3flXbWJeWwwfEu21kCN8IW/eEiCinZ0qS3N029yM0y2nBI\nm9Vcux1ylfTNxCoN3Yq3wsj72MeQ4w3EFerLnk3fgumzoJWimMvU8z//MV61\nHuYpo/5hSmRTmaTgPkCW9HRmGNAh16c+nhHPv4xbYw3i54Mc9VFjJdYvist5\nWVSSqUZ6b40s0NTwrNNX7OVa+eRyegbboB8T/ZXoVBnKr77+1SFLeNp7oEbY\nfR9h/djyfWWxl7tTgrYQuqEpmm8gc6RB5FxEQRRlYmLGCnvbr6BHfBxqef8w\nkEpCpq8VQZcaInnINFM+LLH5ZULnix7xKuRBE81PjF3tjhfJDTtoG4YCMBCd\nDsEtVY2Lb7FlLncDdWClacC5tnN9PL77TCt/e8Bhz7obVddT9L9Czc2kjc6h\nJ9FY\r\n=kZSG\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","_from":"file:D:/a/r1/a/DevCore/NPM Packages/microsoft-servicehub-framework-2.6.74.tgz","scripts":{"test":"nyc mocha --require ts-node/register js/test/*.js"},"typings":"index.d.ts","_npmUser":{"name":"andrewarnott","email":"andrewarnott@gmail.com"},"_resolved":"","_integrity":"","repository":{"url":"https://dev.azure.com/devdiv/DevDiv/_git/DevCore","type":"git","directory":"src/servicebroker-npm"},"_npmVersion":"6.14.4","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"12.18.0","dependencies":{"msgpack-lite":"^0.1.26","vscode-jsonrpc":"^4.0.0","await-semaphore":"^0.1.3","nerdbank-streams":"2.5.60","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"q":"^1.5.1","nyc":"^14.1.1","gulp":"^4.0.2","mocha":"^6.2.0","yargs":"^14.2.0","eslint":"^6.3.0","tslint":"^6.0.0","ts-node":"^8.6.2","gulp-mocha":"^7.0.2","typescript":"^3.7.2","@types/node":"^12.7.4","gulp-tslint":"^8.1.4","@types/mocha":"^5.2.7","gulp-msbuild":"^0.6.2","gulp-typescript":"^5.0.1","@microsoft/tsdoc":"^0.12.19","eslint-plugin-node":"^10.0.0","@types/msgpack-lite":"^0.1.7"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_2.6.74_1591903489858_0.9245983976951737","host":"s3://npm-registry-packages"}},"3.1.4097":{"name":"@microsoft/servicehub-framework","version":"3.1.4097","author":{"name":"Microsoft"},"license":"LICENSE.txt","_id":"@microsoft/servicehub-framework@3.1.4097","maintainers":[{"name":"andrewarnott","email":"andrewarnott@gmail.com"},{"name":"jepetty","email":"jepetty@microsoft.com"},{"name":"rytoth","email":"rytoth@microsoft.com"}],"nyc":{"exclude":["*/test"]},"dist":{"shasum":"52c993837a9bf08b5c39bc0ca581e0befe0191ca","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-3.1.4097.tgz","fileCount":97,"integrity":"sha512-TmPfADuk7mG7hS1VdtMwTeArlFOPZ26fsg/4j6+U4g2tuUJC8BCrKDTB/WV/44zKvrmcul8yM8xaGX6qYYJRQQ==","signatures":[{"sig":"MEYCIQDv6ZfqMbYJ9PZ3XBBaJsJOUqgAW+B7aPvdBOqYpcAbAgIhAJoEOd5GXnDUN6Zgzi74WgILbUN/xR5WmMguF+W+Y8wV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":547438,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi3/i9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmq5lxAAoCubkpGSfSaqBbiYkcAMccNoZg7aCnJvEy0mqYZu5z4Edsuy\r\nRJb9r0ab8QPZYAenOH9Hd/bA9Gm4u0c0WUn3b2NGDyJOdsOgevNKox4J7Z0J\r\nPacWAQTL9uti5IQ8nZcjwvsf5bJm1YZJu3ilA9AyyQBI/35NEF/FrZkWbARh\r\npt+Y5IaVsY/Enp7tXBSPbTX89LTDvX3bP7g+wewH9lwIweYKhv13fYMFhANA\r\nwjEAIAqg3CRUfMlPwb2gVg3874zmX23b6LrGhIr0FSduAyilJJXWyZrstZ+T\r\nd+2Fiu1Kv2sDDusSvb+sFFcHTGPuk9jnCuDCb8XTjFG3O0sMvJ1kemq4/jS9\r\nYl/+r116OSU8eUvFLjOvwqVEOYXmDUN76Me+eYe9aiKJIYiALZ07DOeXCCsm\r\n/Qj5r5zyRv1b+xESSIGqiasn/m4oYKRwsAphWOyFw2V0zTh+PO5FKmTAAyD2\r\nIMJ6rkFDe7uCpnxhCPeAW/KXU2OQWjUm1S9zi0WKlIwskgDpFxpzSbA0Fy6d\r\nfrKkMIsBoRtUmLu6vpdPdkwHG/oSkXtrE84a2XWl5TqmOmFjV/vJ1KulWSuc\r\n2D6ZHksKnKSJ+qcd0z37idggpzlgqihSytAXbonkcqQFAbCiPX3Tw34I1oab\r\nt7FC0y18/kMQh1wf0tYf7iCdRA5tyOQbIdM=\r\n=gjTL\r\n-----END PGP SIGNATURE-----\r\n"},"main":"js/index.js","_from":"file:C:\\Users\\andarno\\Downloads\\microsoft-servicehub-framework-v3.1.4097.tgz","scripts":{"test":"jest","build":"tsc","watch":"tsc -w"},"typings":"js/index.d.ts","_npmUser":{"name":"andrewarnott","email":"andrewarnott@gmail.com"},"_resolved":"C:\\Users\\andarno\\Downloads\\microsoft-servicehub-framework-v3.1.4097.tgz","_integrity":"sha512-TmPfADuk7mG7hS1VdtMwTeArlFOPZ26fsg/4j6+U4g2tuUJC8BCrKDTB/WV/44zKvrmcul8yM8xaGX6qYYJRQQ==","repository":{"url":"https://dev.azure.com/devdiv/DevDiv/_git/DevCore","type":"git","directory":"src/servicebroker-npm"},"_npmVersion":"8.10.0","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"16.15.0","dependencies":{"msgpack-lite":"^0.1.26","vscode-jsonrpc":"^6.0.0","await-semaphore":"^0.1.3","nerdbank-streams":"^2.8.54","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"q":"^1.5.1","nyc":"^15.1.0","jest":"^27.3.1","yargs":"^17.2.1","eslint":"^8.2.0","ts-jest":"^27.0.7","ts-node":"^10.4.0","typescript":"^4.4.4","@types/jest":"^27.0.2","@types/node":"^16.11.7","@microsoft/tsdoc":"^0.13.2","eslint-plugin-jest":"^25.2.4","eslint-plugin-node":"^11.1.0","@types/msgpack-lite":"^0.1.8","nerdbank-gitversioning":"3.4.244"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_3.1.4097_1658845373537_0.7080999529199097","host":"s3://npm-registry-packages"}},"4.2.70-beta":{"name":"@microsoft/servicehub-framework","version":"4.2.70-beta","author":{"name":"Microsoft"},"license":"LICENSE.txt","_id":"@microsoft/servicehub-framework@4.2.70-beta","maintainers":[{"name":"andrewarnott","email":"andrewarnott@gmail.com"},{"name":"jepetty","email":"jepetty@microsoft.com"},{"name":"rytoth","email":"rytoth@microsoft.com"}],"homepage":"https://github.com/microsoft/vs-servicehub#readme","bugs":{"url":"https://github.com/microsoft/vs-servicehub/issues"},"nyc":{"exclude":["*/test"]},"dist":{"shasum":"5d39cc6ba06339e4fa4b8d969faba0f95261a356","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-4.2.70-beta.tgz","fileCount":165,"integrity":"sha512-kpw3pAEPOSPQjom/iJjw7g2vt49fzrV7R78PZU3FV9eg8ImkeuY7QFZ4CJQ/Yye9QY7WByYFEclH+cKnKQax+w==","signatures":[{"sig":"MEUCIQD633w/ZA8zhH22CP3vCJnnWM2G0MkDEFSVyWNwHRLn/AIgFtbhTI1+uMG6KKbic6srvYF0oHsOCFXEWINH251eSCo=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1009318,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/hcVACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2YRAAorXlN2S0gPV6NLKq4eGvQoo+ZLLO9DaXd6+cOjnf9tIqPcdV\r\nbzcYKFbeUqRUEH7GxjzEptkEYJbiywxTllIoWONeWD2PV5FDbPQMXNCvAz46\r\ntXNqWsHDMKdXwABbu5C4xZ3wNTeOjJogVBa/D8oBG+qt1s8l4vOzsTJNpo6l\r\nmsFvRtPQj7pEmEUitco9Trt6hxLX7rnkaDm7Wi54nwSX0coVgjjRojkZf5iO\r\n4M1iBsIV6kerFzL1sq8StlpbBvuZ6U0TSW8Ipm5VtSCUevlMkYGFs9IsDWML\r\n3ABOvBvqYekgLbMzIM+NcFDqT7gWZ5ggoC19WtD33GD8NchIvrE26SHT6A4r\r\nq6KviHKmTEARSBO4/PG4WPvppN7iZSqH2zHuzgKgDvfzcAWDTH1Hmo7hWeUs\r\ngsqnpZPH+pbPOivChuTJ8mwXMYPLmzeNHZk3TOwlo6PzuIheh6zYFNniM5Ei\r\nL9e1hK4hTPZ4L2/AKhtUflo4x9DuVG410aKOeZStvj58EsXU2dzinLz0U7I0\r\nyV5kztZVrqIV64WlQng4UcQGxkzpiFrvt+2Zvt916tkydJ7/mRnaEkAwDPF7\r\nFh/dDJiUsg/9acDGr/yO24/XlxfTMvL1HQvSeow5tRMWdjgLSCc/EHaBpMdW\r\n+3w1HO07gTP8/jFTroOVKR9tBqn6cpjw0ng=\r\n=f81H\r\n-----END PGP SIGNATURE-----\r\n"},"main":"js/src/index.js","_from":"file:@microsoft-servicehub-framework-4.2.70-beta.tgz","scripts":{"lint":"eslint src test --ext ts","test":"jest","build":"tsc","clean":"node ./node_modules/rimraf/bin.js ./js","watch":"tsc -w"},"typings":"js/src/index.d.ts","_npmUser":{"name":"andrewarnott","email":"andrewarnott@gmail.com"},"_resolved":"C:\\Users\\andarno\\Downloads\\@microsoft-servicehub-framework-4.2.70-beta.tgz","_integrity":"sha512-kpw3pAEPOSPQjom/iJjw7g2vt49fzrV7R78PZU3FV9eg8ImkeuY7QFZ4CJQ/Yye9QY7WByYFEclH+cKnKQax+w==","repository":{"url":"git+https://github.com/microsoft/vs-servicehub.git","type":"git","directory":"src/servicebroker-npm"},"_npmVersion":"8.19.3","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"16.19.1","dependencies":{"uuid":"^9.0.0","caught":"^0.1.3","immutable":"^4.2.1","string-hash":"^1.1.3","msgpack-lite":"^0.1.26","vscode-jsonrpc":"^8.0.2","await-semaphore":"^0.1.3","nerdbank-streams":"^2.10.37-alpha","cancellationtoken":"^2.2.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@3.3.1","devDependencies":{"q":"^1.5.1","nyc":"^15.1.0","jest":"^29.3.1","yargs":"^17.6.2","eslint":"^8.32.0","jshint":"^2.13.6","tslint":"^6.1.3","ts-jest":"^29.0.5","ts-node":"^10.9.1","prettier":"^2.8.3","typescript":"^4.9.4","@types/jest":"^29.2.6","@types/node":"^16.18.11","@types/uuid":"^9.0.0","@microsoft/tsdoc":"^0.14.2","@tsconfig/node16":"^1.0.3","@types/string-hash":"^1.1.1","eslint-plugin-jest":"^27.2.1","eslint-plugin-node":"^11.1.0","@types/msgpack-lite":"^0.1.8","eslint-plugin-import":"2.27.5","eslint-config-prettier":"8.6.0","eslint-plugin-jsx-a11y":"6.7.1","eslint-plugin-prettier":"4.2.1","nerdbank-gitversioning":"^3.5.119","@typescript-eslint/parser":"^5.48.2","@typescript-eslint/eslint-plugin":"^5.48.2"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_4.2.70-beta_1677596437299_0.42248665948092046","host":"s3://npm-registry-packages"}},"4.2.99-beta":{"name":"@microsoft/servicehub-framework","version":"4.2.99-beta","author":{"name":"Microsoft"},"license":"LICENSE.txt","_id":"@microsoft/servicehub-framework@4.2.99-beta","maintainers":[{"name":"andrewarnott","email":"andrewarnott@gmail.com"},{"name":"jepetty","email":"jepetty@microsoft.com"},{"name":"rytoth","email":"rytoth@microsoft.com"}],"homepage":"https://github.com/microsoft/vs-servicehub#readme","bugs":{"url":"https://github.com/microsoft/vs-servicehub/issues"},"nyc":{"exclude":["*/test"]},"dist":{"shasum":"b1e3035b3fd5615dc9d4713a0e0100fd607090f1","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-4.2.99-beta.tgz","fileCount":181,"integrity":"sha512-KasKDbH24/Ro78mW9LpwazY21jy+MHl2/XLccyNr4R8BPoGJhy2MaaLLSkz55lNeVSlvWJqCyUVuPkkzhyw/dg==","signatures":[{"sig":"MEUCIHa2+Pv+047rF5Ob8M4Nsk1xy3ZCm1Na5wPM7hgORPpFAiEAsiTcXmw/rELRit1wuLQ3DQfeOexW7juS/Xds+87NEf4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1132097,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkK2VqACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmo2dQ//QaZRRjffozXa348Juh3o82XXHEAfO6KktVSwvF0R0646Q8E+\r\n7cdRI8aa3OP6cimJgUFJ63or86OcKbV0DrFaAMMTyDF64s7aT5/ZnqPQin8g\r\nv1o1jSlnehdE147eVyRFJv+A2+DpN3gsuo2oUCws+nn8lZE5Ktz2QpIU7X1w\r\njuzp8yHaBln6KcrXlqMFZCHVgA6yzdUBVFITNu193Tjt+xuFJUiA5FWqZfNk\r\nTavsA7Wj2+q106srXjqlM2DOTyMcQLuB+R7B4p/9xRcQbDy2jgsJXk0K9mCD\r\nrAGP3ONYHOmuQ4Zx5qCPraOhffwQttUnbswV83ZhcBuJT+71JlSfL9OQ/EUK\r\ngNvPqYGPchpYoymc4djPeN82XiSW7n4USVos69lzEZjFjcejmb5As8wSuQB+\r\nQEam/bC+ij4tGxisJHqC9F+eHoDv9pAX0sDeyILd7OCrJDvlU/Kym4JVUe/u\r\ni7Mf8BMpBsIw7gJ2/k9tHVXPsFvFpQvhAVhDXPWH24cMoGcUPSgbQpONIL+o\r\ndJS5FIn1Wz6NNbi3pbwkOsdFO0d41c2DPQMPRvqfIkaDQFjTSqb98IwJQ0Rh\r\nh+Qp6ovnFOl/mVqPbs9EkVcamFvteTbw4JNE2RjCaEYluz8vkAWhoKG6Gilb\r\nKNlgL/Qp67TOkC5tb1FeJF1wFKgBPzlo0p4=\r\n=Z4Ej\r\n-----END PGP SIGNATURE-----\r\n"},"main":"js/src/index.js","_from":"file:/mnt/vss/_work/1/CI/deployables-Windows/npm/@microsoft-servicehub-framework-4.2.99-beta.tgz","scripts":{"lint":"eslint src test --ext ts","test":"jest","build":"tsc","clean":"node ./node_modules/rimraf/bin.js ./js","watch":"tsc -w"},"typings":"js/src/index.d.ts","_npmUser":{"name":"andrewarnott","email":"andrewarnott@gmail.com"},"_resolved":"/mnt/vss/_work/1/CI/deployables-Windows/npm/@microsoft-servicehub-framework-4.2.99-beta.tgz","_integrity":"sha512-KasKDbH24/Ro78mW9LpwazY21jy+MHl2/XLccyNr4R8BPoGJhy2MaaLLSkz55lNeVSlvWJqCyUVuPkkzhyw/dg==","repository":{"url":"git+https://github.com/microsoft/vs-servicehub.git","type":"git","directory":"src/servicebroker-npm"},"_npmVersion":"8.19.3","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"16.19.1","dependencies":{"uuid":"^9.0.0","caught":"^0.1.3","immutable":"^4.2.1","string-hash":"^1.1.3","msgpack-lite":"^0.1.26","vscode-jsonrpc":"^8.0.2","await-semaphore":"^0.1.3","nerdbank-streams":"^2.10.37-alpha","cancellationtoken":"^2.2.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@3.3.1","devDependencies":{"q":"^1.5.1","nyc":"^15.1.0","jest":"^29.3.1","yargs":"^17.6.2","eslint":"^8.32.0","jshint":"^2.13.6","tslint":"^6.1.3","ts-jest":"^29.0.5","ts-node":"^10.9.1","prettier":"^2.8.3","typescript":"^4.9.4","@types/jest":"^29.2.6","@types/node":"^16.18.11","@types/uuid":"^9.0.0","@microsoft/tsdoc":"^0.14.2","@tsconfig/node16":"^1.0.3","@types/string-hash":"^1.1.1","eslint-plugin-jest":"^27.2.1","eslint-plugin-node":"^11.1.0","@types/msgpack-lite":"^0.1.8","eslint-plugin-import":"2.27.5","eslint-config-prettier":"8.6.0","eslint-plugin-jsx-a11y":"6.7.1","eslint-plugin-prettier":"4.2.1","nerdbank-gitversioning":"^3.5.119","@typescript-eslint/parser":"^5.48.2","@typescript-eslint/eslint-plugin":"^5.48.2"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_4.2.99-beta_1680565609850_0.42834352740714765","host":"s3://npm-registry-packages"}},"4.2.102":{"name":"@microsoft/servicehub-framework","version":"4.2.102","author":{"name":"Microsoft"},"license":"LICENSE.txt","_id":"@microsoft/servicehub-framework@4.2.102","maintainers":[{"name":"andrewarnott","email":"andrewarnott@gmail.com"},{"name":"jepetty","email":"jepetty@microsoft.com"},{"name":"rytoth","email":"rytoth@microsoft.com"}],"homepage":"https://github.com/microsoft/vs-servicehub#readme","bugs":{"url":"https://github.com/microsoft/vs-servicehub/issues"},"nyc":{"exclude":["*/test"]},"dist":{"shasum":"43123b70ee5f3ae0659a630b4873b1e20c140a7e","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-4.2.102.tgz","fileCount":181,"integrity":"sha512-mZJNJ7dnzOJ0nLiAHlNHC2N1zSi+rtCnuowdVw+HdeyWtTPvpP+i6s2mXwQ+woKVSf1MDbj/sE9TgtMfHt5pBw==","signatures":[{"sig":"MEUCIElgd38LkIkuqSkIw3NZ6jRv8i4VByuiqKJ6/EtueA90AiEAzmBzQnkQxCT9GFpvPOTKYjZRCAqjWawuwBkoT1WxtbI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1129001},"main":"js/src/index.js","_from":"file:/mnt/vss/_work/1/CI/deployables-Windows/npm/@microsoft-servicehub-framework-4.2.102.tgz","scripts":{"lint":"eslint src test --ext ts","test":"jest","build":"tsc","clean":"node ./node_modules/rimraf/bin.js ./js","watch":"tsc -w"},"typings":"js/src/index.d.ts","_npmUser":{"name":"andrewarnott","email":"andrewarnott@gmail.com"},"_resolved":"/mnt/vss/_work/1/CI/deployables-Windows/npm/@microsoft-servicehub-framework-4.2.102.tgz","_integrity":"sha512-mZJNJ7dnzOJ0nLiAHlNHC2N1zSi+rtCnuowdVw+HdeyWtTPvpP+i6s2mXwQ+woKVSf1MDbj/sE9TgtMfHt5pBw==","repository":{"url":"git+https://github.com/microsoft/vs-servicehub.git","type":"git","directory":"src/servicebroker-npm"},"_npmVersion":"8.19.3","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"16.19.1","dependencies":{"uuid":"^9.0.0","caught":"^0.1.3","immutable":"^4.2.1","string-hash":"^1.1.3","msgpack-lite":"^0.1.26","vscode-jsonrpc":"^8.0.2","await-semaphore":"^0.1.3","nerdbank-streams":"^2.10.37-alpha","cancellationtoken":"^2.2.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@3.3.1","devDependencies":{"q":"^1.5.1","nyc":"^15.1.0","jest":"^29.3.1","yargs":"^17.6.2","eslint":"^8.32.0","jshint":"^2.13.6","tslint":"^6.1.3","ts-jest":"^29.0.5","ts-node":"^10.9.1","prettier":"^2.8.3","typescript":"^4.9.4","@types/jest":"^29.2.6","@types/node":"^16.18.11","@types/uuid":"^9.0.0","@microsoft/tsdoc":"^0.14.2","@tsconfig/node16":"^1.0.3","@types/string-hash":"^1.1.1","eslint-plugin-jest":"^27.2.1","eslint-plugin-node":"^11.1.0","@types/msgpack-lite":"^0.1.8","eslint-plugin-import":"2.27.5","eslint-config-prettier":"8.6.0","eslint-plugin-jsx-a11y":"6.7.1","eslint-plugin-prettier":"4.2.1","nerdbank-gitversioning":"^3.5.119","@typescript-eslint/parser":"^5.48.2","@typescript-eslint/eslint-plugin":"^5.48.2"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_4.2.102_1687969129900_0.5893454591142151","host":"s3://npm-registry-packages"}},"4.8.55":{"name":"@microsoft/servicehub-framework","version":"4.8.55","author":{"name":"Microsoft"},"license":"LICENSE.txt","_id":"@microsoft/servicehub-framework@4.8.55","maintainers":[{"name":"andrewarnott","email":"andrewarnott@gmail.com"},{"name":"jepetty","email":"jepetty@microsoft.com"},{"name":"rytoth","email":"rytoth@microsoft.com"},{"name":"microsoft1es","email":"npmjs@microsoft.com"}],"homepage":"https://github.com/microsoft/vs-servicehub#readme","bugs":{"url":"https://github.com/microsoft/vs-servicehub/issues"},"nyc":{"exclude":["*/test"]},"dist":{"shasum":"0b8dfca4b94bd09932fd3a6b4a668d10b4953a41","tarball":"https://registry.npmjs.org/@microsoft/servicehub-framework/-/servicehub-framework-4.8.55.tgz","fileCount":182,"integrity":"sha512-+8f6O95SAzwMNrvU4Mkql1/RSSPZaK23JOSks3EXm+tXjwCZXouNN4wIHB5wwhLTT6UfovbvEo7+vkRMhtaPAw==","signatures":[{"sig":"MEYCIQCaVEK6ahNYDUwudfrrgMkIejAfcUNt44e+aPVbHPJBAAIhAOVNgf13gxv91tNIJgxu/L047oMtypIjdWkpVN7Is50f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1149653},"main":"js/src/index.js","_from":"file:/mnt/vss/_work/1/CI/deployables-Windows/npm/@microsoft-servicehub-framework-4.8.55.tgz","scripts":{"lint":"eslint src test --ext ts","test":"jest","build":"tsc","clean":"node ./node_modules/rimraf/bin.js ./js","watch":"tsc -w"},"typings":"js/src/index.d.ts","_npmUser":{"name":"andrewarnott","email":"andrewarnott@gmail.com"},"_resolved":"/mnt/vss/_work/1/CI/deployables-Windows/npm/@microsoft-servicehub-framework-4.8.55.tgz","_integrity":"sha512-+8f6O95SAzwMNrvU4Mkql1/RSSPZaK23JOSks3EXm+tXjwCZXouNN4wIHB5wwhLTT6UfovbvEo7+vkRMhtaPAw==","repository":{"url":"git+https://github.com/microsoft/vs-servicehub.git","type":"git","directory":"src/servicebroker-npm"},"_npmVersion":"10.8.2","description":"The distributed ServiceHub Framework","directories":{},"_nodeVersion":"18.20.8","dependencies":{"uuid":"^9.0.1","caught":"^0.1.3","immutable":"^4.3.1","string-hash":"^1.1.3","msgpack-lite":"^0.1.26","vscode-jsonrpc":"^8.1.0","await-semaphore":"^0.1.3","nerdbank-streams":"^2.11.79","cancellationtoken":"^2.2.0","strict-event-emitter-types":"^2.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.5.0","devDependencies":{"nyc":"^15.1.0","jest":"^29.6.2","yargs":"^17.7.2","eslint":"^8.45.0","jshint":"^2.13.6","ts-jest":"^29.1.1","ts-node":"^10.9.2","prettier":"^3.0.0","typescript":"^5.1.6","@types/jest":"^29.5.3","@types/node":"^18.19.31","@types/uuid":"^9.0.2","@yarnpkg/sdks":"^3.0.0-rc.48","@microsoft/tsdoc":"^0.15.0","@tsconfig/node18":"^18.2.4","@types/string-hash":"^1.1.3","eslint-plugin-jest":"^28.11.0","@types/msgpack-lite":"^0.1.11","eslint-plugin-import":"^2.31.0","eslint-config-prettier":"^10.0.1","eslint-plugin-jsx-a11y":"^6.10.2","eslint-plugin-prettier":"^5.2.3","nerdbank-gitversioning":"^3.6.133","@typescript-eslint/parser":"^6.2.0","@typescript-eslint/eslint-plugin":"^6.2.0"},"_npmOperationalInternal":{"tmp":"tmp/servicehub-framework_4.8.55_1759333572998_0.25905145801916185","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2020-06-10T21:33:30.690Z","modified":"2026-07-16T15:47:04.424Z","2.6.67":"2020-06-10T21:33:30.866Z","2.6.74":"2020-06-11T19:24:49.991Z","3.1.4097":"2022-07-26T14:22:53.763Z","4.2.70-beta":"2023-02-28T15:00:37.532Z","4.2.99-beta":"2023-04-03T23:46:50.120Z","4.2.102":"2023-06-28T16:18:50.160Z","4.8.55":"2025-10-01T15:46:13.193Z"},"bugs":{"url":"https://github.com/microsoft/vs-servicehub/issues"},"author":{"name":"Microsoft"},"license":"LICENSE.txt","homepage":"https://github.com/microsoft/vs-servicehub#readme","repository":{"url":"git+https://github.com/microsoft/vs-servicehub.git","type":"git","directory":"src/servicebroker-npm"},"description":"The distributed ServiceHub Framework","maintainers":[{"email":"npmjs@microsoft.com","name":"microsoft1es"},{"email":"microsoft-oss-publishing@microsoft.com","name":"microsoft-oss-releases"},{"email":"andrewarnott@gmail.com","name":"andrewarnott"},{"email":"jepetty@microsoft.com","name":"jepetty"},{"email":"rytoth@microsoft.com","name":"rytoth"}],"readme":"# NodeJS ServiceHub Framework\r\n\r\nThis NPM package provides a way to proffer and consume brokered services.\r\nIt is used in Visual Studio-related products to exchange services within and across processes and even across machines.\r\n\r\nLearn about the [brokered services essentials](https://learn.microsoft.com/visualstudio/extensibility/internals/brokered-service-essentials), [how to provide a brokered service](https://learn.microsoft.com/visualstudio/extensibility/how-to-provide-brokered-service), and [how to consume a brokered service](https://learn.microsoft.com/visualstudio/extensibility/how-to-consume-brokered-service).\r\n\r\n## Usage\r\n\r\nGiven an instance of `IServiceBroker`, you can request a service (such as a simple calculator service) like this:\r\n\r\n```ts\r\nconst proxy = await serviceBroker.getProxy<ICalculatorService>(CalculatorDescriptor);\r\ntry {\r\n    if (proxy) {\r\n        const sum = await proxy.add(3, 5);\r\n        assert(sum == 8);\r\n    }\r\n} finally {\r\n    proxy?.dispose();\r\n}\r\n```\r\n\r\nImportant points to remember:\r\n\r\n1. Always be defensive by checking for an `null` result from the call for a service.\r\n1. Always dispose the proxy when you're done with it to avoid leaking resources. These proxies do *not* get garbage collected automatically on account of the I/O resource they require.\r\n\r\nLet's do something real. Visual Studio 16.6 includes a `VersionInfoService` that exposes the VS and Live Share versions on the host.\r\nYou can call that service from VS Code like this:\r\n\r\n```ts\r\nimport * as isb from '@microsoft/servicehub-framework';\r\nimport * as vsls from 'vsls';\r\n\r\nconst VersionInfoService = new isb.ServiceJsonRpcDescriptor(\r\n    isb.ServiceMoniker.create('Microsoft.VisualStudio.Shell.VersionInfoService', '1.0'),\r\n    isb.Formatters.Utf8,\r\n    isb.MessageDelimiters.HttpLikeHeaders);\r\n\r\ninterface IVersionInfoService {\r\n    GetVersionInformationAsync(cancellationToken?: vscode.CancellationToken): Promise<VersionInformation>;\r\n}\r\n\r\ninterface VersionInformation {\r\n    visualStudioVersion: string;\r\n    liveShareVersion: string;\r\n}\r\n\r\nconst ls = await vsls.getApi();\r\nconst serviceBroker = await ls.services.getRemoteServiceBroker();\r\nconst proxy = await serviceBroker?.getProxy<IVersionInfoService>(VersionInfoService);\r\ntry {\r\n    if (proxy) {\r\n        const versionInfo = await proxy.GetVersionInformationAsync();\r\n        console.log(`VS version: ${versionInfo.visualStudioVersion}`);\r\n    }\r\n} finally {\r\n    proxy?.dispose();\r\n}\r\n```\r\n\r\n### Brokered Service Container\r\n\r\nA process that wishes to offer its own brokered services need a container.\r\nIf your javascript process does not already have a container, the following is for you.\r\n\r\nHere is the simplest possible, self-contained executable sample (in TypeScript).\r\nThe sample demonstrates definition and implementation of a service, registers it and proffers it with a `ServiceRpcDescriptor` and service factory into the container, and finally consumes it via an `IServiceBroker`.\r\n\r\n```ts\r\nimport assert from 'assert'\r\nimport CancellationToken from 'cancellationtoken'\r\nimport {\r\n    Formatters,\r\n    MessageDelimiters,\r\n    ServiceJsonRpcDescriptor,\r\n    ServiceMoniker,\r\n    ServiceRpcDescriptor,\r\n    GlobalBrokeredServiceContainer,\r\n    ServiceAudience,\r\n    ServiceRegistration,\r\n} from '@microsoft/servicehub-framework'\r\n\r\ninterface IService {\r\n    readonly moniker: ServiceMoniker\r\n    readonly descriptor: ServiceRpcDescriptor\r\n    readonly registration: ServiceRegistration\r\n}\r\n\r\nclass Services {\r\n    static calculator: Readonly<IService> = Services.defineLocal('calc')\r\n\r\n    private static defineLocal(\r\n        name: string,\r\n        version?: string\r\n    ): Readonly<IService> {\r\n        const moniker = { name, version }\r\n        const descriptor = new ServiceJsonRpcDescriptor(\r\n            moniker,\r\n            Formatters.MessagePack,\r\n            MessageDelimiters.BigEndianInt32LengthHeader\r\n        )\r\n        const registration = new ServiceRegistration(\r\n            ServiceAudience.local,\r\n            false\r\n        )\r\n        return Object.freeze({ moniker, descriptor, registration })\r\n    }\r\n}\r\n\r\ninterface ICalculator {\r\n    add(\r\n        a: number,\r\n        b: number,\r\n        cancellationToken?: CancellationToken\r\n    ): Promise<number>\r\n}\r\n\r\nclass Calculator implements ICalculator {\r\n    public add(\r\n        a: number,\r\n        b: number,\r\n        cancellationToken?: CancellationToken\r\n    ): Promise<number> {\r\n        return Promise.resolve(a + b)\r\n    }\r\n}\r\n\r\nlet container: GlobalBrokeredServiceContainer\r\nbeforeAll(function () {\r\n    container = new GlobalBrokeredServiceContainer()\r\n    container.register([Services.calculator])\r\n    container.profferServiceFactory(\r\n        Services.calculator.descriptor,\r\n        (mk, options, sb, ct) => Promise.resolve(new Calculator())\r\n    )\r\n})\r\n\r\nit('self-contained sample', async function () {\r\n    const sb = container.getFullAccessServiceBroker()\r\n    const calc = await sb.getProxy<ICalculator>(Services.calculator.descriptor)\r\n    assert(calc)\r\n    const sum = await calc.add(3, 5)\r\n    assert(sum === 8)\r\n})\r\n```\r\n\r\nNote that in a real world application, the preceding code would typically be divided into many files, and may even span packages and processes.\r\n\r\n## Contributing\r\n\r\nCheck out our [CONTRIBUTING.md](../../CONTRIBUTING.md) file.\r\n","readmeFilename":"README.md"}