ankka 0.13.0 → 0.14.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.
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.15.0 with parameter "target=ts,import_extension=ts,erasable_syntax=true"
1
+ // @generated by protoc-gen-es v2.16.0 with parameter "target=ts,import_extension=ts,erasable_syntax=true"
2
2
  // @generated from file ankka/protocol/v1/consumer.proto (package ankka.protocol.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
@@ -107,6 +107,18 @@ export type EventSourcedIn_Event = Message<"ankka.protocol.v1.EventSourcedIn.Eve
107
107
  * @generated from field: string installation = 3;
108
108
  */
109
109
  installation: string;
110
+ /**
111
+ * 1.22: who acted, as recorded; empty when none
112
+ *
113
+ * @generated from field: string attribution = 4;
114
+ */
115
+ attribution: string;
116
+ /**
117
+ * 1.22: where it was forwarded from, as recorded
118
+ *
119
+ * @generated from field: string forwarded_from = 5;
120
+ */
121
+ forwardedFrom: string;
110
122
  };
111
123
  /**
112
124
  * Describes the message ankka.protocol.v1.EventSourcedIn.Event.
@@ -156,6 +168,18 @@ export type EventSourcedIn_Command = Message<"ankka.protocol.v1.EventSourcedIn.C
156
168
  * @generated from field: bool at_home = 7;
157
169
  */
158
170
  atHome: boolean;
171
+ /**
172
+ * 1.22: the subject of the principal who made the original call; empty when none named one.
173
+ *
174
+ * @generated from field: string attribution = 8;
175
+ */
176
+ attribution: string;
177
+ /**
178
+ * 1.22: the installation this command was forwarded from to its home; empty when it was not.
179
+ *
180
+ * @generated from field: string forwarded_from = 9;
181
+ */
182
+ forwardedFrom: string;
159
183
  };
160
184
  /**
161
185
  * Describes the message ankka.protocol.v1.EventSourcedIn.Command.
@@ -5,7 +5,7 @@ import { file_ankka_protocol_v1_payload } from "./payload_pb.js";
5
5
  /**
6
6
  * Describes the file ankka/protocol/v1/event_sourced.proto.
7
7
  */
