@trylimbo/sdk-verifier 0.2.11-canary.18 → 0.2.11

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/gen/ffi/index.js CHANGED
@@ -2272,7 +2272,7 @@ var trylimbo_verifier_exports = /* @__PURE__ */ __exportAll({
2272
2272
  RecoveryDiscovery: () => RecoveryDiscovery,
2273
2273
  RecoveryDiscovery_Tags: () => RecoveryDiscovery_Tags,
2274
2274
  RecoveryIssue: () => RecoveryIssue,
2275
- RecoveryIssueKind: () => RecoveryIssueKind,
2275
+ RecoveryIssue_Tags: () => RecoveryIssue_Tags,
2276
2276
  RecoveryPolicy: () => RecoveryPolicy,
2277
2277
  RecoveryStatus: () => RecoveryStatus,
2278
2278
  RecoverySummary: () => RecoverySummary,
@@ -2311,6 +2311,9 @@ var trylimbo_verifier_exports = /* @__PURE__ */ __exportAll({
2311
2311
  ValidationResults: () => ValidationResults,
2312
2312
  ValidationState: () => ValidationState,
2313
2313
  ValidationStatus: () => ValidationStatus,
2314
+ Verdict: () => Verdict,
2315
+ VerdictRule: () => VerdictRule,
2316
+ Verdict_Tags: () => Verdict_Tags,
2314
2317
  VerifyOptions: () => VerifyOptions,
2315
2318
  c2paTrustList: () => c2paTrustList,
2316
2319
  c2paTsaTrustList: () => c2paTsaTrustList,
@@ -4716,93 +4719,522 @@ const FfiConverterTypeRecoveryStatus = (() => {
4716
4719
  }
4717
4720
  return new FFIConverter();
4718
4721
  })();
4722
+ let RecoveryIssue_Tags = /* @__PURE__ */ function(RecoveryIssue_Tags) {
4723
+ RecoveryIssue_Tags["Binder"] = "Binder";
4724
+ RecoveryIssue_Tags["DeprecatedAlgorithm"] = "DeprecatedAlgorithm";
4725
+ RecoveryIssue_Tags["BindingQuery"] = "BindingQuery";
4726
+ RecoveryIssue_Tags["QueryRefused"] = "QueryRefused";
4727
+ RecoveryIssue_Tags["ContentForm"] = "ContentForm";
4728
+ RecoveryIssue_Tags["ContentQuery"] = "ContentQuery";
4729
+ RecoveryIssue_Tags["Capabilities"] = "Capabilities";
4730
+ RecoveryIssue_Tags["ContentTooLarge"] = "ContentTooLarge";
4731
+ RecoveryIssue_Tags["CandidateFetch"] = "CandidateFetch";
4732
+ RecoveryIssue_Tags["CandidateValidation"] = "CandidateValidation";
4733
+ RecoveryIssue_Tags["EndpointRefused"] = "EndpointRefused";
4734
+ RecoveryIssue_Tags["ResourceLimit"] = "ResourceLimit";
4735
+ return RecoveryIssue_Tags;
4736
+ }({});
4719
4737
  /**
4720
4738
  * Why registry recovery did not complete cleanly, or why one candidate was omitted while another
4721
- * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome.
4739
+ * succeeded. Kept as data so a partial recovery never loses the rest of the lookup outcome, and
4740
+ * each kind carries exactly what it is about.
4722
4741
  */
4723
- let RecoveryIssueKind = /* @__PURE__ */ function(RecoveryIssueKind) {
4724
- RecoveryIssueKind[RecoveryIssueKind["Binder"] = 0] = "Binder";
4725
- RecoveryIssueKind[RecoveryIssueKind["BindingQuery"] = 1] = "BindingQuery";
4726
- RecoveryIssueKind[RecoveryIssueKind["QueryRefused"] = 2] = "QueryRefused";
4727
- RecoveryIssueKind[RecoveryIssueKind["ContentQuery"] = 3] = "ContentQuery";
4728
- RecoveryIssueKind[RecoveryIssueKind["Capabilities"] = 4] = "Capabilities";
4729
- RecoveryIssueKind[RecoveryIssueKind["ContentTooLarge"] = 5] = "ContentTooLarge";
4730
- RecoveryIssueKind[RecoveryIssueKind["CandidateFetch"] = 6] = "CandidateFetch";
4731
- RecoveryIssueKind[RecoveryIssueKind["CandidateValidation"] = 7] = "CandidateValidation";
4732
- RecoveryIssueKind[RecoveryIssueKind["ResourceLimit"] = 8] = "ResourceLimit";
4742
+ const RecoveryIssue = (() => {
4743
+ /**
4744
+ * A binder faulted while deriving its binding.
4745
+ */
4746
+ class Binder_ extends UniffiEnum {
4747
+ /**
4748
+ * @private
4749
+ * This field is private and should not be used, use `tag` instead.
4750
+ */
4751
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4752
+ tag = "Binder";
4753
+ inner;
4754
+ constructor(inner) {
4755
+ super("RecoveryIssue", "Binder");
4756
+ this.inner = Object.freeze(inner);
4757
+ }
4758
+ static new(inner) {
4759
+ return new Binder_(inner);
4760
+ }
4761
+ static instanceOf(obj) {
4762
+ return obj.tag === "Binder";
4763
+ }
4764
+ }
4765
+ /**
4766
+ * A binding or an advertised detector names an algorithm the C2PA list deprecates, which a
4767
+ * validator should not resolve (2.4 18.10.4).
4768
+ */
4769
+ class DeprecatedAlgorithm_ extends UniffiEnum {
4770
+ /**
4771
+ * @private
4772
+ * This field is private and should not be used, use `tag` instead.
4773
+ */
4774
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4775
+ tag = "DeprecatedAlgorithm";
4776
+ inner;
4777
+ constructor(inner) {
4778
+ super("RecoveryIssue", "DeprecatedAlgorithm");
4779
+ this.inner = Object.freeze(inner);
4780
+ }
4781
+ static new(inner) {
4782
+ return new DeprecatedAlgorithm_(inner);
4783
+ }
4784
+ static instanceOf(obj) {
4785
+ return obj.tag === "DeprecatedAlgorithm";
4786
+ }
4787
+ }
4788
+ /**
4789
+ * A binder's `matches/byBinding` lookup failed upstream.
4790
+ */
4791
+ class BindingQuery_ extends UniffiEnum {
4792
+ /**
4793
+ * @private
4794
+ * This field is private and should not be used, use `tag` instead.
4795
+ */
4796
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4797
+ tag = "BindingQuery";
4798
+ inner;
4799
+ constructor(inner) {
4800
+ super("RecoveryIssue", "BindingQuery");
4801
+ this.inner = Object.freeze(inner);
4802
+ }
4803
+ static new(inner) {
4804
+ return new BindingQuery_(inner);
4805
+ }
4806
+ static instanceOf(obj) {
4807
+ return obj.tag === "BindingQuery";
4808
+ }
4809
+ }
4810
+ /**
4811
+ * The registry refused a query under this algorithm: a lookup it answered 4xx, or a named
4812
+ * detector it does not advertise.
4813
+ */
4814
+ class QueryRefused_ extends UniffiEnum {
4815
+ /**
4816
+ * @private
4817
+ * This field is private and should not be used, use `tag` instead.
4818
+ */
4819
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4820
+ tag = "QueryRefused";
4821
+ inner;
4822
+ constructor(inner) {
4823
+ super("RecoveryIssue", "QueryRefused");
4824
+ this.inner = Object.freeze(inner);
4825
+ }
4826
+ static new(inner) {
4827
+ return new QueryRefused_(inner);
4828
+ }
4829
+ static instanceOf(obj) {
4830
+ return obj.tag === "QueryRefused";
4831
+ }
4832
+ }
4833
+ /**
4834
+ * A content form could not be asked at all.
4835
+ */
4836
+ class ContentForm_ extends UniffiEnum {
4837
+ /**
4838
+ * @private
4839
+ * This field is private and should not be used, use `tag` instead.
4840
+ */
4841
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4842
+ tag = "ContentForm";
4843
+ inner;
4844
+ constructor(inner) {
4845
+ super("RecoveryIssue", "ContentForm");
4846
+ this.inner = Object.freeze(inner);
4847
+ }
4848
+ static new(inner) {
4849
+ return new ContentForm_(inner);
4850
+ }
4851
+ static instanceOf(obj) {
4852
+ return obj.tag === "ContentForm";
4853
+ }
4854
+ }
4855
+ /**
4856
+ * One content request, under this algorithm, failed upstream.
4857
+ */
4858
+ class ContentQuery_ extends UniffiEnum {
4859
+ /**
4860
+ * @private
4861
+ * This field is private and should not be used, use `tag` instead.
4862
+ */
4863
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4864
+ tag = "ContentQuery";
4865
+ inner;
4866
+ constructor(inner) {
4867
+ super("RecoveryIssue", "ContentQuery");
4868
+ this.inner = Object.freeze(inner);
4869
+ }
4870
+ static new(inner) {
4871
+ return new ContentQuery_(inner);
4872
+ }
4873
+ static instanceOf(obj) {
4874
+ return obj.tag === "ContentQuery";
4875
+ }
4876
+ }
4877
+ /**
4878
+ * The registry's capabilities could not be read.
4879
+ */
4880
+ class Capabilities_ extends UniffiEnum {
4881
+ /**
4882
+ * @private
4883
+ * This field is private and should not be used, use `tag` instead.
4884
+ */
4885
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4886
+ tag = "Capabilities";
4887
+ inner;
4888
+ constructor(inner) {
4889
+ super("RecoveryIssue", "Capabilities");
4890
+ this.inner = Object.freeze(inner);
4891
+ }
4892
+ static new(inner) {
4893
+ return new Capabilities_(inner);
4894
+ }
4895
+ static instanceOf(obj) {
4896
+ return obj.tag === "Capabilities";
4897
+ }
4898
+ }
4899
+ /**
4900
+ * The asset is above the `byContent` upload cap, so the content form did not run.
4901
+ */
4902
+ class ContentTooLarge_ extends UniffiEnum {
4903
+ /**
4904
+ * @private
4905
+ * This field is private and should not be used, use `tag` instead.
4906
+ */
4907
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4908
+ tag = "ContentTooLarge";
4909
+ inner;
4910
+ constructor(inner) {
4911
+ super("RecoveryIssue", "ContentTooLarge");
4912
+ this.inner = Object.freeze(inner);
4913
+ }
4914
+ static new(inner) {
4915
+ return new ContentTooLarge_(inner);
4916
+ }
4917
+ static instanceOf(obj) {
4918
+ return obj.tag === "ContentTooLarge";
4919
+ }
4920
+ }
4921
+ /**
4922
+ * A matched manifest could not be fetched.
4923
+ */
4924
+ class CandidateFetch_ extends UniffiEnum {
4925
+ /**
4926
+ * @private
4927
+ * This field is private and should not be used, use `tag` instead.
4928
+ */
4929
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4930
+ tag = "CandidateFetch";
4931
+ inner;
4932
+ constructor(inner) {
4933
+ super("RecoveryIssue", "CandidateFetch");
4934
+ this.inner = Object.freeze(inner);
4935
+ }
4936
+ static new(inner) {
4937
+ return new CandidateFetch_(inner);
4938
+ }
4939
+ static instanceOf(obj) {
4940
+ return obj.tag === "CandidateFetch";
4941
+ }
4942
+ }
4943
+ /**
4944
+ * A fetched manifest did not validate as a credential for this asset.
4945
+ */
4946
+ class CandidateValidation_ extends UniffiEnum {
4947
+ /**
4948
+ * @private
4949
+ * This field is private and should not be used, use `tag` instead.
4950
+ */
4951
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4952
+ tag = "CandidateValidation";
4953
+ inner;
4954
+ constructor(inner) {
4955
+ super("RecoveryIssue", "CandidateValidation");
4956
+ this.inner = Object.freeze(inner);
4957
+ }
4958
+ static new(inner) {
4959
+ return new CandidateValidation_(inner);
4960
+ }
4961
+ static instanceOf(obj) {
4962
+ return obj.tag === "CandidateValidation";
4963
+ }
4964
+ }
4733
4965
  /**
4734
4966
  * A match named a resolution API this verifier was not configured to fetch from.
4735
4967
  */
4736
- RecoveryIssueKind[RecoveryIssueKind["EndpointRefused"] = 9] = "EndpointRefused";
4737
- return RecoveryIssueKind;
4738
- }({});
4739
- const FfiConverterTypeRecoveryIssueKind = (() => {
4740
- class FFIConverter extends AbstractFfiConverterByteArray {
4741
- readFromCursor(c) {
4742
- switch (c.readI32()) {
4743
- case 1: return 0;
4744
- case 2: return 1;
4745
- case 3: return 2;
4746
- case 4: return 3;
4747
- case 5: return 4;
4748
- case 6: return 5;
4749
- case 7: return 6;
4750
- case 8: return 7;
4751
- case 9: return 8;
4752
- case 10: return 9;
4753
- default: throw new UniffiInternalError.UnexpectedEnumCase();
4754
- }
4968
+ class EndpointRefused_ extends UniffiEnum {
4969
+ /**
4970
+ * @private
4971
+ * This field is private and should not be used, use `tag` instead.
4972
+ */
4973
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4974
+ tag = "EndpointRefused";
4975
+ inner;
4976
+ constructor(inner) {
4977
+ super("RecoveryIssue", "EndpointRefused");
4978
+ this.inner = Object.freeze(inner);
4755
4979
  }
4756
- writeIntoCursor(value, c) {
4757
- switch (value) {
4758
- case 0: return c.writeI32(1);
4759
- case 1: return c.writeI32(2);
4760
- case 2: return c.writeI32(3);
4761
- case 3: return c.writeI32(4);
4762
- case 4: return c.writeI32(5);
4763
- case 5: return c.writeI32(6);
4764
- case 6: return c.writeI32(7);
4765
- case 7: return c.writeI32(8);
4766
- case 8: return c.writeI32(9);
4767
- case 9: return c.writeI32(10);
4768
- }
4980
+ static new(inner) {
4981
+ return new EndpointRefused_(inner);
4769
4982
  }
4770
- allocationSize(value) {
4771
- return 4;
4983
+ static instanceOf(obj) {
4984
+ return obj.tag === "EndpointRefused";
4772
4985
  }
4773
4986
  }
4774
- return new FFIConverter();
4775
- })();
4776
- /**
4777
- * Generated factory for {@link RecoveryIssue} record objects.
4778
- */
4779
- const RecoveryIssue = (() => {
4780
- const defaults = () => ({ manifestId: void 0 });
4781
- const create = (() => {
4782
- return uniffiCreateRecord(defaults);
4783
- })();
4987
+ /**
4988
+ * A cumulative byte or time budget ended the batch before every candidate was processed.
4989
+ */
4990
+ class ResourceLimit_ extends UniffiEnum {
4991
+ /**
4992
+ * @private
4993
+ * This field is private and should not be used, use `tag` instead.
4994
+ */
4995
+ [uniffiTypeNameSymbol] = "RecoveryIssue";
4996
+ tag = "ResourceLimit";
4997
+ inner;
4998
+ constructor(inner) {
4999
+ super("RecoveryIssue", "ResourceLimit");
5000
+ this.inner = Object.freeze(inner);
5001
+ }
5002
+ static new(inner) {
5003
+ return new ResourceLimit_(inner);
5004
+ }
5005
+ static instanceOf(obj) {
5006
+ return obj.tag === "ResourceLimit";
5007
+ }
5008
+ }
5009
+ function instanceOf(obj) {
5010
+ return obj[uniffiTypeNameSymbol] === "RecoveryIssue";
5011
+ }
4784
5012
  return Object.freeze({
4785
- create,
4786
- new: create,
4787
- defaults: () => Object.freeze(defaults())
5013
+ instanceOf,
5014
+ Binder: Binder_,
5015
+ DeprecatedAlgorithm: DeprecatedAlgorithm_,
5016
+ BindingQuery: BindingQuery_,
5017
+ QueryRefused: QueryRefused_,
5018
+ ContentForm: ContentForm_,
5019
+ ContentQuery: ContentQuery_,
5020
+ Capabilities: Capabilities_,
5021
+ ContentTooLarge: ContentTooLarge_,
5022
+ CandidateFetch: CandidateFetch_,
5023
+ CandidateValidation: CandidateValidation_,
5024
+ EndpointRefused: EndpointRefused_,
5025
+ ResourceLimit: ResourceLimit_
4788
5026
  });
4789
5027
  })();
4790
5028
  const FfiConverterTypeRecoveryIssue = (() => {
4791
5029
  class FFIConverter extends AbstractFfiConverterByteArray {
4792
5030
  readFromCursor(c) {
4793
- return {
4794
- kind: FfiConverterTypeRecoveryIssueKind.readFromCursor(c),
4795
- manifestId: FfiConverterOptionalString.readFromCursor(c),
4796
- message: FfiConverterString.readFromCursor(c)
4797
- };
5031
+ switch (c.readI32()) {
5032
+ case 1: return new RecoveryIssue.Binder({
5033
+ binderIndex: FfiConverterUInt32.readFromCursor(c),
5034
+ message: FfiConverterString.readFromCursor(c)
5035
+ });
5036
+ case 2: return new RecoveryIssue.DeprecatedAlgorithm({ algorithm: FfiConverterString.readFromCursor(c) });
5037
+ case 3: return new RecoveryIssue.BindingQuery({
5038
+ binderIndex: FfiConverterUInt32.readFromCursor(c),
5039
+ algorithm: FfiConverterString.readFromCursor(c),
5040
+ message: FfiConverterString.readFromCursor(c)
5041
+ });
5042
+ case 4: return new RecoveryIssue.QueryRefused({
5043
+ algorithm: FfiConverterString.readFromCursor(c),
5044
+ message: FfiConverterString.readFromCursor(c)
5045
+ });
5046
+ case 5: return new RecoveryIssue.ContentForm({ message: FfiConverterString.readFromCursor(c) });
5047
+ case 6: return new RecoveryIssue.ContentQuery({
5048
+ algorithm: FfiConverterString.readFromCursor(c),
5049
+ message: FfiConverterString.readFromCursor(c)
5050
+ });
5051
+ case 7: return new RecoveryIssue.Capabilities({ message: FfiConverterString.readFromCursor(c) });
5052
+ case 8: return new RecoveryIssue.ContentTooLarge({ capBytes: FfiConverterUInt64.readFromCursor(c) });
5053
+ case 9: return new RecoveryIssue.CandidateFetch({
5054
+ manifestId: FfiConverterString.readFromCursor(c),
5055
+ message: FfiConverterString.readFromCursor(c)
5056
+ });
5057
+ case 10: return new RecoveryIssue.CandidateValidation({
5058
+ manifestId: FfiConverterString.readFromCursor(c),
5059
+ reason: FfiConverterString.readFromCursor(c)
5060
+ });
5061
+ case 11: return new RecoveryIssue.EndpointRefused({
5062
+ manifestId: FfiConverterString.readFromCursor(c),
5063
+ endpoint: FfiConverterString.readFromCursor(c)
5064
+ });
5065
+ case 12: return new RecoveryIssue.ResourceLimit({ message: FfiConverterString.readFromCursor(c) });
5066
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5067
+ }
4798
5068
  }
4799
5069
  writeIntoCursor(value, c) {
4800
- FfiConverterTypeRecoveryIssueKind.writeIntoCursor(value.kind, c);
4801
- FfiConverterOptionalString.writeIntoCursor(value.manifestId, c);
4802
- FfiConverterString.writeIntoCursor(value.message, c);
5070
+ switch (value.tag) {
5071
+ case "Binder": {
5072
+ c.writeI32(1);
5073
+ const inner = value.inner;
5074
+ FfiConverterUInt32.writeIntoCursor(inner.binderIndex, c);
5075
+ FfiConverterString.writeIntoCursor(inner.message, c);
5076
+ return;
5077
+ }
5078
+ case "DeprecatedAlgorithm": {
5079
+ c.writeI32(2);
5080
+ const inner = value.inner;
5081
+ FfiConverterString.writeIntoCursor(inner.algorithm, c);
5082
+ return;
5083
+ }
5084
+ case "BindingQuery": {
5085
+ c.writeI32(3);
5086
+ const inner = value.inner;
5087
+ FfiConverterUInt32.writeIntoCursor(inner.binderIndex, c);
5088
+ FfiConverterString.writeIntoCursor(inner.algorithm, c);
5089
+ FfiConverterString.writeIntoCursor(inner.message, c);
5090
+ return;
5091
+ }
5092
+ case "QueryRefused": {
5093
+ c.writeI32(4);
5094
+ const inner = value.inner;
5095
+ FfiConverterString.writeIntoCursor(inner.algorithm, c);
5096
+ FfiConverterString.writeIntoCursor(inner.message, c);
5097
+ return;
5098
+ }
5099
+ case "ContentForm": {
5100
+ c.writeI32(5);
5101
+ const inner = value.inner;
5102
+ FfiConverterString.writeIntoCursor(inner.message, c);
5103
+ return;
5104
+ }
5105
+ case "ContentQuery": {
5106
+ c.writeI32(6);
5107
+ const inner = value.inner;
5108
+ FfiConverterString.writeIntoCursor(inner.algorithm, c);
5109
+ FfiConverterString.writeIntoCursor(inner.message, c);
5110
+ return;
5111
+ }
5112
+ case "Capabilities": {
5113
+ c.writeI32(7);
5114
+ const inner = value.inner;
5115
+ FfiConverterString.writeIntoCursor(inner.message, c);
5116
+ return;
5117
+ }
5118
+ case "ContentTooLarge": {
5119
+ c.writeI32(8);
5120
+ const inner = value.inner;
5121
+ FfiConverterUInt64.writeIntoCursor(inner.capBytes, c);
5122
+ return;
5123
+ }
5124
+ case "CandidateFetch": {
5125
+ c.writeI32(9);
5126
+ const inner = value.inner;
5127
+ FfiConverterString.writeIntoCursor(inner.manifestId, c);
5128
+ FfiConverterString.writeIntoCursor(inner.message, c);
5129
+ return;
5130
+ }
5131
+ case "CandidateValidation": {
5132
+ c.writeI32(10);
5133
+ const inner = value.inner;
5134
+ FfiConverterString.writeIntoCursor(inner.manifestId, c);
5135
+ FfiConverterString.writeIntoCursor(inner.reason, c);
5136
+ return;
5137
+ }
5138
+ case "EndpointRefused": {
5139
+ c.writeI32(11);
5140
+ const inner = value.inner;
5141
+ FfiConverterString.writeIntoCursor(inner.manifestId, c);
5142
+ FfiConverterString.writeIntoCursor(inner.endpoint, c);
5143
+ return;
5144
+ }
5145
+ case "ResourceLimit": {
5146
+ c.writeI32(12);
5147
+ const inner = value.inner;
5148
+ FfiConverterString.writeIntoCursor(inner.message, c);
5149
+ return;
5150
+ }
5151
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5152
+ }
4803
5153
  }
4804
5154
  allocationSize(value) {
4805
- return FfiConverterTypeRecoveryIssueKind.allocationSize(value.kind) + FfiConverterOptionalString.allocationSize(value.manifestId) + FfiConverterString.allocationSize(value.message);
5155
+ switch (value.tag) {
5156
+ case "Binder": {
5157
+ const inner = value.inner;
5158
+ let size = 4;
5159
+ size += FfiConverterUInt32.allocationSize(inner.binderIndex);
5160
+ size += FfiConverterString.allocationSize(inner.message);
5161
+ return size;
5162
+ }
5163
+ case "DeprecatedAlgorithm": {
5164
+ const inner = value.inner;
5165
+ let size = 4;
5166
+ size += FfiConverterString.allocationSize(inner.algorithm);
5167
+ return size;
5168
+ }
5169
+ case "BindingQuery": {
5170
+ const inner = value.inner;
5171
+ let size = 4;
5172
+ size += FfiConverterUInt32.allocationSize(inner.binderIndex);
5173
+ size += FfiConverterString.allocationSize(inner.algorithm);
5174
+ size += FfiConverterString.allocationSize(inner.message);
5175
+ return size;
5176
+ }
5177
+ case "QueryRefused": {
5178
+ const inner = value.inner;
5179
+ let size = 4;
5180
+ size += FfiConverterString.allocationSize(inner.algorithm);
5181
+ size += FfiConverterString.allocationSize(inner.message);
5182
+ return size;
5183
+ }
5184
+ case "ContentForm": {
5185
+ const inner = value.inner;
5186
+ let size = 4;
5187
+ size += FfiConverterString.allocationSize(inner.message);
5188
+ return size;
5189
+ }
5190
+ case "ContentQuery": {
5191
+ const inner = value.inner;
5192
+ let size = 4;
5193
+ size += FfiConverterString.allocationSize(inner.algorithm);
5194
+ size += FfiConverterString.allocationSize(inner.message);
5195
+ return size;
5196
+ }
5197
+ case "Capabilities": {
5198
+ const inner = value.inner;
5199
+ let size = 4;
5200
+ size += FfiConverterString.allocationSize(inner.message);
5201
+ return size;
5202
+ }
5203
+ case "ContentTooLarge": {
5204
+ const inner = value.inner;
5205
+ let size = 4;
5206
+ size += FfiConverterUInt64.allocationSize(inner.capBytes);
5207
+ return size;
5208
+ }
5209
+ case "CandidateFetch": {
5210
+ const inner = value.inner;
5211
+ let size = 4;
5212
+ size += FfiConverterString.allocationSize(inner.manifestId);
5213
+ size += FfiConverterString.allocationSize(inner.message);
5214
+ return size;
5215
+ }
5216
+ case "CandidateValidation": {
5217
+ const inner = value.inner;
5218
+ let size = 4;
5219
+ size += FfiConverterString.allocationSize(inner.manifestId);
5220
+ size += FfiConverterString.allocationSize(inner.reason);
5221
+ return size;
5222
+ }
5223
+ case "EndpointRefused": {
5224
+ const inner = value.inner;
5225
+ let size = 4;
5226
+ size += FfiConverterString.allocationSize(inner.manifestId);
5227
+ size += FfiConverterString.allocationSize(inner.endpoint);
5228
+ return size;
5229
+ }
5230
+ case "ResourceLimit": {
5231
+ const inner = value.inner;
5232
+ let size = 4;
5233
+ size += FfiConverterString.allocationSize(inner.message);
5234
+ return size;
5235
+ }
5236
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5237
+ }
4806
5238
  }
4807
5239
  }
4808
5240
  return new FFIConverter();
@@ -4811,7 +5243,7 @@ const FfiConverterTypeRecoveryIssue = (() => {
4811
5243
  * Generated factory for {@link RecoverySummary} record objects.
4812
5244
  */
4813
5245
  const RecoverySummary = (() => {
4814
- const defaults = () => ({ bestCredentialIndex: void 0 });
5246
+ const defaults = () => ({});
4815
5247
  const create = (() => {
4816
5248
  return uniffiCreateRecord(defaults);
4817
5249
  })();
@@ -4826,17 +5258,15 @@ const FfiConverterTypeRecoverySummary = (() => {
4826
5258
  readFromCursor(c) {
4827
5259
  return {
4828
5260
  status: FfiConverterTypeRecoveryStatus.readFromCursor(c),
4829
- bestCredentialIndex: FfiConverterOptionalUInt32.readFromCursor(c),
4830
5261
  issues: FfiConverterSequenceTypeRecoveryIssue.readFromCursor(c)
4831
5262
  };
4832
5263
  }
4833
5264
  writeIntoCursor(value, c) {
4834
5265
  FfiConverterTypeRecoveryStatus.writeIntoCursor(value.status, c);
4835
- FfiConverterOptionalUInt32.writeIntoCursor(value.bestCredentialIndex, c);
4836
5266
  FfiConverterSequenceTypeRecoveryIssue.writeIntoCursor(value.issues, c);
4837
5267
  }
4838
5268
  allocationSize(value) {
4839
- return FfiConverterTypeRecoveryStatus.allocationSize(value.status) + FfiConverterOptionalUInt32.allocationSize(value.bestCredentialIndex) + FfiConverterSequenceTypeRecoveryIssue.allocationSize(value.issues);
5269
+ return FfiConverterTypeRecoveryStatus.allocationSize(value.status) + FfiConverterSequenceTypeRecoveryIssue.allocationSize(value.issues);
4840
5270
  }
4841
5271
  }
4842
5272
  return new FFIConverter();
@@ -4845,15 +5275,21 @@ let GoldenComparison_Tags = /* @__PURE__ */ function(GoldenComparison_Tags) {
4845
5275
  GoldenComparison_Tags["NotRequested"] = "NotRequested";
4846
5276
  GoldenComparison_Tags["NoEmbeddedManifest"] = "NoEmbeddedManifest";
4847
5277
  GoldenComparison_Tags["NoRecoveredManifest"] = "NoRecoveredManifest";
5278
+ GoldenComparison_Tags["RecoveryIncomplete"] = "RecoveryIncomplete";
4848
5279
  GoldenComparison_Tags["Matches"] = "Matches";
4849
5280
  GoldenComparison_Tags["Differs"] = "Differs";
4850
- GoldenComparison_Tags["Indeterminate"] = "Indeterminate";
5281
+ GoldenComparison_Tags["NoneMatches"] = "NoneMatches";
5282
+ GoldenComparison_Tags["Unreadable"] = "Unreadable";
4851
5283
  return GoldenComparison_Tags;
4852
5284
  }({});
4853
5285
  /**
4854
- * Typed completion of C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison.
5286
+ * Typed completion of C2PA 2.4's `watermark-golden` / `fingerprint-golden` final comparison:
5287
+ * the local active manifest against what the registry holds. Every outcome is its own variant.
4855
5288
  */
4856
5289
  const GoldenComparison = (() => {
5290
+ /**
5291
+ * `recovery.when` is `whenMissing`, so nothing was recovered beside a valid manifest.
5292
+ */
4857
5293
  class NotRequested_ extends UniffiEnum {
4858
5294
  /**
4859
5295
  * @private
@@ -4871,6 +5307,9 @@ const GoldenComparison = (() => {
4871
5307
  return obj.tag === "NotRequested";
4872
5308
  }
4873
5309
  }
5310
+ /**
5311
+ * These bytes carry no manifest, so there is nothing to compare the registry's against.
5312
+ */
4874
5313
  class NoEmbeddedManifest_ extends UniffiEnum {
4875
5314
  /**
4876
5315
  * @private
@@ -4888,6 +5327,9 @@ const GoldenComparison = (() => {
4888
5327
  return obj.tag === "NoEmbeddedManifest";
4889
5328
  }
4890
5329
  }
5330
+ /**
5331
+ * Recovery finished and the registry holds nothing for these bytes.
5332
+ */
4891
5333
  class NoRecoveredManifest_ extends UniffiEnum {
4892
5334
  /**
4893
5335
  * @private
@@ -4905,6 +5347,29 @@ const GoldenComparison = (() => {
4905
5347
  return obj.tag === "NoRecoveredManifest";
4906
5348
  }
4907
5349
  }
5350
+ /**
5351
+ * Recovery did not finish, so nothing is claimed either way.
5352
+ */
5353
+ class RecoveryIncomplete_ extends UniffiEnum {
5354
+ /**
5355
+ * @private
5356
+ * This field is private and should not be used, use `tag` instead.
5357
+ */
5358
+ [uniffiTypeNameSymbol] = "GoldenComparison";
5359
+ tag = "RecoveryIncomplete";
5360
+ constructor() {
5361
+ super("GoldenComparison", "RecoveryIncomplete");
5362
+ }
5363
+ static new() {
5364
+ return new RecoveryIncomplete_();
5365
+ }
5366
+ static instanceOf(obj) {
5367
+ return obj.tag === "RecoveryIncomplete";
5368
+ }
5369
+ }
5370
+ /**
5371
+ * A recovered manifest is the embedded one, claim for claim.
5372
+ */
4908
5373
  class Matches_ extends UniffiEnum {
4909
5374
  /**
4910
5375
  * @private
@@ -4924,6 +5389,9 @@ const GoldenComparison = (() => {
4924
5389
  return obj.tag === "Matches";
4925
5390
  }
4926
5391
  }
5392
+ /**
5393
+ * The one recovered manifest is not the embedded one: what a substitution looks like.
5394
+ */
4927
5395
  class Differs_ extends UniffiEnum {
4928
5396
  /**
4929
5397
  * @private
@@ -4943,25 +5411,48 @@ const GoldenComparison = (() => {
4943
5411
  return obj.tag === "Differs";
4944
5412
  }
4945
5413
  }
4946
- class Indeterminate_ extends UniffiEnum {
5414
+ /**
5415
+ * Several recovered manifests and none is the embedded one, by index.
5416
+ */
5417
+ class NoneMatches_ extends UniffiEnum {
4947
5418
  /**
4948
5419
  * @private
4949
5420
  * This field is private and should not be used, use `tag` instead.
4950
5421
  */
4951
5422
  [uniffiTypeNameSymbol] = "GoldenComparison";
4952
- tag = "Indeterminate";
5423
+ tag = "NoneMatches";
4953
5424
  inner;
4954
5425
  constructor(inner) {
4955
- super("GoldenComparison", "Indeterminate");
5426
+ super("GoldenComparison", "NoneMatches");
4956
5427
  this.inner = Object.freeze(inner);
4957
5428
  }
4958
- static new = (() => {
4959
- const defaults = () => ({ recoveredIndex: void 0 });
4960
- const create = uniffiCreateRecord(defaults);
4961
- return (partial) => new Indeterminate_(create(partial));
4962
- })();
5429
+ static new(inner) {
5430
+ return new NoneMatches_(inner);
5431
+ }
4963
5432
  static instanceOf(obj) {
4964
- return obj.tag === "Indeterminate";
5433
+ return obj.tag === "NoneMatches";
5434
+ }
5435
+ }
5436
+ /**
5437
+ * The one recovered manifest has no active manifest to compare.
5438
+ */
5439
+ class Unreadable_ extends UniffiEnum {
5440
+ /**
5441
+ * @private
5442
+ * This field is private and should not be used, use `tag` instead.
5443
+ */
5444
+ [uniffiTypeNameSymbol] = "GoldenComparison";
5445
+ tag = "Unreadable";
5446
+ inner;
5447
+ constructor(inner) {
5448
+ super("GoldenComparison", "Unreadable");
5449
+ this.inner = Object.freeze(inner);
5450
+ }
5451
+ static new(inner) {
5452
+ return new Unreadable_(inner);
5453
+ }
5454
+ static instanceOf(obj) {
5455
+ return obj.tag === "Unreadable";
4965
5456
  }
4966
5457
  }
4967
5458
  function instanceOf(obj) {
@@ -4972,9 +5463,11 @@ const GoldenComparison = (() => {
4972
5463
  NotRequested: NotRequested_,
4973
5464
  NoEmbeddedManifest: NoEmbeddedManifest_,
4974
5465
  NoRecoveredManifest: NoRecoveredManifest_,
5466
+ RecoveryIncomplete: RecoveryIncomplete_,
4975
5467
  Matches: Matches_,
4976
5468
  Differs: Differs_,
4977
- Indeterminate: Indeterminate_
5469
+ NoneMatches: NoneMatches_,
5470
+ Unreadable: Unreadable_
4978
5471
  });
4979
5472
  })();
4980
5473
  const FfiConverterTypeGoldenComparison = (() => {
@@ -4984,9 +5477,11 @@ const FfiConverterTypeGoldenComparison = (() => {
4984
5477
  case 1: return new GoldenComparison.NotRequested();
4985
5478
  case 2: return new GoldenComparison.NoEmbeddedManifest();
4986
5479
  case 3: return new GoldenComparison.NoRecoveredManifest();
4987
- case 4: return new GoldenComparison.Matches({ recoveredIndex: FfiConverterUInt32.readFromCursor(c) });
4988
- case 5: return new GoldenComparison.Differs({ recoveredIndex: FfiConverterUInt32.readFromCursor(c) });
4989
- case 6: return new GoldenComparison.Indeterminate({ recoveredIndex: FfiConverterOptionalUInt32.readFromCursor(c) });
5480
+ case 4: return new GoldenComparison.RecoveryIncomplete();
5481
+ case 5: return new GoldenComparison.Matches({ recoveredIndex: FfiConverterUInt32.readFromCursor(c) });
5482
+ case 6: return new GoldenComparison.Differs({ recoveredIndex: FfiConverterUInt32.readFromCursor(c) });
5483
+ case 7: return new GoldenComparison.NoneMatches({ candidates: FfiConverterSequenceUInt32.readFromCursor(c) });
5484
+ case 8: return new GoldenComparison.Unreadable({ recoveredIndex: FfiConverterUInt32.readFromCursor(c) });
4990
5485
  default: throw new UniffiInternalError.UnexpectedEnumCase();
4991
5486
  }
4992
5487
  }
@@ -5001,22 +5496,31 @@ const FfiConverterTypeGoldenComparison = (() => {
5001
5496
  case "NoRecoveredManifest":
5002
5497
  c.writeI32(3);
5003
5498
  return;
5004
- case "Matches": {
5499
+ case "RecoveryIncomplete":
5005
5500
  c.writeI32(4);
5501
+ return;
5502
+ case "Matches": {
5503
+ c.writeI32(5);
5006
5504
  const inner = value.inner;
5007
5505
  FfiConverterUInt32.writeIntoCursor(inner.recoveredIndex, c);
5008
5506
  return;
5009
5507
  }
5010
5508
  case "Differs": {
5011
- c.writeI32(5);
5509
+ c.writeI32(6);
5012
5510
  const inner = value.inner;
5013
5511
  FfiConverterUInt32.writeIntoCursor(inner.recoveredIndex, c);
5014
5512
  return;
5015
5513
  }
5016
- case "Indeterminate": {
5017
- c.writeI32(6);
5514
+ case "NoneMatches": {
5515
+ c.writeI32(7);
5018
5516
  const inner = value.inner;
5019
- FfiConverterOptionalUInt32.writeIntoCursor(inner.recoveredIndex, c);
5517
+ FfiConverterSequenceUInt32.writeIntoCursor(inner.candidates, c);
5518
+ return;
5519
+ }
5520
+ case "Unreadable": {
5521
+ c.writeI32(8);
5522
+ const inner = value.inner;
5523
+ FfiConverterUInt32.writeIntoCursor(inner.recoveredIndex, c);
5020
5524
  return;
5021
5525
  }
5022
5526
  default: throw new UniffiInternalError.UnexpectedEnumCase();
@@ -5027,6 +5531,7 @@ const FfiConverterTypeGoldenComparison = (() => {
5027
5531
  case "NotRequested": return 4;
5028
5532
  case "NoEmbeddedManifest": return 4;
5029
5533
  case "NoRecoveredManifest": return 4;
5534
+ case "RecoveryIncomplete": return 4;
5030
5535
  case "Matches": {
5031
5536
  const inner = value.inner;
5032
5537
  let size = 4;
@@ -5039,10 +5544,306 @@ const FfiConverterTypeGoldenComparison = (() => {
5039
5544
  size += FfiConverterUInt32.allocationSize(inner.recoveredIndex);
5040
5545
  return size;
5041
5546
  }
5042
- case "Indeterminate": {
5547
+ case "NoneMatches": {
5548
+ const inner = value.inner;
5549
+ let size = 4;
5550
+ size += FfiConverterSequenceUInt32.allocationSize(inner.candidates);
5551
+ return size;
5552
+ }
5553
+ case "Unreadable": {
5554
+ const inner = value.inner;
5555
+ let size = 4;
5556
+ size += FfiConverterUInt32.allocationSize(inner.recoveredIndex);
5557
+ return size;
5558
+ }
5559
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5560
+ }
5561
+ }
5562
+ }
5563
+ return new FFIConverter();
5564
+ })();
5565
+ /**
5566
+ * The evidence that singled a recovered verdict out.
5567
+ */
5568
+ let VerdictRule = /* @__PURE__ */ function(VerdictRule) {
5569
+ VerdictRule[VerdictRule["OnlyCandidate"] = 0] = "OnlyCandidate";
5570
+ /**
5571
+ * Every other candidate is superseded by a credential in this report.
5572
+ */
5573
+ VerdictRule[VerdictRule["NotSuperseded"] = 1] = "NotSuperseded";
5574
+ /**
5575
+ * Its hash holds over these bytes and no other unsuperseded candidate's does.
5576
+ */
5577
+ VerdictRule[VerdictRule["HardBinding"] = 2] = "HardBinding";
5578
+ return VerdictRule;
5579
+ }({});
5580
+ const FfiConverterTypeVerdictRule = (() => {
5581
+ class FFIConverter extends AbstractFfiConverterByteArray {
5582
+ readFromCursor(c) {
5583
+ switch (c.readI32()) {
5584
+ case 1: return 0;
5585
+ case 2: return 1;
5586
+ case 3: return 2;
5587
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5588
+ }
5589
+ }
5590
+ writeIntoCursor(value, c) {
5591
+ switch (value) {
5592
+ case 0: return c.writeI32(1);
5593
+ case 1: return c.writeI32(2);
5594
+ case 2: return c.writeI32(3);
5595
+ }
5596
+ }
5597
+ allocationSize(value) {
5598
+ return 4;
5599
+ }
5600
+ }
5601
+ return new FFIConverter();
5602
+ })();
5603
+ let Verdict_Tags = /* @__PURE__ */ function(Verdict_Tags) {
5604
+ Verdict_Tags["Unsigned"] = "Unsigned";
5605
+ Verdict_Tags["Inconclusive"] = "Inconclusive";
5606
+ Verdict_Tags["Embedded"] = "Embedded";
5607
+ Verdict_Tags["Recovered"] = "Recovered";
5608
+ Verdict_Tags["RecoveredDerivative"] = "RecoveredDerivative";
5609
+ Verdict_Tags["Ambiguous"] = "Ambiguous";
5610
+ return Verdict_Tags;
5611
+ }({});
5612
+ /**
5613
+ * What this verify concludes about the asset, chosen from [`AssetVerification::credentials`]
5614
+ * on signed evidence alone. Policy over the evidence: no credential's validation state changes,
5615
+ * and the list stays whole beside it.
5616
+ *
5617
+ * The embedded manifest is the verdict whenever the asset carries one that is not `Invalid`
5618
+ * and the golden comparison does not contradict it. When it `differs` from what the registry
5619
+ * holds, or several recovered candidates leave the comparison indeterminate, the embedded and
5620
+ * the recovered manifests are reported as ambiguous: C2PA 2.4's substitution use case leaves
5621
+ * that trust decision to the client. Otherwise a recovered candidate is named only when
5622
+ * evidence singles it out: it is the only one, or the only one no other credential in this
5623
+ * report supersedes (the successor's signed `parentOf` link), or the only one of those whose
5624
+ * hard binding holds over these bytes. A registry score, a signature time or a position in the
5625
+ * list is not evidence of which manifest belongs to these bytes, so candidates those alone would
5626
+ * separate are reported as ambiguous.
5627
+ */
5628
+ const Verdict = (() => {
5629
+ /**
5630
+ * No credential, and recovery either was not requested or finished with nothing.
5631
+ */
5632
+ class Unsigned_ extends UniffiEnum {
5633
+ /**
5634
+ * @private
5635
+ * This field is private and should not be used, use `tag` instead.
5636
+ */
5637
+ [uniffiTypeNameSymbol] = "Verdict";
5638
+ tag = "Unsigned";
5639
+ constructor() {
5640
+ super("Verdict", "Unsigned");
5641
+ }
5642
+ static new() {
5643
+ return new Unsigned_();
5644
+ }
5645
+ static instanceOf(obj) {
5646
+ return obj.tag === "Unsigned";
5647
+ }
5648
+ }
5649
+ /**
5650
+ * No credential, and recovery did not finish: unsigned cannot be claimed.
5651
+ */
5652
+ class Inconclusive_ extends UniffiEnum {
5653
+ /**
5654
+ * @private
5655
+ * This field is private and should not be used, use `tag` instead.
5656
+ */
5657
+ [uniffiTypeNameSymbol] = "Verdict";
5658
+ tag = "Inconclusive";
5659
+ constructor() {
5660
+ super("Verdict", "Inconclusive");
5661
+ }
5662
+ static new() {
5663
+ return new Inconclusive_();
5664
+ }
5665
+ static instanceOf(obj) {
5666
+ return obj.tag === "Inconclusive";
5667
+ }
5668
+ }
5669
+ /**
5670
+ * The manifest the asset carries, always the first credential. An `Invalid` one is the
5671
+ * verdict only when nothing was recovered.
5672
+ */
5673
+ class Embedded_ extends UniffiEnum {
5674
+ /**
5675
+ * @private
5676
+ * This field is private and should not be used, use `tag` instead.
5677
+ */
5678
+ [uniffiTypeNameSymbol] = "Verdict";
5679
+ tag = "Embedded";
5680
+ constructor() {
5681
+ super("Verdict", "Embedded");
5682
+ }
5683
+ static new() {
5684
+ return new Embedded_();
5685
+ }
5686
+ static instanceOf(obj) {
5687
+ return obj.tag === "Embedded";
5688
+ }
5689
+ }
5690
+ /**
5691
+ * A recovered manifest whose hard binding holds over these bytes.
5692
+ */
5693
+ class Recovered_ extends UniffiEnum {
5694
+ /**
5695
+ * @private
5696
+ * This field is private and should not be used, use `tag` instead.
5697
+ */
5698
+ [uniffiTypeNameSymbol] = "Verdict";
5699
+ tag = "Recovered";
5700
+ inner;
5701
+ constructor(inner) {
5702
+ super("Verdict", "Recovered");
5703
+ this.inner = Object.freeze(inner);
5704
+ }
5705
+ static new(inner) {
5706
+ return new Recovered_(inner);
5707
+ }
5708
+ static instanceOf(obj) {
5709
+ return obj.tag === "Recovered";
5710
+ }
5711
+ }
5712
+ /**
5713
+ * A recovered manifest for an earlier state of these bytes: its hard binding mismatches.
5714
+ */
5715
+ class RecoveredDerivative_ extends UniffiEnum {
5716
+ /**
5717
+ * @private
5718
+ * This field is private and should not be used, use `tag` instead.
5719
+ */
5720
+ [uniffiTypeNameSymbol] = "Verdict";
5721
+ tag = "RecoveredDerivative";
5722
+ inner;
5723
+ constructor(inner) {
5724
+ super("Verdict", "RecoveredDerivative");
5725
+ this.inner = Object.freeze(inner);
5726
+ }
5727
+ static new(inner) {
5728
+ return new RecoveredDerivative_(inner);
5729
+ }
5730
+ static instanceOf(obj) {
5731
+ return obj.tag === "RecoveredDerivative";
5732
+ }
5733
+ }
5734
+ /**
5735
+ * Manifests that no signed evidence separates, by index: several recovered ones, or the
5736
+ * embedded one beside what the registry holds when the golden comparison contradicts it.
5737
+ * Which one a product shows is its own rule.
5738
+ */
5739
+ class Ambiguous_ extends UniffiEnum {
5740
+ /**
5741
+ * @private
5742
+ * This field is private and should not be used, use `tag` instead.
5743
+ */
5744
+ [uniffiTypeNameSymbol] = "Verdict";
5745
+ tag = "Ambiguous";
5746
+ inner;
5747
+ constructor(inner) {
5748
+ super("Verdict", "Ambiguous");
5749
+ this.inner = Object.freeze(inner);
5750
+ }
5751
+ static new(inner) {
5752
+ return new Ambiguous_(inner);
5753
+ }
5754
+ static instanceOf(obj) {
5755
+ return obj.tag === "Ambiguous";
5756
+ }
5757
+ }
5758
+ function instanceOf(obj) {
5759
+ return obj[uniffiTypeNameSymbol] === "Verdict";
5760
+ }
5761
+ return Object.freeze({
5762
+ instanceOf,
5763
+ Unsigned: Unsigned_,
5764
+ Inconclusive: Inconclusive_,
5765
+ Embedded: Embedded_,
5766
+ Recovered: Recovered_,
5767
+ RecoveredDerivative: RecoveredDerivative_,
5768
+ Ambiguous: Ambiguous_
5769
+ });
5770
+ })();
5771
+ const FfiConverterTypeVerdict = (() => {
5772
+ class FFIConverter extends AbstractFfiConverterByteArray {
5773
+ readFromCursor(c) {
5774
+ switch (c.readI32()) {
5775
+ case 1: return new Verdict.Unsigned();
5776
+ case 2: return new Verdict.Inconclusive();
5777
+ case 3: return new Verdict.Embedded();
5778
+ case 4: return new Verdict.Recovered({
5779
+ index: FfiConverterUInt32.readFromCursor(c),
5780
+ decidedBy: FfiConverterTypeVerdictRule.readFromCursor(c)
5781
+ });
5782
+ case 5: return new Verdict.RecoveredDerivative({
5783
+ index: FfiConverterUInt32.readFromCursor(c),
5784
+ decidedBy: FfiConverterTypeVerdictRule.readFromCursor(c)
5785
+ });
5786
+ case 6: return new Verdict.Ambiguous({ candidates: FfiConverterSequenceUInt32.readFromCursor(c) });
5787
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5788
+ }
5789
+ }
5790
+ writeIntoCursor(value, c) {
5791
+ switch (value.tag) {
5792
+ case "Unsigned":
5793
+ c.writeI32(1);
5794
+ return;
5795
+ case "Inconclusive":
5796
+ c.writeI32(2);
5797
+ return;
5798
+ case "Embedded":
5799
+ c.writeI32(3);
5800
+ return;
5801
+ case "Recovered": {
5802
+ c.writeI32(4);
5803
+ const inner = value.inner;
5804
+ FfiConverterUInt32.writeIntoCursor(inner.index, c);
5805
+ FfiConverterTypeVerdictRule.writeIntoCursor(inner.decidedBy, c);
5806
+ return;
5807
+ }
5808
+ case "RecoveredDerivative": {
5809
+ c.writeI32(5);
5810
+ const inner = value.inner;
5811
+ FfiConverterUInt32.writeIntoCursor(inner.index, c);
5812
+ FfiConverterTypeVerdictRule.writeIntoCursor(inner.decidedBy, c);
5813
+ return;
5814
+ }
5815
+ case "Ambiguous": {
5816
+ c.writeI32(6);
5817
+ const inner = value.inner;
5818
+ FfiConverterSequenceUInt32.writeIntoCursor(inner.candidates, c);
5819
+ return;
5820
+ }
5821
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5822
+ }
5823
+ }
5824
+ allocationSize(value) {
5825
+ switch (value.tag) {
5826
+ case "Unsigned": return 4;
5827
+ case "Inconclusive": return 4;
5828
+ case "Embedded": return 4;
5829
+ case "Recovered": {
5830
+ const inner = value.inner;
5831
+ let size = 4;
5832
+ size += FfiConverterUInt32.allocationSize(inner.index);
5833
+ size += FfiConverterTypeVerdictRule.allocationSize(inner.decidedBy);
5834
+ return size;
5835
+ }
5836
+ case "RecoveredDerivative": {
5837
+ const inner = value.inner;
5838
+ let size = 4;
5839
+ size += FfiConverterUInt32.allocationSize(inner.index);
5840
+ size += FfiConverterTypeVerdictRule.allocationSize(inner.decidedBy);
5841
+ return size;
5842
+ }
5843
+ case "Ambiguous": {
5043
5844
  const inner = value.inner;
5044
5845
  let size = 4;
5045
- size += FfiConverterOptionalUInt32.allocationSize(inner.recoveredIndex);
5846
+ size += FfiConverterSequenceUInt32.allocationSize(inner.candidates);
5046
5847
  return size;
5047
5848
  }
5048
5849
  default: throw new UniffiInternalError.UnexpectedEnumCase();
@@ -5071,16 +5872,18 @@ const FfiConverterTypeAssetVerification = (() => {
5071
5872
  return {
5072
5873
  credentials: FfiConverterSequenceTypeFoundCredential.readFromCursor(c),
5073
5874
  recovery: FfiConverterTypeRecoverySummary.readFromCursor(c),
5074
- goldenComparison: FfiConverterTypeGoldenComparison.readFromCursor(c)
5875
+ goldenComparison: FfiConverterTypeGoldenComparison.readFromCursor(c),
5876
+ verdict: FfiConverterTypeVerdict.readFromCursor(c)
5075
5877
  };
5076
5878
  }
5077
5879
  writeIntoCursor(value, c) {
5078
5880
  FfiConverterSequenceTypeFoundCredential.writeIntoCursor(value.credentials, c);
5079
5881
  FfiConverterTypeRecoverySummary.writeIntoCursor(value.recovery, c);
5080
5882
  FfiConverterTypeGoldenComparison.writeIntoCursor(value.goldenComparison, c);
5883
+ FfiConverterTypeVerdict.writeIntoCursor(value.verdict, c);
5081
5884
  }
5082
5885
  allocationSize(value) {
5083
- return FfiConverterSequenceTypeFoundCredential.allocationSize(value.credentials) + FfiConverterTypeRecoverySummary.allocationSize(value.recovery) + FfiConverterTypeGoldenComparison.allocationSize(value.goldenComparison);
5886
+ return FfiConverterSequenceTypeFoundCredential.allocationSize(value.credentials) + FfiConverterTypeRecoverySummary.allocationSize(value.recovery) + FfiConverterTypeGoldenComparison.allocationSize(value.goldenComparison) + FfiConverterTypeVerdict.allocationSize(value.verdict);
5084
5887
  }
5085
5888
  }
5086
5889
  return new FFIConverter();
@@ -5089,7 +5892,7 @@ const FfiConverterTypeAssetVerification = (() => {
5089
5892
  * Generated factory for {@link RegistryOptions} record objects.
5090
5893
  */
5091
5894
  const RegistryOptions = (() => {
5092
- const defaults = () => ({ endpoints: void 0 });
5895
+ const defaults = () => ({ endpoints: [] });
5093
5896
  const create = (() => {
5094
5897
  return uniffiCreateRecord(defaults);
5095
5898
  })();
@@ -5104,15 +5907,15 @@ const FfiConverterTypeRegistryOptions = (() => {
5104
5907
  readFromCursor(c) {
5105
5908
  return {
5106
5909
  url: FfiConverterString.readFromCursor(c),
5107
- endpoints: FfiConverterOptionalSequenceString.readFromCursor(c)
5910
+ endpoints: FfiConverterSequenceString.readFromCursor(c)
5108
5911
  };
5109
5912
  }
5110
5913
  writeIntoCursor(value, c) {
5111
5914
  FfiConverterString.writeIntoCursor(value.url, c);
5112
- FfiConverterOptionalSequenceString.writeIntoCursor(value.endpoints, c);
5915
+ FfiConverterSequenceString.writeIntoCursor(value.endpoints, c);
5113
5916
  }
5114
5917
  allocationSize(value) {
5115
- return FfiConverterString.allocationSize(value.url) + FfiConverterOptionalSequenceString.allocationSize(value.endpoints);
5918
+ return FfiConverterString.allocationSize(value.url) + FfiConverterSequenceString.allocationSize(value.endpoints);
5116
5919
  }
5117
5920
  }
5118
5921
  return new FFIConverter();
@@ -5693,7 +6496,7 @@ let RecoveryPolicy = /* @__PURE__ */ function(RecoveryPolicy) {
5693
6496
  * It queries the registry on every verify, without making it load-bearing on the asset's own
5694
6497
  * credential: the flow provides information about a substitution rather than gating the local
5695
6498
  * manifest, so a registry that cannot be reached leaves [`RecoveryStatus::Incomplete`], the
5696
- * reason as a [`RecoveryIssue`], and [`GoldenComparison::Indeterminate`]. A caller for whom a
6499
+ * reason as a [`RecoveryIssue`], and [`GoldenComparison::RecoveryIncomplete`]. A caller for whom a
5697
6500
  * cross-check that never ran must not pass for agreement branches on that status.
5698
6501
  */
5699
6502
  RecoveryPolicy[RecoveryPolicy["Always"] = 1] = "Always";
@@ -6734,7 +7537,7 @@ var AssetVerifier = class extends UniffiAbstractObject {
6734
7537
  }, FfiConverterString.lift.bind(FfiConverterString)));
6735
7538
  }
6736
7539
  /**
6737
- * Verify an asset from a [`RangeSource`] using the per-call binders and recovery plan.
7540
+ * Verify an asset from a [`RangeSource`] using the per-call binders and recovery options.
6738
7541
  * `plugins` carries the caller's
6739
7542
  * plugins for non-c2pa formats (e.g. MXF); pass an empty `PluginRegistry` for a
6740
7543
  * built-in C2PA media format. The SDK links no plugin itself. Returns embedded/recovered
@@ -7359,6 +8162,7 @@ const FfiConverterMapStringTypeManifest = new FfiConverterMap(FfiConverterString
7359
8162
  const FfiConverterOptionalTypeValidationState = new FfiConverterOptional(FfiConverterTypeValidationState);
7360
8163
  const FfiConverterSequenceTypeFoundCredential = new FfiConverterArray(FfiConverterTypeFoundCredential);
7361
8164
  const FfiConverterSequenceTypeRecoveryIssue = new FfiConverterArray(FfiConverterTypeRecoveryIssue);
8165
+ const FfiConverterSequenceUInt32 = new FfiConverterArray(FfiConverterUInt32);
7362
8166
  const FfiConverterOptionalTypeRegistryOptions = new FfiConverterOptional(FfiConverterTypeRegistryOptions);
7363
8167
  const FfiConverterSequenceTypeValidationCode = new FfiConverterArray(FfiConverterTypeValidationCode);
7364
8168
  const FfiConverterSequenceTypeSessionKeySummary = new FfiConverterArray(FfiConverterTypeSessionKeySummary);
@@ -7392,7 +8196,7 @@ function uniffiEnsureInitialized() {
7392
8196
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_func_resource() !== 40984) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_func_resource");
7393
8197
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_func_thumbnails() !== 52018) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_func_thumbnails");
7394
8198
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_assetverifier_create() !== 14882) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_assetverifier_create");
7395
- if (getter().uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify() !== 37299) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify");
8199
+ if (getter().uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify() !== 16580) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify");
7396
8200
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_custom() !== 3866) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_custom");
7397
8201
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_held() !== 1096) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_held");
7398
8202
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_iscc() !== 47287) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_iscc");
@@ -7466,7 +8270,6 @@ var trylimbo_verifier_default = Object.freeze({
7466
8270
  FfiConverterTypeRecovery,
7467
8271
  FfiConverterTypeRecoveryDiscovery,
7468
8272
  FfiConverterTypeRecoveryIssue,
7469
- FfiConverterTypeRecoveryIssueKind,
7470
8273
  FfiConverterTypeRecoveryPolicy,
7471
8274
  FfiConverterTypeRecoveryStatus,
7472
8275
  FfiConverterTypeRecoverySummary,
@@ -7504,6 +8307,8 @@ var trylimbo_verifier_default = Object.freeze({
7504
8307
  FfiConverterTypeValidationState,
7505
8308
  FfiConverterTypeValidationStatus,
7506
8309
  FfiConverterTypeValue,
8310
+ FfiConverterTypeVerdict,
8311
+ FfiConverterTypeVerdictRule,
7507
8312
  FfiConverterTypeVerifyOptions
7508
8313
  }
7509
8314
  });
@@ -7517,4 +8322,4 @@ if (!initialized) {
7517
8322
  async function uniffiInitAsync() {}
7518
8323
  var ffi_trylimbo_sdk_verifier_default = { trylimbo_verifier: trylimbo_verifier_exports };
7519
8324
  //#endregion
7520
- export { Actor, AssertionMetadata, AssetType, AssetVerification, AssetVerifier, AssetVerifierOptions, Binder, ByContent, ByReference, ClaimGeneratorInfo, Code, ContentBindingClass, ContentTrigger, Coordinate, CredentialOrigin, CredentialOrigin_Tags, DataSource, DeriveOptions, Detectors, Detectors_Tags, EndInclusivity, FieldViolation, FileSource, FingerprintCheck, FingerprintCheck_Tags, FoundCredential, Frame, GoldenComparison, GoldenComparison_Tags, HardBinding, HashedUri, Ingredient, IngredientDeltaValidationResult, InitValidation, Item, Lineage, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestStore, MediaValidation, MemorySource, PluginRegistry, Range, RangeSourceImpl, RangeType, Recovery, RecoveryDiscovery, RecoveryDiscovery_Tags, RecoveryIssue, RecoveryIssueKind, RecoveryPolicy, RecoveryStatus, RecoverySummary, Region, RegionOfInterest, RegistryOptions, Relationship, ResourceRef, ReviewRating, Role, SdkError, SdkError_Tags, SegmentTiming, SegmentValidation, SegmentValidation_Tags, SessionKeySummary, Shape, ShapeType, SignatureInfo, SigningAlgSchema, SoftBinding, StatusCodes, StreamValidation, StreamVerifier, StreamVerifierOptions, Text, TextSelector, TextSelectorRange, Time, TimeType, UnitType, UriOrResource, UriOrResource_Tags, ValidationCode, ValidationCodeKind, ValidationResults, ValidationState, ValidationStatus, VerifyOptions, c2paTrustList, c2paTsaTrustList, ffi_trylimbo_sdk_verifier_default as default, devCa, parse, resource, thumbnails, uniffiInitAsync };
8325
+ export { Actor, AssertionMetadata, AssetType, AssetVerification, AssetVerifier, AssetVerifierOptions, Binder, ByContent, ByReference, ClaimGeneratorInfo, Code, ContentBindingClass, ContentTrigger, Coordinate, CredentialOrigin, CredentialOrigin_Tags, DataSource, DeriveOptions, Detectors, Detectors_Tags, EndInclusivity, FieldViolation, FileSource, FingerprintCheck, FingerprintCheck_Tags, FoundCredential, Frame, GoldenComparison, GoldenComparison_Tags, HardBinding, HashedUri, Ingredient, IngredientDeltaValidationResult, InitValidation, Item, Lineage, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestStore, MediaValidation, MemorySource, PluginRegistry, Range, RangeSourceImpl, RangeType, Recovery, RecoveryDiscovery, RecoveryDiscovery_Tags, RecoveryIssue, RecoveryIssue_Tags, RecoveryPolicy, RecoveryStatus, RecoverySummary, Region, RegionOfInterest, RegistryOptions, Relationship, ResourceRef, ReviewRating, Role, SdkError, SdkError_Tags, SegmentTiming, SegmentValidation, SegmentValidation_Tags, SessionKeySummary, Shape, ShapeType, SignatureInfo, SigningAlgSchema, SoftBinding, StatusCodes, StreamValidation, StreamVerifier, StreamVerifierOptions, Text, TextSelector, TextSelectorRange, Time, TimeType, UnitType, UriOrResource, UriOrResource_Tags, ValidationCode, ValidationCodeKind, ValidationResults, ValidationState, ValidationStatus, Verdict, VerdictRule, Verdict_Tags, VerifyOptions, c2paTrustList, c2paTsaTrustList, ffi_trylimbo_sdk_verifier_default as default, devCa, parse, resource, thumbnails, uniffiInitAsync };