@forwardimpact/librpc 0.1.106 → 0.1.107

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.
Files changed (35) hide show
  1. package/package.json +3 -1
  2. package/src/generated/definitions/bridge.js +260 -0
  3. package/src/generated/definitions/embedding.js +29 -0
  4. package/src/generated/definitions/exports.js +43 -0
  5. package/src/generated/definitions/ghserver.js +29 -0
  6. package/src/generated/definitions/ghuser.js +113 -0
  7. package/src/generated/definitions/graph.js +71 -0
  8. package/src/generated/definitions/map.js +92 -0
  9. package/src/generated/definitions/pathway.js +155 -0
  10. package/src/generated/definitions/tenancy.js +155 -0
  11. package/src/generated/definitions/trace.js +50 -0
  12. package/src/generated/definitions/vector.js +29 -0
  13. package/src/generated/services/bridge/client.js +264 -0
  14. package/src/generated/services/bridge/service.js +244 -0
  15. package/src/generated/services/embedding/client.js +44 -0
  16. package/src/generated/services/embedding/service.js +46 -0
  17. package/src/generated/services/exports.js +103 -0
  18. package/src/generated/services/ghserver/client.js +44 -0
  19. package/src/generated/services/ghserver/service.js +46 -0
  20. package/src/generated/services/ghuser/client.js +124 -0
  21. package/src/generated/services/ghuser/service.js +118 -0
  22. package/src/generated/services/graph/client.js +84 -0
  23. package/src/generated/services/graph/service.js +82 -0
  24. package/src/generated/services/map/client.js +104 -0
  25. package/src/generated/services/map/service.js +100 -0
  26. package/src/generated/services/pathway/client.js +164 -0
  27. package/src/generated/services/pathway/service.js +154 -0
  28. package/src/generated/services/tenancy/client.js +164 -0
  29. package/src/generated/services/tenancy/service.js +154 -0
  30. package/src/generated/services/trace/client.js +64 -0
  31. package/src/generated/services/trace/service.js +64 -0
  32. package/src/generated/services/vector/client.js +44 -0
  33. package/src/generated/services/vector/service.js +46 -0
  34. package/src/generated/types/metadata.js +994 -0
  35. package/src/generated/types/types.js +20852 -0
