@superdurable/dex 0.1.2 → 0.1.4

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 (57) hide show
  1. package/README.md +82 -3
  2. package/dist/src/attribute-store-sync.d.ts +5 -0
  3. package/dist/src/attribute-store-sync.js +19 -0
  4. package/dist/src/attribute-store-sync.js.map +1 -0
  5. package/dist/src/blob-cache.d.ts +36 -0
  6. package/dist/src/blob-cache.js +13 -0
  7. package/dist/src/blob-cache.js.map +1 -1
  8. package/dist/src/client.d.ts +186 -5
  9. package/dist/src/client.js +174 -33
  10. package/dist/src/client.js.map +1 -1
  11. package/dist/src/codec.d.ts +73 -0
  12. package/dist/src/codec.js +23 -0
  13. package/dist/src/codec.js.map +1 -1
  14. package/dist/src/context.d.ts +80 -0
  15. package/dist/src/errors.d.ts +122 -6
  16. package/dist/src/errors.js +139 -9
  17. package/dist/src/errors.js.map +1 -1
  18. package/dist/src/flow.d.ts +36 -1
  19. package/dist/src/flow.js +96 -28
  20. package/dist/src/flow.js.map +1 -1
  21. package/dist/src/gen/dex.d.ts +58 -9
  22. package/dist/src/gen/dex.js +417 -55
  23. package/dist/src/gen/dex.js.map +1 -1
  24. package/dist/src/grpc-status.d.ts +5 -4
  25. package/dist/src/grpc-status.js +52 -6
  26. package/dist/src/grpc-status.js.map +1 -1
  27. package/dist/src/invocation-context.js +3 -0
  28. package/dist/src/invocation-context.js.map +1 -1
  29. package/dist/src/options.d.ts +162 -0
  30. package/dist/src/options.js +53 -0
  31. package/dist/src/options.js.map +1 -1
  32. package/dist/src/persistence.d.ts +103 -0
  33. package/dist/src/persistence.js +98 -0
  34. package/dist/src/persistence.js.map +1 -1
  35. package/dist/src/rpc.d.ts +58 -5
  36. package/dist/src/rpc.js +17 -0
  37. package/dist/src/rpc.js.map +1 -1
  38. package/dist/src/step.d.ts +164 -2
  39. package/dist/src/step.js +85 -0
  40. package/dist/src/step.js.map +1 -1
  41. package/dist/src/value-mapper.d.ts +1 -0
  42. package/dist/src/value-mapper.js +75 -14
  43. package/dist/src/value-mapper.js.map +1 -1
  44. package/dist/src/wait.d.ts +180 -0
  45. package/dist/src/wait.js +157 -0
  46. package/dist/src/wait.js.map +1 -1
  47. package/dist/src/worker-dispatcher.js +55 -29
  48. package/dist/src/worker-dispatcher.js.map +1 -1
  49. package/dist/src/worker.d.ts +30 -1
  50. package/dist/src/worker.js +48 -2
  51. package/dist/src/worker.js.map +1 -1
  52. package/native/linux-aarch64/dex_blob_cache_node.node +0 -0
  53. package/native/linux-x86_64/dex_blob_cache_node.node +0 -0
  54. package/native/macos-aarch64/dex_blob_cache_node.node +0 -0
  55. package/native/macos-x86_64/dex_blob_cache_node.node +0 -0
  56. package/native/windows-x86_64/dex_blob_cache_node.node +0 -0
  57. package/package.json +2 -1
package/dist/src/flow.js CHANGED
@@ -5,99 +5,136 @@
5
5
  // See the LICENSE file in the repository root.
6
6
  //
7
7
  // SPDX-License-Identifier: LicenseRef-Super-Durable-1.0
8
+ import { AttributeMap, IndexType } from "./persistence.js";
9
+ import { IndexType as ProtoIndexType } from "./gen/dex.js";
10
+ import { FlowDefinitionError } from "./errors.js";
8
11
  import { registeredRPCs } from "./rpc.js";
9
12
  import { StepList } from "./step.js";