8
- export const file_ankka_protocol_v1_event_sourced = /*@__PURE__*/ fileDesc("CiVhbmtrYS9wcm90b2NvbC92MS9ldmVudF9zb3VyY2VkLnByb3RvEhFhbmtrYS5wcm90b2NvbC52MSLRBQoORXZlbnRTb3VyY2VkSW4SNgoEaW5pdBgBIAEoCzImLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluLkluaXRIABI4CgVldmVudBgCIAEoCzInLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluLkV2ZW50SAASPAoHY29tbWFuZBgDIAEoCzIpLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluLkNvbW1hbmRIABqVAQoESW5pdBIUCgxjb21wb25lbnRfaWQYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEkEKCHNuYXBzaG90GAMgASgLMiouYW5ra2EucHJvdG9jb2wudjEuRXZlbnRTb3VyY2VkSW4uU25hcHNob3RIAIgBARIUCgxpbnN0YWxsYXRpb24YBCABKAlCCwoJX3NuYXBzaG90GkkKCFNuYXBzaG90EhAKCHNlcXVlbmNlGAEgASgDEisKB3BheWxvYWQYAiABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5QYXlsb2FkGlwKBUV2ZW50EhAKCHNlcXVlbmNlGAEgASgDEisKB3BheWxvYWQYAiABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5QYXlsb2FkEhQKDGluc3RhbGxhdGlvbhgDIAEoCRrCAQoHQ29tbWFuZBIKCgJpZBgBIAEoAxIMCgRuYW1lGAIgASgJEisKB3BheWxvYWQYAyABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5QYXlsb2FkEi0KCG1ldGFkYXRhGAQgASgLMhsuYW5ra2EucHJvdG9jb2wudjEuTWV0YWRhdGESGgoSc25hcHNob3RfcmVxdWVzdGVkGAUgASgIEhQKDGluc3RhbGxhdGlvbhgGIAEoCRIPCgdhdF9ob21lGAcgASgIQgkKB21lc3NhZ2Ui0QMKD0V2ZW50U291cmNlZE91dBI5CgVyZXBseRgBIAEoCzIoLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZE91dC5SZXBseUgAEi0KB2ZhaWx1cmUYAiABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5GYWlsdXJlSAAayAIKBVJlcGx5EhIKCmNvbW1hbmRfaWQYASABKAMSKgoGZXZlbnRzGAIgAygLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZBI0CglyZXRlbnRpb24YAyABKAsyHC5hbmtrYS5wcm90b2NvbC52MS5SZXRlbnRpb25IAIgBARIrCgdvdXRjb21lGAQgASgLMhouYW5ra2EucHJvdG9jb2wudjEuT3V0Y29tZRIxCghzbmFwc2hvdBgFIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWRIAYgBARI+CgtyZXBsaWNhdGlvbhgGIAEoCzIkLmFua2thLnByb3RvY29sLnYxLlJlcGxpY2F0aW9uQ2hhbmdlSAKIAQFCDAoKX3JldGVudGlvbkILCglfc25hcHNob3RCDgoMX3JlcGxpY2F0aW9uQgkKB21lc3NhZ2UingEKEVJlcGxpY2F0aW9uQ2hhbmdlEhYKDGhhbmRfb3Zlcl90bxgBIAEoCUgAEj0KA3NldBgCIAEoCzIuLmFua2thLnByb3RvY29sLnYxLlJlcGxpY2F0aW9uQ2hhbmdlLlNldENoYW5nZUgAGigKCVNldENoYW5nZRILCgNhZGQYASADKAkSDgoGcmVtb3ZlGAIgAygJQggKBmNoYW5nZTJjCgxFdmVudFNvdXJjZWQSUwoGSGFuZGxlEiEuYW5ra2EucHJvdG9jb2wudjEuRXZlbnRTb3VyY2VkSW4aIi5hbmtrYS5wcm90b2NvbC52MS5FdmVudFNvdXJjZWRPdXQoATABYgZwcm90bzM", [file_ankka_protocol_v1_payload]);
8
+ export const file_ankka_protocol_v1_event_sourced = /*@__PURE__*/ fileDesc("CiVhbmtrYS9wcm90b2NvbC92MS9ldmVudF9zb3VyY2VkLnByb3RvEhFhbmtrYS5wcm90b2NvbC52MSKsBgoORXZlbnRTb3VyY2VkSW4SNgoEaW5pdBgBIAEoCzImLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluLkluaXRIABI4CgVldmVudBgCIAEoCzInLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluLkV2ZW50SAASPAoHY29tbWFuZBgDIAEoCzIpLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluLkNvbW1hbmRIABqVAQoESW5pdBIUCgxjb21wb25lbnRfaWQYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEkEKCHNuYXBzaG90GAMgASgLMiouYW5ra2EucHJvdG9jb2wudjEuRXZlbnRTb3VyY2VkSW4uU25hcHNob3RIAIgBARIUCgxpbnN0YWxsYXRpb24YBCABKAlCCwoJX3NuYXBzaG90GkkKCFNuYXBzaG90EhAKCHNlcXVlbmNlGAEgASgDEisKB3BheWxvYWQYAiABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5QYXlsb2FkGokBCgVFdmVudBIQCghzZXF1ZW5jZRgBIAEoAxIrCgdwYXlsb2FkGAIgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZBIUCgxpbnN0YWxsYXRpb24YAyABKAkSEwoLYXR0cmlidXRpb24YBCABKAkSFgoOZm9yd2FyZGVkX2Zyb20YBSABKAka7wEKB0NvbW1hbmQSCgoCaWQYASABKAMSDAoEbmFtZRgCIAEoCRIrCgdwYXlsb2FkGAMgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZBItCghtZXRhZGF0YRgEIAEoCzIbLmFua2thLnByb3RvY29sLnYxLk1ldGFkYXRhEhoKEnNuYXBzaG90X3JlcXVlc3RlZBgFIAEoCBIUCgxpbnN0YWxsYXRpb24YBiABKAkSDwoHYXRfaG9tZRgHIAEoCBITCgthdHRyaWJ1dGlvbhgIIAEoCRIWCg5mb3J3YXJkZWRfZnJvbRgJIAEoCUIJCgdtZXNzYWdlItEDCg9FdmVudFNvdXJjZWRPdXQSOQoFcmVwbHkYASABKAsyKC5hbmtrYS5wcm90b2NvbC52MS5FdmVudFNvdXJjZWRPdXQuUmVwbHlIABItCgdmYWlsdXJlGAIgASgLMhouYW5ra2EucHJvdG9jb2wudjEuRmFpbHVyZUgAGsgCCgVSZXBseRISCgpjb21tYW5kX2lkGAEgASgDEioKBmV2ZW50cxgCIAMoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWQSNAoJcmV0ZW50aW9uGAMgASgLMhwuYW5ra2EucHJvdG9jb2wudjEuUmV0ZW50aW9uSACIAQESKwoHb3V0Y29tZRgEIAEoCzIaLmFua2thLnByb3RvY29sLnYxLk91dGNvbWUSMQoIc25hcHNob3QYBSABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5QYXlsb2FkSAGIAQESPgoLcmVwbGljYXRpb24YBiABKAsyJC5hbmtrYS5wcm90b2NvbC52MS5SZXBsaWNhdGlvbkNoYW5nZUgCiAEBQgwKCl9yZXRlbnRpb25CCwoJX3NuYXBzaG90Qg4KDF9yZXBsaWNhdGlvbkIJCgdtZXNzYWdlIp4BChFSZXBsaWNhdGlvbkNoYW5nZRIWCgxoYW5kX292ZXJfdG8YASABKAlIABI9CgNzZXQYAiABKAsyLi5hbmtrYS5wcm90b2NvbC52MS5SZXBsaWNhdGlvbkNoYW5nZS5TZXRDaGFuZ2VIABooCglTZXRDaGFuZ2USCwoDYWRkGAEgAygJEg4KBnJlbW92ZRgCIAMoCUIICgZjaGFuZ2UyYwoMRXZlbnRTb3VyY2VkElMKBkhhbmRsZRIhLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZEluGiIuYW5ra2EucHJvdG9jb2wudjEuRXZlbnRTb3VyY2VkT3V0KAEwAWIGcHJvdG8z", [file_ankka_protocol_v1_payload]);
9
9
  /**
10
10
  * Describes the message ankka.protocol.v1.EventSourcedIn.
11
11
  * Use `create(EventSourcedInSchema)` to create a new message.
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.15.0 with parameter "target=ts,import_extension=ts,erasable_syntax=true"
1
+ // @generated by protoc-gen-es v2.16.0 with parameter "target=ts,import_extension=ts,erasable_syntax=true"
2
2
  // @generated from file ankka/protocol/v1/timed_action.proto (package ankka.protocol.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
@@ -1,4 +1,4 @@
1
- // @generated by protoc-gen-es v2.15.0 with parameter "target=ts,import_extension=ts,erasable_syntax=true"
1
+ // @generated by protoc-gen-es v2.16.0 with parameter "target=ts,import_extension=ts,erasable_syntax=true"
2
2
  // @generated from file ankka/protocol/v1/view.proto (package ankka.protocol.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
  import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
@@ -179,6 +179,18 @@ export type FoldRequest = Message<"ankka.protocol.v1.FoldRequest"> & {
179
179
  * @generated from field: bool mirrored = 7;
180
180
  */