@@ -0,0 +1,244 @@
1
+ /* eslint no-unused-vars: "off" */
2
+
3
+ import { bridge, common } from "@forwardimpact/libtype";
4
+
5
+ /**
6
+ * Base class for Bridge service implementation
7
+ */
8
+ export class BridgeBase {
9
+ config;
10
+
11
+ /**
12
+ * Creates a new Bridge service instance
13
+ * @param {object} config - Service configuration
14
+ */
15
+ constructor(config) {
16
+ if (!config) throw new Error("config is required");
17
+ this.config = config;
18
+ }
19
+
20
+ /**
21
+ * Must be implemented by subclass
22
+ * @param { bridge.LoadDiscussionRequest } req - Request parameters
23
+ * @returns { Promise<bridge.Discussion> } Response object
24
+ */
25
+ async LoadDiscussion(req) {
26
+ throw new Error("LoadDiscussion not implemented");
27
+ }
28
+
29
+ /**
30
+ * Must be implemented by subclass
31
+ * @param { bridge.LoadByCorrelationRequest } req - Request parameters
32
+ * @returns { Promise<bridge.Discussion> } Response object
33
+ */
34
+ async LoadDiscussionByCorrelation(req) {
35
+ throw new Error("LoadDiscussionByCorrelation not implemented");
36
+ }
37
+
38
+ /**
39
+ * Must be implemented by subclass
40
+ * @param { bridge.ListOpenRecessesRequest } req - Request parameters
41
+ * @returns { Promise<bridge.OpenRecessList> } Response object
42
+ */
43
+ async ListOpenRecesses(req) {
44
+ throw new Error("ListOpenRecesses not implemented");
45
+ }
46
+
47
+ /**
48
+ * Must be implemented by subclass
49
+ * @param { bridge.Discussion } req - Request parameters
50
+ * @returns { Promise<common.Empty> } Response object
51
+ */
52
+ async SaveDiscussion(req) {
53
+ throw new Error("SaveDiscussion not implemented");
54
+ }
55
+
56
+ /**
57
+ * Must be implemented by subclass
58
+ * @param { bridge.OriginKey } req - Request parameters
59
+ * @returns { Promise<bridge.HasOriginResponse> } Response object
60
+ */
61
+ async HasOrigin(req) {
62
+ throw new Error("HasOrigin not implemented");
63
+ }
64
+
65
+ /**
66
+ * Must be implemented by subclass
67
+ * @param { bridge.Origin } req - Request parameters
68
+ * @returns { Promise<common.Empty> } Response object
69
+ */
70
+ async RecordOrigin(req) {
71
+ throw new Error("RecordOrigin not implemented");
72
+ }
73
+
74
+ /**
75
+ * Must be implemented by subclass
76
+ * @param { bridge.SweepRequest } req - Request parameters
77
+ * @returns { Promise<bridge.SweepResponse> } Response object
78
+ */
79
+ async Sweep(req) {
80
+ throw new Error("Sweep not implemented");
81
+ }
82
+
83
+ /**
84
+ * Must be implemented by subclass
85
+ * @param { bridge.PutPendingDispatchRequest } req - Request parameters
86
+ * @returns { Promise<common.Empty> } Response object
87
+ */
88
+ async PutPendingDispatch(req) {
89
+ throw new Error("PutPendingDispatch not implemented");
90
+ }
91
+
92
+ /**
93
+ * Must be implemented by subclass
94
+ * @param { bridge.ResolvePendingDispatchRequest } req - Request parameters
95
+ * @returns { Promise<bridge.PendingDispatch> } Response object
96
+ */
97
+ async ResolvePendingDispatch(req) {
98
+ throw new Error("ResolvePendingDispatch not implemented");
99
+ }
100
+
101
+ /**
102
+ * Must be implemented by subclass
103
+ * @param { bridge.VerifyPendingDispatchRequest } req - Request parameters
104
+ * @returns { Promise<common.Empty> } Response object
105
+ */
106
+ async VerifyPendingDispatch(req) {
107
+ throw new Error("VerifyPendingDispatch not implemented");
108
+ }
109
+
110
+ /**
111
+ * Must be implemented by subclass
112
+ * @param { bridge.EnqueueInboxRequest } req - Request parameters
113
+ * @returns { Promise<common.Empty> } Response object
114
+ */
115
+ async EnqueueInbox(req) {
116
+ throw new Error("EnqueueInbox not implemented");
117
+ }
118
+
119
+ /**
120
+ * Must be implemented by subclass
121
+ * @param { bridge.DrainInboxRequest } req - Request parameters
122
+ * @returns { Promise<bridge.InboxMessages> } Response object
123
+ */
124
+ async DrainInbox(req) {
125
+ throw new Error("DrainInbox not implemented");
126
+ }
127
+
128
+ /**
129
+ * Creates gRPC handlers for this service instance
130
+ * @returns { object } Map of method names to handler functions
131
+ */
132
+ getHandlers() {
133
+ return {
134
+ LoadDiscussion: async (call) => {
135
+ // Validate and convert request
136
+ const error = bridge.LoadDiscussionRequest.verify(call.request);
137
+ if (error) throw new Error(`LoadDiscussion: ${error}`);
138
+ const req = bridge.LoadDiscussionRequest.fromObject(call.request);
139
+
140
+ // Call implementation
141
+ return await this.LoadDiscussion(req);
142
+ },
143
+ LoadDiscussionByCorrelation: async (call) => {
144
+ // Validate and convert request
145
+ const error = bridge.LoadByCorrelationRequest.verify(call.request);
146
+ if (error) throw new Error(`LoadDiscussionByCorrelation: ${error}`);
147
+ const req = bridge.LoadByCorrelationRequest.fromObject(call.request);
148
+
149
+ // Call implementation
150
+ return await this.LoadDiscussionByCorrelation(req);
151
+ },
152
+ ListOpenRecesses: async (call) => {
153
+ // Validate and convert request
154
+ const error = bridge.ListOpenRecessesRequest.verify(call.request);
155
+ if (error) throw new Error(`ListOpenRecesses: ${error}`);
156
+ const req = bridge.ListOpenRecessesRequest.fromObject(call.request);
157
+
158
+ // Call implementation
159
+ return await this.ListOpenRecesses(req);
160
+ },
161
+ SaveDiscussion: async (call) => {
162
+ // Validate and convert request
163
+ const error = bridge.Discussion.verify(call.request);
164
+ if (error) throw new Error(`SaveDiscussion: ${error}`);
165
+ const req = bridge.Discussion.fromObject(call.request);
166
+
167
+ // Call implementation
168
+ return await this.SaveDiscussion(req);
169
+ },
170
+ HasOrigin: async (call) => {
171
+ // Validate and convert request
172
+ const error = bridge.OriginKey.verify(call.request);
173
+ if (error) throw new Error(`HasOrigin: ${error}`);
174
+ const req = bridge.OriginKey.fromObject(call.request);
175
+
176
+ // Call implementation
177
+ return await this.HasOrigin(req);
178
+ },
179
+ RecordOrigin: async (call) => {
180
+ // Validate and convert request
181
+ const error = bridge.Origin.verify(call.request);
182
+ if (error) throw new Error(`RecordOrigin: ${error}`);
183
+ const req = bridge.Origin.fromObject(call.request);
184
+
185
+ // Call implementation
186
+ return await this.RecordOrigin(req);
187
+ },
188
+ Sweep: async (call) => {
189
+ // Validate and convert request
190
+ const error = bridge.SweepRequest.verify(call.request);
191
+ if (error) throw new Error(`Sweep: ${error}`);
192
+ const req = bridge.SweepRequest.fromObject(call.request);
193
+
194
+ // Call implementation
195
+ return await this.Sweep(req);
196
+ },
197
+ PutPendingDispatch: async (call) => {
198
+ // Validate and convert request
199
+ const error = bridge.PutPendingDispatchRequest.verify(call.request);
200
+ if (error) throw new Error(`PutPendingDispatch: ${error}`);
201
+ const req = bridge.PutPendingDispatchRequest.fromObject(call.request);
202
+
203
+ // Call implementation
204
+ return await this.PutPendingDispatch(req);
205
+ },
206
+ ResolvePendingDispatch: async (call) => {
207
+ // Validate and convert request
208
+ const error = bridge.ResolvePendingDispatchRequest.verify(call.request);
209
+ if (error) throw new Error(`ResolvePendingDispatch: ${error}`);
210
+ const req = bridge.ResolvePendingDispatchRequest.fromObject(call.request);
211
+
212
+ // Call implementation
213
+ return await this.ResolvePendingDispatch(req);
214
+ },
215
+ VerifyPendingDispatch: async (call) => {
216
+ // Validate and convert request
217
+ const error = bridge.VerifyPendingDispatchRequest.verify(call.request);
218
+ if (error) throw new Error(`VerifyPendingDispatch: ${error}`);
219
+ const req = bridge.VerifyPendingDispatchRequest.fromObject(call.request);
220
+
221
+ // Call implementation
222
+ return await this.VerifyPendingDispatch(req);
223
+ },
224
+ EnqueueInbox: async (call) => {
225
+ // Validate and convert request
226
+ const error = bridge.EnqueueInboxRequest.verify(call.request);
227
+ if (error) throw new Error(`EnqueueInbox: ${error}`);
228
+ const req = bridge.EnqueueInboxRequest.fromObject(call.request);
229
+
230
+ // Call implementation
231
+ return await this.EnqueueInbox(req);
232
+ },
233
+ DrainInbox: async (call) => {
234
+ // Validate and convert request
235
+ const error = bridge.DrainInboxRequest.verify(call.request);
236
+ if (error) throw new Error(`DrainInbox: ${error}`);
237
+ const req = bridge.DrainInboxRequest.fromObject(call.request);
238
+
239
+ // Call implementation
240
+ return await this.DrainInbox(req);
241
+ },
242
+ };
243
+ }
244
+ }
@@ -0,0 +1,44 @@
1
+ /* eslint no-unused-vars: "off" */
2
+
3
+ import { Client } from "@forwardimpact/librpc/client.js";
4
+ import { createAuth, createGrpc } from "@forwardimpact/librpc/base.js";
5
+ import { createObserver } from "@forwardimpact/libtelemetry";
6
+ import { embedding } from "@forwardimpact/libtype";
7
+
8
+ /**
9
+ * Typed client for the Embedding gRPC service.
10
+ * Extends the `Client` class for shared gRPC client functionality.
11
+ */
12
+ export class EmbeddingClient extends Client {
13
+ /**
14
+ * Creates a new Embedding client instance
15
+ * @param {object} config - Service configuration
16
+ * @param {import("@forwardimpact/libutil/runtime").Runtime} runtime - Injected runtime bag (required; the default auth factory reads SERVICE_SECRET from it)
17
+ * @param {import("@forwardimpact/libtelemetry").Logger} [logger] - Optional logger instance
18
+ * @param {import("@forwardimpact/libtelemetry").Tracer} [tracer] - Optional tracer for distributed tracing
19
+ * @param {Function} [authFn] - Optional authentication function
20
+ */
21
+ constructor(config, runtime, logger = null, tracer = null, authFn = createAuth) {
22
+ super(config, runtime, logger, tracer, createObserver, createGrpc, authFn);
23
+ }
24
+
25
+ /**
26
+ * Call the `CreateEmbeddings` RPC with request/response type conversion.
27
+ * @param { embedding.EmbeddingsRequest } req - Typed request message.
28
+ * @returns { Promise<embedding.EmbeddingsResponse> } Typed response message.
29
+ */
30
+ async CreateEmbeddings(req) {
31
+ // Type validation
32
+ if (!(req instanceof embedding.EmbeddingsRequest)) {
33
+ throw new TypeError(
34
+ `CreateEmbeddings: Expected parameter to be instanceof embedding.EmbeddingsRequest`,
35
+ );
36
+ }
37
+
38
+ // Convert to plain object
39
+ const request = embedding.EmbeddingsRequest.toObject(req);
40
+
41
+ // Make gRPC call (tracing handled by base Client class)
42
+ return this.callUnary("CreateEmbeddings", request, (res) => embedding.EmbeddingsResponse.fromObject(res));
43
+ }
44
+ }
@@ -0,0 +1,46 @@
1
+ /* eslint no-unused-vars: "off" */
2
+
3
+ import { embedding } from "@forwardimpact/libtype";
4
+
5
+ /**
6
+ * Base class for Embedding service implementation
7
+ */
8
+ export class EmbeddingBase {
9
+ config;
10
+
11
+ /**
12
+ * Creates a new Embedding service instance
13
+ * @param {object} config - Service configuration
14
+ */
15
+ constructor(config) {
16
+ if (!config) throw new Error("config is required");
17
+ this.config = config;
18
+ }
19
+
20
+ /**
21
+ * Must be implemented by subclass
22
+ * @param { embedding.EmbeddingsRequest } req - Request parameters
23
+ * @returns { Promise<embedding.EmbeddingsResponse> } Response object
24
+ */
25
+ async CreateEmbeddings(req) {
26
+ throw new Error("CreateEmbeddings not implemented");
27
+ }
28
+
29
+ /**
30
+ * Creates gRPC handlers for this service instance
31
+ * @returns { object } Map of method names to handler functions
32
+ */
33
+ getHandlers() {
34
+ return {
35
+ CreateEmbeddings: async (call) => {
36
+ // Validate and convert request
37
+ const error = embedding.EmbeddingsRequest.verify(call.request);
38
+ if (error) throw new Error(`CreateEmbeddings: ${error}`);
39
+ const req = embedding.EmbeddingsRequest.fromObject(call.request);
40
+
41
+ // Call implementation
42
+ return await this.CreateEmbeddings(req);
43
+ },
44
+ };
45
+ }
46
+ }
@@ -0,0 +1,103 @@
1
+ // THIS FILE IS AUTO-GENERATED - DO NOT EDIT
2
+ // Generated by scripts/codegen.js
3
+
4
+ // Service Base Classes
5
+ export { BridgeBase } from "./bridge/service.js";
6
+ export { EmbeddingBase } from "./embedding/service.js";
7
+ export { GhserverBase } from "./ghserver/service.js";
8
+ export { GhuserBase } from "./ghuser/service.js";
9
+ export { GraphBase } from "./graph/service.js";
10
+ export { MapBase } from "./map/service.js";
11
+ export { PathwayBase } from "./pathway/service.js";
12
+ export { TenancyBase } from "./tenancy/service.js";
13
+ export { TraceBase } from "./trace/service.js";
14
+ export { VectorBase } from "./vector/service.js";
15
+
16
+ // Client Classes
17
+ export { BridgeClient } from "./bridge/client.js";
18
+ export { EmbeddingClient } from "./embedding/client.js";
19
+ export { GhserverClient } from "./ghserver/client.js";
20
+ export { GhuserClient } from "./ghuser/client.js";
21
+ export { GraphClient } from "./graph/client.js";
22
+ export { MapClient } from "./map/client.js";
23
+ export { PathwayClient } from "./pathway/client.js";
24
+ export { TenancyClient } from "./tenancy/client.js";
25
+ export { TraceClient } from "./trace/client.js";
26
+ export { VectorClient } from "./vector/client.js";
27
+
28
+ // Import service base classes to make them available for aggregation
29
+ import { BridgeBase } from "./bridge/service.js";
30
+ import { EmbeddingBase } from "./embedding/service.js";
31
+ import { GhserverBase } from "./ghserver/service.js";
32
+ import { GhuserBase } from "./ghuser/service.js";
33
+ import { GraphBase } from "./graph/service.js";
34
+ import { MapBase } from "./map/service.js";
35
+ import { PathwayBase } from "./pathway/service.js";
36
+ import { TenancyBase } from "./tenancy/service.js";
37
+ import { TraceBase } from "./trace/service.js";
38
+ import { VectorBase } from "./vector/service.js";
39
+
40
+ // Import client classes to make them available for aggregation
41
+ import { BridgeClient } from "./bridge/client.js";
42
+ import { EmbeddingClient } from "./embedding/client.js";
43
+ import { GhserverClient } from "./ghserver/client.js";
44
+ import { GhuserClient } from "./ghuser/client.js";
45
+ import { GraphClient } from "./graph/client.js";
46
+ import { MapClient } from "./map/client.js";
47
+ import { PathwayClient } from "./pathway/client.js";
48
+ import { TenancyClient } from "./tenancy/client.js";
49
+ import { TraceClient } from "./trace/client.js";
50
+ import { VectorClient } from "./vector/client.js";
51
+
52
+ // Aggregate exports for convenience
53
+ export const services = {
54
+ BridgeBase,
55
+ EmbeddingBase,
56
+ GhserverBase,
57
+ GhuserBase,
58
+ GraphBase,
59
+ MapBase,
60
+ PathwayBase,
61
+ TenancyBase,
62
+ TraceBase,
63
+ VectorBase,
64
+ };
65
+
66
+ export const clients = {
67
+ BridgeClient,
68
+ EmbeddingClient,
69
+ GhserverClient,
70
+ GhuserClient,
71
+ GraphClient,
72
+ MapClient,
73
+ PathwayClient,
74
+ TenancyClient,
75
+ TraceClient,
76
+ VectorClient,
77
+ };
78
+
79
+ // Re-export everything as default for dynamic importing
80
+ export default {
81
+ services,
82
+ clients,
83
+ BridgeBase,
84
+ EmbeddingBase,
85
+ GhserverBase,
86
+ GhuserBase,
87
+ GraphBase,
88
+ MapBase,
89
+ PathwayBase,
90
+ TenancyBase,
91
+ TraceBase,
92
+ VectorBase,
93
+ BridgeClient,
94
+ EmbeddingClient,
95
+ GhserverClient,
96
+ GhuserClient,
97
+ GraphClient,
98
+ MapClient,
99
+ PathwayClient,
100
+ TenancyClient,
101
+ TraceClient,
102
+ VectorClient,
103
+ };
@@ -0,0 +1,44 @@
1
+ /* eslint no-unused-vars: "off" */
2
+
3
+ import { Client } from "@forwardimpact/librpc/client.js";
4
+ import { createAuth, createGrpc } from "@forwardimpact/librpc/base.js";
5
+ import { createObserver } from "@forwardimpact/libtelemetry";
6
+ import { ghserver } from "@forwardimpact/libtype";
7
+
8
+ /**
9
+ * Typed client for the Ghserver gRPC service.
10
+ * Extends the `Client` class for shared gRPC client functionality.
11
+ */
12
+ export class GhserverClient extends Client {
13
+ /**
14
+ * Creates a new Ghserver client instance
15
+ * @param {object} config - Service configuration
16
+ * @param {import("@forwardimpact/libutil/runtime").Runtime} runtime - Injected runtime bag (required; the default auth factory reads SERVICE_SECRET from it)
17
+ * @param {import("@forwardimpact/libtelemetry").Logger} [logger] - Optional logger instance
18
+ * @param {import("@forwardimpact/libtelemetry").Tracer} [tracer] - Optional tracer for distributed tracing
19
+ * @param {Function} [authFn] - Optional authentication function
20
+ */
21
+ constructor(config, runtime, logger = null, tracer = null, authFn = createAuth) {
22
+ super(config, runtime, logger, tracer, createObserver, createGrpc, authFn);
23
+ }
24
+
25
+ /**
26
+ * Call the `MintInstallationToken` RPC with request/response type conversion.
27
+ * @param { ghserver.MintRequest } req - Typed request message.
28
+ * @returns { Promise<ghserver.MintResponse> } Typed response message.
29
+ */
30
+ async MintInstallationToken(req) {
31
+ // Type validation
32
+ if (!(req instanceof ghserver.MintRequest)) {
33
+ throw new TypeError(
34
+ `MintInstallationToken: Expected parameter to be instanceof ghserver.MintRequest`,
35
+ );
36
+ }
37
+
38
+ // Convert to plain object
39
+ const request = ghserver.MintRequest.toObject(req);
40
+
41
+ // Make gRPC call (tracing handled by base Client class)
42
+ return this.callUnary("MintInstallationToken", request, (res) => ghserver.MintResponse.fromObject(res));
43
+ }
44
+ }
@@ -0,0 +1,46 @@
1
+ /* eslint no-unused-vars: "off" */
2
+
3
+ import { ghserver } from "@forwardimpact/libtype";
4
+
5
+ /**
6
+ * Base class for Ghserver service implementation
7
+ */
8
+ export class GhserverBase {
9
+ config;
10
+
11
+ /**
12
+ * Creates a new Ghserver service instance
13
+ * @param {object} config - Service configuration
14
+ */
15
+ constructor(config) {
16
+ if (!config) throw new Error("config is required");
17
+ this.config = config;
18
+ }
19
+
20
+ /**
21
+ * Must be implemented by subclass
22
+ * @param { ghserver.MintRequest } req - Request parameters
23
+ * @returns { Promise<ghserver.MintResponse> } Response object
24
+ */
25
+ async MintInstallationToken(req) {
26
+ throw new Error("MintInstallationToken not implemented");
27
+ }
28
+
29
+ /**
30
+ * Creates gRPC handlers for this service instance
31
+ * @returns { object } Map of method names to handler functions
32
+ */
33
+ getHandlers() {
34
+ return {
35
+ MintInstallationToken: async (call) => {
36
+ // Validate and convert request
37
+ const error = ghserver.MintRequest.verify(call.request);
38
+ if (error) throw new Error(`MintInstallationToken: ${error}`);
39
+ const req = ghserver.MintRequest.fromObject(call.request);
40
+
41
+ // Call implementation
42
+ return await this.MintInstallationToken(req);
43
+ },
44
+ };
45
+ }
46
+ }
@@ -0,0 +1,124 @@
1
+ /* eslint no-unused-vars: "off" */
2
+
3
+ import { Client } from "@forwardimpact/librpc/client.js";
4
+ import { createAuth, createGrpc } from "@forwardimpact/librpc/base.js";
5
+ import { createObserver } from "@forwardimpact/libtelemetry";
6
+ import { ghuser, common } from "@forwardimpact/libtype";
7
+
8
+ /**
9
+ * Typed client for the Ghuser gRPC service.
10
+ * Extends the `Client` class for shared gRPC client functionality.
11
+ */
12
+ export class GhuserClient extends Client {
13
+ /**
14
+ * Creates a new Ghuser client instance
15
+ * @param {object} config - Service configuration
16
+ * @param {import("@forwardimpact/libutil/runtime").Runtime} runtime - Injected runtime bag (required; the default auth factory reads SERVICE_SECRET from it)
17
+ * @param {import("@forwardimpact/libtelemetry").Logger} [logger] - Optional logger instance
18
+ * @param {import("@forwardimpact/libtelemetry").Tracer} [tracer] - Optional tracer for distributed tracing
19
+ * @param {Function} [authFn] - Optional authentication function
20
+ */
21
+ constructor(config, runtime, logger = null, tracer = null, authFn = createAuth) {
22
+ super(config, runtime, logger, tracer, createObserver, createGrpc, authFn);
23
+ }
24
+
25
+ /**
26
+ * Call the `Begin` RPC with request/response type conversion.
27
+ * @param { ghuser.BeginRequest } req - Typed request message.
28
+ * @returns { Promise<ghuser.BeginResponse> } Typed response message.
29
+ */
30
+ async Begin(req) {
31
+ // Type validation
32
+ if (!(req instanceof ghuser.BeginRequest)) {
33
+ throw new TypeError(
34
+ `Begin: Expected parameter to be instanceof ghuser.BeginRequest`,
35
+ );
36
+ }
37
+
38
+ // Convert to plain object
39
+ const request = ghuser.BeginRequest.toObject(req);
40
+
41
+ // Make gRPC call (tracing handled by base Client class)
42
+ return this.callUnary("Begin", request, (res) => ghuser.BeginResponse.fromObject(res));
43
+ }
44
+
45
+ /**
46
+ * Call the `Complete` RPC with request/response type conversion.
47
+ * @param { ghuser.CompleteRequest } req - Typed request message.
48
+ * @returns { Promise<ghuser.CompleteResponse> } Typed response message.
49
+ */
50
+ async Complete(req) {
51
+ // Type validation
52
+ if (!(req instanceof ghuser.CompleteRequest)) {
53
+ throw new TypeError(
54
+ `Complete: Expected parameter to be instanceof ghuser.CompleteRequest`,
55
+ );
56
+ }
57
+
58
+ // Convert to plain object
59
+ const request = ghuser.CompleteRequest.toObject(req);
60
+
61
+ // Make gRPC call (tracing handled by base Client class)
62
+ return this.callUnary("Complete", request, (res) => ghuser.CompleteResponse.fromObject(res));
63
+ }
64
+
65
+ /**
66
+ * Call the `Redeem` RPC with request/response type conversion.
67
+ * @param { ghuser.RedeemRequest } req - Typed request message.
68
+ * @returns { Promise<ghuser.RedeemResponse> } Typed response message.
69
+ */
70
+ async Redeem(req) {
71
+ // Type validation
72
+ if (!(req instanceof ghuser.RedeemRequest)) {
73
+ throw new TypeError(
74
+ `Redeem: Expected parameter to be instanceof ghuser.RedeemRequest`,
75
+ );
76
+ }
77
+
78
+ // Convert to plain object
79
+ const request = ghuser.RedeemRequest.toObject(req);
80
+
81
+ // Make gRPC call (tracing handled by base Client class)
82
+ return this.callUnary("Redeem", request, (res) => ghuser.RedeemResponse.fromObject(res));
83
+ }
84
+
85
+ /**
86
+ * Call the `GetToken` RPC with request/response type conversion.
87
+ * @param { ghuser.GetTokenRequest } req - Typed request message.
88
+ * @returns { Promise<ghuser.GetTokenResponse> } Typed response message.
89
+ */
90
+ async GetToken(req) {
91
+ // Type validation
92
+ if (!(req instanceof ghuser.GetTokenRequest)) {
93
+ throw new TypeError(
94
+ `GetToken: Expected parameter to be instanceof ghuser.GetTokenRequest`,
95
+ );
96
+ }
97
+
98
+ // Convert to plain object
99
+ const request = ghuser.GetTokenRequest.toObject(req);
100
+
101
+ // Make gRPC call (tracing handled by base Client class)
102
+ return this.callUnary("GetToken", request, (res) => ghuser.GetTokenResponse.fromObject(res));
103
+ }
104
+
105
+ /**
106
+ * Call the `Revoke` RPC with request/response type conversion.
107
+ * @param { ghuser.RevokeRequest } req - Typed request message.
108
+ * @returns { Promise<common.Empty> } Typed response message.
109
+ */
110
+ async Revoke(req) {
111
+ // Type validation
112
+ if (!(req instanceof ghuser.RevokeRequest)) {
113
+ throw new TypeError(
114
+ `Revoke: Expected parameter to be instanceof ghuser.RevokeRequest`,
115
+ );
116
+ }
117
+
118
+ // Convert to plain object
119
+ const request = ghuser.RevokeRequest.toObject(req);
120
+
121
+ // Make gRPC call (tracing handled by base Client class)
122
+ return this.callUnary("Revoke", request, (res) => common.Empty.fromObject(res));
123
+ }
124
+ }