10
13
  import { requireName } from "./validation.js";
14
+ /**
15
+ * Validates and stores Flow definitions shared by Client and Worker.
16
+ * Construction checks names, Step/RPC signatures, persistence definitions, locks,
17
+ * and Attribute indexes atomically.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * const orders = new OrdersFlow();
22
+ * const registry = new Registry([orders]);
23
+ * ```
24
+ */
11
25
  export class Registry {
26
+ /** Registered Flow instances in input order. */
12
27
  flows;
28
+ /**
29
+ * Creates a Registry.
30
+ * @param flows - Flow instances with unique Flow types.
31
+ * @throws {@link FlowDefinitionError} when any public definition is invalid.
32
+ */
13
33
  constructor(flows) {
14
34
  const flowsByInstance = new Map();
15
35
  const flowsByName = new Map();
16
36
  const rpcsByMethod = new Map();
17
37
  const flowNames = new Set();
38
+ const attributeIndexes = new Map();
18
39
  for (const flow of flows) {
19
40
  const name = flowType(flow);
20
41
  if (flowNames.has(name)) {
21
- throw new TypeError(`duplicate Flow ${name}`);
42
+ throw new FlowDefinitionError(`duplicate Flow ${name}`);
22
43
  }
23
44
  flowNames.add(name);
24
- const registered = registerFlow(flow, name);
45
+ const registered = registerFlow(flow, name, attributeIndexes);
25
46
  flowsByInstance.set(flow, registered);
26
47
  flowsByName.set(name, registered);
27
48
  for (const rpc of registered.rpcs) {
28
49
  if (rpcsByMethod.has(rpc.method)) {
29
- throw new TypeError(`RPC method ${rpc.name} is registered by multiple Flows`);
50
+ throw new FlowDefinitionError(`Flow ${name} RPC method ${rpc.name} is registered by multiple Flows`);
30
51
  }
31
52
  rpcsByMethod.set(rpc.method, rpc);
32
53
  }
33
54
  }
34
55
  this.flows = Object.freeze([...flows]);
35
- registryMetadata.set(this, { flowsByInstance, flowsByName, rpcsByMethod });
56
+ registryMetadata.set(this, { flowsByInstance, flowsByName, rpcsByMethod, attributeIndexes });
36
57
  }
37
58
  }
38
59
  const registryMetadata = new WeakMap();
39
60
  export function registeredFlow(registry, flow) {
40
61
  const registered = metadata(registry).flowsByInstance.get(flow);
41
62
  if (registered === undefined) {
42
- throw new TypeError("Flow instance is not registered");
63
+ throw new FlowDefinitionError("Flow instance is not registered");
43
64
  }
44
65
  return registered;
45
66
  }
46
67
  export function registeredRPC(registry, method) {
47
68
  const registered = metadata(registry).rpcsByMethod.get(method);
48
69
  if (registered === undefined) {
49
- throw new TypeError("RPC method is not registered");
70
+ throw new FlowDefinitionError("RPC method is not registered");
50
71
  }
51
72
  return registered;
52
73
  }
53
74
  export function registeredFlowByName(registry, name) {
54
75
  const registered = metadata(registry).flowsByName.get(name);
55
76
  if (registered === undefined) {
56
- throw new TypeError(`Flow is not registered: ${name}`);
77
+ throw new FlowDefinitionError(`Flow is not registered: ${name}`);
57
78
  }
58
79
  return registered;
59
80
  }
60
81
  export function registeredStep(flow, name) {
61
82
  const registered = flow.steps.find((step) => step.name === name);
62
83
  if (registered === undefined) {
63
- throw new TypeError(`Step is not registered: ${name}`);
84
+ throw new FlowDefinitionError(`Flow ${flow.name} Step is not registered: ${name}`);
64
85
  }
65
86
  return registered;
66
87
  }
67
88
  export function registeredRPCByName(flow, name) {
68
89
  const registered = flow.rpcs.find((rpc) => rpc.name === name);
69
90
  if (registered === undefined) {
70
- throw new TypeError(`RPC is not registered: ${name}`);
91
+ throw new FlowDefinitionError(`Flow ${flow.name} RPC is not registered: ${name}`);
71
92
  }
72
93
  return registered;
73
94
  }