181
181
  mirrored: boolean;
182
+ /**
183
+ * 1.22: who acted on the command that wrote the event; empty when none
184
+ *
185
+ * @generated from field: string attribution = 8;
186
+ */
187
+ attribution: string;
188
+ /**
189
+ * 1.22: where that command was forwarded from; empty when it was not
190
+ *
191
+ * @generated from field: string forwarded_from = 9;
192
+ */
193
+ forwardedFrom: string;
182
194
  };
183
195
  /**
184
196
  * Describes the message ankka.protocol.v1.FoldRequest.
@@ -14,7 +14,7 @@ import { file_ankka_protocol_v1_client } from "./client_pb.js";
14
14
  /**
15
15
  * Describes the file ankka/protocol/v1/wasm.proto.
16
16
  */
17
- export const file_ankka_protocol_v1_wasm = /*@__PURE__*/ fileDesc("ChxhbmtrYS9wcm90b2NvbC92MS93YXNtLnByb3RvEhFhbmtrYS5wcm90b2NvbC52MSJYCghXYXNtU3BlYxIlCgRzcGVjGAEgASgLMhcuYW5ra2EucHJvdG9jb2wudjEuU3BlYxIQCghzdGF0ZWZ1bBgCIAMoCRITCgthYmlfdmVyc2lvbhgDIAEoCSLfAgoNSGFuZGxlUmVxdWVzdBIlCgRraW5kGAEgASgOMhcuYW5ra2EucHJvdG9jb2wudjEuS2luZBIUCgxjb21wb25lbnRfaWQYAiABKAkSEQoJZW50aXR5X2lkGAMgASgJEi4KBXN0YXRlGAQgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZEgBiAEBEkIKDWV2ZW50X3NvdXJjZWQYCiABKAsyKS5hbmtrYS5wcm90b2NvbC52MS5FdmVudFNvdXJjZWRJbi5Db21tYW5kSAASOgoJa2V5X3ZhbHVlGAsgASgLMiUuYW5ra2EucHJvdG9jb2wudjEuS2V5VmFsdWVJbi5Db21tYW5kSAASOQoId29ya2Zsb3cYDCABKAsyJS5hbmtrYS5wcm90b2NvbC52MS5Xb3JrZmxvd0luLkNvbW1hbmRIAEIJCgdjb21tYW5kQggKBl9zdGF0ZSLGAgoLSGFuZGxlUmVwbHkSQQoNZXZlbnRfc291cmNlZBgKIAEoCzIoLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZE91dC5SZXBseUgAEjkKCWtleV92YWx1ZRgLIAEoCzIkLmFua2thLnByb3RvY29sLnYxLktleVZhbHVlT3V0LlJlcGx5SAASOAoId29ya2Zsb3cYDCABKAsyJC5hbmtrYS5wcm90b2NvbC52MS5Xb3JrZmxvd091dC5SZXBseUgAEi4KBXN0YXRlGAIgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZEgBiAEBEjAKB2ZhaWx1cmUYAyABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5GYWlsdXJlSAKIAQFCBwoFcmVwbHlCCAoGX3N0YXRlQgoKCF9mYWlsdXJlItUBCgtGb2xkUmVxdWVzdBIUCgxjb21wb25lbnRfaWQYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEi4KBXN0YXRlGAMgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZEgAiAEBEikKBWV2ZW50GAQgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZBIQCghzZXF1ZW5jZRgFIAEoAxIUCgxpbnN0YWxsYXRpb24YBiABKAkSEAoIbWlycm9yZWQYByABKAhCCAoGX3N0YXRlInQKCUZvbGRSZXBseRIpCgVzdGF0ZRgBIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWQSMAoHZmFpbHVyZRgCIAEoCzIaLmFua2thLnByb3RvY29sLnYxLkZhaWx1cmVIAIgBAUIKCghfZmFpbHVyZSKpAQoLU3RlcFJlcXVlc3QSFAoMY29tcG9uZW50X2lkGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCRIuCgVzdGF0ZRgDIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWRIAIgBARI3CghydW5fc3RlcBgEIAEoCzIlLmFua2thLnByb3RvY29sLnYxLldvcmtmbG93SW4uUnVuU3RlcEIICgZfc3RhdGUivAEKCVN0ZXBSZXBseRI3CgVyZXBseRgBIAEoCzIoLmFua2thLnByb3RvY29sLnYxLldvcmtmbG93T3V0LlN0ZXBSZXBseRIuCgVzdGF0ZRgCIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWRIAIgBARIwCgdmYWlsdXJlGAMgASgLMhouYW5ra2EucHJvdG9jb2wudjEuRmFpbHVyZUgBiAEBQggKBl9zdGF0ZUIKCghfZmFpbHVyZSI0CglQYXNzaXZhdGUSFAoMY29tcG9uZW50X2lkGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCSIdCg1Db25maWdSZXF1ZXN0EgwKBG5hbWUYASABKAkiKwoLQ29uZmlnUmVwbHkSEgoFdmFsdWUYASABKAlIAIgBAUIICgZfdmFsdWUiPgoMU3RyZWFtVG9rZW5zEi4KBnRva2VucxgBIAMoCzIeLmFua2thLnByb3RvY29sLnYxLlN0cmVhbVRva2VuYgZwcm90bzM", [file_ankka_protocol_v1_payload, file_ankka_protocol_v1_discovery, file_ankka_protocol_v1_event_sourced, file_ankka_protocol_v1_key_value, file_ankka_protocol_v1_workflow, file_ankka_protocol_v1_client]);
17
+ export const file_ankka_protocol_v1_wasm = /*@__PURE__*/ fileDesc("ChxhbmtrYS9wcm90b2NvbC92MS93YXNtLnByb3RvEhFhbmtrYS5wcm90b2NvbC52MSJYCghXYXNtU3BlYxIlCgRzcGVjGAEgASgLMhcuYW5ra2EucHJvdG9jb2wudjEuU3BlYxIQCghzdGF0ZWZ1bBgCIAMoCRITCgthYmlfdmVyc2lvbhgDIAEoCSLfAgoNSGFuZGxlUmVxdWVzdBIlCgRraW5kGAEgASgOMhcuYW5ra2EucHJvdG9jb2wudjEuS2luZBIUCgxjb21wb25lbnRfaWQYAiABKAkSEQoJZW50aXR5X2lkGAMgASgJEi4KBXN0YXRlGAQgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZEgBiAEBEkIKDWV2ZW50X3NvdXJjZWQYCiABKAsyKS5hbmtrYS5wcm90b2NvbC52MS5FdmVudFNvdXJjZWRJbi5Db21tYW5kSAASOgoJa2V5X3ZhbHVlGAsgASgLMiUuYW5ra2EucHJvdG9jb2wudjEuS2V5VmFsdWVJbi5Db21tYW5kSAASOQoId29ya2Zsb3cYDCABKAsyJS5hbmtrYS5wcm90b2NvbC52MS5Xb3JrZmxvd0luLkNvbW1hbmRIAEIJCgdjb21tYW5kQggKBl9zdGF0ZSLGAgoLSGFuZGxlUmVwbHkSQQoNZXZlbnRfc291cmNlZBgKIAEoCzIoLmFua2thLnByb3RvY29sLnYxLkV2ZW50U291cmNlZE91dC5SZXBseUgAEjkKCWtleV92YWx1ZRgLIAEoCzIkLmFua2thLnByb3RvY29sLnYxLktleVZhbHVlT3V0LlJlcGx5SAASOAoId29ya2Zsb3cYDCABKAsyJC5hbmtrYS5wcm90b2NvbC52MS5Xb3JrZmxvd091dC5SZXBseUgAEi4KBXN0YXRlGAIgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZEgBiAEBEjAKB2ZhaWx1cmUYAyABKAsyGi5hbmtrYS5wcm90b2NvbC52MS5GYWlsdXJlSAKIAQFCBwoFcmVwbHlCCAoGX3N0YXRlQgoKCF9mYWlsdXJlIoICCgtGb2xkUmVxdWVzdBIUCgxjb21wb25lbnRfaWQYASABKAkSEQoJZW50aXR5X2lkGAIgASgJEi4KBXN0YXRlGAMgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZEgAiAEBEikKBWV2ZW50GAQgASgLMhouYW5ra2EucHJvdG9jb2wudjEuUGF5bG9hZBIQCghzZXF1ZW5jZRgFIAEoAxIUCgxpbnN0YWxsYXRpb24YBiABKAkSEAoIbWlycm9yZWQYByABKAgSEwoLYXR0cmlidXRpb24YCCABKAkSFgoOZm9yd2FyZGVkX2Zyb20YCSABKAlCCAoGX3N0YXRlInQKCUZvbGRSZXBseRIpCgVzdGF0ZRgBIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWQSMAoHZmFpbHVyZRgCIAEoCzIaLmFua2thLnByb3RvY29sLnYxLkZhaWx1cmVIAIgBAUIKCghfZmFpbHVyZSKpAQoLU3RlcFJlcXVlc3QSFAoMY29tcG9uZW50X2lkGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCRIuCgVzdGF0ZRgDIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWRIAIgBARI3CghydW5fc3RlcBgEIAEoCzIlLmFua2thLnByb3RvY29sLnYxLldvcmtmbG93SW4uUnVuU3RlcEIICgZfc3RhdGUivAEKCVN0ZXBSZXBseRI3CgVyZXBseRgBIAEoCzIoLmFua2thLnByb3RvY29sLnYxLldvcmtmbG93T3V0LlN0ZXBSZXBseRIuCgVzdGF0ZRgCIAEoCzIaLmFua2thLnByb3RvY29sLnYxLlBheWxvYWRIAIgBARIwCgdmYWlsdXJlGAMgASgLMhouYW5ra2EucHJvdG9jb2wudjEuRmFpbHVyZUgBiAEBQggKBl9zdGF0ZUIKCghfZmFpbHVyZSI0CglQYXNzaXZhdGUSFAoMY29tcG9uZW50X2lkGAEgASgJEhEKCWVudGl0eV9pZBgCIAEoCSIdCg1Db25maWdSZXF1ZXN0EgwKBG5hbWUYASABKAkiKwoLQ29uZmlnUmVwbHkSEgoFdmFsdWUYASABKAlIAIgBAUIICgZfdmFsdWUiPgoMU3RyZWFtVG9rZW5zEi4KBnRva2VucxgBIAMoCzIeLmFua2thLnByb3RvY29sLnYxLlN0cmVhbVRva2VuYgZwcm90bzM", [file_ankka_protocol_v1_payload, file_ankka_protocol_v1_discovery, file_ankka_protocol_v1_event_sourced, file_ankka_protocol_v1_key_value, file_ankka_protocol_v1_workflow, file_ankka_protocol_v1_client]);
18
18
  /**
19
19
  * Describes the message ankka.protocol.v1.WasmSpec.
20
20
  * Use `create(WasmSpecSchema)` to create a new message.
package/dist/context.d.ts CHANGED
@@ -17,19 +17,27 @@ export interface CommandContext {
17
17
  * the home, so this is `false` only for a query a follower answers; `true` for an entity not replicated.
18
18
  */
