{"_id":"@aitmed/protorepo","_rev":"14-17e6b73619a23dc18fbb15aad64d4e51","name":"@aitmed/protorepo","dist-tags":{"latest":"1.0.26","beta":"1.0.25"},"versions":{"1.0.21":{"name":"@aitmed/protorepo","version":"1.0.21","author":"","license":"ISC","_id":"@aitmed/protorepo@1.0.21","maintainers":[{"name":"lengzhang","email":"lengzhang@live.com"},{"name":"junrupait","email":"junrup@aitmed.com"},{"name":"fullstackray","email":"fullstackray@gmail.com"},{"name":"junrup","email":"pujunru@gmail.com"},{"name":"pfftdammitchris","email":"pfftdammitchris@gmail.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"}],"dist":{"shasum":"d3d4639f3eccdf3963152b5127326bdf69eefc1c","tarball":"https://registry.npmjs.org/@aitmed/protorepo/-/protorepo-1.0.21.tgz","fileCount":13,"integrity":"sha512-cxIfY0HbP3U09/qIPk4BVf2lGs9kMh81U+F305cJeDJ165dtnnl/Y4vBxIeORU+G8cZ9oKp+buGVL2dDHqKRzw==","signatures":[{"sig":"MEUCIQC87SNmMP3Ip6gplTCvlrLcPnwbVw28xzL9vxGJojbu2wIgMOHOy0jBpAzNpvH9z0DEgy2Ed9R9SY8QPhTyMv+1emM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3278577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaR03CRA9TVsSAnZWagAA7BUQAJSiTAmT3rbxCYI+o+bQ\nnoU6PywLiy8opuqLnRrSblg01bwl6vEIZMuS6EVAPOJQk67t6swLYeaf/a2r\n5IXqm5lh4UXVuWaa4fMAcKOcPDOoMJ8m/C/vCAYogyOcDDWv9lOtMOmwUtVT\nGF/oLDv4rFs/Cr/dGDmaa96i5q++jeu0/FACqjhqO6mWVzaPFFu9sZk2pYWc\nF6JF+sBHq5PNLsb8PTkX6f11pVlSW4DrqlNzuBSfqLZ9WH4xpj8jeCdVGhGP\nFHmlsji5pF/c63LZCpXMQfxXC4s3HiBts3AUctM9knCZhll7RBTlc9on+ayk\nW8gTDPxKxH/Tjg213+X9sK/H3YndQaSaOFns+UAMiOAnlflowUgGAWqTn62O\nhtV4kzledGGljJ5Mo7ELfVBwYDY/fule1z3S3iVYn5H5oPkauXmTIfVTuMMH\nuame7T6CZa5Y0uuVFjat+nU7ycd4NRNNm++Yu6oTAbNOdPLwVn9D610qGlce\n5ZtuhNqOdZc8rMU+ThbBIdmVW+Uk3gp0ZZEc16DssCfFZvQcx4AlMWbRuRRR\nRRL72wBtf05dENG3d1YugNqnQMm1fTt+BFC2p4KPPshj1f1G/CyPo+tqL/D8\nKa4bW6pjf4EeBXNDHeW6RCiXjQendvATAI4FsXmkinGo2eV5FXeKPehWObkP\n9q0p\r\n=Zn98\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","gitHead":"287da44629f46584692eb8049e19adff5013fffd","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run build:js && npm run build:types","clean":"rm -rf dist","watch":"rollup -c -w","build:js":"rollup -c","serve:test":"serve test_public","start:test":"npm-run-all --parallel serve:test watch ","build:types":"tsc --emitDeclarationOnly","bump-version":"npm version patch","publish:public":"npm publish --access public","prepublish:public":"npm run build && npm run bump-version","postpublish:public":"git push"},"_npmUser":{"name":"fullstackray","email":"fullstackray@gmail.com"},"repository":{"url":"git@gitlab.aitmed.io:backend/protorepo.git","type":"git"},"_npmVersion":"6.14.6","description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","directories":{},"jsnext:main":"dist/index.es.js","_nodeVersion":"12.18.3","dependencies":{"rollup":"^1.27.2","ts-node":"^8.5.2","grpc-web":"^1.0.6","typescript":"^3.7.2","ts-protoc-gen":"^0.11.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-peer-deps-external":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^11.3.2","ts-loader":"^7.0.1","@babel/core":"^7.7.2","npm-run-all":"^4.1.5","@babel/preset-env":"^7.7.1","rollup-plugin-json":"^4.0.0","@babel/preset-typescript":"^7.7.2","rollup-plugin-multi-input":"^1.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-polyfills":"^0.2.1","@babel/plugin-proposal-class-properties":"^7.7.0","@babel/plugin-proposal-object-rest-spread":"^7.6.2"},"_npmOperationalInternal":{"tmp":"tmp/protorepo_1.0.21_1600724278461_0.10635125276963997","host":"s3://npm-registry-packages"}},"1.0.22":{"name":"@aitmed/protorepo","version":"1.0.22","author":"","license":"ISC","_id":"@aitmed/protorepo@1.0.22","maintainers":[{"name":"lengzhang","email":"lengzhang@live.com"},{"name":"junrupait","email":"junrup@aitmed.com"},{"name":"fullstackray","email":"fullstackray@gmail.com"},{"name":"junrup","email":"pujunru@gmail.com"},{"name":"pfftdammitchris","email":"pfftdammitchris@gmail.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"}],"dist":{"shasum":"90c54aa17bb4d579cc42e488016785562a668f1d","tarball":"https://registry.npmjs.org/@aitmed/protorepo/-/protorepo-1.0.22.tgz","fileCount":13,"integrity":"sha512-T0wUx7CiZaEtdOkD+1zTKK72XqnUEBjtXwyEJc6+g8qZTTiNLntYTQJxpAwPjlYnE/WOcwjbzfw8LzFKh5x50Q==","signatures":[{"sig":"MEUCID04oNINK9VXsLXvuLvmmtA1zvaTjYYUZFVgN12QhfMEAiEA7TYBfg7Z74m1e/SoLnzhkAXbB/GfKAeNQP/eDOhnW6s=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3278577,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaSiMCRA9TVsSAnZWagAA3e4P/Avro7+5ih/Efbh2z/pU\nmc4GOa0PW34ophR/wv2sRB/A0LnfEudOmm0QRNPLKYjpyOX5CJL85CgawmYP\na1oZDAy17/xmE5/xFT86ozRzWPn2q6H08wskVzbON8iPrmPTGzjFNzxFuo/s\nFlb9Cud0veShJtLvEMylzaufVHlCwUW0queC0TaKVxOiJnUB0AEJgKfHDODl\npGt4U7PbPu+zzngvtga81/L7COyI8j3nXi1EoRVYLaj9dTXlZJHPlGoTGPMN\n3SdtNCrAlYjbbtPWI/LWdedCXEPbs2AexHRQ5wv5p8MCVOf0pTBEyNveXHZo\nzuXt40Cz2hDGC4DDk0DnEcPhBtPOAieoidVxz43seu99W1ttJJ04ORnClS3n\n38mSR21T/TYEK65oXGEZFkHH0P1YEXaxk8bbCsm/cRKmYtDrRaDlZ+YwUBbi\nEJFXdTd073+phZ76fiLlqwObfmLoM79BUHVhgiDCwaFSkCPjjoHa7H+BiLA0\nxA/0FcHZ9wZ3MAbj7iUGYkJdPi4RXY0HXfXdjq/RpzfqsL3odsrl7IZjMieU\nGcMSQvmc1/Z60iVngmb/gzbaeHl6fpBBm31SLMevzWifpvel1a0r23wPn2Y6\naXDhDY0XOkQ1MM08PAosYCwOqvsAae4l+IuQ2+tPKeZB/PYFhSmA9TE9RWOf\nq5pL\r\n=r1nE\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","gitHead":"db740965923e23804710b817e9cd63a993ff4707","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run build:js && npm run build:types","clean":"rm -rf dist","watch":"rollup -c -w","build:js":"rollup -c","serve:test":"serve test_public","start:test":"npm-run-all --parallel serve:test watch ","build:types":"tsc --emitDeclarationOnly","bump-version":"npm version patch","publish:public":"npm publish --access public","prepublish:public":"npm run build && npm run bump-version","postpublish:public":"git push"},"_npmUser":{"name":"fullstackray","email":"fullstackray@gmail.com"},"repository":{"url":"git@gitlab.aitmed.io:backend/protorepo.git","type":"git"},"_npmVersion":"6.14.6","description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","directories":{},"jsnext:main":"dist/index.es.js","_nodeVersion":"12.18.3","dependencies":{"rollup":"^1.27.2","ts-node":"^8.5.2","grpc-web":"^1.0.6","typescript":"^3.7.2","ts-protoc-gen":"^0.11.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-peer-deps-external":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^11.3.2","ts-loader":"^7.0.1","@babel/core":"^7.7.2","npm-run-all":"^4.1.5","@babel/preset-env":"^7.7.1","rollup-plugin-json":"^4.0.0","@babel/preset-typescript":"^7.7.2","rollup-plugin-multi-input":"^1.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-polyfills":"^0.2.1","@babel/plugin-proposal-class-properties":"^7.7.0","@babel/plugin-proposal-object-rest-spread":"^7.6.2"},"_npmOperationalInternal":{"tmp":"tmp/protorepo_1.0.22_1600727179578_0.7274546777621218","host":"s3://npm-registry-packages"}},"1.0.23":{"name":"@aitmed/protorepo","version":"1.0.23","author":"","license":"ISC","_id":"@aitmed/protorepo@1.0.23","maintainers":[{"name":"lengzhang","email":"lengzhang@live.com"},{"name":"junrupait","email":"junrup@aitmed.com"},{"name":"fullstackray","email":"fullstackray@gmail.com"},{"name":"junrup","email":"pujunru@gmail.com"},{"name":"pfftdammitchris","email":"pfftdammitchris@gmail.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"}],"dist":{"shasum":"fc23ec5c1472857337b7406dea0af28000465bca","tarball":"https://registry.npmjs.org/@aitmed/protorepo/-/protorepo-1.0.23.tgz","fileCount":13,"integrity":"sha512-mzluRxttiUZGhOWfLFKYwQOsrwdvzEvXsBKnIowvuJ1vU9ZLnOFTiOr3NuwINLhAP2ieQ0uy1hDXJH3ABvzLNQ==","signatures":[{"sig":"MEQCIGDOv/tG5dTED4+lB/DOGJHmgqGENXpW7H0xMrlrnRRFAiA3A0rrJSCaJZaVtEytnW4o7AQ2tbWIfegu7MxpBLcn1A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3294110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkhvfCRA9TVsSAnZWagAABp8P+QHe7jV9mJPi0HvB3TYu\n8QGTZR0I9lvEcnA0yFPyiPo2XtpKu7NYmqN3oN6UtCSo3ViGUCiiF0ox79uf\nmSBRvFsfIQuWYz4eCHPqO0rkqS7M6RAUIqDjecwcnuJaOvkLVUukQzCxFUio\nOXOBoALdUZveEQKaY/T4yYO7Made5LSZOMqnU50BQMs2oxzOyyIYRighhe1a\ngO08c2/g5MsNM7ETowTCLjXlH4aZaJEGMoMlmO+zjWDshMwJG3G7rjeIS+Fp\nziJJChsIaXfimHCiH8ePfW+nULkbobk5796EYlrEcbZsWnJTO+YSTv+ogjKP\n1XULoKageUPlpRLGPWYZl3JRuGcG79W4I7AF/aKKKUWlOI/r2H+C1kcMhtcN\n+Hd+sESuwI234LLtbiMEMzovtdr8Vy55zctVNccZ9mz9Fa+FEXEKE/cKs8dv\nxza+q5bNLSChw00OcQrcZhn8BVbS9QX6bgyIcfCoxlj0Cu1KqgiSZA1XPUWQ\n73ZRHUiAa9EQqDNJzDSNoCLauBZbQMeJ/U0bj+jVMb294tcRT9YgkrOLUxJA\n9ykJhkPgEfVpmrYvJHpyBgdwsjnaSoM8t5nfvZeXsP3NbWt2n0ZTU7wjpbsX\np9ucC4ObHeq2xsZ0tNGXAK0Zmf1XQ1mxLfnfHpzZdGxgld9Yveu4tqvhx1M5\n8WbE\r\n=Ays2\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","gitHead":"a8d6c51c424987a67b8d7c5c01d829cff4db8ca5","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run build:js && npm run build:types","clean":"rm -rf dist","watch":"rollup -c -w","build:js":"rollup -c","serve:test":"serve test_public","start:test":"npm-run-all --parallel serve:test watch ","build:types":"tsc --emitDeclarationOnly","bump-version":"npm version patch","publish:public":"npm publish --access public","prepublish:public":"npm run build && npm run bump-version","postpublish:public":"git push"},"_npmUser":{"name":"fullstackray","email":"fullstackray@gmail.com"},"repository":{"url":"git@gitlab.aitmed.io:backend/protorepo.git","type":"git"},"_npmVersion":"6.14.6","description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","directories":{},"jsnext:main":"dist/index.es.js","_nodeVersion":"12.18.3","dependencies":{"rollup":"^1.27.2","ts-node":"^8.5.2","grpc-web":"^1.0.6","typescript":"^3.7.2","ts-protoc-gen":"^0.11.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-peer-deps-external":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^11.3.2","ts-loader":"^7.0.1","@babel/core":"^7.7.2","npm-run-all":"^4.1.5","@babel/preset-env":"^7.7.1","rollup-plugin-json":"^4.0.0","@babel/preset-typescript":"^7.7.2","rollup-plugin-multi-input":"^1.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-polyfills":"^0.2.1","@babel/plugin-proposal-class-properties":"^7.7.0","@babel/plugin-proposal-object-rest-spread":"^7.6.2"},"_npmOperationalInternal":{"tmp":"tmp/protorepo_1.0.23_1603410910805_0.6536641801082539","host":"s3://npm-registry-packages"}},"1.0.24":{"name":"@aitmed/protorepo","version":"1.0.24","author":"","license":"ISC","_id":"@aitmed/protorepo@1.0.24","maintainers":[{"name":"lengzhang","email":"lengzhang@live.com"},{"name":"junrupait","email":"junrup@aitmed.com"},{"name":"fullstackray","email":"fullstackray@gmail.com"},{"name":"junrup","email":"pujunru@gmail.com"},{"name":"pfftdammitchris","email":"pfftdammitchris@gmail.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"}],"dist":{"shasum":"d2e8f792f39768f935ceb72037a6e11f9f669e15","tarball":"https://registry.npmjs.org/@aitmed/protorepo/-/protorepo-1.0.24.tgz","fileCount":13,"integrity":"sha512-fPO2j5UtQAPvLuoiGr0yVEY1bHfjYFORNKIGplOhjoytjbkrQbTXxD/Wuz94jjw1BlueRMEKtmGl2TrgIVcgLQ==","signatures":[{"sig":"MEQCIDb3NzUpp7Wz6EaU/0Alqggp310xSAHof0m8FKvh/4WmAiAOhyqnR+W6EbsOPUVBfA8F8jPYlYLhTIxkrm0SAJZ1fA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3294110,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkhwWCRA9TVsSAnZWagAAGkcP/irHDUIv6DeExiOBP5rK\nhmYOQcKWvRe4S5I+zvo0IdXgBeNNEKEI0UAAMsJ3ax0yfPYwN/wK//vznvb8\nXAIOtta4UuqTU3dNchaX9/TmocDa3HLdYAQUUVsezXJamFFvprY1a9wiyOK8\nM36gsqSGCoTHoUXtUx1YLEpcBItuBIZvKQ7bMdhL2nXpvpM7mvOYdFnrUDQ1\nZZXSxKWl8hpsQa7LR5GAaqYZ/LBoRY/uZ2AKLw4uNRBaoI0ZzYypQi575dJu\n2wK8ZJRUjT26qYAoEMIXof0jGxBxnrVulh+eVFmvGZW+G6XcAMTcc0f4yQLo\nzPSmn0nhQ4qGtPyI18GYt267/jjwhwZays1DPsXgazZc3EyydLN2BVwUjsea\nQnL6HtKJOKocvSDN448CFSHkXLU0ufKBxV5O8yBLJmupSyPlOwLKIXENOyNw\nLJzB9BkbAHbBZG9FClizcsyFjv76mTUhUgaNTFQ7XrNwWiAAjhdVPtbdXmsM\nYLBEXXYy8vqolkjVSDOnsgP0bAPt3vABaNrib6ql0sqZRnp1bUK90pE+pmVx\n/wLG3ovK3eOQMEhy5fRjh08VGWNFuuDxVYChZerh4SL70hNFQOeN2nD0HryY\nsp6u27dwsXb41f6By35qsZk9aK8vA/+QCXbYUv36IQDtlYtb4Mqcq9tSE3kA\nEbST\r\n=BtoO\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","gitHead":"948665977d6d21390b77dbe9bc7868e28be95b84","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run build:js && npm run build:types","clean":"rm -rf dist","watch":"rollup -c -w","build:js":"rollup -c","serve:test":"serve test_public","start:test":"npm-run-all --parallel serve:test watch ","build:types":"tsc --emitDeclarationOnly","bump-version":"npm version patch","publish:public":"npm publish --access public","prepublish:public":"npm run build && npm run bump-version","postpublish:public":"git push"},"_npmUser":{"name":"fullstackray","email":"fullstackray@gmail.com"},"repository":{"url":"git@gitlab.aitmed.io:backend/protorepo.git","type":"git"},"_npmVersion":"6.14.6","description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","directories":{},"jsnext:main":"dist/index.es.js","_nodeVersion":"12.18.3","dependencies":{"rollup":"^1.27.2","ts-node":"^8.5.2","grpc-web":"^1.0.6","typescript":"^3.7.2","ts-protoc-gen":"^0.11.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-peer-deps-external":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"serve":"^11.3.2","ts-loader":"^7.0.1","@babel/core":"^7.7.2","npm-run-all":"^4.1.5","@babel/preset-env":"^7.7.1","rollup-plugin-json":"^4.0.0","@babel/preset-typescript":"^7.7.2","rollup-plugin-multi-input":"^1.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-polyfills":"^0.2.1","@babel/plugin-proposal-class-properties":"^7.7.0","@babel/plugin-proposal-object-rest-spread":"^7.6.2"},"_npmOperationalInternal":{"tmp":"tmp/protorepo_1.0.24_1603410966370_0.054980304419545156","host":"s3://npm-registry-packages"}},"1.0.25":{"name":"@aitmed/protorepo","version":"1.0.25","author":"","license":"ISC","_id":"@aitmed/protorepo@1.0.25","maintainers":[{"name":"atslotus","email":"q441321034@gmail.com"},{"name":"dazhoutong","email":"3286614219@qq.com"},{"name":"yongjian.yu","email":"yuyongjian1998@gmail.com"},{"name":"chenchen.xu","email":"chenxu2656@163.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"},{"name":"pfftdammitchris","email":"pfftdammitchris@gmail.com"},{"name":"blairgao","email":"yuhan@aitmed.com"}],"dist":{"shasum":"72abc495e3bb6919d48bbb758afc7fb625dc78fa","tarball":"https://registry.npmjs.org/@aitmed/protorepo/-/protorepo-1.0.25.tgz","fileCount":14,"integrity":"sha512-/QrLnK+gfNM58fbrF0G8VyiCGZ8LeLflpQDVjB+Yeaoa8dMO59Z82+RPH55udaRX3V905vep1Np7CPTyhkvBVg==","signatures":[{"sig":"MEQCIB2Czc/kvc6SQBmR8b31tY1+116y3Tl7taEjdWm4uKBCAiAvab1+Zi5fhA2Eo5HsKwk6ulC9t814/g3sN1EjBPPVLg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":3598049},"main":"dist/index.js","types":"dist/types/index.d.ts","module":"dist/index.es.js","gitHead":"8c3437bf889c90a951015a38456a8a5cefbdbb04","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"npm run clean && npm run build:js && npm run build:types","clean":"rm -rf dist","watch":"rollup -c -w","build:js":"rollup -c","serve:test":"serve test_public","start:test":"npm-run-all --parallel serve:test watch ","build:types":"tsc --emitDeclarationOnly","bump-version":"npm version patch","publish:public":"npm publish --access public","prepublish:public":"npm run build && npm run bump-version","postpublish:public":"git push"},"_npmUser":{"name":"dazhoutong","email":"3286614219@qq.com"},"repository":{"url":"git@gitlab.aitmed.io:backend/protorepo.git","type":"git"},"_npmVersion":"9.6.6","description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","directories":{},"jsnext:main":"dist/index.es.js","_nodeVersion":"20.11.0","dependencies":{"rollup":"^1.27.2","ts-node":"^8.5.2","grpc-web":"^1.0.6","typescript":"^3.7.2","ts-protoc-gen":"^0.11.0","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-peer-deps-external":"^2.2.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"serve":"^11.3.2","ts-loader":"^7.0.1","@babel/core":"^7.7.2","npm-run-all":"^4.1.5","@babel/preset-env":"^7.7.1","rollup-plugin-json":"^4.0.0","@babel/preset-typescript":"^7.7.2","rollup-plugin-multi-input":"^1.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-polyfills":"^0.2.1","@babel/plugin-proposal-class-properties":"^7.7.0","@babel/plugin-proposal-object-rest-spread":"^7.6.2"},"_npmOperationalInternal":{"tmp":"tmp/protorepo_1.0.25_1706090074685_0.6116137163437285","host":"s3://npm-registry-packages"}},"1.0.26":{"name":"@aitmed/protorepo","version":"1.0.26","description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","main":"dist/index.js","module":"dist/index.es.js","jsnext:main":"dist/index.es.js","types":"dist/types/index.d.ts","scripts":{"start:test":"npm-run-all --parallel serve:test watch ","serve:test":"serve test_public","build":"npm run clean && npm run build:js && npm run build:types","build:js":"rollup -c","build:types":"tsc --emitDeclarationOnly","clean":"rm -rf dist","watch":"rollup -c -w","bump-version":"npm version patch","prepublish:public":"npm run build && npm run bump-version","publish:public":"npm publish --access public","postpublish:public":"git push","test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git@gitlab.aitmed.io:backend/protorepo.git"},"author":"","license":"ISC","dependencies":{"grpc-web":"^1.0.6","rollup":"^1.27.2","rollup-plugin-babel":"^4.3.3","rollup-plugin-commonjs":"^10.1.0","rollup-plugin-node-builtins":"^2.1.2","rollup-plugin-node-resolve":"^5.2.0","rollup-plugin-peer-deps-external":"^2.2.0","ts-node":"^8.5.2","ts-protoc-gen":"^0.11.0","typescript":"^3.7.2"},"devDependencies":{"@babel/core":"^7.7.2","@babel/plugin-proposal-class-properties":"^7.7.0","@babel/plugin-proposal-object-rest-spread":"^7.6.2","@babel/preset-env":"^7.7.1","@babel/preset-typescript":"^7.7.2","npm-run-all":"^4.1.5","rollup-plugin-json":"^4.0.0","rollup-plugin-multi-input":"^1.1.1","rollup-plugin-node-globals":"^1.4.0","rollup-plugin-node-polyfills":"^0.2.1","serve":"^11.3.2","ts-loader":"^7.0.1"},"_id":"@aitmed/protorepo@1.0.26","gitHead":"71107a2440cf347d63af14a030d7c59f5ffc5d72","_nodeVersion":"20.15.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ox2ix6s6CPn5S3WX4A5MZpkzAKqOkhiKCO74XPLB7rkIP2zRuczYb8DcuePnQFAnWqT7gPSO4/WRziQ0Dp0vmw==","shasum":"2516bf5fbf2d402f4d0351997c10873e70a4bba8","tarball":"https://registry.npmjs.org/@aitmed/protorepo/-/protorepo-1.0.26.tgz","fileCount":13,"unpackedSize":3370676,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBGARMtWx0jBZ0aBM8ggKk+4kr9FRvaKX3XhpA8maHOfAiEAvEPoVruoB5gbv5zlCy6Y6BxbFu3QWjuxUQUNnQPzGUw="}]},"_npmUser":{"name":"atslotus","email":"q441321034@gmail.com"},"directories":{},"maintainers":[{"name":"chenchen.xu","email":"chenxu2656@163.com"},{"name":"projectbreeze","email":"pfftdammitchris@gmail.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"},{"name":"blairgao","email":"yuhan@aitmed.com"},{"name":"yongjian.yu","email":"yuyongjian1998@gmail.com"},{"name":"dazhoutong","email":"3286614219@qq.com"},{"name":"atslotus","email":"q441321034@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/protorepo_1.0.26_1745894549764_0.6705392720551044"},"_hasShrinkwrap":false}},"time":{"created":"2020-09-21T21:37:58.233Z","modified":"2025-04-29T02:42:30.288Z","1.0.21":"2020-09-21T21:37:58.644Z","1.0.22":"2020-09-21T22:26:19.759Z","1.0.23":"2020-10-22T23:55:10.981Z","1.0.24":"2020-10-22T23:56:06.544Z","1.0.25":"2024-01-24T09:54:34.905Z","1.0.26":"2025-04-29T02:42:29.980Z"},"license":"ISC","repository":{"type":"git","url":"git@gitlab.aitmed.io:backend/protorepo.git"},"description":"## Required File Structure ``` $GOPATH ├── bin │    ├── pkg │   └── mod └── (anyname other than src)     ├── protorepo * ```","maintainers":[{"name":"chenchen.xu","email":"chenxu2656@163.com"},{"name":"projectbreeze","email":"pfftdammitchris@gmail.com"},{"name":"pfftdammitchris2","email":"christopher@aitmed.com"},{"name":"blairgao","email":"yuhan@aitmed.com"},{"name":"yongjian.yu","email":"yuyongjian1998@gmail.com"},{"name":"dazhoutong","email":"3286614219@qq.com"},{"name":"atslotus","email":"q441321034@gmail.com"}],"readme":"# protorepo\r\n\r\n## Required File Structure\r\n\r\n```\r\n$GOPATH\r\n├── bin\r\n│  \r\n├── pkg\r\n│   └── mod\r\n└── (anyname other than src)\r\n    ├── protorepo *\r\n```\r\n\r\n## Dependencies\r\n\r\n1. prototool:\r\n\r\n   ```shell script\r\n   brew install prototool\r\n   ```\r\n\r\n2. [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway)\r\n   ```shell script\r\n   go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway\r\n   go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger\r\n   go get -u github.com/golang/protobuf/protoc-gen-go\r\n   ```\r\n3. [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen)\r\n   ```shell script\r\n   npm install ts-protoc-gen\r\n   ```\r\n\r\n## Usage\r\n\r\n### Create a new service\r\n\r\n1. Create a new dir:\r\n\r\n```\r\nmkdir -p proto/new_service/v1beta1/\r\n```\r\n\r\n2. (**Optional**) Create a config file **if extra configs are needed**:\r\n\r\n```\r\nprototool config init proto/new_service\r\n```\r\n\r\n3. Create a protobuf template:\r\n\r\n```\r\nprototool create proto/new_service/v1beta1/new_service.proto\r\n```\r\n\r\n4. Write API definition Note:\r\n1. all those definitions must follow the protobuf lint rules. Uber's lint rule\r\n   v2 is recommended and set as the default lint rule since it is strict.\r\n1. If extra REST interfaces are needed, follow the tutorial of\r\n   [grpc-gateway](https://github.com/grpc-ecosystem/grpc-gateway).\r\n\r\n1. Lint your API:\r\n\r\n```\r\nprototool lint proto/new_service/v1beta1/new_service.proto\r\n```\r\n\r\nNote we are think of adding this lint process in our CI pipeline, any commit\r\nwith lint error will be intolerant.\r\n\r\n6. Generate your API pb files:\r\n\r\n```\r\nprototool generate proto/new_service/v1beta1/new_service.proto\r\n```\r\n\r\nGenerated pb files will be under `pkg/new_service/v1beta1`\r\n\r\n7. Import file into your service codebase\r\n\r\n```go\r\npackage main\r\n\r\nimport \"gitlab.aitmed.io/backend/protorepo/go/new_service/v1beta1\"\r\n```\r\n\r\n### Supported language pb files repo\r\n\r\nOnce a set of protobuf files is designed, language-specific code templates\r\ncalled pb files will be automatically generated by the CI. Javascript (frontend\r\nclient), golang and python (cross-service communication) are the major customers\r\nof those files. Note that those files should be considered as library files thus\r\ncannot be modified. The very problem remains how to package files into library.\r\n\r\n#### Golang\r\n\r\nDependency management in golang is easy since golang has built-in git support\r\nfor fetching 3rd-party libraries and this only happens during development and\r\nbuild time. Simply import files like\r\n`gitlab.aitmed.io/backend/protorepo/pkg/...` should be fine.\r\n\r\n#### Javascript/Typescript\r\n\r\nPrivate javascript repo.\r\n\r\n#### Python\r\n\r\npython will be packaged as an egg file, simply import those files should be\r\nfine.\r\n\r\n#### Java\r\n\r\nJava pb files will be packed into a jar file for easy import. Upload to the\r\ncentral maven repo if needed.\r\n\r\n### API changes\r\n\r\nAPI is always changing. The basic idea is any API version number with suffix\r\n`alpha#` `beta#` might introduces breaking changes. Other APIs will not break,\r\nhowever.\r\n\r\n10/22/2020\r\nfiles under jsGRPC=web is generated by GRPC-web\r\nindex.ts ecos/v1beta1/ecos_apiServiceClientPb.ts\r\nbecause only types are changed\r\ntypes_pb.js types_pb.d.ts are generated by prototool\r\nthe other files are copy from 3fca551a commit\r\n\r\n","readmeFilename":"README.md"}