95
+ export function registeredAttributeIndexes(registry) {
96
+ return metadata(registry).attributeIndexes;
97
+ }
74
98
  function metadata(registry) {
75
99
  const value = registryMetadata.get(registry);
76
100
  if (value === undefined) {
77
- throw new TypeError("Registry was not initialized by the Dex SDK");
101
+ throw new FlowDefinitionError("Registry was not initialized by the Dex SDK");
78
102
  }
79
103
  return value;
80
104
  }
81
105
  function flowType(flow) {
82
- if (typeof flow.getFlowType !== "function") {
83
- throw new TypeError("Flow must implement getFlowType");
106
+ try {
107
+ if (typeof flow.getFlowType !== "function") {
108
+ throw new FlowDefinitionError("Flow must implement getFlowType");
109
+ }
110
+ const name = flow.getFlowType();
111
+ requireName(name);
112
+ return name;
113
+ }
114
+ catch (failure) {
115
+ throw definitionError("Flow registration failed", failure);
84
116
  }
85
- const name = flow.getFlowType();
86
- requireName(name);
87
- return name;
88
117
  }
89
- function stepType(step) {
118
+ function stepType(flowName, step) {
90
119
  if (typeof step.getStepType !== "function") {
91
- throw new TypeError("Step must implement getStepType");
120
+ throw new FlowDefinitionError(`Flow ${flowName} Step must implement getStepType`);
92
121
  }
93
122
  const name = step.getStepType();
94
123
  requireName(name);
95
124
  return name;
96
125
  }
97
- function registerFlow(flow, name) {
126
+ function registerFlow(flow, name, attributeIndexes) {
127
+ try {
128
+ return doRegisterFlow(flow, name, attributeIndexes);
129
+ }
130
+ catch (failure) {
131
+ throw definitionError(`Flow ${name} registration failed`, failure);
132
+ }
133
+ }
134
+ function doRegisterFlow(flow, name, attributeIndexes) {
98
135
  const stepDefinitions = flow.getSteps();
99
136
  if (!(stepDefinitions instanceof StepList)) {
100
- throw new TypeError("Flow steps must be a StepList");
137
+ throw new FlowDefinitionError(`Flow ${name} steps must be a StepList`);
101
138
  }
102
139
  const stepNames = new Set();
103
140
  const steps = [];
@@ -106,17 +143,17 @@ function registerFlow(flow, name) {
106
143
  for (const definition of stepDefinitions) {
107
144
  if (definition.isStartStep) {
108
145
  if (hasStartStep) {
109
- throw new TypeError("Flow must not have multiple start Steps");
146
+ throw new FlowDefinitionError(`Flow ${name} must not have multiple start Steps`);
110
147
  }
111
148
  hasStartStep = true;
112
149
  }
113
150
  const step = definition.step;
114
- const name = stepType(step);
115
- if (stepNames.has(name)) {
116
- throw new TypeError(`duplicate Step ${name}`);
151
+ const stepName = stepType(name, step);
152
+ if (stepNames.has(stepName)) {
153
+ throw new FlowDefinitionError(`Flow ${name} has duplicate Step ${stepName}`);
117
154
  }
118
- stepNames.add(name);
119
- const registered = { name, step, isStartStep: definition.isStartStep };
155
+ stepNames.add(stepName);
156
+ const registered = { name: stepName, step, isStartStep: definition.isStartStep };
120
157
  steps.push(registered);
121
158
  if (definition.isStartStep) {
122
159
  startStep = registered;
@@ -127,20 +164,33 @@ function registerFlow(flow, name) {
127
164
  const persistence = new Map();
128
165
  for (const definition of persistenceDefinitions) {
129
166
  if (persistence.has(definition.name)) {
130
- throw new TypeError(`duplicate persistence definition ${definition.name}`);
167
+ throw new FlowDefinitionError(`Flow ${name} has duplicate persistence definition ${definition.name}`);
131
168
  }
132
169
  persistence.set(definition.name, definition);
170
+ if ("index" in definition && definition.index !== undefined) {
171
+ const isMap = definition instanceof AttributeMap;
172
+ if (isMap && (definition.index.indexKey === undefined || definition.index.indexKey.length === 0)) {
173
+ throw new FlowDefinitionError(`Flow ${name} indexed AttributeMap ${definition.name} requires an index key`);
174
+ }
175
+ const key = definition.index.indexKey ?? definition.name;
176
+ const type = protoIndexType(definition.index.type);
177
+ const existing = attributeIndexes.get(key);
178
+ if (existing !== undefined && existing !== type) {
179
+ throw new FlowDefinitionError(`Attribute index ${key} has conflicting types ${existing} and ${type}`);
180
+ }
181
+ attributeIndexes.set(key, type);
182
+ }
133
183
  }
134
184
  const rpcNames = new Set();
135
185
  const attributes = new Set(schema.attributes ?? []);
136
186
  const rpcs = registeredRPCs(flow);
137
187
  for (const registeredRPC of rpcs) {
138
188
  if (rpcNames.has(registeredRPC.name)) {
139
- throw new TypeError(`duplicate RPC ${registeredRPC.name}`);
189
+ throw new FlowDefinitionError(`Flow ${name} has duplicate RPC ${registeredRPC.name}`);
140
190
  }
141
191
  rpcNames.add(registeredRPC.name);
142
192
  if (registeredRPC.options.lockAttributes?.some((lock) => !attributes.has(lock.attribute)) === true) {
143
- throw new TypeError(`RPC ${registeredRPC.name} locks an unregistered attribute`);
193
+ throw new FlowDefinitionError(`Flow ${name} RPC ${registeredRPC.name} locks an unregistered attribute`);
144
194
  }
145
195
  }
146
196
  return Object.freeze({
@@ -152,4 +202,22 @@ function registerFlow(flow, name) {
152
202
  persistence,
153
203
  });
154
204
  }
205
+ function protoIndexType(indexType) {
206
+ return {
207
+ [IndexType.KEYWORD]: ProtoIndexType.INDEX_TYPE_KEYWORD,
208
+ [IndexType.FULL_TEXT]: ProtoIndexType.INDEX_TYPE_TEXT,
209
+ [IndexType.KEYWORD_ARRAY]: ProtoIndexType.INDEX_TYPE_KEYWORD_ARRAY,
210
+ [IndexType.INT]: ProtoIndexType.INDEX_TYPE_INT,
211
+ [IndexType.DOUBLE]: ProtoIndexType.INDEX_TYPE_DOUBLE,
212
+ [IndexType.BOOL]: ProtoIndexType.INDEX_TYPE_BOOL,
213
+ [IndexType.DATETIME]: ProtoIndexType.INDEX_TYPE_DATETIME,
214
+ }[indexType];
215
+ }
216
+ function definitionError(context, failure) {
217
+ if (failure instanceof FlowDefinitionError) {
218
+ return failure;
219
+ }
220
+ const detail = failure instanceof Error ? failure.message : String(failure);
221
+ return new FlowDefinitionError(`${context}: ${detail}`, { cause: failure });
222
+ }
155
223
  //# sourceMappingURL=flow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/flow.ts"],"names":[],"mappings":"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"}
@@ -185,6 +185,12 @@ export interface AttributeWrite {
185
185
  value: Value | undefined;
186
186
  /** Omit when indexing is inferred or attribute is not indexed. */
187
187
  indexConfig: IndexConfig | undefined;
188
+ /** Omit or disable to keep this write out of the configured Attribute Store. */
189
+ syncConfig: AttributeSyncConfig | undefined;
190
+ }
191
+ export interface AttributeSyncConfig {
192
+ /** Enqueues this write for the Flow's current Attribute Store target. */
193
+ enabled: boolean;
188
194
  }
189
195
  export interface KV {
190
196
  key: string;
@@ -256,6 +262,8 @@ export interface FlowConfig {
256
262
  continueAsNewPageSizeInBytes?: number | undefined;
257
263
  stepDurability?: StepDurability | undefined;
258
264
  workerTarget: WorkerTarget | undefined;
265
+ /** Present empty disables future synchronization; non-empty selects a Server-configured store. */
266
+ attributeSyncConfigName?: string | undefined;
259
267
  }
260
268
  export interface WorkerTarget {
261
269
  /** Plaintext gRPC dial target, not an HTTP URL. */
@@ -354,12 +362,23 @@ export interface SearchFlowsResponse {
354
362
  export interface SearchFlowsResponseEntry {
355
363
  flowId: string;
356
364
  runId: string;
357
- searchAttributes: KV[];
365
+ indexedAttributes: KV[];
358
366
  flowType: string;
359
367
  flowStatus: FlowStatus;
360
368
  startTime: Date | undefined;
361
369
  closeTime: Date | undefined;
362
370
  }
371
+ export interface SyncAttributeIndexRequest {
372
+ attributeIndexes: {
373
+ [key: string]: IndexType;
374
+ };
375
+ }
376
+ export interface SyncAttributeIndexRequest_AttributeIndexesEntry {
377
+ key: string;
378
+ value: IndexType;
379
+ }
380
+ export interface SyncAttributeIndexResponse {
381
+ }
363
382
  export interface FlowExecutionID {
364
383
  flowId: string;
365
384
  runId: string;
@@ -473,10 +492,7 @@ export interface FlowClosedHistoryEvent {
473
492
  continuedToRunId: string;
474
493
  }
475
494
  export interface StepMethodFailure {
476
- message: string;
477
- errorType: string;
478
- stackTrace: string;
479
- retryState: string;
495
+ backendError: string;
480
496
  details: ErrorResponse | undefined;
481
497
  attempt: number;
482
498
  }
@@ -573,6 +589,7 @@ export interface ActiveStepExecutionState {
573
589
  completedConditions: StepExecutionCompletedConditions | undefined;
574
590
  stepExecutionLocals: KV[];
575
591
  timers: TimerInfo[];
592
+ lastFailureInfo: StepMethodFailure | undefined;
576
593
  }
577
594
  export interface GetFlowStateRequest {
578
595
  flowId: string;
@@ -681,10 +698,12 @@ export interface ErrorResponse {
681
698
  originalWorkerErrorDetail: string;
682
699
  originalWorkerErrorType: string;
683
700
  originalWorkerErrorStatus: number;
701
+ originalWorkerErrorStackTrace: string;
684
702
  }
685
703
  export interface WorkerErrorResponse {
686
704
  detail: string;
687
705
  errorType: string;
706
+ stackTrace: string;
688
707
  }
689
708
  export interface ChannelInfo {
690
709
  size: number;
@@ -874,6 +893,7 @@ export interface ContinueAsNewDump {
874
893
  staleSkipTimers: StaleSkipTimer[];
875
894
  /** Stored values only; index metadata remains in backend search attributes. */
876
895
  attributes: KV[];
896
+ pendingAttributeSyncItems: AttributeSyncItem[];
877
897
  }
878
898
  export interface ContinueAsNewDump_ChannelReceivedEntry {
879
899
  key: string;
@@ -887,8 +907,7 @@ export interface InterpreterWorkflowInput {
887
907
  startStepType: string;
888
908
  stepInput: Value | undefined;
889
909
  stepOptions: StepOptions | undefined;
890
- /** IndexConfig is processed before workflow start. */
891
- initAttributes: KV[];
910
+ initAttributes: AttributeWrite[];
892
911
  config: FlowConfig | undefined;
893
912
  /** When true, ignore start_step_type / step_input / step_options / init_attributes. */
894
913
  isResumeFromContinueAsNew: boolean;
@@ -938,6 +957,16 @@ export interface CleanupBlobStoreActivityInput {
938
957
  export interface CleanupBlobStoreActivityOutput {
939
958
  totalDeleted: number;
940
959
  }
960
+ export interface AttributeSyncItem {
961
+ configName: string;
962
+ key: string;
963
+ value: Value | undefined;
964
+ }
965
+ export interface SyncAttributeBatchActivityInput {
966
+ flowId: string;
967
+ configName: string;
968
+ items: AttributeSyncItem[];
969
+ }
941
970
  export interface ExecuteRpcSignalRequest {
942
971
  rpcInput: Value | undefined;
943
972
  rpcOutput: Value | undefined;
@@ -951,7 +980,8 @@ export interface SkipTimerSignalRequest {
951
980
  timerConditionId: string;
952
981
  timerConditionIndex: number;
953
982
  }
954
- export interface FailFlowSignalRequest {
983
+ export interface StopFlowSignalRequest {
984
+ stopType: StopType;
955
985
  reason: string;
956
986
  }
957
987
  export interface GetAttributesQueryRequest {
@@ -1016,6 +1046,7 @@ export interface StepExecutionNumbers {
1016
1046
  export declare const Value: MessageFns<Value>;
1017
1047
  export declare const EncodedObject: MessageFns<EncodedObject>;
1018
1048
  export declare const AttributeWrite: MessageFns<AttributeWrite>;
1049
+ export declare const AttributeSyncConfig: MessageFns<AttributeSyncConfig>;
1019
1050
  export declare const KV: MessageFns<KV>;
1020
1051
  export declare const IndexConfig: MessageFns<IndexConfig>;
1021
1052
  export declare const Context: MessageFns<Context>;
@@ -1044,6 +1075,9 @@ export declare const WaitForFlowResponse: MessageFns<WaitForFlowResponse>;
1044
1075
  export declare const SearchFlowsRequest: MessageFns<SearchFlowsRequest>;
1045
1076
  export declare const SearchFlowsResponse: MessageFns<SearchFlowsResponse>;
1046
1077
  export declare const SearchFlowsResponseEntry: MessageFns<SearchFlowsResponseEntry>;
1078
+ export declare const SyncAttributeIndexRequest: MessageFns<SyncAttributeIndexRequest>;
1079
+ export declare const SyncAttributeIndexRequest_AttributeIndexesEntry: MessageFns<SyncAttributeIndexRequest_AttributeIndexesEntry>;
1080
+ export declare const SyncAttributeIndexResponse: MessageFns<SyncAttributeIndexResponse>;
1047
1081
  export declare const FlowExecutionID: MessageFns<FlowExecutionID>;
1048
1082
  export declare const GetFlowSummaryRequest: MessageFns<GetFlowSummaryRequest>;
1049
1083
  export declare const GetFlowSummaryResponse: MessageFns<GetFlowSummaryResponse>;
@@ -1137,9 +1171,11 @@ export declare const InvokeWorkerRPCActivityInput: MessageFns<InvokeWorkerRPCAct
1137
1171
  export declare const InvokeWorkerRPCActivityOutput: MessageFns<InvokeWorkerRPCActivityOutput>;
1138
1172
  export declare const CleanupBlobStoreActivityInput: MessageFns<CleanupBlobStoreActivityInput>;
1139
1173
  export declare const CleanupBlobStoreActivityOutput: MessageFns<CleanupBlobStoreActivityOutput>;
1174
+ export declare const AttributeSyncItem: MessageFns<AttributeSyncItem>;
1175
+ export declare const SyncAttributeBatchActivityInput: MessageFns<SyncAttributeBatchActivityInput>;
1140
1176
  export declare const ExecuteRpcSignalRequest: MessageFns<ExecuteRpcSignalRequest>;
1141
1177
  export declare const SkipTimerSignalRequest: MessageFns<SkipTimerSignalRequest>;
1142
- export declare const FailFlowSignalRequest: MessageFns<FailFlowSignalRequest>;
1178
+ export declare const StopFlowSignalRequest: MessageFns<StopFlowSignalRequest>;
1143
1179
  export declare const GetAttributesQueryRequest: MessageFns<GetAttributesQueryRequest>;
1144
1180
  export declare const GetAttributesQueryResponse: MessageFns<GetAttributesQueryResponse>;
1145
1181
  export declare const PrepareRpcQueryRequest: MessageFns<PrepareRpcQueryRequest>;
@@ -1228,6 +1264,15 @@ export declare const FlowServiceService: {
1228
1264
  readonly responseSerialize: (value: SearchFlowsResponse) => Buffer;
1229
1265
  readonly responseDeserialize: (value: Buffer) => SearchFlowsResponse;
1230
1266
  };
1267
+ readonly syncAttributeIndexes: {
1268
+ readonly path: "/dex.FlowService/SyncAttributeIndexes";
1269
+ readonly requestStream: false;
1270
+ readonly responseStream: false;
1271
+ readonly requestSerialize: (value: SyncAttributeIndexRequest) => Buffer;
1272
+ readonly requestDeserialize: (value: Buffer) => SyncAttributeIndexRequest;
1273
+ readonly responseSerialize: (value: SyncAttributeIndexResponse) => Buffer;
1274
+ readonly responseDeserialize: (value: Buffer) => SyncAttributeIndexResponse;
1275
+ };
1231
1276
  readonly getFlowSummary: {
1232
1277
  readonly path: "/dex.FlowService/GetFlowSummary";
1233
1278
  readonly requestStream: false;
@@ -1346,6 +1391,7 @@ export interface FlowServiceServer extends UntypedServiceImplementation {
1346
1391
  loadBlobs: handleUnaryCall<LoadBlobsRequest, LoadBlobsResponse>;
1347
1392
  waitForFlow: handleUnaryCall<WaitForFlowRequest, WaitForFlowResponse>;
1348
1393
  searchFlows: handleUnaryCall<SearchFlowsRequest, SearchFlowsResponse>;
1394
+ syncAttributeIndexes: handleUnaryCall<SyncAttributeIndexRequest, SyncAttributeIndexResponse>;
1349
1395
  getFlowSummary: handleUnaryCall<GetFlowSummaryRequest, GetFlowSummaryResponse>;
1350
1396
  getHistoryEvents: handleUnaryCall<GetHistoryEventsRequest, GetHistoryEventsResponse>;
1351
1397
  waitForHistoryEvent: handleUnaryCall<WaitForHistoryEventRequest, WaitForHistoryEventResponse>;
@@ -1384,6 +1430,9 @@ export interface FlowServiceClient extends Client {
1384
1430
  searchFlows(request: SearchFlowsRequest, callback: (error: ServiceError | null, response: SearchFlowsResponse) => void): ClientUnaryCall;
1385
1431
  searchFlows(request: SearchFlowsRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SearchFlowsResponse) => void): ClientUnaryCall;
1386
1432
  searchFlows(request: SearchFlowsRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: SearchFlowsResponse) => void): ClientUnaryCall;
1433
+ syncAttributeIndexes(request: SyncAttributeIndexRequest, callback: (error: ServiceError | null, response: SyncAttributeIndexResponse) => void): ClientUnaryCall;
1434
+ syncAttributeIndexes(request: SyncAttributeIndexRequest, metadata: Metadata, callback: (error: ServiceError | null, response: SyncAttributeIndexResponse) => void): ClientUnaryCall;
1435
+ syncAttributeIndexes(request: SyncAttributeIndexRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: SyncAttributeIndexResponse) => void): ClientUnaryCall;
1387
1436
  getFlowSummary(request: GetFlowSummaryRequest, callback: (error: ServiceError | null, response: GetFlowSummaryResponse) => void): ClientUnaryCall;
1388
1437
  getFlowSummary(request: GetFlowSummaryRequest, metadata: Metadata, callback: (error: ServiceError | null, response: GetFlowSummaryResponse) => void): ClientUnaryCall;
1389
1438
  getFlowSummary(request: GetFlowSummaryRequest, metadata: Metadata, options: Partial<CallOptions>, callback: (error: ServiceError | null, response: GetFlowSummaryResponse) => void): ClientUnaryCall;