19
19
  readonly isHome: boolean;
20
+ /** The subject of the principal who made the original call (1.22); absent when none named one. */
21
+ readonly attribution?: string;
22
+ /** The installation this command was forwarded from to its home (1.22); absent when it was not. */
23
+ readonly forwardedFrom?: string;
20
24
  }
21
- export declare function commandContext(componentId: string, entityId: string, sequenceNumber: bigint, metadata: Metadata, now?: () => Instant, installation?: string | null, isHome?: boolean): CommandContext;
25
+ export declare function commandContext(componentId: string, entityId: string, sequenceNumber: bigint, metadata: Metadata, now?: () => Instant, installation?: string | null, isHome?: boolean, attribution?: string, forwardedFrom?: string): CommandContext;
22
26
  /**
23
27
  * Where the event `applyEvent` is applying was written (1.19): the installation (`null` when none is
24
28
  * named; an event from before replication reads as written at the home), whether that was this
25
- * installation, and its sequence number. The third argument of `applyEvent`.
29
+ * installation, and its sequence number; who acted on the command that wrote it and where that
30
+ * command was forwarded from, as recorded (1.22; absent when nothing was). The third argument of
31
+ * `applyEvent`.
26
32
  */
27
33
  export interface EventContext {
28
34
  readonly installation: string | null;
29
35
  readonly isLocal: boolean;
30
36
  readonly sequence: bigint;
37
+ readonly attribution?: string;
38
+ readonly forwardedFrom?: string;
31
39
  }
