{"_id":"@x-oasis/async-call-rpc","_rev":"28-8b0c29993aeedb201329b94f011b3548","name":"@x-oasis/async-call-rpc","dist-tags":{"latest":"0.17.0"},"versions":{"0.1.38":{"name":"@x-oasis/async-call-rpc","version":"0.1.38","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.1.38","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"33f84ac621a0ad70f79ffce369dc1d414700145d","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.1.38.tgz","fileCount":104,"integrity":"sha512-lDJFv+m86RROMt0pWKt4iJJsBcC7bl/g43TIJbFayNl4e6hgs8pit2NL9Pz8KFD1A4/dn0lMnhIiG7sPf3apXw==","signatures":[{"sig":"MEUCIQCeWI0cNRiMNWJN8FqDxzxB9rV0yt+JiJXqWZKQ3N/l9QIgL9/3PrjbS4M9siAJgZVA6L3iz+/YGr3W4Ws2MPRAX0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550280},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.1.38.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/ab58b95b250756e3ef8f6059ad7def49/x-oasis-async-call-rpc-0.1.38.tgz","_integrity":"sha512-lDJFv+m86RROMt0pWKt4iJJsBcC7bl/g43TIJbFayNl4e6hgs8pit2NL9Pz8KFD1A4/dn0lMnhIiG7sPf3apXw==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.1.38","@x-oasis/emitter":"0.1.38","@x-oasis/deferred":"0.1.38","@x-oasis/is-ascii":"0.1.38","@x-oasis/disposable":"0.1.38","@x-oasis/is-promise":"0.1.38"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.1.38_1769648961776_0.6453633070549534","host":"s3://npm-registry-packages-npm-production"}},"0.1.39":{"name":"@x-oasis/async-call-rpc","version":"0.1.39","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.1.39","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"1e9339f84376d52a41403e26379425d622055eb8","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.1.39.tgz","fileCount":104,"integrity":"sha512-QrYdGTVsArCwT9UvDDQS16l8A2FjMjFTFsWKfyWa7QJb1B+S6tdlgFN4wq9ung21Z7O6qvgl8msVrUtGKeKN5g==","signatures":[{"sig":"MEUCIQCGFo7pJp8Ifg/7tNN+mns6didbfbjYSGdRlkmyWd7b9wIgTf3Vv1FlV8xYM1GHLFXygN/hRB4TdKePkwKpgGipC5s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550280},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.1.39.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/4009efcffad4584d51663f3ccd3036e3/x-oasis-async-call-rpc-0.1.39.tgz","_integrity":"sha512-QrYdGTVsArCwT9UvDDQS16l8A2FjMjFTFsWKfyWa7QJb1B+S6tdlgFN4wq9ung21Z7O6qvgl8msVrUtGKeKN5g==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.1.39","@x-oasis/emitter":"0.1.39","@x-oasis/deferred":"0.1.39","@x-oasis/is-ascii":"0.1.39","@x-oasis/disposable":"0.1.39","@x-oasis/is-promise":"0.1.39"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.1.39_1769700024796_0.10158809515705536","host":"s3://npm-registry-packages-npm-production"}},"0.1.40":{"name":"@x-oasis/async-call-rpc","version":"0.1.40","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.1.40","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"a4f2a61ef4c96a81eb04dbb870e1b941a05e58de","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.1.40.tgz","fileCount":104,"integrity":"sha512-hiRUxMGdatBQtZm/H6X9fVMcv9QvbydZKzNPeXW1vCUmSr8qW820OoNp8smDgXuqvVgBWuFOorHqYM7QdXHJCw==","signatures":[{"sig":"MEUCIFTVh7yGkJpTFLgiTupLuZF/kcXt2OmJYrC/MzsYSFRYAiEAjPwv0xCYyJyp75Sc6ZVf8YtjIMU0LU6xgL3FYULvAJM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550280},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.1.40.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/d1f7df9d888b99ba3ee99222eb23ea97/x-oasis-async-call-rpc-0.1.40.tgz","_integrity":"sha512-hiRUxMGdatBQtZm/H6X9fVMcv9QvbydZKzNPeXW1vCUmSr8qW820OoNp8smDgXuqvVgBWuFOorHqYM7QdXHJCw==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.1.40","@x-oasis/emitter":"0.1.40","@x-oasis/deferred":"0.1.40","@x-oasis/is-ascii":"0.1.40","@x-oasis/disposable":"0.1.40","@x-oasis/is-promise":"0.1.40"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.1.40_1769702745795_0.1822641405067409","host":"s3://npm-registry-packages-npm-production"}},"0.1.41":{"name":"@x-oasis/async-call-rpc","version":"0.1.41","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.1.41","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"fea5d2d4c704b1e7eea366d7ddf6187276b425dd","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.1.41.tgz","fileCount":104,"integrity":"sha512-7hJrTswZZwd0XfUcATUcJbS+Q8HOU2tp+bdt08Z5w3DT+Y9Gs7No/i29jKGVIw97AhPvJ6L0AFYbzLkHTkOtuA==","signatures":[{"sig":"MEQCIHrFV9Qbp3iN94emxAHWOXtQ6OYSl4pQhbVok4vuMfx7AiA8TmktdP+Y4k1yiwuUGHUkwDuLTKaPoyOhA+gbMFZ0DQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550280},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.1.41.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/023b51f96c88ff0badf2f76074b6c77d/x-oasis-async-call-rpc-0.1.41.tgz","_integrity":"sha512-7hJrTswZZwd0XfUcATUcJbS+Q8HOU2tp+bdt08Z5w3DT+Y9Gs7No/i29jKGVIw97AhPvJ6L0AFYbzLkHTkOtuA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.1.41","@x-oasis/emitter":"0.1.41","@x-oasis/deferred":"0.1.41","@x-oasis/is-ascii":"0.1.41","@x-oasis/disposable":"0.1.41","@x-oasis/is-promise":"0.1.41"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.1.41_1769703279094_0.11598523618552892","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@x-oasis/async-call-rpc","version":"0.2.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.2.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"2dcd005d6693bef3ab2a5343269faab838dcfe4b","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.2.0.tgz","fileCount":104,"integrity":"sha512-jOdUC12+cMJRN6NG6TjETgB08X3hTlg/+36O8KoKU6LyZir/Jz1kaN5EFRFWEIjTfcGVClmwKlsCVNXbjpZIgQ==","signatures":[{"sig":"MEQCIGcX5udHtU/DD520T8oEOL1MAZ2trkL2QDyDQe110eRBAiBmJ0fy1TYq1CcjveofIVIBQ2JG4xNDzpor2LsjnRGa7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550273},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.2.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/12e3592a20cd6853f81969e3b0a37c2d/x-oasis-async-call-rpc-0.2.0.tgz","_integrity":"sha512-jOdUC12+cMJRN6NG6TjETgB08X3hTlg/+36O8KoKU6LyZir/Jz1kaN5EFRFWEIjTfcGVClmwKlsCVNXbjpZIgQ==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.2.0","@x-oasis/emitter":"0.2.0","@x-oasis/deferred":"0.2.0","@x-oasis/is-ascii":"0.2.0","@x-oasis/disposable":"0.2.0","@x-oasis/is-promise":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.2.0_1770141211158_0.2504996392062624","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@x-oasis/async-call-rpc","version":"0.2.1","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.2.1","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"4b29d4c5a231e5eb92657afffd840f1f69d0a37a","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.2.1.tgz","fileCount":104,"integrity":"sha512-FrZwMaigrglzNFFdjL9cjCXvqlk4NafTWmcV5sC/f6reVz1HAI23ParGjg0XVQNjZKnPbuodmMi524YDjfEGig==","signatures":[{"sig":"MEUCIQDy/7eoaoZ48jqra0Mv3+hLz9LGiepTaHQvSho+2zl+GwIgcq1SfAxvkSOKebJzCflJUX1CP4f0ockNzC/2+3Yvd7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550273},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.2.1.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/9e17eafefc6bc2f0d5c83f60fccdae41/x-oasis-async-call-rpc-0.2.1.tgz","_integrity":"sha512-FrZwMaigrglzNFFdjL9cjCXvqlk4NafTWmcV5sC/f6reVz1HAI23ParGjg0XVQNjZKnPbuodmMi524YDjfEGig==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.2.1","@x-oasis/emitter":"0.2.1","@x-oasis/deferred":"0.2.1","@x-oasis/is-ascii":"0.2.1","@x-oasis/disposable":"0.2.1","@x-oasis/is-promise":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.2.1_1770196842238_0.9501965433626967","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@x-oasis/async-call-rpc","version":"0.2.2","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.2.2","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"93b92f045b0d4ed9bbe8eefe0562b90d07ae39ef","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.2.2.tgz","fileCount":104,"integrity":"sha512-yUvE7gZe4Evb/85+p+FC/lQ1FJf0b7+dEKvm2GNeP0za6/wnxp3VcoF2HvUlskmNJGF6u1tYIbCm9UyAIM8lvw==","signatures":[{"sig":"MEYCIQDLXR1r6iCVRpm90uweVYgReW21XirSeTX1rrtaEDPg8AIhAKyLOpiqUQ5AUDDm5B7aRZqFPH5k0w4dZM1GIFgN5cob","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550273},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.2.2.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/7ae26095889f067fe2994dfe1b94dc47/x-oasis-async-call-rpc-0.2.2.tgz","_integrity":"sha512-yUvE7gZe4Evb/85+p+FC/lQ1FJf0b7+dEKvm2GNeP0za6/wnxp3VcoF2HvUlskmNJGF6u1tYIbCm9UyAIM8lvw==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.2.2","@x-oasis/emitter":"0.2.2","@x-oasis/deferred":"0.2.2","@x-oasis/is-ascii":"0.2.2","@x-oasis/disposable":"0.2.2","@x-oasis/is-promise":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.2.2_1770198213220_0.7713840315876925","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@x-oasis/async-call-rpc","version":"0.2.3","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.2.3","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"4080a5a5f9fce0420ab3813976d2d89a30870cf1","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.2.3.tgz","fileCount":104,"integrity":"sha512-F64ryVZ8WbI2s5cyufzg3ICGpQZ8Pb2XaC+42+3//A0Rqx4fg6Okothy6kLiL2CRLcnNsoBIYhwRcnEDIRmutA==","signatures":[{"sig":"MEUCIHQ0Bqkr7ax9iUBX4CMYyq1RWkI8XZrr67oYGr3gboA3AiEAkYn/IfwYPEVN6J2Yb7Qo6tQIh2wojze3niFMxq9ieqY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550273},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.2.3.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/42e4bf4f12fd34c05d6a3514dd9d47ab/x-oasis-async-call-rpc-0.2.3.tgz","_integrity":"sha512-F64ryVZ8WbI2s5cyufzg3ICGpQZ8Pb2XaC+42+3//A0Rqx4fg6Okothy6kLiL2CRLcnNsoBIYhwRcnEDIRmutA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.2.3","@x-oasis/emitter":"0.2.3","@x-oasis/deferred":"0.2.3","@x-oasis/is-ascii":"0.2.3","@x-oasis/disposable":"0.2.3","@x-oasis/is-promise":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.2.3_1770204785594_0.28594025089480035","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@x-oasis/async-call-rpc","version":"0.2.4","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.2.4","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"d28d52976d1e20d6188cb51a9fb7462ea589c2fb","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.2.4.tgz","fileCount":104,"integrity":"sha512-6HKyQBSkrolz3ghu8JS8b0Ra1Hk7m6ma+H5dnQ40FVb+lt5X47cXSScCnq9SaxVChM6nulMNHHSG6zMlPYPmAA==","signatures":[{"sig":"MEUCIQDjBfuvvpVXYHZT8Cr/GyUwjdJj2gfuQzM7HtMGaZtFOgIgB7q3EWbVFn0Zi5iM5zRORiGhzGBzBt0xRjbk6vq4gTg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550273},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.2.4.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/79db3d4cdc1ec79295189862d9e4ebe2/x-oasis-async-call-rpc-0.2.4.tgz","_integrity":"sha512-6HKyQBSkrolz3ghu8JS8b0Ra1Hk7m6ma+H5dnQ40FVb+lt5X47cXSScCnq9SaxVChM6nulMNHHSG6zMlPYPmAA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.2.4","@x-oasis/emitter":"0.2.4","@x-oasis/deferred":"0.2.4","@x-oasis/is-ascii":"0.2.4","@x-oasis/disposable":"0.2.4","@x-oasis/is-promise":"0.2.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.2.4_1770297367073_0.6518155651993018","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@x-oasis/async-call-rpc","version":"0.2.5","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.2.5","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"49e28f78ad149f6622d72f9561ea8d5cd086dc43","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.2.5.tgz","fileCount":104,"integrity":"sha512-0zgVrWSCRY0UUZdE07gllwIvIKL6NQhYmgWWuliwNrbXDvlhc10CUT2jZbL9v9lXApN0JnCc9zAWg0AeXwWO6g==","signatures":[{"sig":"MEQCIARpPZAl+I7AvKvtNfcaxpcjxV7HBvLdTuy9mNwIfYtuAiBlnDpCttmyCKJQEYB+Og4vr2lK9ZjYTDMRy7thJDlrrA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":550273},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.2.5.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/00b0e8253155bcc8656ab7d7c1b0341f/x-oasis-async-call-rpc-0.2.5.tgz","_integrity":"sha512-0zgVrWSCRY0UUZdE07gllwIvIKL6NQhYmgWWuliwNrbXDvlhc10CUT2jZbL9v9lXApN0JnCc9zAWg0AeXwWO6g==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.2.5","@x-oasis/emitter":"0.2.5","@x-oasis/deferred":"0.2.5","@x-oasis/is-ascii":"0.2.5","@x-oasis/disposable":"0.2.5","@x-oasis/is-promise":"0.2.5"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.2.5_1772293244226_0.4850164651903863","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@x-oasis/async-call-rpc","version":"0.3.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.3.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"78930826d6ac992d0b30087fd4db4e70b66dd4cb","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.3.0.tgz","fileCount":104,"integrity":"sha512-5TUcjteSHuzBTR5ZOomMCAEYy14q/sYm25mqVTLYn7ONpzqKAI/xWy4Z2K0c+D+Eeio3E3lBCZObLK7D6jug/w==","signatures":[{"sig":"MEUCICkSsoZ7irn8LdxMEtZY9QGF4na8GU47zzQM1ejla5uZAiEA/twqW6jFNDnyagFMK+2AzLqlq7qTKn17dHeyqN2dQPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":720578},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.3.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/4bb7770a320da2285f2f7bdda491dbd4/x-oasis-async-call-rpc-0.3.0.tgz","_integrity":"sha512-5TUcjteSHuzBTR5ZOomMCAEYy14q/sYm25mqVTLYn7ONpzqKAI/xWy4Z2K0c+D+Eeio3E3lBCZObLK7D6jug/w==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.3.0","@x-oasis/emitter":"0.3.0","@x-oasis/deferred":"0.3.0","@x-oasis/is-ascii":"0.3.0","@x-oasis/disposable":"0.3.0","@x-oasis/is-promise":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.3.0_1777516581250_0.06395707785804161","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@x-oasis/async-call-rpc","version":"0.4.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.4.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"0dc329b9d1028318d046798f83477e118123dbce","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.4.0.tgz","fileCount":95,"integrity":"sha512-S+k5ZpBZ1RdUtn1vo/UKANRX7LLbfa05X+x4Veh9xoUgYHwcnOdr5NyFoS+We/vcHaFwACLBZD6l9RO4jNQUHA==","signatures":[{"sig":"MEQCIGV92tYpEBFI52ajdQsDlxn0V5agdu98SSWk/2y4RIC5AiBkPFON5RnJ3Kc7OH4brbdnDAlU6YfL9Utxm7vUfRmI8A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":738920},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.4.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/7b5db8e3efbf799a9807f630d465961b/x-oasis-async-call-rpc-0.4.0.tgz","_integrity":"sha512-S+k5ZpBZ1RdUtn1vo/UKANRX7LLbfa05X+x4Veh9xoUgYHwcnOdr5NyFoS+We/vcHaFwACLBZD6l9RO4jNQUHA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.4.0","@x-oasis/emitter":"0.4.0","@x-oasis/deferred":"0.4.0","@x-oasis/is-ascii":"0.4.0","@x-oasis/is-object":"0.4.0","@x-oasis/disposable":"0.4.0","@x-oasis/is-promise":"0.4.0","@x-oasis/is-function":"0.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.4.0_1777826730663_0.6237011077579828","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@x-oasis/async-call-rpc","version":"0.5.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.5.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"5bb5911800ab9143ae37a3398d3c5295bc7d5ac0","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.5.0.tgz","fileCount":113,"integrity":"sha512-cE097GNTecWbtrnHprw3RlQyHMqjTrkMduEnp6CCDATFnQC6rtFDSssFaPZ/KZDO8LOs/zjblEz03vDJ9CrIKg==","signatures":[{"sig":"MEUCIQCWjsS0cjkpMIDdUtLh/XK52KWOU/WDfwWldvN5JyYR9QIgR+WlDdzd4i8KTesmhfCh7g+jCzPgrvl80bkHrTjzs64=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1275190},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.5.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/3c0b74017a4cd091bc31e63ea5dd07d8/x-oasis-async-call-rpc-0.5.0.tgz","_integrity":"sha512-cE097GNTecWbtrnHprw3RlQyHMqjTrkMduEnp6CCDATFnQC6rtFDSssFaPZ/KZDO8LOs/zjblEz03vDJ9CrIKg==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.5.0","@x-oasis/emitter":"0.5.0","@x-oasis/deferred":"0.5.0","@x-oasis/is-ascii":"0.5.0","@x-oasis/is-object":"0.5.0","@x-oasis/disposable":"0.5.0","@x-oasis/is-promise":"0.5.0","@x-oasis/is-function":"0.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.5.0_1778203841280_0.5305844008529579","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@x-oasis/async-call-rpc","version":"0.6.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.6.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"dd50cb70fc33eb9c697e941ec36cc7b1d6d351ab","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.6.0.tgz","fileCount":113,"integrity":"sha512-H7Q4LsH+TTsqE5c6dXz0xnB4KOJUqlAAOUVs7/0tns8kM+Th3oO/UM8tlSNVXjdZ8408bQMP3S2tUp3w8VqmLg==","signatures":[{"sig":"MEYCIQCwEehTyg5dY0n2ZbbrXg6+34wdkOb0Xj7RkjXaSNkUywIhANqEsLMNDYe3CPUIM8AeRHGwQlHP7Y6B6GeLiglHEE7s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1327125},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.6.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/79ad12709ecc0c6c15c35f88cc4ac044/x-oasis-async-call-rpc-0.6.0.tgz","_integrity":"sha512-H7Q4LsH+TTsqE5c6dXz0xnB4KOJUqlAAOUVs7/0tns8kM+Th3oO/UM8tlSNVXjdZ8408bQMP3S2tUp3w8VqmLg==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.6.0","@x-oasis/emitter":"0.6.0","@x-oasis/deferred":"0.6.0","@x-oasis/is-ascii":"0.6.0","@x-oasis/is-object":"0.6.0","@x-oasis/disposable":"0.6.0","@x-oasis/is-promise":"0.6.0","@x-oasis/is-function":"0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.6.0_1778262088709_0.19750687826925262","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@x-oasis/async-call-rpc","version":"0.7.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.7.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"cc97aee35743d64462f849b21e19f97d45c251fb","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.7.0.tgz","fileCount":113,"integrity":"sha512-Utr96ofWTnD3RebXRNiSixZkKwPtC24lSuHwAACKSUatVTAFQq8jzHQm0Qe/+IRQBkwAhcaNOD+SuHyCkRLMgA==","signatures":[{"sig":"MEUCID0aGbNR9dghTWdH19sB0TQQUbP1ocXSzxRXLSkXmtSGAiEAq3R3huYm9jxr/A8Z/FRVCtxzZcvlPr1VVWiT9cRrZnU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1327125},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.7.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/0915d6a444807f9ae8f01c43d29dadaa/x-oasis-async-call-rpc-0.7.0.tgz","_integrity":"sha512-Utr96ofWTnD3RebXRNiSixZkKwPtC24lSuHwAACKSUatVTAFQq8jzHQm0Qe/+IRQBkwAhcaNOD+SuHyCkRLMgA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.7.0","@x-oasis/emitter":"0.7.0","@x-oasis/deferred":"0.7.0","@x-oasis/is-ascii":"0.7.0","@x-oasis/is-object":"0.7.0","@x-oasis/disposable":"0.7.0","@x-oasis/is-promise":"0.7.0","@x-oasis/is-function":"0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.7.0_1778264038679_0.5745536600421435","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@x-oasis/async-call-rpc","version":"0.8.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.8.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"7bf8a5301585c36729f26720ed3813180c0b5c74","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.8.0.tgz","fileCount":113,"integrity":"sha512-Ye0RkVTQifzHMW/9bKDjQsnmEAYOSKG99YZBDnMekt4b8zz88XjkE/4qsDD59u/wjMeFx0+9DdtfpoCc/7vZ8w==","signatures":[{"sig":"MEQCIAvZWVMXoxJnlXPCWa1aDDGE8AFTMbaXoTo9v5QYmJXWAiATQzm0vgz1IJaOmVd1sIV1lU5Eq8srAev1QGbx+Qod1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1327125},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.8.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/801022adbb41b96e28337554c116881c/x-oasis-async-call-rpc-0.8.0.tgz","_integrity":"sha512-Ye0RkVTQifzHMW/9bKDjQsnmEAYOSKG99YZBDnMekt4b8zz88XjkE/4qsDD59u/wjMeFx0+9DdtfpoCc/7vZ8w==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.8.0","@x-oasis/emitter":"0.8.0","@x-oasis/deferred":"0.8.0","@x-oasis/is-ascii":"0.8.0","@x-oasis/is-object":"0.8.0","@x-oasis/disposable":"0.8.0","@x-oasis/is-promise":"0.8.0","@x-oasis/is-function":"0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.8.0_1778311615604_0.6161942273895522","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@x-oasis/async-call-rpc","version":"0.8.1","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.8.1","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"b0cb98c10e36d3f6d5e488280f41165e49367143","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.8.1.tgz","fileCount":113,"integrity":"sha512-jJE9bsdrjBnKTz9xYDxMXwE970Qe9jgAC54lMpYX0Z3aGVnxJ8ov/bHo50rfg8g0aBL8bqRxCtFVD461e/w4lQ==","signatures":[{"sig":"MEQCICWk7xJ2HpBkN7yELoLpvmUBlZ+vY2caSpfIP8ExlKH2AiAVkKnHXn+Z1WshVhmJFDjCqIkT53T28V/n5gz6KWYSrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1405070},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.8.1.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/4a24f5b1fd61bd02d856961755f9e8b1/x-oasis-async-call-rpc-0.8.1.tgz","_integrity":"sha512-jJE9bsdrjBnKTz9xYDxMXwE970Qe9jgAC54lMpYX0Z3aGVnxJ8ov/bHo50rfg8g0aBL8bqRxCtFVD461e/w4lQ==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.8.1","@x-oasis/emitter":"0.8.1","@x-oasis/deferred":"0.8.1","@x-oasis/is-ascii":"0.8.1","@x-oasis/is-object":"0.8.1","@x-oasis/disposable":"0.8.1","@x-oasis/is-promise":"0.8.1","@x-oasis/is-function":"0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.8.1_1778315921289_0.16457146266137568","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@x-oasis/async-call-rpc","version":"0.9.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.9.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"9fe5103b5b4a304435c80876957bb282c9b766a6","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.9.0.tgz","fileCount":111,"integrity":"sha512-E4mTIcvaNN/LDrX8Vv+BmSJtLqM0gb3NrEobcIv1OYBb2BgmMZaSKwm3MEc0kQa4huJ4xYJ3tJxfnsLqBwHweg==","signatures":[{"sig":"MEYCIQC7/sdah4eIYExWMJjQqoUcZDbUJviHvPY7Ubkh43aPLgIhALlU/8xaQDMVvuc+hkwWN2YVmXi31vKl/4ast2jLPZ/8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1397803},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.9.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/fa48cad33672dd3c518f536c0c3a8a5e/x-oasis-async-call-rpc-0.9.0.tgz","_integrity":"sha512-E4mTIcvaNN/LDrX8Vv+BmSJtLqM0gb3NrEobcIv1OYBb2BgmMZaSKwm3MEc0kQa4huJ4xYJ3tJxfnsLqBwHweg==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.9.0","@x-oasis/emitter":"0.9.0","@x-oasis/deferred":"0.9.0","@x-oasis/is-ascii":"0.9.0","@x-oasis/is-object":"0.9.0","@x-oasis/disposable":"0.9.0","@x-oasis/is-promise":"0.9.0","@x-oasis/is-function":"0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.9.0_1778337737253_0.13576937850447712","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@x-oasis/async-call-rpc","version":"0.10.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.10.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"39bc08c2fed3be1a3702654afad8a58b32d5b8e5","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.10.0.tgz","fileCount":111,"integrity":"sha512-QwX6zp1EDFjOQvQZ2aXeYaL2i4YlEygY3nrHPlhEiELD+GnIoX2eoEa9P4GB7VvMfs8Lc1Ff730cinciSlEKLg==","signatures":[{"sig":"MEQCIGPHX0dQH1tzU/jo8pjnEtvgT2shUtIgLUKpxXZEj/PRAiBa96xD2wnUqkeMDB6B+4YE2+SavGxIO9G2vjOeRvJlAg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1397740},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.10.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/38121ac6c8e7df2b90983c0e85d94836/x-oasis-async-call-rpc-0.10.0.tgz","_integrity":"sha512-QwX6zp1EDFjOQvQZ2aXeYaL2i4YlEygY3nrHPlhEiELD+GnIoX2eoEa9P4GB7VvMfs8Lc1Ff730cinciSlEKLg==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.10.0","@x-oasis/emitter":"0.10.0","@x-oasis/deferred":"0.10.0","@x-oasis/is-ascii":"0.10.0","@x-oasis/is-object":"0.10.0","@x-oasis/disposable":"0.10.0","@x-oasis/is-promise":"0.10.0","@x-oasis/is-function":"0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.10.0_1778418496054_0.6450248081433323","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@x-oasis/async-call-rpc","version":"0.11.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.11.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"6c6ffbb4bd644b90ba13da2219939f392fcbaeaa","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.11.0.tgz","fileCount":111,"integrity":"sha512-m+TjlfuJ7uNrdpvogZllovZ/WEJlCSHVE86AMFsKRqeOSZG7yuc8EdXZr0F6KKI8UEmeaaLA4qPI3xpOLDZnPA==","signatures":[{"sig":"MEQCIDolK7uSE/izcGvQEOa4zaHnFOl1BXi3Tl9eU34M1HscAiB7FRZpUZzOR84/OZ/tS2KDqb/BTlgprl6fJY4ERJPXMw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1417021},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.11.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/b1aaf9c13f689f379369d80a0f1e575d/x-oasis-async-call-rpc-0.11.0.tgz","_integrity":"sha512-m+TjlfuJ7uNrdpvogZllovZ/WEJlCSHVE86AMFsKRqeOSZG7yuc8EdXZr0F6KKI8UEmeaaLA4qPI3xpOLDZnPA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.11.0","@x-oasis/emitter":"0.11.0","@x-oasis/deferred":"0.11.0","@x-oasis/is-ascii":"0.11.0","@x-oasis/is-object":"0.11.0","@x-oasis/disposable":"0.11.0","@x-oasis/is-promise":"0.11.0","@x-oasis/is-function":"0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.11.0_1778507084617_0.38465315346761275","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@x-oasis/async-call-rpc","version":"0.12.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.12.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"850f545d12057befa67f32549b8b1a60cc6915d3","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.12.0.tgz","fileCount":111,"integrity":"sha512-csNg3+Zmr/5S9+Y+dBudCpNUn6N2OF51gyZxzE5m19KOqykwxjTRPhQVpwvKxNda3BzKyNF75IUK5eUOzC/cUQ==","signatures":[{"sig":"MEYCIQCRBfpz02HnKzs2PuBBPk1lTvx7xxGTIjtT1kYeU6moVAIhANCixnZUsFNm7va15ALEEgBorqDGE/rfGiRT2xgUvYwM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1417021},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.12.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/2ce45a9d358c0d242366840785049a47/x-oasis-async-call-rpc-0.12.0.tgz","_integrity":"sha512-csNg3+Zmr/5S9+Y+dBudCpNUn6N2OF51gyZxzE5m19KOqykwxjTRPhQVpwvKxNda3BzKyNF75IUK5eUOzC/cUQ==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.12.0","@x-oasis/emitter":"0.12.0","@x-oasis/deferred":"0.12.0","@x-oasis/is-ascii":"0.12.0","@x-oasis/is-object":"0.12.0","@x-oasis/disposable":"0.12.0","@x-oasis/is-promise":"0.12.0","@x-oasis/is-function":"0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.12.0_1778663416348_0.4825220482158774","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@x-oasis/async-call-rpc","version":"0.13.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.13.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"a72bac01bf543a53f1f3be709cb55223e0150322","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.13.0.tgz","fileCount":111,"integrity":"sha512-s2mfjDJ6uym54AoTP7PEdyq7bkxn44irUtuMMGtjVauKR3ojmcOuwKTpqYpoCvPWArrM/LXMxxUructdI0FwLg==","signatures":[{"sig":"MEUCIQDOX2ZsA/Ao7NOpNuxBdYWF1MkP5X71hetNjgSe23k+2AIgTyPubn82WUPD9wvD+5dIc1CLDdkEaygSEL0oyR45Bko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1417021},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.13.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/188cb84b3c59744507be6560a925cbfa/x-oasis-async-call-rpc-0.13.0.tgz","_integrity":"sha512-s2mfjDJ6uym54AoTP7PEdyq7bkxn44irUtuMMGtjVauKR3ojmcOuwKTpqYpoCvPWArrM/LXMxxUructdI0FwLg==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.13.0","@x-oasis/emitter":"0.13.0","@x-oasis/deferred":"0.13.0","@x-oasis/is-ascii":"0.13.0","@x-oasis/is-object":"0.13.0","@x-oasis/disposable":"0.13.0","@x-oasis/is-promise":"0.13.0","@x-oasis/is-function":"0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.13.0_1778666918569_0.996160157855309","host":"s3://npm-registry-packages-npm-production"}},"0.13.1":{"name":"@x-oasis/async-call-rpc","version":"0.13.1","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.13.1","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"f3a5da733724137a695bb67027bcae3717002fbb","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.13.1.tgz","fileCount":111,"integrity":"sha512-Q5jZAOwQqFnrP9JswT61sQTzcK3tZPMEqrWZ8n1hkQUUZUJDJfaHbIBDWbSmujlTrvj7si7HumbdQJlnUr42mA==","signatures":[{"sig":"MEUCIQCmqF/0IQ49LZT5s5/ug9kbqP8JZ0s4hQ3jLCUrhH3DCQIgGptakg9a1T8Tqc4OUhEPeFyt2LdiiDY6lbfdRiuJbZQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1428549},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.13.1.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/32bea4e15d4300621d6894eaa9871552/x-oasis-async-call-rpc-0.13.1.tgz","_integrity":"sha512-Q5jZAOwQqFnrP9JswT61sQTzcK3tZPMEqrWZ8n1hkQUUZUJDJfaHbIBDWbSmujlTrvj7si7HumbdQJlnUr42mA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.13.1","@x-oasis/emitter":"0.13.1","@x-oasis/deferred":"0.13.1","@x-oasis/is-ascii":"0.13.1","@x-oasis/is-object":"0.13.1","@x-oasis/disposable":"0.13.1","@x-oasis/is-promise":"0.13.1","@x-oasis/is-function":"0.13.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.13.1_1778750211666_0.2625254827048671","host":"s3://npm-registry-packages-npm-production"}},"0.13.2":{"name":"@x-oasis/async-call-rpc","version":"0.13.2","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.13.2","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"8e6b15751c467ccdd47d242d4c213ecb7e7f13be","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.13.2.tgz","fileCount":111,"integrity":"sha512-i4nuP5O9EX2g6/dyJWTFnWpV6+UnWTWC514yWhh8LBMdtsD7hVQ+jbVjwDDqSLMQAQo/MQCnJRsCsyseIE2FlA==","signatures":[{"sig":"MEUCIHyyKDv8y8BXMXbtNx2f+eDdFhEeQldWOI7H6t58J5H4AiEAvy28Nvti6BzLLtsVf0AtK8onvIbk7riRHFN0A+cJ8VE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1443962},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.13.2.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/53ea8c9554eb73bc0ca950acae93e1bc/x-oasis-async-call-rpc-0.13.2.tgz","_integrity":"sha512-i4nuP5O9EX2g6/dyJWTFnWpV6+UnWTWC514yWhh8LBMdtsD7hVQ+jbVjwDDqSLMQAQo/MQCnJRsCsyseIE2FlA==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.13.2","@x-oasis/emitter":"0.13.2","@x-oasis/deferred":"0.13.2","@x-oasis/is-ascii":"0.13.2","@x-oasis/is-object":"0.13.2","@x-oasis/disposable":"0.13.2","@x-oasis/is-promise":"0.13.2","@x-oasis/is-function":"0.13.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.13.2_1778756505479_0.9276948397958644","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@x-oasis/async-call-rpc","version":"0.14.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.14.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"824ada96b2f2ede4aa7668969c8d6413094f7eaf","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.14.0.tgz","fileCount":111,"integrity":"sha512-7tgIrVb2R8pmnBtuLat+o7iGJmdxyHCoKCvsMhzqNX9XmV9JDNIPiEkmGOOssGEaVHFtdUts91jCorGqVq+f/w==","signatures":[{"sig":"MEQCIE0kTlVMYBz1Q3FOBCPckrdomKqZ3YtRXy8X+duh25AAAiAh1vsvLSicaDBjI6gN/SyDZVnHfl1t3cxaWPRwEOlVaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1467329},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.14.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/4b058754c67df3e96517f3af5c3028d5/x-oasis-async-call-rpc-0.14.0.tgz","_integrity":"sha512-7tgIrVb2R8pmnBtuLat+o7iGJmdxyHCoKCvsMhzqNX9XmV9JDNIPiEkmGOOssGEaVHFtdUts91jCorGqVq+f/w==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.13.3","@x-oasis/emitter":"0.13.3","@x-oasis/deferred":"0.13.3","@x-oasis/is-ascii":"0.13.3","@x-oasis/is-object":"0.13.3","@x-oasis/disposable":"0.13.3","@x-oasis/is-promise":"0.13.3","@x-oasis/is-function":"0.13.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.14.0_1778767712811_0.26969785434482274","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@x-oasis/async-call-rpc","version":"0.15.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.15.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"1852673d661e52ce18d5af9881779c9c82d91a80","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.15.0.tgz","fileCount":111,"integrity":"sha512-iflwucNXbdBFK2Adyq//w40Ig7c/d9J9IGw/mm133Fp2FR0Xc/RuLvO+oA6QqeeFeRYIYODa8s+P5/oZRZOmaw==","signatures":[{"sig":"MEYCIQCCpsvXRPUASA6etSjBJzuKnvpVJNxIRc3EpZ2npFvAQwIhAK2OPNJBSfKF/zBZy2Cgauhy7mjATHBDNb8kElbiXEoT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1467329},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.15.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/30cf717c0594806118a98ef8b0bcf3a7/x-oasis-async-call-rpc-0.15.0.tgz","_integrity":"sha512-iflwucNXbdBFK2Adyq//w40Ig7c/d9J9IGw/mm133Fp2FR0Xc/RuLvO+oA6QqeeFeRYIYODa8s+P5/oZRZOmaw==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.14.0","@x-oasis/emitter":"0.14.0","@x-oasis/deferred":"0.14.0","@x-oasis/is-ascii":"0.14.0","@x-oasis/is-object":"0.14.0","@x-oasis/disposable":"0.14.0","@x-oasis/is-promise":"0.14.0","@x-oasis/is-function":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.15.0_1778771149926_0.1616571192480849","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@x-oasis/async-call-rpc","version":"0.16.0","author":"","license":"ISC","_id":"@x-oasis/async-call-rpc@0.16.0","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"dist":{"shasum":"ab1aef471e320ce7a89808012a2b6a412adec270","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.16.0.tgz","fileCount":113,"integrity":"sha512-ov3SXsr3x6mNnSOdRQ4Uo4S0YpcXmWxRYA+MLiR7ppKrwqEnJN/bqEjjPizkSHoPEaK3lkV6wf5GVJHcFaxxlw==","signatures":[{"sig":"MEQCIAz7g2KI7E+QFQZGWrFwCMnuDh4rzFs9FW0STjqjmCszAiBU9ucwCTjvMI7xCfUAWe0OpjsQZmTGVI2UqDKTf47Aaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1499731},"main":"dist/index.js","_from":"file:x-oasis-async-call-rpc-0.16.0.tgz","module":"dist/async-call-rpc.esm.js","scripts":{"test":"vitest","build":"tsdx build --tsconfig tsconfig.build.json","clean":"rimraf ./dist","compile":"tsc -p tsconfig.build.json"},"typings":"dist/index.d.ts","_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"_resolved":"/tmp/9b417fc00abb7db351de813fc35ce458/x-oasis-async-call-rpc-0.16.0.tgz","_integrity":"sha512-ov3SXsr3x6mNnSOdRQ4Uo4S0YpcXmWxRYA+MLiR7ppKrwqEnJN/bqEjjPizkSHoPEaK3lkV6wf5GVJHcFaxxlw==","_npmVersion":"10.8.2","description":"async-call-rpc function","directories":{},"_nodeVersion":"18.20.8","dependencies":{"@x-oasis/id":"0.14.0","@x-oasis/emitter":"0.14.0","@x-oasis/deferred":"0.14.0","@x-oasis/is-ascii":"0.14.0","@x-oasis/is-object":"0.14.0","@x-oasis/disposable":"0.14.0","@x-oasis/is-promise":"0.14.0","@x-oasis/is-function":"0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"ws":"^8.19.0","tsdx":"^0.14.1"},"_npmOperationalInternal":{"tmp":"tmp/async-call-rpc_0.16.0_1778829846433_0.5336242574423611","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@x-oasis/async-call-rpc","version":"0.17.0","description":"async-call-rpc function","main":"dist/index.js","typings":"dist/index.d.ts","module":"dist/async-call-rpc.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/async-call-rpc.esm.js","require":"./dist/index.js"},"./core":{"types":"./dist/core.d.ts","import":"./dist/core.esm.js","require":"./dist/core.js"},"./orchestrator":{"types":"./dist/orchestrator/index.d.ts","import":"./dist/orchestrator.esm.js","require":"./dist/orchestrator.js"}},"publishConfig":{"access":"public"},"author":"","license":"ISC","devDependencies":{"@rollup/plugin-typescript":"^12.3.0","rollup":"^4.60.3","tsdx":"^0.14.1","ws":"^8.19.0"},"dependencies":{"@x-oasis/deferred":"0.14.0","@x-oasis/disposable":"0.14.0","@x-oasis/emitter":"0.14.0","@x-oasis/id":"0.14.0","@x-oasis/is-ascii":"0.14.0","@x-oasis/is-function":"0.14.0","@x-oasis/is-object":"0.14.0","@x-oasis/is-promise":"0.14.0"},"scripts":{"build":"npm run compile && rollup -c","clean":"rimraf ./dist","test":"vitest","compile":"tsc -p tsconfig.build.json --emitDeclarationOnly"},"_id":"@x-oasis/async-call-rpc@0.17.0","_integrity":"sha512-ob6Dw9CVuVsMfR+xH5pDHp5G3bDxCjhusH5Aw5Y+T4zES8lsw4IPqIw4bdfGeMcPSupq9s4IhrgojgpOcpi2yQ==","_resolved":"/tmp/e960bf817566d62645cd29bbf35c3a2a/x-oasis-async-call-rpc-0.17.0.tgz","_from":"file:x-oasis-async-call-rpc-0.17.0.tgz","_nodeVersion":"18.20.8","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ob6Dw9CVuVsMfR+xH5pDHp5G3bDxCjhusH5Aw5Y+T4zES8lsw4IPqIw4bdfGeMcPSupq9s4IhrgojgpOcpi2yQ==","shasum":"ead50e412e2e9e37a25b5952db787eaf58646b09","tarball":"https://registry.npmjs.org/@x-oasis/async-call-rpc/-/async-call-rpc-0.17.0.tgz","fileCount":120,"unpackedSize":1841541,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDU/RV9k2Bmv8YSnCQG6q5Er1Jgn33QT0DxG8aIkRskHgIgfSMoHJ4ryCUq0GvzmvaEp+jJhupS9XIiL1Mxs4KU4PQ="}]},"_npmUser":{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},"directories":{},"maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/async-call-rpc_0.17.0_1778960299494_0.7879571302659438"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-29T01:09:21.675Z","modified":"2026-05-16T19:38:19.813Z","0.1.38":"2026-01-29T01:09:22.079Z","0.1.39":"2026-01-29T15:20:24.980Z","0.1.40":"2026-01-29T16:05:46.085Z","0.1.41":"2026-01-29T16:14:39.234Z","0.2.0":"2026-02-03T17:53:31.340Z","0.2.1":"2026-02-04T09:20:42.481Z","0.2.2":"2026-02-04T09:43:33.416Z","0.2.3":"2026-02-04T11:33:05.772Z","0.2.4":"2026-02-05T13:16:07.295Z","0.2.5":"2026-02-28T15:40:44.395Z","0.3.0":"2026-04-30T02:36:21.410Z","0.4.0":"2026-05-03T16:45:30.858Z","0.5.0":"2026-05-08T01:30:41.501Z","0.6.0":"2026-05-08T17:41:28.918Z","0.7.0":"2026-05-08T18:13:58.891Z","0.8.0":"2026-05-09T07:26:55.792Z","0.8.1":"2026-05-09T08:38:41.515Z","0.9.0":"2026-05-09T14:42:17.452Z","0.10.0":"2026-05-10T13:08:16.244Z","0.11.0":"2026-05-11T13:44:44.863Z","0.12.0":"2026-05-13T09:10:16.528Z","0.13.0":"2026-05-13T10:08:38.872Z","0.13.1":"2026-05-14T09:16:51.891Z","0.13.2":"2026-05-14T11:01:45.642Z","0.14.0":"2026-05-14T14:08:33.004Z","0.15.0":"2026-05-14T15:05:50.109Z","0.16.0":"2026-05-15T07:24:06.749Z","0.17.0":"2026-05-16T19:38:19.674Z"},"license":"ISC","description":"async-call-rpc function","maintainers":[{"name":"ryuyutyo","email":"liuyouchao111@gmail.com"},{"name":"innei","email":"tukon479@gmail.com"},{"name":"hongding97","email":"keith.dh@hotmail.com"}],"readme":"# @x-oasis/async-call-rpc\n\n基于中间件管道的 RPC 框架，支持 MessageChannel、WebSocket、Web Worker 等多种传输层，提供类型安全的远程过程调用能力。\n\n## 安装\n\n```bash\npnpm add @x-oasis/async-call-rpc\n```\n\n## 核心概念\n\n```\n┌──────────────────────────────────────────────────────┐\n│  调用方 (Client)                                      │\n│                                                       │\n│  clientHost.registerClient()  →  proxy.someMethod()   │\n│       ↓                              ↓                │\n│  ProxyRPCClient            Channel.makeRequest()      │\n└────────────────────┬─────────────────────────────────┘\n                     │  send middleware pipeline\n                     │  prepareData → updateSeqInfo → serialize → send\n                     │\n              ───── 传输层 (MessagePort / WebSocket / Worker) ─────\n                     │\n                     │  receive middleware pipeline\n                     │  normalize → deserialize → handleRequest → handleResponse\n                     ↓\n┌──────────────────────────────────────────────────────┐\n│  服务方 (Service)                                     │\n│                                                       │\n│  serviceHost.registerService('path', handlers)        │\n│  service.setChannel(channel)                          │\n└──────────────────────────────────────────────────────┘\n```\n\n- **Channel** — 传输层抽象（`MessageChannel`、`WebSocketChannel`、`WorkerChannel`）\n- **Service** — 注册方法处理器，响应远程调用\n- **Client** — 通过 `Proxy` 代理将方法调用转为 RPC 请求\n- **Middleware** — 发送/接收管道，支持序列化、日志、离线排队等扩展\n\n## 快速开始\n\n### 1. 基本用法 — Web Worker\n\n```typescript\n// === 主线程 ===\nimport {\n  WorkerChannel,\n  serviceHost,\n  clientHost,\n} from '@x-oasis/async-call-rpc';\n\nconst worker = new Worker('./worker.js', { type: 'module' });\nconst channel = new WorkerChannel(worker);\n\n// 注册本地服务（Worker 可以反向调用）\nconst service = serviceHost.registerService('main', {\n  getTimestamp: () => Date.now(),\n});\nservice.setChannel(channel);\n\n// 创建远程代理，调用 Worker 中的方法\nconst workerProxy = clientHost\n  .registerClient('worker-service', { channel })\n  .createProxy<{\n    fibonacci(n: number): Promise<number>;\n    ping(): Promise<string>;\n  }>();\n\nconst result = await workerProxy.fibonacci(10); // 55\nconst pong = await workerProxy.ping(); // 'pong'\n```\n\n```typescript\n// === Worker 线程 ===\nimport {\n  WorkerChannel,\n  serviceHost,\n  clientHost,\n} from '@x-oasis/async-call-rpc';\n\nconst channel = new WorkerChannel(self);\n\nconst service = serviceHost.registerService('worker-service', {\n  ping: () => 'pong',\n  fibonacci: (n: number): number => {\n    if (n <= 1) return n;\n    let a = 0,\n      b = 1;\n    for (let i = 2; i <= n; i++) [a, b] = [b, a + b];\n    return b;\n  },\n});\nservice.setChannel(channel);\n```\n\n### 2. WebSocket\n\n```typescript\n// === 服务端 (Node.js) ===\nimport { WebSocketServer } from 'ws';\nimport { WebSocketChannel, serviceHost } from '@x-oasis/async-call-rpc';\n\nconst wss = new WebSocketServer({ port: 3456 });\n\nwss.on('connection', (ws) => {\n  const channel = new WebSocketChannel(ws, {\n    name: 'server',\n    connected: true,\n    createContext: ({ methodName }) => ({\n      calledAt: Date.now(),\n      method: methodName,\n    }),\n  });\n  channel.activate();\n\n  const service = serviceHost.registerService('api', {\n    echo: (x) => x,\n    now: () => Date.now(),\n  });\n  service.setChannel(channel);\n\n  ws.on('close', () => channel.disconnect());\n});\n```\n\n```typescript\n// === 客户端 (浏览器) ===\nimport { WebSocketChannel, clientHost } from '@x-oasis/async-call-rpc';\n\nconst ws = new WebSocket('ws://localhost:3456');\nconst channel = new WebSocketChannel(ws, { name: 'client' });\n\nconst api = clientHost.registerClient('api', { channel }).createProxy<{\n  echo(x: string): Promise<string>;\n  now(): Promise<number>;\n}>();\n\nconst result = await api.echo('hello'); // 'hello'\n```\n\n### 3. MessageChannel（iframe / 跨窗口）\n\n```typescript\nconst { port1, port2 } = new MessageChannel();\n\n// 主窗口用 port1\nconst channel = new MessageChannel({ port: port1 });\n\n// 将 port2 传给 iframe\niframe.contentWindow.postMessage('init', '*', [port2]);\n```\n\n## 错误处理\n\n远程调用失败时，客户端会收到 `RPCError` 实例：\n\n```typescript\nimport { RPCError, JSONRPCErrorCode } from '@x-oasis/async-call-rpc';\n\ntry {\n  await api.someMethod();\n} catch (err) {\n  if (err instanceof RPCError) {\n    console.log(err.code); // JSONRPC 错误码，如 -32601\n    console.log(err.message); // 错误描述\n    console.log(err.data); // 附加数据（含远程堆栈）\n  }\n}\n```\n\n标准错误码（`JSONRPCErrorCode`）：\n\n| 码值   | 名称           | 含义       |\n| ------ | -------------- | ---------- |\n| -32700 | ParseError     | 解析错误   |\n| -32600 | InvalidRequest | 无效请求   |\n| -32601 | MethodNotFound | 方法不存在 |\n| -32602 | InvalidParams  | 参数无效   |\n| -32603 | InternalError  | 内部错误   |\n\n## createContext — 请求上下文注入\n\n类似 tRPC 的 `createContext`，可以在每次请求时注入上下文信息。上下文会作为 handler 的第二个参数传入：\n\n```typescript\n// 服务端 — 配置 createContext\nconst channel = new WebSocketChannel(ws, {\n  createContext: ({ event, requestPath, methodName }) => ({\n    sender: event?.sender,\n    requestPath,\n    methodName,\n    timestamp: Date.now(),\n  }),\n});\n\n// handler 接收 context 作为第二个参数\nconst service = serviceHost.registerService('api', {\n  greet: (args: [string], ctx: { timestamp: number }) => {\n    return `Hello ${args[0]}, called at ${ctx.timestamp}`;\n  },\n});\nservice.setChannel(channel);\n```\n\n`createContext` 支持异步函数（返回 `Promise`），如果 context 创建失败，客户端会收到 `RPCError`。\n\n## React Query 集成\n\nReact Query 集成已拆分为独立包 [`@x-oasis/async-call-rpc-react`](../async-call-rpc-react/)，保持本包的轻量和零 React 依赖。\n\n```bash\npnpm add @x-oasis/async-call-rpc-react @tanstack/react-query react\n```\n\n```tsx\nimport { createRPCReact } from '@x-oasis/async-call-rpc-react';\n```\n\n详见 [`@x-oasis/async-call-rpc-react` README](../async-call-rpc-react/README.md)。\n\n## 序列化\n\n默认使用 JSON，支持通过 `serializationFormat` 切换：\n\n```typescript\nconst channel = new WebSocketChannel(ws, {\n  serializationFormat: 'msgpack', // 需注册对应的 BufferFactory\n});\n```\n\n也可以传入自定义 buffer 实例：\n\n```typescript\nconst channel = new WebSocketChannel(ws, {\n  readBuffer: myCustomReadBuffer,\n  writeBuffer: myCustomWriteBuffer,\n});\n```\n\n## 中间件\n\n发送和接收各有一条中间件管道，通过 `decorateSendMiddleware` / `decorateOnMessageMiddleware` 扩展：\n\n```typescript\nclass MyChannel extends AbstractChannelProtocol {\n  decorateSendMiddleware(middlewares) {\n    // 在 serialize 之前插入日志\n    return [myLoggerMiddleware, ...middlewares];\n  }\n}\n```\n\n中间件生命周期阶段：\n\n| 阶段          | 值  | 说明                      |\n| ------------- | --- | ------------------------- |\n| Prepare       | 10  | 构造请求数据              |\n| Transform     | 20  | 设置 seqId、创建 Deferred |\n| DataOperation | 30  | 序列化/反序列化           |\n| Send          | 40  | 发送到传输层              |\n\n## 离线排队\n\nChannel 断开时发送的请求自动排队，重连后批量恢复：\n\n```typescript\nchannel.disconnect(); // 后续请求进入 pendingSendEntries\n// ... 稍后 ...\nchannel.activate(); // 自动 replay 所有排队请求\n```\n\n## 多服务路由（单通道多服务）\n\n默认 1-channel-1-service 的写法（`service.setChannel(channel)`）适合单一服务。如果需要在**同一条传输层**上承载多个服务（例如同一个 WebSocket / MessagePort 暴露多个业务模块），请改用 `RPCServiceHost.registerServiceHandler` 配合 `channel.setServiceHost(host)`：\n\n```typescript\nimport {\n  RPCServiceHost,\n  serviceHost, // 默认单例\n} from '@x-oasis/async-call-rpc';\n\n// 1. 注册多个服务处理器（不绑 channel）\nserviceHost.registerServiceHandler('/auth', {\n  login: (args, ctx) => ({ ok: true }),\n  logout: () => ({ ok: true }),\n});\n\n// 也支持直接传入类实例 — 通过原型链按方法名解析\nclass FsService {\n  read(path: string) { /* ... */ }\n  write(path: string, data: string) { /* ... */ }\n}\nserviceHost.registerServiceHandler('/fs', new FsService());\n\n// 2. 让 channel 通过 host 路由请求\nchannel.setServiceHost(serviceHost);\n```\n\n**关键语义**：\n\n- 客户端调用时按 `requestPath` 路由到对应服务，再按方法名查找 handler\n- 当 `requestPath` 不在 host 中，请求会被**静默忽略**（不会回 `Method not found`）\n  - 这正是允许多个 host / channel 共用一条物理传输层而不会\"串台\"的原因\n- 同一 channel 既可绑定 service（旧用法）也可绑定 service host（新用法），优先走 host\n- `setServiceHost` 是幂等的：同一 host 多次绑定不会重复注册监听器\n\n**何时使用**：\n\n- ✅ 一个传输层暴露多个独立模块（路由风格的 API）\n- ✅ 不希望为每个模块单独建立 channel\n- ❌ 单一服务场景请继续使用 `serviceHost.registerService(path, { channel, handlers })`\n\n## Port 回传（handler 返回 MessagePort）\n\nhandler 的返回值如果是 MessagePort-like 对象（任何带 `postMessage` 方法的对象，如 Web `MessagePort`、Electron `MessagePortMain`），框架会自动以 `PortSuccess` 协议帧 + transfer list 形式回传，客户端会拿到这个 port：\n\n```typescript\n// 服务端\nserviceHost.registerServiceHandler('/broker', {\n  acquirePort: () => {\n    const { port1, port2 } = new MessageChannel();\n    setupOn(port1);\n    return port2; // ⬅ 自动作为 transferable 回传\n  },\n});\n\n// 客户端\nconst broker = clientHost.registerClient('/broker', { channel }).createProxy<{\n  acquirePort(): Promise<MessagePort>;\n}>();\n\nconst port = await broker.acquirePort();\n// 拿到 port 后可继续构造下游 RPC 通道：\nconst sub = new RPCMessageChannel({ port });\n```\n\n适用于 broker 模式：通过一个长生命周期的 IPC 通道按需分发独立的 MessagePort 给业务子通道，避免反复握手。\n\n## 订阅\n\n支持两种订阅模式，适用于不同的场景：\n\n### 1. 流式订阅 (SubscriptionRequest) — 推荐用于数据流\n\n使用 `client.subscribe()` 方法启动高频数据流。服务端 handler 返回一个 observable-like 对象，支持多次数据推送、错误处理和完成信号：\n\n**适用场景**：文件监听、数据库变更、实时推送、传感器数据等\n\n```typescript\n// === 服务端 ===\nconst service = serviceHost.registerService('fs', {\n  watchFiles: (args: [string], ctx) => {\n    const dir = args[0];\n    const userId = ctx?.userId; // 可以访问 context\n\n    // 返回一个 observable-like 对象\n    return {\n      subscribe: (observer) => {\n        const watcher = fs.watch(dir, (eventType, filename) => {\n          // 每个文件变更都推送一次\n          observer.onData?.({ eventType, filename, userId });\n        });\n\n        watcher.on('error', (err) => {\n          observer.onError?.(err);\n        });\n\n        // 返回取消订阅接口\n        return {\n          unsubscribe: () => watcher.close(),\n        };\n      },\n    };\n  },\n});\nservice.setChannel(channel);\n```\n\n```typescript\n// === 客户端 ===\nconst client = clientHost.registerClient('fs', { channel });\n\n// 使用 subscribe() 方法\nconst subscription = client.subscribe('watchFiles', ['/src'], {\n  onData: (event) => {\n    console.log('File changed:', event);\n  },\n  onError: (err) => {\n    console.error('Watch error:', err);\n  },\n  onComplete: () => {\n    console.log('Watch ended');\n  },\n});\n\n// 主动取消订阅 — 发送 SubscriptionStop 到服务端\nsubscription.unsubscribe();\n```\n\n**协议消息**：\n\n- `SubscriptionRequest` (`sub`) — 客户端发起订阅\n- `SubscriptionStop` (`unsub`) — 客户端取消订阅\n- `SubscriptionStopped` (`ss`) — 服务端确认订阅已停止\n- `ReturnSuccess` — 推送数据\n- `ReturnFail` — 报告错误\n\n**特点**：\n\n- ✅ 完整的生命周期管理\n- ✅ 支持错误处理和完成信号\n- ✅ 客户端可主动取消\n- ✅ 多次数据推送\n- ✅ 支持 context 注入\n\n### 2. 事件方法 (Ping-Pong) — 用于简单事件监听\n\n使用 `on*` 方法名约定进行低频事件监听。这是一种更简单的\"监听与触发\"模式，适合定期事件。客户端可以通过返回的 unsubscriber 主动停止监听：\n\n**适用场景**：心跳/ping-pong、定期状态更新、简单事件通知等\n\n```typescript\n// === 服务端 ===\nclass PingService {\n  // 方法名以 \"on\" 开头，被识别为事件方法\n  onPing(callback) {\n    // 定期触发回调\n    setInterval(() => {\n      callback(`pong-${Date.now()}`);\n    }, 10000);\n  }\n\n  onProcessStatusChanged(callback) {\n    // 监听进程状态变更\n    process.on('status', (status) => {\n      callback(status);\n    });\n  }\n}\n\nconst service = serviceHost.registerService('ping', new PingService());\nservice.setChannel(channel);\n```\n\n```typescript\n// === 客户端 ===\n// 使用 createProxy() 并通过方法调用传入监听函数\nconst client = clientHost.registerClient('ping', { channel }).createProxy<{\n  onPing(callback: (data: string) => void): Unsubscribable;\n  onProcessStatusChanged(callback: (status: any) => void): Unsubscribable;\n}>();\n\n// 返回 unsubscriber 对象，可以调用 unsubscribe() 停止监听\nconst pingUnsub = client.onPing((pong) => {\n  console.log('Received:', pong);\n});\n\nconst statusUnsub = client.onProcessStatusChanged((status) => {\n  console.log('Status changed:', status);\n});\n\n// 稍后可以取消监听\npingUnsub.unsubscribe();\nstatusUnsub.unsubscribe();\n```\n\n**特点**：\n\n- ✅ 实现简单\n- ✅ 对低频事件友好\n- ✅ 支持多次回调\n- ✅ 支持主动取消（EventMethodStop）\n- ✅ 向后兼容\n- ❌ 无错误处理\n- ❌ 无完成信号\n\n### 对比表\n\n| 特性             | 流式订阅 (subscribe)                         | 事件方法 (onXxx)                          |\n| ---------------- | -------------------------------------------- | ----------------------------------------- |\n| **方法调用**     | `client.subscribe('method', args, observer)` | `const unsub = client.onMethod(callback)` |\n| **推送频率**     | 高频（连续流）                               | 低频（定期事件）                          |\n| **多次推送**     | ✅ 原生支持                                  | ✅ 支持                                   |\n| **错误处理**     | ✅ onError                                   | ❌ 无                                     |\n| **完成信号**     | ✅ onComplete                                | ❌ 无                                     |\n| **主动取消**     | ✅ unsub.unsubscribe()                       | ✅ unsub.unsubscribe()                    |\n| **Context 支持** | ✅ 支持                                      | ❌ 不支持                                 |\n| **生命周期**     | ✅ 完整                                      | ✅ 基础                                   |\n| **实现复杂度**   | 中等                                         | 简单                                      |\n\n### 生命周期管理\n\n断开连接时自动清理所有活跃订阅和事件监听：\n\n```typescript\nchannel.disconnect(); // 内部调用 cleanUpSubscriptions()\n```\n\n### 何时选用哪种方式\n\n**使用流式订阅 (subscribe)**：\n\n- 数据变更频繁（文件监听、数据库变更）\n- 需要错误处理和完成信号\n- 需要支持context注入（如权限检查、审计）\n- 需要可观察的生命周期\n\n**使用事件方法 (on\\*)**：\n\n- 简单的定期事件（心跳/ping-pong、状态检查）\n- 代码已存在（向后兼容）\n- 实现快速简洁\n- 不需要复杂的错误处理\n\n**两种方式都支持**：\n\n- ✅ 多次数据推送\n- ✅ 主动取消 (unsubscribe)\n\n## API 参考\n\n### Channel 类\n\n| 类                 | 传输层                                           |\n| ------------------ | ------------------------------------------------ |\n| `MessageChannel`   | `MessagePort`（iframe / `new MessageChannel()`） |\n| `WorkerChannel`    | `Worker` / `self`（Web Worker）                  |\n| `WebSocketChannel` | `WebSocket`（浏览器和 Node.js）                  |\n\n### 核心导出\n\n```typescript\nimport {\n  // Channel\n  MessageChannel,\n  WorkerChannel,\n  WebSocketChannel,\n\n  // Endpoint\n  ProxyRPCClient,\n  RPCService,\n  RPCServiceHost, // 类（自定义实例时使用，默认用 serviceHost 单例即可）\n  clientHost, // 单例，管理所有客户端\n  serviceHost, // 单例，管理所有服务\n\n  // Error\n  RPCError,\n  JSONRPCErrorCode,\n\n  // Subscription\n  type SubscriptionObserver,\n} from '@x-oasis/async-call-rpc';\n```\n\n### `RPCServiceHost`\n\n| 方法                                          | 说明                                                       |\n| --------------------------------------------- | ---------------------------------------------------------- |\n| `registerService(path, options)`              | 1-channel-1-service 模式，service 自带 `channel` 绑定      |\n| `registerServiceHandler(path, instanceOrMap)` | 多服务模式，service 不绑 channel；通过 `setServiceHost` 路由 |\n| `getService(path)`                            | 获取已注册的 service                                        |\n| `getHandler(path, methodName)`                | 路由查表：返回方法处理函数（找不到时返回 `undefined`）       |\n\n`registerServiceHandler` 自动判别入参：\n\n- 若所有 own 属性都是函数 → 当作 handler map\n- 否则 → 当作类实例，handler 通过 `instance[methodName].bind(instance)` 解析（保留 `this`）\n\n## 运行示例\n\n示例项目在 `examples/` 目录下，包含五个 React 应用：\n\n```bash\n# Worker 示例（最简单，推荐先看）\ncd examples/react-worker-example\npnpm install && pnpm dev\n\n# WebSocket 示例\ncd examples/react-websocket-example\npnpm install\npnpm run dev:all   # 同时启动 WebSocket server 和 Vite dev server\n\n# 综合示例（Worker + WebSocket）\ncd examples/react-full-app\npnpm install\npnpm run dev:all\n\n# 事件方法 (on* Ping-Pong) — Worker-based，展示 on* 事件订阅\ncd examples/react-pingpong-example\npnpm install && pnpm dev\n\n# 流式订阅 (subscribe) — WebSocket-based，展示 observable 数据流\ncd examples/react-streaming-example\npnpm install\nnpx tsx server.ts &   # 启动 WebSocket server (端口 3457)\npnpm dev\n```\n\n详细说明见 `examples/README.md` 和 `examples/QUICKSTART.md`。\n\n## 运行测试\n\n```bash\npnpm test\n```\n\n## License\n\nISC\n","readmeFilename":"README.md"}