This commit is contained in:
1-6
2023-07-22 07:38:55 +08:00
parent ae09010047
commit 91686cb362
29 changed files with 10158 additions and 390 deletions
View File
+13
View File
@@ -0,0 +1,13 @@
protoc-gen-grpc --js_out=import_style=commonjs:. --grpc_out=. srpc.proto
protoc-gen-grpc --ts_out=service=grpc-node:. --grpc_out=. srpc.proto
protoc --go_out=. -I. --go-grpc_out=. srpc.proto
protoc --plugin=protoc-gen-ts=$(which protoc-gen-ts) --js_out=import_style=commonjs,binary:./ --ts_out=./ srpc.proto
protoc --js_out=import_style=commonjs,binary:. --grpc_out=. srpc.proto
//ok
protoc --go_out=. -I. --go-grpc_out=. srpc.proto
protoc-gen-grpc --ts_out=service=grpc-node:. --grpc_out=. srpc.proto
+1111
View File
File diff suppressed because it is too large Load Diff
+13
View File
@@ -0,0 +1,13 @@
{
"dependencies": {
"@grpc/grpc-js": "^1.8.18",
"@grpc/proto-loader": "^0.7.8",
"google-protobuf": "^3.21.2",
"grpc": "^1.24.11",
"grpc-tools": "^1.12.4",
"grpc-web": "^1.4.2"
},
"devDependencies": {
"@types/google-protobuf": "^3.15.6"
}
}
+756
View File
@@ -0,0 +1,756 @@
lockfileVersion: '6.0'
settings:
autoInstallPeers: true
excludeLinksFromLockfile: false
dependencies:
'@grpc/proto-loader':
specifier: ^0.7.8
version: 0.7.8
google-protobuf:
specifier: ^3.21.2
version: 3.21.2
grpc:
specifier: ^1.24.11
version: 1.24.11
grpc-tools:
specifier: ^1.12.4
version: 1.12.4
packages:
/@grpc/proto-loader@0.7.8:
resolution: {integrity: sha512-GU12e2c8dmdXb7XUlOgYWZ2o2i+z9/VeACkxTA/zzAe2IjclC5PnVL0lpgjhrqfpDYHzM8B1TF6pqWegMYAzlA==}
engines: {node: '>=6'}
hasBin: true
dependencies:
'@types/long': 4.0.2
lodash.camelcase: 4.3.0
long: 4.0.0
protobufjs: 7.2.4
yargs: 17.7.2
dev: false
/@mapbox/node-pre-gyp@1.0.11:
resolution: {integrity: sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==}
hasBin: true
dependencies:
detect-libc: 2.0.2
https-proxy-agent: 5.0.1
make-dir: 3.1.0
node-fetch: 2.6.12
nopt: 5.0.0
npmlog: 5.0.1
rimraf: 3.0.2
semver: 7.5.4
tar: 6.1.15
transitivePeerDependencies:
- encoding
- supports-color
dev: false
/@protobufjs/aspromise@1.1.2:
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
dev: false
/@protobufjs/base64@1.1.2:
resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
dev: false
/@protobufjs/codegen@2.0.4:
resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
dev: false
/@protobufjs/eventemitter@1.1.0:
resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
dev: false
/@protobufjs/fetch@1.1.0:
resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
dependencies:
'@protobufjs/aspromise': 1.1.2
'@protobufjs/inquire': 1.1.0
dev: false
/@protobufjs/float@1.0.2:
resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
dev: false
/@protobufjs/inquire@1.1.0:
resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
dev: false
/@protobufjs/path@1.1.2:
resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
dev: false
/@protobufjs/pool@1.1.0:
resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
dev: false
/@protobufjs/utf8@1.1.0:
resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
dev: false
/@types/bytebuffer@5.0.44:
resolution: {integrity: sha512-k1qonHga/SfQT02NF633i+7tIfKd+cfC/8pjnedcfuXJNMWooss/FkCgRMSnLf2WorLjbuH4bfgAZEbtyHBDoQ==}
dependencies:
'@types/long': 3.0.32
'@types/node': 20.4.2
dev: false
/@types/long@3.0.32:
resolution: {integrity: sha512-ZXyOOm83p7X8p3s0IYM3VeueNmHpkk/yMlP8CLeOnEcu6hIwPH7YjZBvhQkR0ZFS2DqZAxKtJ/M5fcuv3OU5BA==}
dev: false
/@types/long@4.0.2:
resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
dev: false
/@types/node@20.4.2:
resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==}
dev: false
/abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
dev: false
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
dependencies:
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: false
/ansi-regex@2.1.1:
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
engines: {node: '>=0.10.0'}
dev: false
/ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
dev: false
/ansi-styles@4.3.0:
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
dev: false
/aproba@2.0.0:
resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==}
dev: false
/are-we-there-yet@2.0.0:
resolution: {integrity: sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==}
engines: {node: '>=10'}
dependencies:
delegates: 1.0.0
readable-stream: 3.6.2
dev: false
/ascli@1.0.1:
resolution: {integrity: sha512-JGQaNxpaCJz9Bd1JvVaFIHuWn9S+l3xhN17R0V/vmUDiGE0QngNMXhjlqpwqV+91plWz9Fg+Lt28Lj7p5vjs8A==}
dependencies:
colour: 0.7.1
optjs: 3.2.2
dev: false
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: false
/brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
dev: false
/bytebuffer@5.0.1:
resolution: {integrity: sha512-IuzSdmADppkZ6DlpycMkm8l9zeEq16fWtLvunEwFiYciR/BHo4E8/xs5piFquG+Za8OWmMqHF8zuRviz2LHvRQ==}
engines: {node: '>=0.8'}
dependencies:
long: 3.2.0
dev: false
/camelcase@2.1.1:
resolution: {integrity: sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw==}
engines: {node: '>=0.10.0'}
dev: false
/chownr@2.0.0:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
dev: false
/cliui@3.2.0:
resolution: {integrity: sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w==}
dependencies:
string-width: 1.0.2
strip-ansi: 3.0.1
wrap-ansi: 2.1.0
dev: false
/cliui@8.0.1:
resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
engines: {node: '>=12'}
dependencies:
string-width: 4.2.3
strip-ansi: 6.0.1
wrap-ansi: 7.0.0
dev: false
/code-point-at@1.1.0:
resolution: {integrity: sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==}
engines: {node: '>=0.10.0'}
dev: false
/color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
dev: false
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
dev: false
/color-support@1.1.3:
resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==}
hasBin: true
dev: false
/colour@0.7.1:
resolution: {integrity: sha512-Rel466v0EnmKPcsxHo91L4kgPs/6XF7Pu2LJNszq9lXYwi5CFWEeIiRaTX5ym7PPMdj4udDHkLSVC1//JVkZQg==}
engines: {node: '>=0.8'}
dev: false
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
dev: false
/console-control-strings@1.1.0:
resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
dev: false
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.2
dev: false
/decamelize@1.2.0:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
engines: {node: '>=0.10.0'}
dev: false
/delegates@1.0.0:
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
dev: false
/detect-libc@2.0.2:
resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
engines: {node: '>=8'}
dev: false
/emoji-regex@8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: false
/escalade@3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
dev: false
/fs-minipass@2.1.0:
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
engines: {node: '>= 8'}
dependencies:
minipass: 3.3.6
dev: false
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: false
/gauge@3.0.2:
resolution: {integrity: sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==}
engines: {node: '>=10'}
dependencies:
aproba: 2.0.0
color-support: 1.1.3
console-control-strings: 1.1.0
has-unicode: 2.0.1
object-assign: 4.1.1
signal-exit: 3.0.7
string-width: 4.2.3
strip-ansi: 6.0.1
wide-align: 1.1.5
dev: false
/get-caller-file@2.0.5:
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
engines: {node: 6.* || 8.* || >= 10.*}
dev: false
/glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
dev: false
/google-protobuf@3.21.2:
resolution: {integrity: sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==}
dev: false
/grpc-tools@1.12.4:
resolution: {integrity: sha512-5+mLAJJma3BjnW/KQp6JBjUMgvu7Mu3dBvBPd1dcbNIb+qiR0817zDpgPjS7gRb+l/8EVNIa3cB02xI9JLToKg==}
hasBin: true
requiresBuild: true
dependencies:
'@mapbox/node-pre-gyp': 1.0.11
transitivePeerDependencies:
- encoding
- supports-color
dev: false
/grpc@1.24.11:
resolution: {integrity: sha512-8/AQdFCzCeCDWW3SoaMNp6ccbRvTQEH1O1u1uFtt29eWsg5gSZCJ3m6fbkduEIh3smY7WAPP+LgVJ5n3nZRxcA==}
engines: {node: '>=4'}
deprecated: This library will not receive further updates other than security fixes. We recommend using @grpc/grpc-js instead.
requiresBuild: true
dependencies:
'@mapbox/node-pre-gyp': 1.0.11
'@types/bytebuffer': 5.0.44
lodash.camelcase: 4.3.0
lodash.clone: 4.5.0
nan: 2.17.0
protobufjs: 5.0.3
transitivePeerDependencies:
- encoding
- supports-color
dev: false
/has-unicode@2.0.1:
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
dev: false
/https-proxy-agent@5.0.1:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
dependencies:
agent-base: 6.0.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: false
/inflight@1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
dependencies:
once: 1.4.0
wrappy: 1.0.2
dev: false
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: false
/invert-kv@1.0.0:
resolution: {integrity: sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ==}
engines: {node: '>=0.10.0'}
dev: false
/is-fullwidth-code-point@1.0.0:
resolution: {integrity: sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==}
engines: {node: '>=0.10.0'}
dependencies:
number-is-nan: 1.0.1
dev: false
/is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: false
/lcid@1.0.0:
resolution: {integrity: sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw==}
engines: {node: '>=0.10.0'}
dependencies:
invert-kv: 1.0.0
dev: false
/lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
dev: false
/lodash.clone@4.5.0:
resolution: {integrity: sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg==}
dev: false
/long@3.2.0:
resolution: {integrity: sha512-ZYvPPOMqUwPoDsbJaR10iQJYnMuZhRTvHYl62ErLIEX7RgFlziSBUUvrt3OVfc47QlHHpzPZYP17g3Fv7oeJkg==}
engines: {node: '>=0.6'}
dev: false
/long@4.0.0:
resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==}
dev: false
/long@5.2.3:
resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==}
dev: false
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
dev: false
/make-dir@3.1.0:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
dependencies:
semver: 6.3.1
dev: false
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
dev: false
/minipass@3.3.6:
resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
engines: {node: '>=8'}
dependencies:
yallist: 4.0.0
dev: false
/minipass@5.0.0:
resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
engines: {node: '>=8'}
dev: false
/minizlib@2.1.2:
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
engines: {node: '>= 8'}
dependencies:
minipass: 3.3.6
yallist: 4.0.0
dev: false
/mkdirp@1.0.4:
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
engines: {node: '>=10'}
hasBin: true
dev: false
/ms@2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: false
/nan@2.17.0:
resolution: {integrity: sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==}
dev: false
/node-fetch@2.6.12:
resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==}
engines: {node: 4.x || >=6.0.0}
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
dependencies:
whatwg-url: 5.0.0
dev: false
/nopt@5.0.0:
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
engines: {node: '>=6'}
hasBin: true
dependencies:
abbrev: 1.1.1
dev: false
/npmlog@5.0.1:
resolution: {integrity: sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==}
dependencies:
are-we-there-yet: 2.0.0
console-control-strings: 1.1.0
gauge: 3.0.2
set-blocking: 2.0.0
dev: false
/number-is-nan@1.0.1:
resolution: {integrity: sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==}
engines: {node: '>=0.10.0'}
dev: false
/object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
dev: false
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: false
/optjs@3.2.2:
resolution: {integrity: sha512-f8lTJm4LKirX+45xsFhuRNjA4f46QVLQKfGoNH7e2AEWS+24eM4XNH4pQ8Tw2LISCIvbST/wNcLdtgvgcqVaxA==}
dev: false
/os-locale@1.4.0:
resolution: {integrity: sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g==}
engines: {node: '>=0.10.0'}
dependencies:
lcid: 1.0.0
dev: false
/path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
dev: false
/protobufjs@5.0.3:
resolution: {integrity: sha512-55Kcx1MhPZX0zTbVosMQEO5R6/rikNXd9b6RQK4KSPcrSIIwoXTtebIczUrXlwaSrbz4x8XUVThGPob1n8I4QA==}
engines: {node: '>=0.8'}
hasBin: true
dependencies:
ascli: 1.0.1
bytebuffer: 5.0.1
glob: 7.2.3
yargs: 3.32.0
dev: false
/protobufjs@7.2.4:
resolution: {integrity: sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ==}
engines: {node: '>=12.0.0'}
requiresBuild: true
dependencies:
'@protobufjs/aspromise': 1.1.2
'@protobufjs/base64': 1.1.2
'@protobufjs/codegen': 2.0.4
'@protobufjs/eventemitter': 1.1.0
'@protobufjs/fetch': 1.1.0
'@protobufjs/float': 1.0.2
'@protobufjs/inquire': 1.1.0
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/node': 20.4.2
long: 5.2.3
dev: false
/readable-stream@3.6.2:
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
engines: {node: '>= 6'}
dependencies:
inherits: 2.0.4
string_decoder: 1.3.0
util-deprecate: 1.0.2
dev: false
/require-directory@2.1.1:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
dev: false
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
glob: 7.2.3
dev: false
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: false
/semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
dev: false
/semver@7.5.4:
resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
lru-cache: 6.0.0
dev: false
/set-blocking@2.0.0:
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: false
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: false
/string-width@1.0.2:
resolution: {integrity: sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==}
engines: {node: '>=0.10.0'}
dependencies:
code-point-at: 1.1.0
is-fullwidth-code-point: 1.0.0
strip-ansi: 3.0.1
dev: false
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
engines: {node: '>=8'}
dependencies:
emoji-regex: 8.0.0
is-fullwidth-code-point: 3.0.0
strip-ansi: 6.0.1
dev: false
/string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
safe-buffer: 5.2.1
dev: false
/strip-ansi@3.0.1:
resolution: {integrity: sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==}
engines: {node: '>=0.10.0'}
dependencies:
ansi-regex: 2.1.1
dev: false
/strip-ansi@6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
engines: {node: '>=8'}
dependencies:
ansi-regex: 5.0.1
dev: false
/tar@6.1.15:
resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==}
engines: {node: '>=10'}
dependencies:
chownr: 2.0.0
fs-minipass: 2.1.0
minipass: 5.0.0
minizlib: 2.1.2
mkdirp: 1.0.4
yallist: 4.0.0
dev: false
/tr46@0.0.3:
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
dev: false
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: false
/webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: false
/whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
dependencies:
tr46: 0.0.3
webidl-conversions: 3.0.1
dev: false
/wide-align@1.1.5:
resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==}
dependencies:
string-width: 4.2.3
dev: false
/window-size@0.1.4:
resolution: {integrity: sha512-2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==}
engines: {node: '>= 0.10.0'}
hasBin: true
dev: false
/wrap-ansi@2.1.0:
resolution: {integrity: sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==}
engines: {node: '>=0.10.0'}
dependencies:
string-width: 1.0.2
strip-ansi: 3.0.1
dev: false
/wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
dependencies:
ansi-styles: 4.3.0
string-width: 4.2.3
strip-ansi: 6.0.1
dev: false
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: false
/y18n@3.2.2:
resolution: {integrity: sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==}
dev: false
/y18n@5.0.8:
resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
engines: {node: '>=10'}
dev: false
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
dev: false
/yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
dev: false
/yargs@17.7.2:
resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
engines: {node: '>=12'}
dependencies:
cliui: 8.0.1
escalade: 3.1.1
get-caller-file: 2.0.5
require-directory: 2.1.1
string-width: 4.2.3
y18n: 5.0.8
yargs-parser: 21.1.1
dev: false
/yargs@3.32.0:
resolution: {integrity: sha512-ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==}
dependencies:
camelcase: 2.1.1
cliui: 3.2.0
decamelize: 1.2.0
os-locale: 1.4.0
string-width: 1.0.2
window-size: 0.1.4
y18n: 3.2.2
dev: false
+547
View File
@@ -0,0 +1,547 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var _a, _b;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sleep = exports.sender = exports.Bucket = exports.Adapter = void 0;
const srpc_1 = require("./srpc");
const grpc_1 = __importStar(require("@grpc/grpc-js"));
let client = new srpc_1.srpc.SillyGirlServiceClient("localhost:50051", grpc_1.credentials.createInsecure());
class Sender {
constructor(uuid) {
this.uuid = uuid;
}
getUserId() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetUserId(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getUserName() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetUserName(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getChatId() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetChatId(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getChatName() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetChatName(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getMessageId() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetMessageId(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getPlatform() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetPlatform(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getBotId() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetBotId(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
getContent() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderGetContent(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
setContent(content) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderSetContent(new srpc_1.srpc.SenderContentRequest({
uuid: this.uuid,
content,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(undefined);
}
});
});
});
}
continue() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderContinue(new srpc_1.srpc.SenderRequest({
uuid: this.uuid,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(undefined);
}
});
});
});
}
getAdapter() {
return __awaiter(this, void 0, void 0, function* () {
return new Adapter({
bot_id: yield this.getBotId(),
platform: yield this.getPlatform(),
});
});
}
listen(options) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
let params = {
uuid: this.uuid,
rules: options === null || options === void 0 ? void 0 : options.rules,
timeout: options === null || options === void 0 ? void 0 : options.timeout,
listen_private: options === null || options === void 0 ? void 0 : options.listen_private,
listen_group: options === null || options === void 0 ? void 0 : options.listen_group,
allow_platforms: options === null || options === void 0 ? void 0 : options.allow_platforms,
prohibit_platforms: options === null || options === void 0 ? void 0 : options.prohibit_platforms,
allow_groups: options === null || options === void 0 ? void 0 : options.allow_groups,
prohibit_groups: options === null || options === void 0 ? void 0 : options.prohibit_groups,
allow_users: options === null || options === void 0 ? void 0 : options.allow_users,
prohibit_users: options === null || options === void 0 ? void 0 : options.prohibit_users,
};
client.SenderListen(new srpc_1.srpc.SenderListenRequest(params), (err, resp) => {
if (err) {
reject(err);
}
else {
if (resp === null || resp === void 0 ? void 0 : resp.value) {
resolve(new Sender(resp.value));
}
else {
reject(new Error("timeout"));
}
}
});
});
});
}
reply(content) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.SenderReply(new srpc_1.srpc.ReplyRequest({
uuid: this.uuid,
content,
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
}
});
});
});
}
action(options) {
return __awaiter(this, void 0, void 0, function* () {
return;
});
}
event() {
return __awaiter(this, void 0, void 0, function* () {
return;
});
}
}
class Bucket {
constructor(name) {
this.name = name;
}
transform(v) {
if (!v) {
return undefined;
}
let result;
if (v.startsWith("f:")) {
result = parseFloat(v.replace("f:", ""));
return result;
}
if (v.startsWith("d:")) {
result = parseInt(v.replace("d:", ""));
return result;
}
if (v.startsWith("b:")) {
result = v.replace("b:", "") === "true";
return result;
}
if (v.startsWith("o:")) {
result = JSON.parse(v.replace("o:", ""));
return result;
}
return v;
}
reverseTransform(value) {
if (typeof value === "number" || typeof value === "boolean") {
return value.toString();
}
if (typeof value === "object" && value !== null) {
return "o:" + JSON.stringify(value);
}
if (value === undefined || value === null) {
return "";
}
if (typeof value === "string") {
if (!value) {
return undefined;
}
if (!isNaN(parseFloat(value))) {
return "f:" + parseFloat(value);
}
if (!isNaN(parseInt(value))) {
return "d:" + parseInt(value);
}
if (value === "true" || value === "false") {
return "b:" + (value === "true");
}
}
return value;
}
get(key, defaultValue = undefined) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketGet(new srpc_1.srpc.BucketKeyRequest({ name: this.name, key }), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(this.transform(resp === null || resp === void 0 ? void 0 : resp.value) || defaultValue);
}
});
});
});
}
set(key, value) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketSet(new srpc_1.srpc.BucketSetRequest({
name: this.name,
key,
value: this.reverseTransform(value),
}), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve({
message: resp === null || resp === void 0 ? void 0 : resp.message,
changed: resp === null || resp === void 0 ? void 0 : resp.changed,
});
}
});
});
});
}
getAll() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketGetAll(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
if (err) {
reject(err);
}
else {
let values = {};
if (resp === null || resp === void 0 ? void 0 : resp.value) {
values = JSON.parse(resp === null || resp === void 0 ? void 0 : resp.value);
for (let key in values) {
values[key] = this.transform(values[key]);
}
}
resolve(values);
}
});
});
});
}
delete() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketDelete(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(undefined);
}
});
});
});
}
keys() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketKeys(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.keys);
}
});
});
});
}
len() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketLen(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.length);
}
});
});
});
}
buckets() {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.BucketBuckets(new srpc_1.srpc.Empty(), (err, resp) => {
if (err) {
reject(err);
}
else {
resolve(resp === null || resp === void 0 ? void 0 : resp.buckets);
}
});
});
});
}
_name() {
return __awaiter(this, void 0, void 0, function* () {
return this.name;
});
}
}
exports.Bucket = Bucket;
class Adapter {
constructor(options) {
this.platform = options.platform;
this.bot_id = options.bot_id;
const call = client.AdapterRegist();
if (options.replyHandler) {
let callback = options.replyHandler;
call.on("data", (response) => {
let message = JSON.parse(response.value);
const { echo, __type__ } = message;
delete (message.__type__);
delete (message.echo);
if (__type__ == "reply") {
call.write(new srpc_1.srpc.AdapterRegistRequest({
bot_id: echo,
platform: callback(message),
}));
}
});
call.on("error", (err) => {
// console.error(err);
});
call.write(new srpc_1.srpc.AdapterRegistRequest({
bot_id: options.bot_id,
platform: options.platform,
}));
this.call = call;
}
}
setActionHandler(func) {
// 将从服务端不断接收action消息,并处理
// 事件处理巨饼
}
receive(message) {
return __awaiter(this, void 0, void 0, function* () {
//投递消息
return new Promise((resolve, reject) => {
client.AdapterReceive(new srpc_1.srpc.AdapterRequest({
platform: this.platform,
bot_id: this.bot_id,
value: JSON.stringify(message),
}), (err, resp) => {
if (err) {
reject(err);
}
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
resolve(new Sender(resp.value));
}
});
});
});
}
push(message) {
return __awaiter(this, void 0, void 0, function* () {
//推送消息
return new Promise((resolve, reject) => {
client.AdapterPush(new srpc_1.srpc.AdapterRequest({
platform: this.platform,
bot_id: this.bot_id,
value: JSON.stringify(message),
}), (err, resp) => {
if (err) {
reject(err);
}
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
resolve(resp.value);
}
});
});
});
}
destroy() {
return __awaiter(this, void 0, void 0, function* () {
this.call.cancel();
});
}
sender(options) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve, reject) => {
client.AdapterSender(new srpc_1.srpc.AdapterRequest({
platform: this.platform,
bot_id: this.bot_id,
}), (err, resp) => {
if (err) {
reject(err);
}
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
resolve(new Sender(resp.value));
}
});
});
});
}
}
exports.Adapter = Adapter;
let sender = new Sender((_b = (_a = process.env) === null || _a === void 0 ? void 0 : _a.SENDER_ID) !== null && _b !== void 0 ? _b : "4d6371a8-2778-11ee-a3c2-821680fbbf6b");
exports.sender = sender;
function sleep(ms) {
return __awaiter(this, void 0, void 0, function* () {
return new Promise((resolve) => setTimeout(resolve, ms));
});
}
exports.sleep = sleep;
+549
View File
@@ -0,0 +1,549 @@
import { srpc } from "./srpc";
import * as grpc_1 from "@grpc/grpc-js";
let client = new srpc.SillyGirlServiceClient(
"localhost:50051",
grpc_1.credentials.createInsecure()
);
class Sender {
private uuid: string;
constructor(uuid: string) {
this.uuid = uuid;
}
async getUserId(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetUserId(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getUserName(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetUserName(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getChatId(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetChatId(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getChatName(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetChatName(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getMessageId(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetMessageId(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getPlatform(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetPlatform(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getBotId(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetBotId(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async getContent(): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderGetContent(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async setContent(content: string): Promise<undefined> {
return new Promise((resolve, reject) => {
client.SenderSetContent(
new srpc.SenderContentRequest({
uuid: this.uuid,
content,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(undefined);
}
}
);
});
}
async continue(): Promise<undefined> {
return new Promise((resolve, reject) => {
client.SenderContinue(
new srpc.SenderRequest({
uuid: this.uuid,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(undefined);
}
}
);
});
}
async getAdapter() {
return new Adapter({
bot_id: await this.getBotId(),
platform: await this.getPlatform(),
});
}
async listen(options?: {
rules?: string[]; // 匹配规则
timeout?: number; // 超时,单位毫秒
handle?: (s: Sender) => string | void; // 如果匹配成功,则进入消息处理逻辑。如果将 holdOn(content) 的结果作为返回值,会继续监听
listen_private?: boolean; // 监听用户群内消息时,同时监听用户消息
listen_group?: boolean; // 监听用户群内消息时,同时监听群员消息
allow_platforms?: string[]; // 平台白名单
prohibit_platforms?: string[]; // 平台黑名单
allow_groups?: string[]; // 群聊白名单
prohibit_groups?: string[]; // 群聊黑名单
allow_users?: string[]; // 用户白名单
prohibit_users?: string[]; // 群聊白名单
}): Promise<Sender> {
return new Promise((resolve, reject) => {
let params: any = {
uuid: this.uuid,
rules: options?.rules,
timeout: options?.timeout,
listen_private: options?.listen_private,
listen_group: options?.listen_group,
allow_platforms: options?.allow_platforms,
prohibit_platforms: options?.prohibit_platforms,
allow_groups: options?.allow_groups,
prohibit_groups: options?.prohibit_groups,
allow_users: options?.allow_users,
prohibit_users: options?.prohibit_users,
};
client.SenderListen(new srpc.SenderListenRequest(params), (err, resp) => {
if (err) {
reject(err);
} else {
if (resp?.value) {
resolve(new Sender(resp.value));
} else {
reject(new Error("timeout"));
}
}
});
});
}
async reply(content: string): Promise<string | undefined> {
return new Promise((resolve, reject) => {
client.SenderReply(
new srpc.ReplyRequest({
uuid: this.uuid,
content,
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.value);
}
}
);
});
}
async action(options: any): Promise<any | undefined> {
return;
}
async event(): Promise<any | undefined> {
return;
}
}
class Bucket {
name: string;
constructor(name: string) {
this.name = name;
}
transform(v: string | undefined) {
if (!v) {
return undefined;
}
let result: number | boolean;
if (v.startsWith("f:")) {
result = parseFloat(v.replace("f:", ""));
return result;
}
if (v.startsWith("d:")) {
result = parseInt(v.replace("d:", ""));
return result;
}
if (v.startsWith("b:")) {
result = v.replace("b:", "") === "true";
return result;
}
if (v.startsWith("o:")) {
result = JSON.parse(v.replace("o:", ""));
return result;
}
return v;
}
reverseTransform(value: any) {
if (typeof value === "number" || typeof value === "boolean") {
return value.toString();
}
if (typeof value === "object" && value !== null) {
return "o:" + JSON.stringify(value);
}
if (value === undefined || value === null) {
return "";
}
if (typeof value === "string") {
if (!value) {
return undefined;
}
if (!isNaN(parseFloat(value))) {
return "f:" + parseFloat(value);
}
if (!isNaN(parseInt(value))) {
return "d:" + parseInt(value);
}
if (value === "true" || value === "false") {
return "b:" + (value === "true");
}
}
return value;
}
async get(key: string, defaultValue: any = undefined): Promise<any> {
return new Promise((resolve, reject) => {
client.BucketGet(
new srpc.BucketKeyRequest({ name: this.name, key }),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(this.transform(resp?.value) || defaultValue);
}
}
);
});
}
async set(
key: string,
value: any
): Promise<{ message?: string; changed?: boolean }> {
return new Promise((resolve, reject) => {
client.BucketSet(
new srpc.BucketSetRequest({
name: this.name,
key,
value: this.reverseTransform(value),
}),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve({
message: resp?.message,
changed: resp?.changed,
});
}
}
);
});
}
async getAll(): Promise<any> {
return new Promise((resolve, reject) => {
client.BucketGetAll(
new srpc.BucketRequest({ name: this.name }),
(err, resp) => {
if (err) {
reject(err);
} else {
let values: any = {};
if (resp?.value) {
values = JSON.parse(resp?.value);
for (let key in values) {
values[key] = this.transform(values[key]);
}
}
resolve(values);
}
}
);
});
}
async delete(): Promise<undefined> {
return new Promise((resolve, reject) => {
client.BucketDelete(
new srpc.BucketRequest({ name: this.name }),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(undefined);
}
}
);
});
}
async keys(): Promise<string[] | undefined> {
return new Promise((resolve, reject) => {
client.BucketKeys(
new srpc.BucketRequest({ name: this.name }),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.keys);
}
}
);
});
}
async len(): Promise<number | undefined> {
return new Promise((resolve, reject) => {
client.BucketLen(
new srpc.BucketRequest({ name: this.name }),
(err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.length);
}
}
);
});
}
async buckets(): Promise<string[] | undefined> {
return new Promise((resolve, reject) => {
client.BucketBuckets(new srpc.Empty(), (err, resp) => {
if (err) {
reject(err);
} else {
resolve(resp?.buckets);
}
});
});
}
async _name(): Promise<string> {
return this.name;
}
}
interface Message {
message_id?: string; // 消息ID
user_id: string; // 用户ID
chat_id?: string; // 聊天ID
content: string; // 聊天内容
user_name?: string; // 用户名
chat_name?: string; // 群组名
}
class Adapter {
platform: string | undefined;
bot_id: string | undefined;
call: any
constructor(options: {
platform?: string;
bot_id?: string;
replyHandler?: (message: Message) => string | undefined;
}) {
this.platform = options.platform;
this.bot_id = options.bot_id;
const call = client.AdapterRegist();
if (options.replyHandler) {
let callback: any = options.replyHandler;
call.on("data", (response) => {
let message = JSON.parse(response.value);
const { echo, __type__ } = message;
delete(message.__type__)
delete(message.echo)
if (__type__ == "reply") {
call.write(
new srpc.AdapterRegistRequest({
bot_id: echo,
platform: callback(message),
})
);
}
});
call.on("error", (err) => {
// console.error(err);
});
call.write(
new srpc.AdapterRegistRequest({
bot_id: options.bot_id,
platform: options.platform,
})
);
this.call = call
}
}
setActionHandler(func: (action: {}) => any): void {
// 将从服务端不断接收action消息,并处理
// 事件处理巨饼
}
async receive(message: Message): Promise<Sender> {
//投递消息
return new Promise<Sender>((resolve, reject) => {
client.AdapterReceive(
new srpc.AdapterRequest({
platform: this.platform,
bot_id: this.bot_id,
value: JSON.stringify(message),
}),
(err, resp) => {
if (err) {
reject(err);
} else if (resp?.value) {
resolve(new Sender(resp.value));
}
}
);
});
}
async push(message: Message): Promise<string> {
//推送消息
return new Promise<string>((resolve, reject) => {
client.AdapterPush(
new srpc.AdapterRequest({
platform: this.platform,
bot_id: this.bot_id,
value: JSON.stringify(message),
}),
(err, resp) => {
if (err) {
reject(err);
} else if (resp?.value) {
resolve(resp.value);
}
}
);
});
}
async destroy(): Promise<void> {
this.call.cancel()
}
async sender(options: any): Promise<Sender> {
return new Promise<Sender>((resolve, reject) => {
client.AdapterSender(
new srpc.AdapterRequest({
platform: this.platform,
bot_id: this.bot_id,
}),
(err, resp) => {
if (err) {
reject(err);
} else if (resp?.value) {
resolve(new Sender(resp.value));
}
}
);
});
}
}
let sender = new Sender(
process.env?.SENDER_ID ?? "4d6371a8-2778-11ee-a3c2-821680fbbf6b"
);
async function sleep(ms: number | undefined) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
export { Adapter, Bucket, sender, sleep };
+1659
View File
File diff suppressed because it is too large Load Diff
+112
View File
@@ -0,0 +1,112 @@
syntax = "proto3";
option go_package = "srpc/";
package srpc;
message Empty {}
message Default {
string value = 1;
}
message BucketSetRequest {
string name = 1;
string key = 2;
string value = 3;
}
message BucketSetResponse {
bool changed = 1;
string message = 2;
}
message BucketKeyRequest {
string name = 1;
string key = 2;
}
message BucketRequest {
string name = 1;
}
message BucketKeysResponse {
repeated string keys = 1;
}
message LenResponse {
int32 length = 1;
}
message BucketsResponse {
repeated string buckets = 1;
}
message SenderRequest {
string uuid = 1;
}
message ReplyRequest {
string uuid = 1;
string content = 2;
}
message SenderContentRequest {
string uuid = 1;
string content = 2;
}
message SenderListenRequest {
string uuid = 1;
repeated string rules = 2;
int32 timeout = 3;
bool listen_group = 4;
bool listen_private = 5;
bool require_admin = 6;
repeated string allow_platforms = 7;
repeated string prohibit_platforms = 8;
repeated string allow_users = 9;
repeated string prohibit_users = 10;
repeated string allow_groups = 11;
repeated string prohibit_groups = 12;
}
message AdapterRegistRequest {
string platform = 1;
string bot_id = 2;
}
message AdapterRequest {
string platform = 1;
string bot_id = 2;
string value = 3;
}
service SillyGirlService {
rpc BucketGet(BucketKeyRequest) returns (Default);
rpc BucketSet(BucketSetRequest) returns (BucketSetResponse);
rpc BucketDelete(BucketRequest) returns (Empty);
rpc BucketKeys(BucketRequest) returns (BucketKeysResponse);
rpc BucketLen(BucketRequest) returns (LenResponse);
rpc BucketGetAll(BucketRequest) returns (Default);
rpc BucketBuckets(Empty) returns (BucketsResponse);
rpc SenderGetUserId (SenderRequest) returns (Default);
rpc SenderGetUserName (SenderRequest) returns (Default);
rpc SenderGetChatId (SenderRequest) returns (Default);
rpc SenderGetChatName (SenderRequest) returns (Default);
rpc SenderGetMessageId (SenderRequest) returns (Default);
rpc SenderGetPlatform (SenderRequest) returns (Default);
rpc SenderGetBotId (SenderRequest) returns (Default);
rpc SenderGetContent (SenderRequest) returns (Default);
rpc SenderSetContent (SenderContentRequest) returns (Empty);
rpc SenderContinue (SenderRequest) returns (Empty);
rpc SenderListen (SenderListenRequest) returns (Default);
rpc SenderEvent (SenderRequest) returns (Default);
rpc SenderReply (ReplyRequest) returns (Default);
rpc SenderAction (ReplyRequest) returns (Default);
rpc AdapterRegist(stream AdapterRegistRequest) returns (stream Default);
rpc AdapterReceive(AdapterRequest) returns (Default);
rpc AdapterPush(AdapterRequest) returns (Default);
rpc AdapterDestroy(AdapterRequest) returns (Empty);
rpc AdapterSender(AdapterRequest) returns (Default);
}
+1819
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff