x
This commit is contained in:
@@ -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
|
||||
Generated
+1111
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
}
|
||||
}
|
||||
Generated
+756
@@ -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
|
||||
@@ -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;
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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
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
Reference in New Issue
Block a user