starpc 0.50.0 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cmd/protoc-gen-es-starpc/typescript.ts +37 -0
- package/dist/cmd/protoc-gen-es-starpc/typescript.js +24 -0
- package/dist/echo/echo_srpc.pb.d.ts +44 -1
- package/dist/echo/server.d.ts +9 -8
- package/dist/echo/server.js +6 -6
- package/dist/integration/cross-language/ts-client.js +5 -79
- package/dist/integration/cross-language/ts-server.js +4 -100
- package/dist/mock/mock_srpc.pb.d.ts +14 -1
- package/dist/srpc/channel.js +6 -3
- package/dist/srpc/channel.test.js +20 -1
- package/dist/srpc/client.d.ts +1 -3
- package/dist/srpc/client.js +2 -22
- package/dist/srpc/common-rpc.d.ts +1 -9
- package/dist/srpc/common-rpc.js +4 -62
- package/dist/srpc/handler.d.ts +12 -4
- package/dist/srpc/index.d.ts +2 -4
- package/dist/srpc/index.js +1 -3
- package/dist/srpc/invoker.d.ts +2 -2
- package/dist/srpc/invoker.js +2 -2
- package/dist/srpc/rpcproto.pb.d.ts +0 -44
- package/dist/srpc/rpcproto.pb.js +0 -53
- package/dist/srpc/server-context.d.ts +11 -0
- package/dist/srpc/server-context.js +28 -0
- package/dist/srpc/server-rpc.js +3 -3
- package/dist/srpc/server.test.js +65 -2
- package/dist/srpc/watchdog.test.js +1 -0
- package/echo/echo.go +8 -8
- package/echo/echo.pb.go +12 -36
- package/echo/echo_srpc.pb.cpp +1 -1
- package/echo/echo_srpc.pb.go +1 -1
- package/echo/echo_srpc.pb.hpp +1 -1
- package/echo/echo_srpc.pb.rs +1 -1
- package/echo/echo_srpc.pb.ts +74 -0
- package/echo/server.go +1 -1
- package/echo/server.ts +24 -5
- package/go.mod +1 -1
- package/go.sum +2 -0
- package/integration/cross-language/go-client/main.go +4 -142
- package/integration/cross-language/go-server/main.go +2 -170
- package/integration/cross-language/run.bash +5 -105
- package/integration/cross-language/ts-client.ts +5 -90
- package/integration/cross-language/ts-server.ts +4 -112
- package/mock/mock.go +1 -1
- package/mock/mock.pb.go +12 -36
- package/mock/mock_srpc.pb.cpp +1 -1
- package/mock/mock_srpc.pb.go +1 -1
- package/mock/mock_srpc.pb.hpp +1 -1
- package/mock/mock_srpc.pb.rs +1 -1
- package/mock/mock_srpc.pb.ts +19 -1
- package/package.json +2 -2
- package/srpc/channel.test.ts +21 -1
- package/srpc/channel.ts +7 -3
- package/srpc/client-prefix.go +1 -1
- package/srpc/client-set.go +1 -1
- package/srpc/client.go +1 -1
- package/srpc/client.ts +4 -31
- package/srpc/common-rpc.go +15 -69
- package/srpc/common-rpc.ts +4 -77
- package/srpc/common-rpc_test.go +81 -0
- package/srpc/errors.go +26 -1
- package/srpc/handler.ts +54 -5
- package/srpc/index.ts +7 -4
- package/srpc/invoker-prefix.go +1 -1
- package/srpc/invoker.go +2 -2
- package/srpc/invoker.ts +20 -7
- package/srpc/message.go +1 -1
- package/srpc/msg-stream.go +1 -9
- package/srpc/mux-verbose.go +1 -1
- package/srpc/mux.go +1 -1
- package/srpc/rpcproto.pb.cc +4 -15
- package/srpc/rpcproto.pb.go +102 -419
- package/srpc/rpcproto.pb.h +0 -59
- package/srpc/rpcproto.pb.rs +0 -45
- package/srpc/rpcproto.pb.ts +0 -62
- package/srpc/rpcproto.proto +0 -16
- package/srpc/server-context.ts +55 -0
- package/srpc/server-rpc.go +1 -1
- package/srpc/server-rpc.ts +4 -6
- package/srpc/server.test.ts +94 -1
- package/srpc/stream-pipe.go +1 -1
- package/srpc/stream-rwc.go +1 -1
- package/srpc/stream.go +0 -20
- package/srpc/watchdog.test.ts +1 -0
- package/dist/rpcstream/receipt.test.d.ts +0 -1
- package/dist/rpcstream/receipt.test.js +0 -41
- package/dist/srpc/call-receipt.d.ts +0 -17
- package/dist/srpc/call-receipt.js +0 -106
- package/dist/srpc/call-receipt.test.d.ts +0 -1
- package/dist/srpc/call-receipt.test.js +0 -375
- package/dist/srpc/server-invocation.d.ts +0 -17
- package/dist/srpc/server-invocation.js +0 -37
- package/integration/cross-language/go-server/fixture-owner_test.go +0 -127
- package/srpc/call-receipt-e2e_test.go +0 -111
- package/srpc/call-receipt.go +0 -112
- package/srpc/call-receipt.test.ts +0 -441
- package/srpc/call-receipt.ts +0 -131
- package/srpc/call-receipt_test.go +0 -536
- package/srpc/schema-ownership_test.go +0 -115
- package/srpc/server-invocation.go +0 -40
- package/srpc/server-invocation.ts +0 -76
package/srpc/invoker.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { Sink, Source } from 'it-stream-types'
|
|
|
2
2
|
import { pushable } from 'it-pushable'
|
|
3
3
|
import { pipe } from 'it-pipe'
|
|
4
4
|
import type { MethodDefinition } from './definition.js'
|
|
5
|
+
import type { ServerContext } from './server-context.js'
|
|
5
6
|
import { InvokeFn } from './handler.js'
|
|
6
7
|
import {
|
|
7
8
|
buildDecodeMessageTransform,
|
|
@@ -11,15 +12,27 @@ import { writeToPushable } from './pushable.js'
|
|
|
11
12
|
import type { MessageType, Message } from '@aptre/protobuf-es-lite'
|
|
12
13
|
import { MethodIdempotency, MethodKind } from '@aptre/protobuf-es-lite'
|
|
13
14
|
|
|
14
|
-
import type { ServerInvocation } from './server-invocation.js'
|
|
15
15
|
// MethodProto is a function which matches one of the RPC signatures.
|
|
16
16
|
export type MethodProto<R extends Message<R>, O extends Message<O>> =
|
|
17
|
-
| ((
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
| ((
|
|
18
|
+
request: R,
|
|
19
|
+
abortSignal: AbortSignal,
|
|
20
|
+
context: ServerContext,
|
|
21
|
+
) => Promise<O>)
|
|
22
|
+
| ((
|
|
23
|
+
request: R,
|
|
24
|
+
abortSignal: AbortSignal,
|
|
25
|
+
context: ServerContext,
|
|
26
|
+
) => AsyncIterable<O>)
|
|
27
|
+
| ((
|
|
28
|
+
request: AsyncIterable<R>,
|
|
29
|
+
abortSignal: AbortSignal,
|
|
30
|
+
context: ServerContext,
|
|
31
|
+
) => Promise<O>)
|
|
20
32
|
| ((
|
|
21
33
|
request: AsyncIterable<R>,
|
|
22
|
-
|
|
34
|
+
abortSignal: AbortSignal,
|
|
35
|
+
context: ServerContext,
|
|
23
36
|
) => AsyncIterable<O>)
|
|
24
37
|
|
|
25
38
|
// createInvokeFn builds an InvokeFn from a method definition and a function prototype.
|
|
@@ -36,7 +49,7 @@ export function createInvokeFn<R extends Message<R>, O extends Message<O>>(
|
|
|
36
49
|
return async (
|
|
37
50
|
dataSource: Source<Uint8Array>,
|
|
38
51
|
dataSink: Sink<Source<Uint8Array>>,
|
|
39
|
-
|
|
52
|
+
context: ServerContext,
|
|
40
53
|
) => {
|
|
41
54
|
// responseSink is a Sink for response messages.
|
|
42
55
|
const responseSink = pushable<O>({
|
|
@@ -71,7 +84,7 @@ export function createInvokeFn<R extends Message<R>, O extends Message<O>>(
|
|
|
71
84
|
|
|
72
85
|
// Call the implementation.
|
|
73
86
|
try {
|
|
74
|
-
const responseObj = methodProto(requestArg,
|
|
87
|
+
const responseObj = methodProto(requestArg, context.signal, context)
|
|
75
88
|
if (!responseObj) {
|
|
76
89
|
throw new Error('return value was undefined')
|
|
77
90
|
}
|
package/srpc/message.go
CHANGED
package/srpc/msg-stream.go
CHANGED
|
@@ -86,13 +86,5 @@ func (r *MsgStream) Close() error {
|
|
|
86
86
|
return err
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
func (r *MsgStream) receiptTerminalKind() (TerminalKind, bool) {
|
|
90
|
-
receipt, ok := r.rw.(receiptTerminalStream)
|
|
91
|
-
if !ok {
|
|
92
|
-
return 0, false
|
|
93
|
-
}
|
|
94
|
-
return receipt.receiptTerminalKind()
|
|
95
|
-
}
|
|
96
|
-
|
|
97
89
|
// _ is a type assertion
|
|
98
|
-
var _ Stream = (
|
|
90
|
+
var _ Stream = (*MsgStream)(nil)
|
package/srpc/mux-verbose.go
CHANGED
package/srpc/mux.go
CHANGED
package/srpc/rpcproto.pb.cc
CHANGED
|
@@ -120,8 +120,8 @@ struct PacketDefaultTypeInternal {
|
|
|
120
120
|
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
|
|
121
121
|
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PacketDefaultTypeInternal _Packet_default_instance_;
|
|
122
122
|
} // namespace srpc
|
|
123
|
-
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
|
|
124
|
-
file_level_enum_descriptors_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto
|
|
123
|
+
static constexpr const ::_pb::EnumDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
|
|
124
|
+
file_level_enum_descriptors_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto = nullptr;
|
|
125
125
|
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
|
|
126
126
|
file_level_service_descriptors_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto = nullptr;
|
|
127
127
|
const ::uint32_t
|
|
@@ -178,18 +178,13 @@ const char descriptor_table_protodef_github_2ecom_2faperturerobotics_2fstarpc_2f
|
|
|
178
178
|
"service\030\001 \001(\t\022\022\n\nrpc_method\030\002 \001(\t\022\014\n\004dat"
|
|
179
179
|
"a\030\003 \001(\014\022\024\n\014data_is_zero\030\004 \001(\010\"O\n\010CallDat"
|
|
180
180
|
"a\022\014\n\004data\030\001 \001(\014\022\024\n\014data_is_zero\030\002 \001(\010\022\020\n"
|
|
181
|
-
"\010complete\030\003 \001(\010\022\r\n\005error\030\004 \001(\
|
|
182
|
-
"nalKind\022\035\n\031TERMINAL_KIND_UNSPECIFIED\020\000\022\033"
|
|
183
|
-
"\n\027TERMINAL_KIND_COMMITTED\020\001\022\032\n\026TERMINAL_"
|
|
184
|
-
"KIND_CANCELED\020\002\022 \n\034TERMINAL_KIND_TRANSPO"
|
|
185
|
-
"RT_LOST\020\003\022\030\n\024TERMINAL_KIND_CLOSED\020\004\022\033\n\027T"
|
|
186
|
-
"ERMINAL_KIND_ABANDONED\020\005b\006proto3"
|
|
181
|
+
"\010complete\030\003 \001(\010\022\r\n\005error\030\004 \001(\tb\006proto3"
|
|
187
182
|
};
|
|
188
183
|
static ::absl::once_flag descriptor_table_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto_once;
|
|
189
184
|
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto = {
|
|
190
185
|
false,
|
|
191
186
|
false,
|
|
192
|
-
|
|
187
|
+
358,
|
|
193
188
|
descriptor_table_protodef_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto,
|
|
194
189
|
"github.com/aperturerobotics/starpc/srpc/rpcproto.proto",
|
|
195
190
|
&descriptor_table_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto_once,
|
|
@@ -203,12 +198,6 @@ PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_github_2ecom_2
|
|
|
203
198
|
file_level_service_descriptors_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto,
|
|
204
199
|
};
|
|
205
200
|
namespace srpc {
|
|
206
|
-
const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL TerminalKind_descriptor() {
|
|
207
|
-
::google::protobuf::internal::AssignDescriptors(&descriptor_table_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto);
|
|
208
|
-
return file_level_enum_descriptors_github_2ecom_2faperturerobotics_2fstarpc_2fsrpc_2frpcproto_2eproto[0];
|
|
209
|
-
}
|
|
210
|
-
PROTOBUF_CONSTINIT const uint32_t TerminalKind_internal_data_[] = {
|
|
211
|
-
393216u, 0u, };
|
|
212
201
|
// ===================================================================
|
|
213
202
|
|
|
214
203
|
class Packet::_Internal {
|