32
- export declare function eventContext(installation: string | null, isLocal: boolean, sequence: bigint): EventContext;
40
+ export declare function eventContext(installation: string | null, isLocal: boolean, sequence: bigint, attribution?: string, forwardedFrom?: string): EventContext;
33
41
  export declare function metadataFromProto(proto: ProtoMetadata | undefined): Metadata;
34
42
  export declare function metadataToProto(metadata: Metadata | undefined): {
35
43
  entries: {
package/dist/context.js CHANGED
@@ -4,11 +4,27 @@
4
4
  // request per asynchronous context, and work handed to another context cannot see it.
5
5
  import { AsyncLocalStorage } from "node:async_hooks";
6
6
  import { Instant } from "./time.js";
7
- export function commandContext(componentId, entityId, sequenceNumber, metadata, now = Instant.now, installation = null, isHome = true) {
8
- return Object.freeze({ componentId, entityId, sequenceNumber, metadata, now, installation, isHome });
7
+ export function commandContext(componentId, entityId, sequenceNumber, metadata, now = Instant.now, installation = null, isHome = true, attribution, forwardedFrom) {
8
+ return Object.freeze({
9
+ componentId,
10
+ entityId,
11
+ sequenceNumber,
12
+ metadata,
13
+ now,
14
+ installation,
15
+ isHome,
16
+ ...(attribution ? { attribution } : {}),
17
+ ...(forwardedFrom ? { forwardedFrom } : {}),
18
+ });
9
19
  }
10
- export function eventContext(installation, isLocal, sequence) {
11
- return Object.freeze({ installation, isLocal, sequence });
20
+ export function eventContext(installation, isLocal, sequence, attribution, forwardedFrom) {
21
+ return Object.freeze({
22
+ installation,
23
+ isLocal,
24
+ sequence,
25
+ ...(attribution ? { attribution } : {}),
26
+ ...(forwardedFrom ? { forwardedFrom } : {}),
27
+ });
12
28
  }
13
29
  export function metadataFromProto(proto) {
14
30
  const out = {};
@@ -92,7 +92,7 @@ export async function* handleEventSourced(requests, ctx) {
92
92
  const ev = m.message.value;
93
93
  try {
94
94
  const written = ev.installation || here;
95
- state = entity.applyEvent(state, decodePayload(registered.eventCodec, ev.payload), eventContext(written, written === here, ev.sequence));
95
+ state = entity.applyEvent(state, decodePayload(registered.eventCodec, ev.payload), eventContext(written, written === here, ev.sequence, ev.attribution, ev.forwardedFrom));
96
96
  sequence = ev.sequence;
97
97
  }
98
98
  catch (e) {
@@ -132,7 +132,7 @@ async function runCommand(registered, entity, entityId, state, sequence, cmd, ct
132
132
  return { out: failure(cmd.id, { message: `${registered.id}/${cmd.name}: the input could not be decoded: ${messageOf(e)}`, code: ErrorCode.BadRequest }) };
133
133
  }
134
134
  const metadata = metadataFromProto(cmd.metadata);
135
- const context = commandContext(registered.id, entityId, sequence, metadata, undefined, cmd.installation || null, cmd.atHome);
135
+ const context = commandContext(registered.id, entityId, sequence, metadata, undefined, cmd.installation || null, cmd.atHome, cmd.attribution, cmd.forwardedFrom);
136
136
  let effect;
137
137
  entity._bindCommand(state, context, ctx.client.withMetadata(metadata));
138
138
  try {
@@ -152,7 +152,7 @@ async function runCommand(registered, entity, entityId, state, sequence, cmd, ct
152
152
  let applied = sequence;
153
153
  const m = materialiseEventSourced(effect, state, (s, e) => {
154
154
  applied += 1n;
155
- return entity.applyEvent(s, e, eventContext(here, true, applied));
155
+ return entity.applyEvent(s, e, eventContext(here, true, applied, context.attribution, context.forwardedFrom));
156
156
  });
157
157
  const replication = !m.error && effect.kind === "persist" ? replicationToProto(effect.replication) : undefined;
158
158
  const events = m.events.map((e) => encodePayload(registered.eventCodec, e));
package/dist/spec.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type MessageInitShape } from "@bufbuild/protobuf";
2
2
  import { Endpoint_Acl, type McpAclSchema, type CallerMatcherSchema, type Spec } from "./_proto/ankka/protocol/v1/discovery_pb.ts";
3
3
  import type { Registry } from "./service.ts";
4
4
  import type { Acl } from "./routes.ts";
5
- export declare const PROTOCOL_VERSION = "1.21";
5
+ export declare const PROTOCOL_VERSION = "1.22";
6
6
  export declare const SDK_NAME = "ankka-typescript";
7
7
  /** An HTTP endpoint's rule; client keys and `anyOf` are refused for one at registration, so they deny here. */
8
8
  export declare function aclToProto(acl: Acl): Endpoint_Acl;
package/dist/spec.js CHANGED
@@ -17,7 +17,7 @@ function toolInit(t) {
17
17
  ...(approval !== undefined ? { approval } : {}),
18
18
  };
19
19
  }
20
- export const PROTOCOL_VERSION = "1.21";
20
+ export const PROTOCOL_VERSION = "1.22";
21
21
  export const SDK_NAME = "ankka-typescript";
22
22
  /** An HTTP endpoint's rule; client keys and `anyOf` are refused for one at registration, so they deny here. */
23
23
  export function aclToProto(acl) {
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const VERSION = "0.13.0";
1
+ export declare const VERSION = "0.14.0";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  // Written by scripts/proto.ts from package.json; do not edit. 0.0.0 in the tree, the tag's version in a release.
2
- export const VERSION = "0.13.0";
2
+ export const VERSION = "0.14.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ankka",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "Build services on ankka in TypeScript: entities, views, workflows, agents and endpoints hosted by the ankka sidecar.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -51,7 +51,7 @@
51
51
  "@bufbuild/protobuf": "^2.15.0",
52
52
  "@connectrpc/connect": "^2.2.0",
53
53
  "@connectrpc/connect-node": "^2.2.0",
54
- "canonicalize": "^2.1.0"
54
+ "canonicalize": "^5.1.0"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@testcontainers/postgresql": "^12.1.0",