@trylimbo/sdk-verifier 0.2.10 → 0.2.11-canary.13

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
@@ -1684,6 +1684,11 @@ const DEFINITIONS = {
1684
1684
  ret: FfiType.Void,
1685
1685
  hasRustCallStatus: false
1686
1686
  },
1687
+ "uniffi_trylimbo_sdk_verifier_fn_init_callback_vtable_binderplugin": {
1688
+ args: [FfiType.Reference(FfiType.Struct("VTableCallbackInterfaceTrylimboVerifierBinderPlugin"))],
1689
+ ret: FfiType.Void,
1690
+ hasRustCallStatus: false
1691
+ },
1687
1692
  "uniffi_trylimbo_sdk_verifier_fn_init_callback_vtable_pluginread": {
1688
1693
  args: [FfiType.Reference(FfiType.Struct("VTableCallbackInterfaceTrylimboVerifierPluginRead"))],
1689
1694
  ret: FfiType.Void,
@@ -1733,6 +1738,11 @@ const DEFINITIONS = {
1733
1738
  ret: FfiType.Handle,
1734
1739
  hasRustCallStatus: false
1735
1740
  },
1741
+ "uniffi_trylimbo_sdk_verifier_fn_constructor_binder_custom": {
1742
+ args: [FfiType.Handle],
1743
+ ret: FfiType.Handle,
1744
+ hasRustCallStatus: true
1745
+ },
1736
1746
  "uniffi_trylimbo_sdk_verifier_fn_constructor_binder_held": {
1737
1747
  args: [FfiType.RustBuffer],
1738
1748
  ret: FfiType.Handle,
@@ -1898,6 +1908,11 @@ const DEFINITIONS = {
1898
1908
  ret: FfiType.UInt16,
1899
1909
  hasRustCallStatus: false
1900
1910
  },
1911
+ "uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_custom": {
1912
+ args: [],
1913
+ ret: FfiType.UInt16,
1914
+ hasRustCallStatus: false
1915
+ },
1901
1916
  "uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_held": {
1902
1917
  args: [],
1903
1918
  ret: FfiType.UInt16,
@@ -2052,6 +2067,28 @@ const DEFINITIONS = {
2052
2067
  ret: FfiType.Void,
2053
2068
  hasRustCallStatus: false
2054
2069
  },
2070
+ "CallbackInterfaceTrylimboVerifierBinderPluginMethod0": {
2071
+ args: [
2072
+ FfiType.Handle,
2073
+ FfiType.Handle,
2074
+ FfiType.RustBuffer,
2075
+ FfiType.Callback("ForeignFutureCompleterust_buffer"),
2076
+ FfiType.Handle
2077
+ ],
2078
+ ret: FfiType.Struct("ForeignFutureDroppedCallbackStruct"),
2079
+ hasRustCallStatus: false,
2080
+ outReturn: true
2081
+ },
2082
+ "CallbackInterfaceCloneTrylimboVerifier_BinderPlugin": {
2083
+ args: [FfiType.Handle],
2084
+ ret: FfiType.Handle,
2085
+ hasRustCallStatus: false
2086
+ },
2087
+ "CallbackInterfaceFreeTrylimboVerifier_BinderPlugin": {
2088
+ args: [FfiType.Handle],
2089
+ ret: FfiType.Void,
2090
+ hasRustCallStatus: false
2091
+ },
2055
2092
  "CallbackInterfaceTrylimboVerifierPluginReadMethod0": {
2056
2093
  args: [FfiType.Handle],
2057
2094
  ret: FfiType.RustBuffer,
@@ -2131,6 +2168,20 @@ const DEFINITIONS = {
2131
2168
  type: FfiType.Callback("CallbackInterfaceTrylimboVerifierRangeSourceMethod1")
2132
2169
  }
2133
2170
  ],
2171
+ "VTableCallbackInterfaceTrylimboVerifierBinderPlugin": [
2172
+ {
2173
+ name: "uniffi_free",
2174
+ type: FfiType.Callback("CallbackInterfaceFreeTrylimboVerifier_BinderPlugin")
2175
+ },
2176
+ {
2177
+ name: "uniffi_clone",
2178
+ type: FfiType.Callback("CallbackInterfaceCloneTrylimboVerifier_BinderPlugin")
2179
+ },
2180
+ {
2181
+ name: "derive",
2182
+ type: FfiType.Callback("CallbackInterfaceTrylimboVerifierBinderPluginMethod0")
2183
+ }
2184
+ ],
2134
2185
  "VTableCallbackInterfaceTrylimboVerifierPluginRead": [
2135
2186
  {
2136
2187
  name: "uniffi_free",
@@ -2180,8 +2231,9 @@ var trylimbo_verifier_exports = /* @__PURE__ */ __exportAll({
2180
2231
  Binder: () => Binder,
2181
2232
  ClaimGeneratorInfo: () => ClaimGeneratorInfo,
2182
2233
  Code: () => Code,
2234
+ ContentAlgorithm: () => ContentAlgorithm,
2235
+ ContentAlgorithm_Tags: () => ContentAlgorithm_Tags,
2183
2236
  ContentBindingClass: () => ContentBindingClass,
2184
- ContentBindingEvidence: () => ContentBindingEvidence,
2185
2237
  Coordinate: () => Coordinate,
2186
2238
  CredentialOrigin: () => CredentialOrigin,
2187
2239
  CredentialOrigin_Tags: () => CredentialOrigin_Tags,
@@ -2196,6 +2248,7 @@ var trylimbo_verifier_exports = /* @__PURE__ */ __exportAll({
2196
2248
  Frame: () => Frame,
2197
2249
  GoldenComparison: () => GoldenComparison,
2198
2250
  GoldenComparison_Tags: () => GoldenComparison_Tags,
2251
+ HardBinding: () => HardBinding,
2199
2252
  HashedUri: () => HashedUri,
2200
2253
  Ingredient: () => Ingredient,
2201
2254
  IngredientDeltaValidationResult: () => IngredientDeltaValidationResult,
@@ -2211,15 +2264,23 @@ var trylimbo_verifier_exports = /* @__PURE__ */ __exportAll({
2211
2264
  Range: () => Range,
2212
2265
  RangeSourceImpl: () => RangeSourceImpl,
2213
2266
  RangeType: () => RangeType,
2267
+ RecoveryCompletion: () => RecoveryCompletion,
2268
+ RecoveryDiscovery: () => RecoveryDiscovery,
2269
+ RecoveryDiscovery_Tags: () => RecoveryDiscovery_Tags,
2270
+ RecoveryExecution: () => RecoveryExecution,
2214
2271
  RecoveryIssue: () => RecoveryIssue,
2215
2272
  RecoveryIssueKind: () => RecoveryIssueKind,
2273
+ RecoveryPlan: () => RecoveryPlan,
2274
+ RecoveryPlan_Tags: () => RecoveryPlan_Tags,
2216
2275
  RecoveryPolicy: () => RecoveryPolicy,
2276
+ RecoveryQuery: () => RecoveryQuery,
2277
+ RecoveryQuery_Tags: () => RecoveryQuery_Tags,
2278
+ RecoveryStage: () => RecoveryStage,
2217
2279
  RecoveryStatus: () => RecoveryStatus,
2218
2280
  RecoverySummary: () => RecoverySummary,
2219
2281
  Region: () => Region,
2220
2282
  RegionOfInterest: () => RegionOfInterest,
2221
2283
  RegistryOptions: () => RegistryOptions,
2222
- RegistryQueries: () => RegistryQueries,
2223
2284
  Relationship: () => Relationship,
2224
2285
  ResourceRef: () => ResourceRef,
2225
2286
  ReviewRating: () => ReviewRating,
@@ -3261,12 +3322,11 @@ const FfiConverterTypeSoftBinding = (() => {
3261
3322
  }
3262
3323
  return new FFIConverter();
3263
3324
  })();
3264
- const FfiConverterTypeSimilarityScore = FfiConverterUInt8;
3265
3325
  /**
3266
3326
  * The class of binding a registry derived from an uploaded asset.
3267
3327
  *
3268
3328
  * Unlike [`SoftBinding`], this carries no value: the C2PA `byContent` response does not return
3269
- * one. The algorithm and class are still evidence because the request selects exactly that
3329
+ * one. The algorithm and class are still evidence because every request selects exactly one
3270
3330
  * advertised algorithm.
3271
3331
  */
3272
3332
  let ContentBindingClass = /* @__PURE__ */ function(ContentBindingClass) {
@@ -3295,47 +3355,131 @@ const FfiConverterTypeContentBindingClass = (() => {
3295
3355
  }
3296
3356
  return new FFIConverter();
3297
3357
  })();
3298
- /**
3299
- * Generated factory for {@link ContentBindingEvidence} record objects.
3300
- */
3301
- const ContentBindingEvidence = (() => {
3302
- const defaults = () => ({});
3303
- const create = (() => {
3304
- return uniffiCreateRecord(defaults);
3305
- })();
3358
+ const FfiConverterTypeSimilarityScore = FfiConverterUInt8;
3359
+ let RecoveryDiscovery_Tags = /* @__PURE__ */ function(RecoveryDiscovery_Tags) {
3360
+ RecoveryDiscovery_Tags["ByBinding"] = "ByBinding";
3361
+ RecoveryDiscovery_Tags["ByContent"] = "ByContent";
3362
+ return RecoveryDiscovery_Tags;
3363
+ }({});
3364
+ const RecoveryDiscovery = (() => {
3365
+ class ByBinding_ extends UniffiEnum {
3366
+ /**
3367
+ * @private
3368
+ * This field is private and should not be used, use `tag` instead.
3369
+ */
3370
+ [uniffiTypeNameSymbol] = "RecoveryDiscovery";
3371
+ tag = "ByBinding";
3372
+ inner;
3373
+ constructor(inner) {
3374
+ super("RecoveryDiscovery", "ByBinding");
3375
+ this.inner = Object.freeze(inner);
3376
+ }
3377
+ static new(inner) {
3378
+ return new ByBinding_(inner);
3379
+ }
3380
+ static instanceOf(obj) {
3381
+ return obj.tag === "ByBinding";
3382
+ }
3383
+ }
3384
+ class ByContent_ extends UniffiEnum {
3385
+ /**
3386
+ * @private
3387
+ * This field is private and should not be used, use `tag` instead.
3388
+ */
3389
+ [uniffiTypeNameSymbol] = "RecoveryDiscovery";
3390
+ tag = "ByContent";
3391
+ inner;
3392
+ constructor(inner) {
3393
+ super("RecoveryDiscovery", "ByContent");
3394
+ this.inner = Object.freeze(inner);
3395
+ }
3396
+ static new(inner) {
3397
+ return new ByContent_(inner);
3398
+ }
3399
+ static instanceOf(obj) {
3400
+ return obj.tag === "ByContent";
3401
+ }
3402
+ }
3403
+ function instanceOf(obj) {
3404
+ return obj[uniffiTypeNameSymbol] === "RecoveryDiscovery";
3405
+ }
3306
3406
  return Object.freeze({
3307
- create,
3308
- new: create,
3309
- defaults: () => Object.freeze(defaults())
3407
+ instanceOf,
3408
+ ByBinding: ByBinding_,
3409
+ ByContent: ByContent_
3310
3410
  });
3311
3411
  })();
3312
- const FfiConverterTypeContentBindingEvidence = (() => {
3412
+ const FfiConverterTypeRecoveryDiscovery = (() => {
3313
3413
  class FFIConverter extends AbstractFfiConverterByteArray {
3314
3414
  readFromCursor(c) {
3315
- return {
3316
- algorithm: FfiConverterString.readFromCursor(c),
3317
- class: FfiConverterTypeContentBindingClass.readFromCursor(c),
3318
- hint: FfiConverterOptionalTypeSoftBinding.readFromCursor(c),
3319
- registryScore: FfiConverterOptionalTypeSimilarityScore.readFromCursor(c)
3320
- };
3415
+ switch (c.readI32()) {
3416
+ case 1: return new RecoveryDiscovery.ByBinding({
3417
+ binderIndex: FfiConverterUInt32.readFromCursor(c),
3418
+ binding: FfiConverterTypeSoftBinding.readFromCursor(c),
3419
+ class: FfiConverterTypeContentBindingClass.readFromCursor(c),
3420
+ registryScore: FfiConverterOptionalTypeSimilarityScore.readFromCursor(c)
3421
+ });
3422
+ case 2: return new RecoveryDiscovery.ByContent({
3423
+ algorithm: FfiConverterString.readFromCursor(c),
3424
+ class: FfiConverterTypeContentBindingClass.readFromCursor(c),
3425
+ hint: FfiConverterOptionalTypeSoftBinding.readFromCursor(c),
3426
+ registryScore: FfiConverterOptionalTypeSimilarityScore.readFromCursor(c)
3427
+ });
3428
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
3429
+ }
3321
3430
  }
3322
3431
  writeIntoCursor(value, c) {
3323
- FfiConverterString.writeIntoCursor(value.algorithm, c);
3324
- FfiConverterTypeContentBindingClass.writeIntoCursor(value.class, c);
3325
- FfiConverterOptionalTypeSoftBinding.writeIntoCursor(value.hint, c);
3326
- FfiConverterOptionalTypeSimilarityScore.writeIntoCursor(value.registryScore, c);
3432
+ switch (value.tag) {
3433
+ case "ByBinding": {
3434
+ c.writeI32(1);
3435
+ const inner = value.inner;
3436
+ FfiConverterUInt32.writeIntoCursor(inner.binderIndex, c);
3437
+ FfiConverterTypeSoftBinding.writeIntoCursor(inner.binding, c);
3438
+ FfiConverterTypeContentBindingClass.writeIntoCursor(inner.class, c);
3439
+ FfiConverterOptionalTypeSimilarityScore.writeIntoCursor(inner.registryScore, c);
3440
+ return;
3441
+ }
3442
+ case "ByContent": {
3443
+ c.writeI32(2);
3444
+ const inner = value.inner;
3445
+ FfiConverterString.writeIntoCursor(inner.algorithm, c);
3446
+ FfiConverterTypeContentBindingClass.writeIntoCursor(inner.class, c);
3447
+ FfiConverterOptionalTypeSoftBinding.writeIntoCursor(inner.hint, c);
3448
+ FfiConverterOptionalTypeSimilarityScore.writeIntoCursor(inner.registryScore, c);
3449
+ return;
3450
+ }
3451
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
3452
+ }
3327
3453
  }
3328
3454
  allocationSize(value) {
3329
- return FfiConverterString.allocationSize(value.algorithm) + FfiConverterTypeContentBindingClass.allocationSize(value.class) + FfiConverterOptionalTypeSoftBinding.allocationSize(value.hint) + FfiConverterOptionalTypeSimilarityScore.allocationSize(value.registryScore);
3455
+ switch (value.tag) {
3456
+ case "ByBinding": {
3457
+ const inner = value.inner;
3458
+ let size = 4;
3459
+ size += FfiConverterUInt32.allocationSize(inner.binderIndex);
3460
+ size += FfiConverterTypeSoftBinding.allocationSize(inner.binding);
3461
+ size += FfiConverterTypeContentBindingClass.allocationSize(inner.class);
3462
+ size += FfiConverterOptionalTypeSimilarityScore.allocationSize(inner.registryScore);
3463
+ return size;
3464
+ }
3465
+ case "ByContent": {
3466
+ const inner = value.inner;
3467
+ let size = 4;
3468
+ size += FfiConverterString.allocationSize(inner.algorithm);
3469
+ size += FfiConverterTypeContentBindingClass.allocationSize(inner.class);
3470
+ size += FfiConverterOptionalTypeSoftBinding.allocationSize(inner.hint);
3471
+ size += FfiConverterOptionalTypeSimilarityScore.allocationSize(inner.registryScore);
3472
+ return size;
3473
+ }
3474
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
3475
+ }
3330
3476
  }
3331
3477
  }
3332
3478
  return new FFIConverter();
3333
3479
  })();
3334
3480
  let CredentialOrigin_Tags = /* @__PURE__ */ function(CredentialOrigin_Tags) {
3335
3481
  CredentialOrigin_Tags["Embedded"] = "Embedded";
3336
- CredentialOrigin_Tags["RecoveredByFingerprint"] = "RecoveredByFingerprint";
3337
- CredentialOrigin_Tags["RecoveredByWatermark"] = "RecoveredByWatermark";
3338
- CredentialOrigin_Tags["RecoveredByContent"] = "RecoveredByContent";
3482
+ CredentialOrigin_Tags["Recovered"] = "Recovered";
3339
3483
  return CredentialOrigin_Tags;
3340
3484
  }({});
3341
3485
  /**
@@ -3360,61 +3504,23 @@ const CredentialOrigin = (() => {
3360
3504
  return obj.tag === "Embedded";
3361
3505
  }
3362
3506
  }
3363
- class RecoveredByFingerprint_ extends UniffiEnum {
3364
- /**
3365
- * @private
3366
- * This field is private and should not be used, use `tag` instead.
3367
- */
3368
- [uniffiTypeNameSymbol] = "CredentialOrigin";
3369
- tag = "RecoveredByFingerprint";
3370
- inner;
3371
- constructor(inner) {
3372
- super("CredentialOrigin", "RecoveredByFingerprint");
3373
- this.inner = Object.freeze(inner);
3374
- }
3375
- static new(inner) {
3376
- return new RecoveredByFingerprint_(inner);
3377
- }
3378
- static instanceOf(obj) {
3379
- return obj.tag === "RecoveredByFingerprint";
3380
- }
3381
- }
3382
- class RecoveredByWatermark_ extends UniffiEnum {
3383
- /**
3384
- * @private
3385
- * This field is private and should not be used, use `tag` instead.
3386
- */
3387
- [uniffiTypeNameSymbol] = "CredentialOrigin";
3388
- tag = "RecoveredByWatermark";
3389
- inner;
3390
- constructor(inner) {
3391
- super("CredentialOrigin", "RecoveredByWatermark");
3392
- this.inner = Object.freeze(inner);
3393
- }
3394
- static new(inner) {
3395
- return new RecoveredByWatermark_(inner);
3396
- }
3397
- static instanceOf(obj) {
3398
- return obj.tag === "RecoveredByWatermark";
3399
- }
3400
- }
3401
- class RecoveredByContent_ extends UniffiEnum {
3507
+ class Recovered_ extends UniffiEnum {
3402
3508
  /**
3403
3509
  * @private
3404
3510
  * This field is private and should not be used, use `tag` instead.
3405
3511
  */
3406
3512
  [uniffiTypeNameSymbol] = "CredentialOrigin";
3407
- tag = "RecoveredByContent";
3513
+ tag = "Recovered";
3408
3514
  inner;
3409
3515
  constructor(inner) {
3410
- super("CredentialOrigin", "RecoveredByContent");
3516
+ super("CredentialOrigin", "Recovered");
3411
3517
  this.inner = Object.freeze(inner);
3412
3518
  }
3413
3519
  static new(inner) {
3414
- return new RecoveredByContent_(inner);
3520
+ return new Recovered_(inner);
3415
3521
  }
3416
3522
  static instanceOf(obj) {
3417
- return obj.tag === "RecoveredByContent";
3523
+ return obj.tag === "Recovered";
3418
3524
  }
3419
3525
  }
3420
3526
  function instanceOf(obj) {
@@ -3423,9 +3529,7 @@ const CredentialOrigin = (() => {
3423
3529
  return Object.freeze({
3424
3530
  instanceOf,
3425
3531
  Embedded: Embedded_,
3426
- RecoveredByFingerprint: RecoveredByFingerprint_,
3427
- RecoveredByWatermark: RecoveredByWatermark_,
3428
- RecoveredByContent: RecoveredByContent_
3532
+ Recovered: Recovered_
3429
3533
  });
3430
3534
  })();
3431
3535
  const FfiConverterTypeCredentialOrigin = (() => {
@@ -3433,15 +3537,7 @@ const FfiConverterTypeCredentialOrigin = (() => {
3433
3537
  readFromCursor(c) {
3434
3538
  switch (c.readI32()) {
3435
3539
  case 1: return new CredentialOrigin.Embedded();
3436
- case 2: return new CredentialOrigin.RecoveredByFingerprint({
3437
- binding: FfiConverterTypeSoftBinding.readFromCursor(c),
3438
- registryScore: FfiConverterOptionalTypeSimilarityScore.readFromCursor(c)
3439
- });
3440
- case 3: return new CredentialOrigin.RecoveredByWatermark({
3441
- binding: FfiConverterTypeSoftBinding.readFromCursor(c),
3442
- registryScore: FfiConverterOptionalTypeSimilarityScore.readFromCursor(c)
3443
- });
3444
- case 4: return new CredentialOrigin.RecoveredByContent({ discoveries: FfiConverterSequenceTypeContentBindingEvidence.readFromCursor(c) });
3540
+ case 2: return new CredentialOrigin.Recovered({ discoveries: FfiConverterSequenceTypeRecoveryDiscovery.readFromCursor(c) });
3445
3541
  default: throw new UniffiInternalError.UnexpectedEnumCase();
3446
3542
  }
3447
3543
  }
@@ -3450,24 +3546,10 @@ const FfiConverterTypeCredentialOrigin = (() => {
3450
3546
  case "Embedded":
3451
3547
  c.writeI32(1);
3452
3548
  return;
3453
- case "RecoveredByFingerprint": {
3549
+ case "Recovered": {
3454
3550
  c.writeI32(2);
3455
3551
  const inner = value.inner;
3456
- FfiConverterTypeSoftBinding.writeIntoCursor(inner.binding, c);
3457
- FfiConverterOptionalTypeSimilarityScore.writeIntoCursor(inner.registryScore, c);
3458
- return;
3459
- }
3460
- case "RecoveredByWatermark": {
3461
- c.writeI32(3);
3462
- const inner = value.inner;
3463
- FfiConverterTypeSoftBinding.writeIntoCursor(inner.binding, c);
3464
- FfiConverterOptionalTypeSimilarityScore.writeIntoCursor(inner.registryScore, c);
3465
- return;
3466
- }
3467
- case "RecoveredByContent": {
3468
- c.writeI32(4);
3469
- const inner = value.inner;
3470
- FfiConverterSequenceTypeContentBindingEvidence.writeIntoCursor(inner.discoveries, c);
3552
+ FfiConverterSequenceTypeRecoveryDiscovery.writeIntoCursor(inner.discoveries, c);
3471
3553
  return;
3472
3554
  }
3473
3555
  default: throw new UniffiInternalError.UnexpectedEnumCase();
@@ -3476,24 +3558,10 @@ const FfiConverterTypeCredentialOrigin = (() => {
3476
3558
  allocationSize(value) {
3477
3559
  switch (value.tag) {
3478
3560
  case "Embedded": return 4;
3479
- case "RecoveredByFingerprint": {
3480
- const inner = value.inner;
3481
- let size = 4;
3482
- size += FfiConverterTypeSoftBinding.allocationSize(inner.binding);
3483
- size += FfiConverterOptionalTypeSimilarityScore.allocationSize(inner.registryScore);
3484
- return size;
3485
- }
3486
- case "RecoveredByWatermark": {
3487
- const inner = value.inner;
3488
- let size = 4;
3489
- size += FfiConverterTypeSoftBinding.allocationSize(inner.binding);
3490
- size += FfiConverterOptionalTypeSimilarityScore.allocationSize(inner.registryScore);
3491
- return size;
3492
- }
3493
- case "RecoveredByContent": {
3561
+ case "Recovered": {
3494
3562
  const inner = value.inner;
3495
3563
  let size = 4;
3496
- size += FfiConverterSequenceTypeContentBindingEvidence.allocationSize(inner.discoveries);
3564
+ size += FfiConverterSequenceTypeRecoveryDiscovery.allocationSize(inner.discoveries);
3497
3565
  return size;
3498
3566
  }
3499
3567
  default: throw new UniffiInternalError.UnexpectedEnumCase();
@@ -4446,6 +4514,47 @@ const FfiConverterTypeFingerprintCheck = (() => {
4446
4514
  return new FFIConverter();
4447
4515
  })();
4448
4516
  /**
4517
+ * Whether the manifest's hard binding holds over the bytes this verify read.
4518
+ *
4519
+ * c2pa folds a hash mismatch into `validation_state == Invalid` with every other failure. A
4520
+ * manifest recovered through a soft binding is validated against a transcode or a later edit,
4521
+ * so a mismatch is the one failure it is expected to carry; naming it lets a caller tell "for
4522
+ * other bytes" from "broken" without reading status codes.
4523
+ */
4524
+ let HardBinding = /* @__PURE__ */ function(HardBinding) {
4525
+ /**
4526
+ * No data, box, BMFF or collection hash failed against these bytes.
4527
+ */
4528
+ HardBinding[HardBinding["Holds"] = 0] = "Holds";
4529
+ /**
4530
+ * A hash mismatch is among the active manifest's failures: the manifest describes other
4531
+ * bytes. Whether it is otherwise authentic is its remaining statuses.
4532
+ */
4533
+ HardBinding[HardBinding["Mismatch"] = 1] = "Mismatch";
4534
+ return HardBinding;
4535
+ }({});
4536
+ const FfiConverterTypeHardBinding = (() => {
4537
+ class FFIConverter extends AbstractFfiConverterByteArray {
4538
+ readFromCursor(c) {
4539
+ switch (c.readI32()) {
4540
+ case 1: return 0;
4541
+ case 2: return 1;
4542
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
4543
+ }
4544
+ }
4545
+ writeIntoCursor(value, c) {
4546
+ switch (value) {
4547
+ case 0: return c.writeI32(1);
4548
+ case 1: return c.writeI32(2);
4549
+ }
4550
+ }
4551
+ allocationSize(value) {
4552
+ return 4;
4553
+ }
4554
+ }
4555
+ return new FFIConverter();
4556
+ })();
4557
+ /**
4449
4558
  * Generated factory for {@link FoundCredential} record objects.
4450
4559
  */
4451
4560
  const FoundCredential = (() => {
@@ -4466,7 +4575,8 @@ const FfiConverterTypeFoundCredential = (() => {
4466
4575
  thumbnails: FfiConverterMapStringBytes.readFromCursor(c),
4467
4576
  origin: FfiConverterTypeCredentialOrigin.readFromCursor(c),
4468
4577
  manifest: FfiConverterTypeManifestStore.readFromCursor(c),
4469
- fingerprintCheck: FfiConverterTypeFingerprintCheck.readFromCursor(c)
4578
+ fingerprintCheck: FfiConverterTypeFingerprintCheck.readFromCursor(c),
4579
+ hardBinding: FfiConverterTypeHardBinding.readFromCursor(c)
4470
4580
  };
4471
4581
  }
4472
4582
  writeIntoCursor(value, c) {
@@ -4474,9 +4584,10 @@ const FfiConverterTypeFoundCredential = (() => {
4474
4584
  FfiConverterTypeCredentialOrigin.writeIntoCursor(value.origin, c);
4475
4585
  FfiConverterTypeManifestStore.writeIntoCursor(value.manifest, c);
4476
4586
  FfiConverterTypeFingerprintCheck.writeIntoCursor(value.fingerprintCheck, c);
4587
+ FfiConverterTypeHardBinding.writeIntoCursor(value.hardBinding, c);
4477
4588
  }
4478
4589
  allocationSize(value) {
4479
- return FfiConverterMapStringBytes.allocationSize(value.thumbnails) + FfiConverterTypeCredentialOrigin.allocationSize(value.origin) + FfiConverterTypeManifestStore.allocationSize(value.manifest) + FfiConverterTypeFingerprintCheck.allocationSize(value.fingerprintCheck);
4590
+ return FfiConverterMapStringBytes.allocationSize(value.thumbnails) + FfiConverterTypeCredentialOrigin.allocationSize(value.origin) + FfiConverterTypeManifestStore.allocationSize(value.manifest) + FfiConverterTypeFingerprintCheck.allocationSize(value.fingerprintCheck) + FfiConverterTypeHardBinding.allocationSize(value.hardBinding);
4480
4591
  }
4481
4592
  }
4482
4593
  return new FFIConverter();
@@ -4931,59 +5042,10 @@ const FfiConverterTypeRecoveryPolicy = (() => {
4931
5042
  return new FFIConverter();
4932
5043
  })();
4933
5044
  /**
4934
- * How far a recovery may go, which decides what leaves the caller.
4935
- *
4936
- * Separate from [`RecoveryPolicy`], which decides *when* a recovery runs: one names the trigger
4937
- * and the other the reach, and crossing them is what the two enums exist to keep legible.
4938
- */
4939
- let RegistryQueries = /* @__PURE__ */ function(RegistryQueries) {
4940
- /**
4941
- * Bindings this client derived, looked up by value. The asset never leaves the caller, which
4942
- * is what a verifier embedded in someone else's page needs: it can ask whether a code it
4943
- * computed is known without handing over what it computed the code from.
4944
- *
4945
- * A binding nobody local can derive is therefore unreachable, watermarks included, because
4946
- * detecting those is the registry's job and needs the asset.
4947
- */
4948
- RegistryQueries[RegistryQueries["Derived"] = 0] = "Derived";
4949
- /**
4950
- * Also `POST /matches/byContent` when no derived binding hits, which uploads the asset so the
4951
- * registry can derive the bindings its own deployment supports, detector-backed watermarks
4952
- * among them. The upload happens only on that miss, and only for an asset small enough to
4953
- * send.
4954
- */
4955
- RegistryQueries[RegistryQueries["DerivedThenContent"] = 1] = "DerivedThenContent";
4956
- return RegistryQueries;
4957
- }({});
4958
- const FfiConverterTypeRegistryQueries = (() => {
4959
- class FFIConverter extends AbstractFfiConverterByteArray {
4960
- readFromCursor(c) {
4961
- switch (c.readI32()) {
4962
- case 1: return 0;
4963
- case 2: return 1;
4964
- default: throw new UniffiInternalError.UnexpectedEnumCase();
4965
- }
4966
- }
4967
- writeIntoCursor(value, c) {
4968
- switch (value) {
4969
- case 0: return c.writeI32(1);
4970
- case 1: return c.writeI32(2);
4971
- }
4972
- }
4973
- allocationSize(value) {
4974
- return 4;
4975
- }
4976
- }
4977
- return new FFIConverter();
4978
- })();
4979
- /**
4980
5045
  * Generated factory for {@link RegistryOptions} record objects.
4981
5046
  */
4982
5047
  const RegistryOptions = (() => {
4983
- const defaults = () => ({
4984
- recovery: void 0,
4985
- queries: void 0
4986
- });
5048
+ const defaults = () => ({ recovery: void 0 });
4987
5049
  const create = (() => {
4988
5050
  return uniffiCreateRecord(defaults);
4989
5051
  })();
@@ -4998,17 +5060,15 @@ const FfiConverterTypeRegistryOptions = (() => {
4998
5060
  readFromCursor(c) {
4999
5061
  return {
5000
5062
  url: FfiConverterString.readFromCursor(c),
5001
- recovery: FfiConverterOptionalTypeRecoveryPolicy.readFromCursor(c),
5002
- queries: FfiConverterOptionalTypeRegistryQueries.readFromCursor(c)
5063
+ recovery: FfiConverterOptionalTypeRecoveryPolicy.readFromCursor(c)
5003
5064
  };
5004
5065
  }
5005
5066
  writeIntoCursor(value, c) {
5006
5067
  FfiConverterString.writeIntoCursor(value.url, c);
5007
5068
  FfiConverterOptionalTypeRecoveryPolicy.writeIntoCursor(value.recovery, c);
5008
- FfiConverterOptionalTypeRegistryQueries.writeIntoCursor(value.queries, c);
5009
5069
  }
5010
5070
  allocationSize(value) {
5011
- return FfiConverterString.allocationSize(value.url) + FfiConverterOptionalTypeRecoveryPolicy.allocationSize(value.recovery) + FfiConverterOptionalTypeRegistryQueries.allocationSize(value.queries);
5071
+ return FfiConverterString.allocationSize(value.url) + FfiConverterOptionalTypeRecoveryPolicy.allocationSize(value.recovery);
5012
5072
  }
5013
5073
  }
5014
5074
  return new FFIConverter();
@@ -5319,26 +5379,397 @@ const FfiConverterTypeMediaValidation = (() => {
5319
5379
  }
5320
5380
  return new FFIConverter();
5321
5381
  })();
5382
+ let ContentAlgorithm_Tags = /* @__PURE__ */ function(ContentAlgorithm_Tags) {
5383
+ ContentAlgorithm_Tags["Fingerprint"] = "Fingerprint";
5384
+ ContentAlgorithm_Tags["Watermark"] = "Watermark";
5385
+ ContentAlgorithm_Tags["All"] = "All";
5386
+ ContentAlgorithm_Tags["Named"] = "Named";
5387
+ return ContentAlgorithm_Tags;
5388
+ }({});
5322
5389
  /**
5323
- * Generated factory for {@link Region} record objects.
5390
+ * How a `byContent` query selects the registry's detector algorithms.
5324
5391
  */
5325
- const Region = (() => {
5326
- const defaults = () => ({});
5327
- const create = (() => {
5328
- return uniffiCreateRecord(defaults);
5329
- })();
5330
- return Object.freeze({
5331
- create,
5332
- new: create,
5333
- defaults: () => Object.freeze(defaults())
5334
- });
5335
- })();
5336
- const FfiConverterTypeRegion = (() => {
5337
- class FFIConverter extends AbstractFfiConverterByteArray {
5338
- readFromCursor(c) {
5339
- return {
5340
- offset: FfiConverterUInt64.readFromCursor(c),
5341
- length: FfiConverterUInt64.readFromCursor(c)
5392
+ const ContentAlgorithm = (() => {
5393
+ /**
5394
+ * Read the registry capability document and query every advertised fingerprint algorithm.
5395
+ */
5396
+ class Fingerprint_ extends UniffiEnum {
5397
+ /**
5398
+ * @private
5399
+ * This field is private and should not be used, use `tag` instead.
5400
+ */
5401
+ [uniffiTypeNameSymbol] = "ContentAlgorithm";
5402
+ tag = "Fingerprint";
5403
+ constructor() {
5404
+ super("ContentAlgorithm", "Fingerprint");
5405
+ }
5406
+ static new() {
5407
+ return new Fingerprint_();
5408
+ }
5409
+ static instanceOf(obj) {
5410
+ return obj.tag === "Fingerprint";
5411
+ }
5412
+ }
5413
+ /**
5414
+ * Read the registry capability document and query every advertised watermark algorithm.
5415
+ */
5416
+ class Watermark_ extends UniffiEnum {
5417
+ /**
5418
+ * @private
5419
+ * This field is private and should not be used, use `tag` instead.
5420
+ */
5421
+ [uniffiTypeNameSymbol] = "ContentAlgorithm";
5422
+ tag = "Watermark";
5423
+ constructor() {
5424
+ super("ContentAlgorithm", "Watermark");
5425
+ }
5426
+ static new() {
5427
+ return new Watermark_();
5428
+ }
5429
+ static instanceOf(obj) {
5430
+ return obj.tag === "Watermark";
5431
+ }
5432
+ }
5433
+ /**
5434
+ * Explicitly query every advertised fingerprint and watermark algorithm.
5435
+ */
5436
+ class All_ extends UniffiEnum {
5437
+ /**
5438
+ * @private
5439
+ * This field is private and should not be used, use `tag` instead.
5440
+ */
5441
+ [uniffiTypeNameSymbol] = "ContentAlgorithm";
5442
+ tag = "All";
5443
+ constructor() {
5444
+ super("ContentAlgorithm", "All");
5445
+ }
5446
+ static new() {
5447
+ return new All_();
5448
+ }
5449
+ static instanceOf(obj) {
5450
+ return obj.tag === "All";
5451
+ }
5452
+ }
5453
+ /**
5454
+ * Query one named algorithm after confirming the registry advertises it.
5455
+ */
5456
+ class Named_ extends UniffiEnum {
5457
+ /**
5458
+ * @private
5459
+ * This field is private and should not be used, use `tag` instead.
5460
+ */
5461
+ [uniffiTypeNameSymbol] = "ContentAlgorithm";
5462
+ tag = "Named";
5463
+ inner;
5464
+ constructor(inner) {
5465
+ super("ContentAlgorithm", "Named");
5466
+ this.inner = Object.freeze(inner);
5467
+ }
5468
+ static new(inner) {
5469
+ return new Named_(inner);
5470
+ }
5471
+ static instanceOf(obj) {
5472
+ return obj.tag === "Named";
5473
+ }
5474
+ }
5475
+ function instanceOf(obj) {
5476
+ return obj[uniffiTypeNameSymbol] === "ContentAlgorithm";
5477
+ }
5478
+ return Object.freeze({
5479
+ instanceOf,
5480
+ Fingerprint: Fingerprint_,
5481
+ Watermark: Watermark_,
5482
+ All: All_,
5483
+ Named: Named_
5484
+ });
5485
+ })();
5486
+ const FfiConverterTypeContentAlgorithm = (() => {
5487
+ class FFIConverter extends AbstractFfiConverterByteArray {
5488
+ readFromCursor(c) {
5489
+ switch (c.readI32()) {
5490
+ case 1: return new ContentAlgorithm.Fingerprint();
5491
+ case 2: return new ContentAlgorithm.Watermark();
5492
+ case 3: return new ContentAlgorithm.All();
5493
+ case 4: return new ContentAlgorithm.Named({ algorithm: FfiConverterString.readFromCursor(c) });
5494
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5495
+ }
5496
+ }
5497
+ writeIntoCursor(value, c) {
5498
+ switch (value.tag) {
5499
+ case "Fingerprint":
5500
+ c.writeI32(1);
5501
+ return;
5502
+ case "Watermark":
5503
+ c.writeI32(2);
5504
+ return;
5505
+ case "All":
5506
+ c.writeI32(3);
5507
+ return;
5508
+ case "Named": {
5509
+ c.writeI32(4);
5510
+ const inner = value.inner;
5511
+ FfiConverterString.writeIntoCursor(inner.algorithm, c);
5512
+ return;
5513
+ }
5514
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5515
+ }
5516
+ }
5517
+ allocationSize(value) {
5518
+ switch (value.tag) {
5519
+ case "Fingerprint": return 4;
5520
+ case "Watermark": return 4;
5521
+ case "All": return 4;
5522
+ case "Named": {
5523
+ const inner = value.inner;
5524
+ let size = 4;
5525
+ size += FfiConverterString.allocationSize(inner.algorithm);
5526
+ return size;
5527
+ }
5528
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5529
+ }
5530
+ }
5531
+ }
5532
+ return new FFIConverter();
5533
+ })();
5534
+ let RecoveryQuery_Tags = /* @__PURE__ */ function(RecoveryQuery_Tags) {
5535
+ RecoveryQuery_Tags["ByBinding"] = "ByBinding";
5536
+ RecoveryQuery_Tags["ByContent"] = "ByContent";
5537
+ return RecoveryQuery_Tags;
5538
+ }({});
5539
+ /**
5540
+ * A single C2PA Soft Binding Resolution API lookup.
5541
+ */
5542
+ const RecoveryQuery = (() => {
5543
+ /**
5544
+ * Derive the selected caller binder locally, then call `matches/byBinding`.
5545
+ */
5546
+ class ByBinding_ extends UniffiEnum {
5547
+ /**
5548
+ * @private
5549
+ * This field is private and should not be used, use `tag` instead.
5550
+ */
5551
+ [uniffiTypeNameSymbol] = "RecoveryQuery";
5552
+ tag = "ByBinding";
5553
+ inner;
5554
+ constructor(inner) {
5555
+ super("RecoveryQuery", "ByBinding");
5556
+ this.inner = Object.freeze(inner);
5557
+ }
5558
+ static new(inner) {
5559
+ return new ByBinding_(inner);
5560
+ }
5561
+ static instanceOf(obj) {
5562
+ return obj.tag === "ByBinding";
5563
+ }
5564
+ }
5565
+ /**
5566
+ * Upload the asset to `matches/byContent` for registry-side derivation.
5567
+ */
5568
+ class ByContent_ extends UniffiEnum {
5569
+ /**
5570
+ * @private
5571
+ * This field is private and should not be used, use `tag` instead.
5572
+ */
5573
+ [uniffiTypeNameSymbol] = "RecoveryQuery";
5574
+ tag = "ByContent";
5575
+ inner;
5576
+ constructor(inner) {
5577
+ super("RecoveryQuery", "ByContent");
5578
+ this.inner = Object.freeze(inner);
5579
+ }
5580
+ static new = (() => {
5581
+ const defaults = () => ({ hintBinderIndex: void 0 });
5582
+ const create = uniffiCreateRecord(defaults);
5583
+ return (partial) => new ByContent_(create(partial));
5584
+ })();
5585
+ static instanceOf(obj) {
5586
+ return obj.tag === "ByContent";
5587
+ }
5588
+ }
5589
+ function instanceOf(obj) {
5590
+ return obj[uniffiTypeNameSymbol] === "RecoveryQuery";
5591
+ }
5592
+ return Object.freeze({
5593
+ instanceOf,
5594
+ ByBinding: ByBinding_,
5595
+ ByContent: ByContent_
5596
+ });
5597
+ })();
5598
+ const FfiConverterTypeRecoveryQuery = (() => {
5599
+ class FFIConverter extends AbstractFfiConverterByteArray {
5600
+ readFromCursor(c) {
5601
+ switch (c.readI32()) {
5602
+ case 1: return new RecoveryQuery.ByBinding({ binderIndex: FfiConverterUInt32.readFromCursor(c) });
5603
+ case 2: return new RecoveryQuery.ByContent({
5604
+ algorithm: FfiConverterTypeContentAlgorithm.readFromCursor(c),
5605
+ hintBinderIndex: FfiConverterOptionalUInt32.readFromCursor(c)
5606
+ });
5607
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5608
+ }
5609
+ }
5610
+ writeIntoCursor(value, c) {
5611
+ switch (value.tag) {
5612
+ case "ByBinding": {
5613
+ c.writeI32(1);
5614
+ const inner = value.inner;
5615
+ FfiConverterUInt32.writeIntoCursor(inner.binderIndex, c);
5616
+ return;
5617
+ }
5618
+ case "ByContent": {
5619
+ c.writeI32(2);
5620
+ const inner = value.inner;
5621
+ FfiConverterTypeContentAlgorithm.writeIntoCursor(inner.algorithm, c);
5622
+ FfiConverterOptionalUInt32.writeIntoCursor(inner.hintBinderIndex, c);
5623
+ return;
5624
+ }
5625
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5626
+ }
5627
+ }
5628
+ allocationSize(value) {
5629
+ switch (value.tag) {
5630
+ case "ByBinding": {
5631
+ const inner = value.inner;
5632
+ let size = 4;
5633
+ size += FfiConverterUInt32.allocationSize(inner.binderIndex);
5634
+ return size;
5635
+ }
5636
+ case "ByContent": {
5637
+ const inner = value.inner;
5638
+ let size = 4;
5639
+ size += FfiConverterTypeContentAlgorithm.allocationSize(inner.algorithm);
5640
+ size += FfiConverterOptionalUInt32.allocationSize(inner.hintBinderIndex);
5641
+ return size;
5642
+ }
5643
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5644
+ }
5645
+ }
5646
+ }
5647
+ return new FFIConverter();
5648
+ })();
5649
+ /**
5650
+ * Scheduling within a recovery stage.
5651
+ */
5652
+ let RecoveryExecution = /* @__PURE__ */ function(RecoveryExecution) {
5653
+ /**
5654
+ * Finish one query before starting the next.
5655
+ */
5656
+ RecoveryExecution[RecoveryExecution["Sequential"] = 0] = "Sequential";
5657
+ /**
5658
+ * Start all queries together and merge their results in declaration order.
5659
+ */
5660
+ RecoveryExecution[RecoveryExecution["Parallel"] = 1] = "Parallel";
5661
+ return RecoveryExecution;
5662
+ }({});
5663
+ const FfiConverterTypeRecoveryExecution = (() => {
5664
+ class FFIConverter extends AbstractFfiConverterByteArray {
5665
+ readFromCursor(c) {
5666
+ switch (c.readI32()) {
5667
+ case 1: return 0;
5668
+ case 2: return 1;
5669
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5670
+ }
5671
+ }
5672
+ writeIntoCursor(value, c) {
5673
+ switch (value) {
5674
+ case 0: return c.writeI32(1);
5675
+ case 1: return c.writeI32(2);
5676
+ }
5677
+ }
5678
+ allocationSize(value) {
5679
+ return 4;
5680
+ }
5681
+ }
5682
+ return new FFIConverter();
5683
+ })();
5684
+ /**
5685
+ * The condition that completes a recovery stage.
5686
+ */
5687
+ let RecoveryCompletion = /* @__PURE__ */ function(RecoveryCompletion) {
5688
+ /**
5689
+ * Stop after the first declared query that returns a credential.
5690
+ */
5691
+ RecoveryCompletion[RecoveryCompletion["FirstResult"] = 0] = "FirstResult";
5692
+ /**
5693
+ * Run every query and retain the union of their credentials and evidence.
5694
+ */
5695
+ RecoveryCompletion[RecoveryCompletion["AllResults"] = 1] = "AllResults";
5696
+ return RecoveryCompletion;
5697
+ }({});
5698
+ const FfiConverterTypeRecoveryCompletion = (() => {
5699
+ class FFIConverter extends AbstractFfiConverterByteArray {
5700
+ readFromCursor(c) {
5701
+ switch (c.readI32()) {
5702
+ case 1: return 0;
5703
+ case 2: return 1;
5704
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
5705
+ }
5706
+ }
5707
+ writeIntoCursor(value, c) {
5708
+ switch (value) {
5709
+ case 0: return c.writeI32(1);
5710
+ case 1: return c.writeI32(2);
5711
+ }
5712
+ }
5713
+ allocationSize(value) {
5714
+ return 4;
5715
+ }
5716
+ }
5717
+ return new FFIConverter();
5718
+ })();
5719
+ /**
5720
+ * Generated factory for {@link RecoveryStage} record objects.
5721
+ */
5722
+ const RecoveryStage = (() => {
5723
+ const defaults = () => ({});
5724
+ const create = (() => {
5725
+ return uniffiCreateRecord(defaults);
5726
+ })();
5727
+ return Object.freeze({
5728
+ create,
5729
+ new: create,
5730
+ defaults: () => Object.freeze(defaults())
5731
+ });
5732
+ })();
5733
+ const FfiConverterTypeRecoveryStage = (() => {
5734
+ class FFIConverter extends AbstractFfiConverterByteArray {
5735
+ readFromCursor(c) {
5736
+ return {
5737
+ queries: FfiConverterSequenceTypeRecoveryQuery.readFromCursor(c),
5738
+ execution: FfiConverterTypeRecoveryExecution.readFromCursor(c),
5739
+ completion: FfiConverterTypeRecoveryCompletion.readFromCursor(c)
5740
+ };
5741
+ }
5742
+ writeIntoCursor(value, c) {
5743
+ FfiConverterSequenceTypeRecoveryQuery.writeIntoCursor(value.queries, c);
5744
+ FfiConverterTypeRecoveryExecution.writeIntoCursor(value.execution, c);
5745
+ FfiConverterTypeRecoveryCompletion.writeIntoCursor(value.completion, c);
5746
+ }
5747
+ allocationSize(value) {
5748
+ return FfiConverterSequenceTypeRecoveryQuery.allocationSize(value.queries) + FfiConverterTypeRecoveryExecution.allocationSize(value.execution) + FfiConverterTypeRecoveryCompletion.allocationSize(value.completion);
5749
+ }
5750
+ }
5751
+ return new FFIConverter();
5752
+ })();
5753
+ /**
5754
+ * Generated factory for {@link Region} record objects.
5755
+ */
5756
+ const Region = (() => {
5757
+ const defaults = () => ({});
5758
+ const create = (() => {
5759
+ return uniffiCreateRecord(defaults);
5760
+ })();
5761
+ return Object.freeze({
5762
+ create,
5763
+ new: create,
5764
+ defaults: () => Object.freeze(defaults())
5765
+ });
5766
+ })();
5767
+ const FfiConverterTypeRegion = (() => {
5768
+ class FFIConverter extends AbstractFfiConverterByteArray {
5769
+ readFromCursor(c) {
5770
+ return {
5771
+ offset: FfiConverterUInt64.readFromCursor(c),
5772
+ length: FfiConverterUInt64.readFromCursor(c)
5342
5773
  };
5343
5774
  }
5344
5775
  writeIntoCursor(value, c) {
@@ -5832,6 +6263,14 @@ var Binder = class extends UniffiAbstractObject {
5832
6263
  this[destructorGuardSymbol] = uniffiTypeBinderObjectFactory.bless(pointer);
5833
6264
  }
5834
6265
  /**
6266
+ * A caller-supplied binder for a soft-binding algorithm not built into the SDK.
6267
+ */
6268
+ static custom(plugin) {
6269
+ return FfiConverterTypeBinder.lift(uniffiCaller.rustCall((callStatus) => {
6270
+ return getter().uniffi_trylimbo_sdk_verifier_fn_constructor_binder_custom(FfiConverterTypeBinderPlugin.lower(plugin, getter().rustbuffer_alloc), callStatus);
6271
+ }, FfiConverterString.lift.bind(FfiConverterString)));
6272
+ }
6273
+ /**
5835
6274
  * A binding you already hold, such as an out-of-band video ISCC. Reads nothing.
5836
6275
  */
5837
6276
  static held(binding) {
@@ -5929,6 +6368,77 @@ const uniffiTypeBinderObjectFactory = (() => {
5929
6368
  };
5930
6369
  })();
5931
6370
  const FfiConverterTypeBinder = new FfiConverterObject(uniffiTypeBinderObjectFactory);
6371
+ let RecoveryPlan_Tags = /* @__PURE__ */ function(RecoveryPlan_Tags) {
6372
+ RecoveryPlan_Tags["Custom"] = "Custom";
6373
+ return RecoveryPlan_Tags;
6374
+ }({});
6375
+ /**
6376
+ * The registry work a verification call is allowed to perform.
6377
+ */
6378
+ const RecoveryPlan = (() => {
6379
+ /**
6380
+ * Execute caller-defined stages after validating their references and resource limits.
6381
+ */
6382
+ class Custom_ extends UniffiEnum {
6383
+ /**
6384
+ * @private
6385
+ * This field is private and should not be used, use `tag` instead.
6386
+ */
6387
+ [uniffiTypeNameSymbol] = "RecoveryPlan";
6388
+ tag = "Custom";
6389
+ inner;
6390
+ constructor(inner) {
6391
+ super("RecoveryPlan", "Custom");
6392
+ this.inner = Object.freeze(inner);
6393
+ }
6394
+ static new(inner) {
6395
+ return new Custom_(inner);
6396
+ }
6397
+ static instanceOf(obj) {
6398
+ return obj.tag === "Custom";
6399
+ }
6400
+ }
6401
+ function instanceOf(obj) {
6402
+ return obj[uniffiTypeNameSymbol] === "RecoveryPlan";
6403
+ }
6404
+ return Object.freeze({
6405
+ instanceOf,
6406
+ Custom: Custom_
6407
+ });
6408
+ })();
6409
+ const FfiConverterTypeRecoveryPlan = (() => {
6410
+ class FFIConverter extends AbstractFfiConverterByteArray {
6411
+ readFromCursor(c) {
6412
+ switch (c.readI32()) {
6413
+ case 1: return new RecoveryPlan.Custom({ stages: FfiConverterSequenceTypeRecoveryStage.readFromCursor(c) });
6414
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
6415
+ }
6416
+ }
6417
+ writeIntoCursor(value, c) {
6418
+ switch (value.tag) {
6419
+ case "Custom": {
6420
+ c.writeI32(1);
6421
+ const inner = value.inner;
6422
+ FfiConverterSequenceTypeRecoveryStage.writeIntoCursor(inner.stages, c);
6423
+ return;
6424
+ }
6425
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
6426
+ }
6427
+ }
6428
+ allocationSize(value) {
6429
+ switch (value.tag) {
6430
+ case "Custom": {
6431
+ const inner = value.inner;
6432
+ let size = 4;
6433
+ size += FfiConverterSequenceTypeRecoveryStage.allocationSize(inner.stages);
6434
+ return size;
6435
+ }
6436
+ default: throw new UniffiInternalError.UnexpectedEnumCase();
6437
+ }
6438
+ }
6439
+ }
6440
+ return new FFIConverter();
6441
+ })();
5932
6442
  const uniffiCallbackInterfacePluginRead = {
5933
6443
  vtable: {
5934
6444
  media_types: (uniffiHandle) => {
@@ -6104,7 +6614,10 @@ const FfiConverterTypePluginRegistry = new FfiConverterObject(uniffiTypePluginRe
6104
6614
  * Generated factory for {@link VerifyOptions} record objects.
6105
6615
  */
6106
6616
  const VerifyOptions = (() => {
6107
- const defaults = () => ({ plugins: void 0 });
6617
+ const defaults = () => ({
6618
+ recoveryPlan: void 0,
6619
+ plugins: void 0
6620
+ });
6108
6621
  const create = (() => {
6109
6622
  return uniffiCreateRecord(defaults);
6110
6623
  })();
@@ -6119,15 +6632,17 @@ const FfiConverterTypeVerifyOptions = (() => {
6119
6632
  readFromCursor(c) {
6120
6633
  return {
6121
6634
  binders: FfiConverterSequenceTypeBinder.readFromCursor(c),
6635
+ recoveryPlan: FfiConverterOptionalTypeRecoveryPlan.readFromCursor(c),
6122
6636
  plugins: FfiConverterOptionalTypePluginRegistry.readFromCursor(c)
6123
6637
  };
6124
6638
  }
6125
6639
  writeIntoCursor(value, c) {
6126
6640
  FfiConverterSequenceTypeBinder.writeIntoCursor(value.binders, c);
6641
+ FfiConverterOptionalTypeRecoveryPlan.writeIntoCursor(value.recoveryPlan, c);
6127
6642
  FfiConverterOptionalTypePluginRegistry.writeIntoCursor(value.plugins, c);
6128
6643
  }
6129
6644
  allocationSize(value) {
6130
- return FfiConverterSequenceTypeBinder.allocationSize(value.binders) + FfiConverterOptionalTypePluginRegistry.allocationSize(value.plugins);
6645
+ return FfiConverterSequenceTypeBinder.allocationSize(value.binders) + FfiConverterOptionalTypeRecoveryPlan.allocationSize(value.recoveryPlan) + FfiConverterOptionalTypePluginRegistry.allocationSize(value.plugins);
6131
6646
  }
6132
6647
  }
6133
6648
  return new FFIConverter();
@@ -6283,9 +6798,8 @@ var AssetVerifier = class extends UniffiAbstractObject {
6283
6798
  }, FfiConverterString.lift.bind(FfiConverterString)));
6284
6799
  }
6285
6800
  /**
6286
- * Verify an asset from a [`RangeSource`] (the host's ranged reader). `binders`
6287
- * compose soft-binding recovery after the embedded pass, tried in order,
6288
- * first hit wins; pass `[]` for none. `plugins` carries the caller's
6801
+ * Verify an asset from a [`RangeSource`] using the per-call binders and recovery plan.
6802
+ * `plugins` carries the caller's
6289
6803
  * plugins for non-c2pa formats (e.g. MXF); pass an empty `PluginRegistry` for a
6290
6804
  * built-in C2PA media format. The SDK links no plugin itself. Returns embedded/recovered
6291
6805
  * credentials plus typed recovery and golden-comparison outcomes.
@@ -6823,6 +7337,38 @@ const uniffiTypeStreamVerifierObjectFactory = (() => {
6823
7337
  };
6824
7338
  })();
6825
7339
  const FfiConverterTypeStreamVerifier = new FfiConverterObject(uniffiTypeStreamVerifierObjectFactory);
7340
+ const uniffiCallbackInterfaceBinderPlugin = {
7341
+ vtable: {
7342
+ derive: (uniffiHandle, source, format, uniffiFutureCallback, uniffiCallbackData) => {
7343
+ const uniffiMakeCall = async (signal) => {
7344
+ return await FfiConverterTypeBinderPlugin.lift(uniffiHandle).derive(FfiConverterTypeRangeSource.lift(source), FfiConverterString.lift(format), { signal });
7345
+ };
7346
+ const uniffiHandleSuccess = (returnValue) => {
7347
+ uniffiFutureCallback.call(uniffiFutureCallback, uniffiCallbackData, {
7348
+ return_value: FfiConverterOptionalTypeSoftBinding.lower(returnValue, getter().rustbuffer_alloc),
7349
+ call_status: uniffiCaller.createCallStatus()
7350
+ });
7351
+ };
7352
+ const uniffiHandleError = (code, errorBuf) => {
7353
+ uniffiFutureCallback.call(uniffiFutureCallback, uniffiCallbackData, {
7354
+ return_value: /* @__PURE__ */ new Uint8Array(0),
7355
+ call_status: uniffiCaller.createErrorStatus(code, errorBuf)
7356
+ });
7357
+ };
7358
+ return uniffiTraitInterfaceCallAsyncWithError(uniffiMakeCall, uniffiHandleSuccess, uniffiHandleError, SdkError.instanceOf, FfiConverterTypeSdkError.lower.bind(FfiConverterTypeSdkError), FfiConverterString.lower.bind(FfiConverterString), getter().rustbuffer_alloc);
7359
+ },
7360
+ uniffi_free: (uniffiHandle) => {
7361
+ FfiConverterTypeBinderPlugin.drop(uniffiHandle);
7362
+ },
7363
+ uniffi_clone: (uniffiHandle) => {
7364
+ return FfiConverterTypeBinderPlugin.clone(uniffiHandle);
7365
+ }
7366
+ },
7367
+ register: () => {
7368
+ getter().uniffi_trylimbo_sdk_verifier_fn_init_callback_vtable_binderplugin(uniffiCallbackInterfaceBinderPlugin.vtable);
7369
+ }
7370
+ };
7371
+ const FfiConverterTypeBinderPlugin = new FfiConverterCallback();
6826
7372
  const FfiConverterOptionalString = new FfiConverterOptional(FfiConverterString);
6827
7373
  const FfiConverterOptionalSequenceTypeHashedUri = new FfiConverterOptional(new FfiConverterArray(FfiConverterTypeHashedUri));
6828
7374
  const FfiConverterOptionalSequenceTypeActor = new FfiConverterOptional(new FfiConverterArray(FfiConverterTypeActor));
@@ -6850,7 +7396,7 @@ const FfiConverterOptionalSequenceTypeReviewRating = new FfiConverterOptional(ne
6850
7396
  const FfiConverterMapStringBytes = new FfiConverterMap(FfiConverterString, FfiConverterArrayBuffer);
6851
7397
  const FfiConverterOptionalTypeSimilarityScore = new FfiConverterOptional(FfiConverterTypeSimilarityScore);
6852
7398
  const FfiConverterOptionalTypeSoftBinding = new FfiConverterOptional(FfiConverterTypeSoftBinding);
6853
- const FfiConverterSequenceTypeContentBindingEvidence = new FfiConverterArray(FfiConverterTypeContentBindingEvidence);
7399
+ const FfiConverterSequenceTypeRecoveryDiscovery = new FfiConverterArray(FfiConverterTypeRecoveryDiscovery);
6854
7400
  const FfiConverterOptionalUInt32 = new FfiConverterOptional(FfiConverterUInt32);
6855
7401
  const FfiConverterOptionalTypeManifestAssertionKind = new FfiConverterOptional(FfiConverterTypeManifestAssertionKind);
6856
7402
  const FfiConverterSequenceTypeManifestAssertion = new FfiConverterArray(FfiConverterTypeManifestAssertion);
@@ -6878,13 +7424,15 @@ const FfiConverterOptionalTypeValidationState = new FfiConverterOptional(FfiConv
6878
7424
  const FfiConverterSequenceTypeFoundCredential = new FfiConverterArray(FfiConverterTypeFoundCredential);
6879
7425
  const FfiConverterSequenceTypeRecoveryIssue = new FfiConverterArray(FfiConverterTypeRecoveryIssue);
6880
7426
  const FfiConverterOptionalTypeRecoveryPolicy = new FfiConverterOptional(FfiConverterTypeRecoveryPolicy);
6881
- const FfiConverterOptionalTypeRegistryQueries = new FfiConverterOptional(FfiConverterTypeRegistryQueries);
6882
7427
  const FfiConverterOptionalTypeRegistryOptions = new FfiConverterOptional(FfiConverterTypeRegistryOptions);
6883
7428
  const FfiConverterSequenceTypeValidationCode = new FfiConverterArray(FfiConverterTypeValidationCode);
6884
7429
  const FfiConverterSequenceTypeSessionKeySummary = new FfiConverterArray(FfiConverterTypeSessionKeySummary);
7430
+ const FfiConverterSequenceTypeRecoveryQuery = new FfiConverterArray(FfiConverterTypeRecoveryQuery);
6885
7431
  const FfiConverterOptionalUInt64 = new FfiConverterOptional(FfiConverterUInt64);
6886
7432
  const FfiConverterSequenceTypeFieldViolation = new FfiConverterArray(FfiConverterTypeFieldViolation);
6887
7433
  const FfiConverterSequenceTypeBinder = new FfiConverterArray(FfiConverterTypeBinder);
7434
+ const FfiConverterSequenceTypeRecoveryStage = new FfiConverterArray(FfiConverterTypeRecoveryStage);
7435
+ const FfiConverterOptionalTypeRecoveryPlan = new FfiConverterOptional(FfiConverterTypeRecoveryPlan);
6888
7436
  const FfiConverterSequenceTypeRegion = new FfiConverterArray(FfiConverterTypeRegion);
6889
7437
  const FfiConverterOptionalTypePluginRegistry = new FfiConverterOptional(FfiConverterTypePluginRegistry);
6890
7438
  const FfiConverterOptionalBytes = new FfiConverterOptional(FfiConverterArrayBuffer);
@@ -6909,7 +7457,8 @@ function uniffiEnsureInitialized() {
6909
7457
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_func_resource() !== 40984) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_func_resource");
6910
7458
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_func_thumbnails() !== 52018) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_func_thumbnails");
6911
7459
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_assetverifier_create() !== 14882) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_assetverifier_create");
6912
- if (getter().uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify() !== 19676) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify");
7460
+ if (getter().uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify() !== 37299) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_method_assetverifier_verify");
7461
+ if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_custom() !== 3866) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_custom");
6913
7462
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_held() !== 1096) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_held");
6914
7463
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_iscc() !== 47287) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_constructor_binder_iscc");
6915
7464
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_method_binder_derive() !== 18103) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_method_binder_derive");
@@ -6932,6 +7481,7 @@ function uniffiEnsureInitialized() {
6932
7481
  if (getter().uniffi_trylimbo_sdk_verifier_checksum_method_streamverifier_resume() !== 3149) throw new UniffiInternalError.ApiChecksumMismatch("uniffi_trylimbo_sdk_verifier_checksum_method_streamverifier_resume");
6933
7482
  uniffiCallbackInterfaceRangeSource.register();
6934
7483
  uniffiCallbackInterfacePluginRead.register();
7484
+ uniffiCallbackInterfaceBinderPlugin.register();
6935
7485
  }
6936
7486
  var trylimbo_verifier_default = Object.freeze({
6937
7487
  initialize: uniffiEnsureInitialized,
@@ -6945,8 +7495,8 @@ var trylimbo_verifier_default = Object.freeze({
6945
7495
  FfiConverterTypeBinder,
6946
7496
  FfiConverterTypeClaimGeneratorInfo,
6947
7497
  FfiConverterTypeCode,
7498
+ FfiConverterTypeContentAlgorithm,
6948
7499
  FfiConverterTypeContentBindingClass,
6949
- FfiConverterTypeContentBindingEvidence,
6950
7500
  FfiConverterTypeCoordinate,
6951
7501
  FfiConverterTypeCredentialOrigin,
6952
7502
  FfiConverterTypeDataSource,
@@ -6958,6 +7508,7 @@ var trylimbo_verifier_default = Object.freeze({
6958
7508
  FfiConverterTypeFoundCredential,
6959
7509
  FfiConverterTypeFrame,
6960
7510
  FfiConverterTypeGoldenComparison,
7511
+ FfiConverterTypeHardBinding,
6961
7512
  FfiConverterTypeHashedUri,
6962
7513
  FfiConverterTypeIngredient,
6963
7514
  FfiConverterTypeIngredientDeltaValidationResult,
@@ -6973,15 +7524,20 @@ var trylimbo_verifier_default = Object.freeze({
6973
7524
  FfiConverterTypeRange,
6974
7525
  FfiConverterTypeRangeSource,
6975
7526
  FfiConverterTypeRangeType,
7527
+ FfiConverterTypeRecoveryCompletion,
7528
+ FfiConverterTypeRecoveryDiscovery,
7529
+ FfiConverterTypeRecoveryExecution,
6976
7530
  FfiConverterTypeRecoveryIssue,
6977
7531
  FfiConverterTypeRecoveryIssueKind,
7532
+ FfiConverterTypeRecoveryPlan,
6978
7533
  FfiConverterTypeRecoveryPolicy,
7534
+ FfiConverterTypeRecoveryQuery,
7535
+ FfiConverterTypeRecoveryStage,
6979
7536
  FfiConverterTypeRecoveryStatus,
6980
7537
  FfiConverterTypeRecoverySummary,
6981
7538
  FfiConverterTypeRegion,
6982
7539
  FfiConverterTypeRegionOfInterest,
6983
7540
  FfiConverterTypeRegistryOptions,
6984
- FfiConverterTypeRegistryQueries,
6985
7541
  FfiConverterTypeRelationship,
6986
7542
  FfiConverterTypeResourceRef,
6987
7543
  FfiConverterTypeReviewRating,
@@ -7026,4 +7582,4 @@ if (!initialized) {
7026
7582
  async function uniffiInitAsync() {}
7027
7583
  var ffi_trylimbo_sdk_verifier_default = { trylimbo_verifier: trylimbo_verifier_exports };
7028
7584
  //#endregion
7029
- export { Actor, AssertionMetadata, AssetType, AssetVerification, AssetVerifier, AssetVerifierOptions, Binder, ClaimGeneratorInfo, Code, ContentBindingClass, ContentBindingEvidence, Coordinate, CredentialOrigin, CredentialOrigin_Tags, DataSource, DeriveOptions, EndInclusivity, FieldViolation, FileSource, FingerprintCheck, FingerprintCheck_Tags, FoundCredential, Frame, GoldenComparison, GoldenComparison_Tags, HashedUri, Ingredient, IngredientDeltaValidationResult, InitValidation, Item, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestStore, MediaValidation, MemorySource, PluginRegistry, Range, RangeSourceImpl, RangeType, RecoveryIssue, RecoveryIssueKind, RecoveryPolicy, RecoveryStatus, RecoverySummary, Region, RegionOfInterest, RegistryOptions, RegistryQueries, 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 };
7585
+ export { Actor, AssertionMetadata, AssetType, AssetVerification, AssetVerifier, AssetVerifierOptions, Binder, ClaimGeneratorInfo, Code, ContentAlgorithm, ContentAlgorithm_Tags, ContentBindingClass, Coordinate, CredentialOrigin, CredentialOrigin_Tags, DataSource, DeriveOptions, EndInclusivity, FieldViolation, FileSource, FingerprintCheck, FingerprintCheck_Tags, FoundCredential, Frame, GoldenComparison, GoldenComparison_Tags, HardBinding, HashedUri, Ingredient, IngredientDeltaValidationResult, InitValidation, Item, Manifest, ManifestAssertion, ManifestAssertionKind, ManifestStore, MediaValidation, MemorySource, PluginRegistry, Range, RangeSourceImpl, RangeType, RecoveryCompletion, RecoveryDiscovery, RecoveryDiscovery_Tags, RecoveryExecution, RecoveryIssue, RecoveryIssueKind, RecoveryPlan, RecoveryPlan_Tags, RecoveryPolicy, RecoveryQuery, RecoveryQuery_Tags, RecoveryStage, 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 };