@trylimbo/sdk-verifier-wasm 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.
@@ -325,9 +325,10 @@ export interface RegistryOptions {
325
325
  */
326
326
  url: string;
327
327
  /**
328
- * Federated resolution APIs a match may name as holding its manifest. C2PA 2.4 lets a
329
- * match carry an `endpoint`; one listed here is fetched from, any other is reported as
330
- * refused. Checked like `url`: https, or http on loopback only.
328
+ * Federated resolution APIs a match may name as holding its manifest, beside the ones the
329
+ * C2PA algorithm list publishes, which are always allowed. C2PA 2.4 lets a match carry an
330
+ * `endpoint`; one allowed is fetched from, any other is reported as refused. Checked like
331
+ * `url`: https, or http on loopback only.
331
332
  */
332
333
  endpoints?: string[];
333
334
  }
@@ -375,32 +376,39 @@ export interface Lineage {
375
376
  supersededBy: string[];
376
377
  }
377
378
 
379
+ /**
380
+ * [`crate::asset::RecoveryIssue`] as JS sees it: a tagged union, each kind with its own data.
381
+ */
382
+ export type RecoveryIssue = { kind: "binder"; binderIndex: number; message: string } | { kind: "deprecatedAlgorithm"; algorithm: string } | { kind: "bindingQuery"; binderIndex: number; algorithm: string; message: string } | { kind: "queryRefused"; algorithm: string; message: string } | { kind: "contentForm"; message: string } | { kind: "contentQuery"; algorithm: string; message: string } | { kind: "capabilities"; message: string } | { kind: "contentTooLarge"; capBytes: number } | { kind: "candidateFetch"; manifestId: string; message: string } | { kind: "candidateValidation"; manifestId: string; reason: string } | { kind: "endpointRefused"; manifestId: string; endpoint: string } | { kind: "resourceLimit"; message: string };
383
+
384
+ /**
385
+ * [`crate::asset::VerdictRule`] as JS sees it.
386
+ */
387
+ export type VerdictRule = "onlyCandidate" | "notSuperseded" | "hardBinding";
388
+
389
+ /**
390
+ * [`crate::asset::Verdict`] as JS sees it.
391
+ */
392
+ export type Verdict = { kind: "unsigned" } | { kind: "inconclusive" } | { kind: "embedded" } | { kind: "recovered"; index: number; decidedBy: VerdictRule } | { kind: "recoveredDerivative"; index: number; decidedBy: VerdictRule } | { kind: "ambiguous"; candidates: number[] };
393
+
378
394
  export interface AssetVerification {
379
395
  credentials: FoundCredential[];
380
396
  recovery: RecoverySummary;
381
397
  goldenComparison: GoldenComparison;
382
- }
383
-
384
- export interface RecoveryIssue {
385
- kind: RecoveryIssueKind;
386
- manifestId: string | undefined;
387
- message: string;
398
+ verdict: Verdict;
388
399
  }
389
400
 
390
401
  export interface RecoverySummary {
391
402
  status: RecoveryStatus;
392
- bestCredentialIndex: number | undefined;
393
403
  issues: RecoveryIssue[];
394
404
  }
395
405
 
396
406
  export type ContentBindingClass = "fingerprint" | "watermark";
397
407
 
398
- export type GoldenComparison = { kind: "notRequested" } | { kind: "noEmbeddedManifest" } | { kind: "noRecoveredManifest" } | { kind: "matches"; recoveredIndex: number } | { kind: "differs"; recoveredIndex: number } | { kind: "indeterminate"; recoveredIndex: number | undefined };
408
+ export type GoldenComparison = { kind: "notRequested" } | { kind: "noEmbeddedManifest" } | { kind: "noRecoveredManifest" } | { kind: "recoveryIncomplete" } | { kind: "matches"; recoveredIndex: number } | { kind: "differs"; recoveredIndex: number } | { kind: "noneMatches"; candidates: number[] } | { kind: "unreadable"; recoveredIndex: number };
399
409
 
400
410
  export type RecoveryDiscovery = { method: "byBinding"; class: ContentBindingClass; binding: SoftBinding; binderIndex: number; registryScore: number | undefined; endpoint: string | undefined } | { method: "byContent"; hint: SoftBinding | undefined; class: ContentBindingClass; algorithm: string; registryScore: number | undefined; endpoint: string | undefined } | { method: "byReference"; hint: SoftBinding | undefined; class: ContentBindingClass; algorithm: string; registryScore: number | undefined; endpoint: string | undefined };
401
411
 
402
- export type RecoveryIssueKind = "binder" | "bindingQuery" | "queryRefused" | "contentQuery" | "capabilities" | "contentTooLarge" | "candidateFetch" | "candidateValidation" | "resourceLimit" | "endpointRefused";
403
-
404
412
  export type RecoveryStatus = "notRequested" | "notFound" | "recovered" | "incomplete";
405
413
 
406
414
 
@@ -415,7 +423,7 @@ export class AssetVerifier {
415
423
  */
416
424
  static create(options: AssetVerifierOptions): AssetVerifier;
417
425
  /**
418
- * Verify an asset against the configured trust anchors and per-call recovery plan.
426
+ * Verify an asset against the configured trust anchors and per-call recovery options.
419
427
  *
420
428
  * Reads the C2PA-native formats. A container format (MXF) is plugin-backed, and plugins
421
429
  * are native, so a master is verified through the native SDK.
@@ -694,15 +702,13 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
694
702
 
695
703
  export interface InitOutput {
696
704
  readonly memory: WebAssembly.Memory;
697
- readonly __wbg_binder_free: (a: number, b: number) => void;
705
+ readonly __wbg_assetverifier_free: (a: number, b: number) => void;
698
706
  readonly __wbg_blobsource_free: (a: number, b: number) => void;
699
707
  readonly __wbg_bytessource_free: (a: number, b: number) => void;
700
708
  readonly __wbg_memorysource_free: (a: number, b: number) => void;
701
- readonly __wbg_streamvalidation_free: (a: number, b: number) => void;
702
- readonly __wbg_streamverifier_free: (a: number, b: number) => void;
703
- readonly binder_derive: (a: number, b: any, c: number, d: number) => any;
704
- readonly binder_held: (a: any) => [number, number, number];
705
- readonly binder_iscc: () => number;
709
+ readonly __wbg_verifyoptions_free: (a: number, b: number) => void;
710
+ readonly assetverifier_create: (a: any) => [number, number, number];
711
+ readonly assetverifier_verify: (a: number, b: any, c: number) => any;
706
712
  readonly blobsource_length: (a: number) => number;
707
713
  readonly blobsource_new: (a: any) => [number, number, number];
708
714
  readonly blobsource_readAt: (a: number, b: number, c: number) => [number, number, number];
@@ -714,21 +720,23 @@ export interface InitOutput {
714
720
  readonly memorysource_readAt: (a: number, b: number, c: number) => any;
715
721
  readonly parse: (a: number, b: number) => [number, number, number];
716
722
  readonly resource: (a: number, b: number, c: number, d: number) => [number, number, number, number];
717
- readonly streamvalidation_export: (a: number) => [number, number, number, number];
718
- readonly streamvalidation_validate: (a: number, b: any) => any;
719
- readonly streamverifier_create: (a: any) => [number, number, number];
720
- readonly streamverifier_open: (a: number, b: number, c: number) => number;
721
- readonly streamverifier_resume: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
722
723
  readonly thumbnails: (a: number, b: number) => [number, number, number];
723
- readonly __wbg_assetverifier_free: (a: number, b: number) => void;
724
- readonly __wbg_verifyoptions_free: (a: number, b: number) => void;
725
- readonly assetverifier_create: (a: any) => [number, number, number];
726
- readonly assetverifier_verify: (a: number, b: any, c: number) => any;
727
724
  readonly verifyoptions_new: (a: number, b: number, c: number) => number;
725
+ readonly __wbg_binder_free: (a: number, b: number) => void;
726
+ readonly binder_derive: (a: number, b: any, c: number, d: number) => any;
727
+ readonly binder_held: (a: any) => [number, number, number];
728
+ readonly binder_iscc: () => number;
728
729
  readonly C2PA_TRUST_LIST: () => [number, number];
729
730
  readonly C2PA_TSA_TRUST_LIST: () => [number, number];
730
731
  readonly DEV_CA: () => [number, number];
731
732
  readonly init_panic_hook: () => void;
733
+ readonly __wbg_streamvalidation_free: (a: number, b: number) => void;
734
+ readonly __wbg_streamverifier_free: (a: number, b: number) => void;
735
+ readonly streamvalidation_export: (a: number) => [number, number, number, number];
736
+ readonly streamvalidation_validate: (a: number, b: any) => any;
737
+ readonly streamverifier_create: (a: any) => [number, number, number];
738
+ readonly streamverifier_open: (a: number, b: number, c: number) => number;
739
+ readonly streamverifier_resume: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
732
740
  readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
733
741
  readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
734
742
  readonly intounderlyingbytesource_cancel: (a: number) => void;
@@ -32,7 +32,7 @@ export class AssetVerifier {
32
32
  return AssetVerifier.__wrap(ret[0]);
33
33
  }
34
34
  /**
35
- * Verify an asset against the configured trust anchors and per-call recovery plan.
35
+ * Verify an asset against the configured trust anchors and per-call recovery options.
36
36
  *
37
37
  * Reads the C2PA-native formats. A container format (MXF) is plugin-backed, and plugins
38
38
  * are native, so a master is verified through the native SDK.
@@ -1284,7 +1284,7 @@ function __wbg_get_imports() {
1284
1284
  return ret;
1285
1285
  },
1286
1286
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
1287
- // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 3940, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1287
+ // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 3946, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
1288
1288
  const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__hedf60f9cb8ab20c3);
1289
1289
  return ret;
1290
1290
  },
@@ -1,15 +1,13 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
- export const __wbg_binder_free: (a: number, b: number) => void;
4
+ export const __wbg_assetverifier_free: (a: number, b: number) => void;
5
5
  export const __wbg_blobsource_free: (a: number, b: number) => void;
6
6
  export const __wbg_bytessource_free: (a: number, b: number) => void;
7
7
  export const __wbg_memorysource_free: (a: number, b: number) => void;
8
- export const __wbg_streamvalidation_free: (a: number, b: number) => void;
9
- export const __wbg_streamverifier_free: (a: number, b: number) => void;
10
- export const binder_derive: (a: number, b: any, c: number, d: number) => any;
11
- export const binder_held: (a: any) => [number, number, number];
12
- export const binder_iscc: () => number;
8
+ export const __wbg_verifyoptions_free: (a: number, b: number) => void;
9
+ export const assetverifier_create: (a: any) => [number, number, number];
10
+ export const assetverifier_verify: (a: number, b: any, c: number) => any;
13
11
  export const blobsource_length: (a: number) => number;
14
12
  export const blobsource_new: (a: any) => [number, number, number];
15
13
  export const blobsource_readAt: (a: number, b: number, c: number) => [number, number, number];
@@ -21,21 +19,23 @@ export const memorysource_new: (a: number, b: number) => number;
21
19
  export const memorysource_readAt: (a: number, b: number, c: number) => any;
22
20
  export const parse: (a: number, b: number) => [number, number, number];
23
21
  export const resource: (a: number, b: number, c: number, d: number) => [number, number, number, number];
24
- export const streamvalidation_export: (a: number) => [number, number, number, number];
25
- export const streamvalidation_validate: (a: number, b: any) => any;
26
- export const streamverifier_create: (a: any) => [number, number, number];
27
- export const streamverifier_open: (a: number, b: number, c: number) => number;
28
- export const streamverifier_resume: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
29
22
  export const thumbnails: (a: number, b: number) => [number, number, number];
30
- export const __wbg_assetverifier_free: (a: number, b: number) => void;
31
- export const __wbg_verifyoptions_free: (a: number, b: number) => void;
32
- export const assetverifier_create: (a: any) => [number, number, number];
33
- export const assetverifier_verify: (a: number, b: any, c: number) => any;
34
23
  export const verifyoptions_new: (a: number, b: number, c: number) => number;
24
+ export const __wbg_binder_free: (a: number, b: number) => void;
25
+ export const binder_derive: (a: number, b: any, c: number, d: number) => any;
26
+ export const binder_held: (a: any) => [number, number, number];
27
+ export const binder_iscc: () => number;
35
28
  export const C2PA_TRUST_LIST: () => [number, number];
36
29
  export const C2PA_TSA_TRUST_LIST: () => [number, number];
37
30
  export const DEV_CA: () => [number, number];
38
31
  export const init_panic_hook: () => void;
32
+ export const __wbg_streamvalidation_free: (a: number, b: number) => void;
33
+ export const __wbg_streamverifier_free: (a: number, b: number) => void;
34
+ export const streamvalidation_export: (a: number) => [number, number, number, number];
35
+ export const streamvalidation_validate: (a: number, b: any) => any;
36
+ export const streamverifier_create: (a: any) => [number, number, number];
37
+ export const streamverifier_open: (a: number, b: number, c: number) => number;
38
+ export const streamverifier_resume: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
39
39
  export const __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
40
40
  export const intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
41
41
  export const intounderlyingbytesource_cancel: (a: number) => void;
@@ -30,7 +30,7 @@ var AssetVerifier = class AssetVerifier {
30
30
  return AssetVerifier.__wrap(ret[0]);
31
31
  }
32
32
  /**
33
- * Verify an asset against the configured trust anchors and per-call recovery plan.
33
+ * Verify an asset against the configured trust anchors and per-call recovery options.
34
34
  *
35
35
  * Reads the C2PA-native formats. A container format (MXF) is plugin-backed, and plugins
36
36
  * are native, so a master is verified through the native SDK.
@@ -406,9 +406,10 @@ interface RegistryOptions {
406
406
  */
407
407
  url: string;
408
408
  /**
409
- * Federated resolution APIs a match may name as holding its manifest. C2PA 2.4 lets a
410
- * match carry an `endpoint`; one listed here is fetched from, any other is reported as
411
- * refused. Checked like `url`: https, or http on loopback only.
409
+ * Federated resolution APIs a match may name as holding its manifest, beside the ones the
410
+ * C2PA algorithm list publishes, which are always allowed. C2PA 2.4 lets a match carry an
411
+ * `endpoint`; one allowed is fetched from, any other is reported as refused. Checked like
412
+ * `url`: https, or http on loopback only.
412
413
  */
413
414
  endpoints?: string[];
414
415
  }
@@ -474,19 +475,87 @@ interface Lineage {
474
475
  supersedes: string[];
475
476
  supersededBy: string[];
476
477
  }
478
+ /**
479
+ * [`crate::asset::RecoveryIssue`] as JS sees it: a tagged union, each kind with its own data.
480
+ */
481
+ type RecoveryIssue = {
482
+ kind: "binder";
483
+ binderIndex: number;
484
+ message: string;
485
+ } | {
486
+ kind: "deprecatedAlgorithm";
487
+ algorithm: string;
488
+ } | {
489
+ kind: "bindingQuery";
490
+ binderIndex: number;
491
+ algorithm: string;
492
+ message: string;
493
+ } | {
494
+ kind: "queryRefused";
495
+ algorithm: string;
496
+ message: string;
497
+ } | {
498
+ kind: "contentForm";
499
+ message: string;
500
+ } | {
501
+ kind: "contentQuery";
502
+ algorithm: string;
503
+ message: string;
504
+ } | {
505
+ kind: "capabilities";
506
+ message: string;
507
+ } | {
508
+ kind: "contentTooLarge";
509
+ capBytes: number;
510
+ } | {
511
+ kind: "candidateFetch";
512
+ manifestId: string;
513
+ message: string;
514
+ } | {
515
+ kind: "candidateValidation";
516
+ manifestId: string;
517
+ reason: string;
518
+ } | {
519
+ kind: "endpointRefused";
520
+ manifestId: string;
521
+ endpoint: string;
522
+ } | {
523
+ kind: "resourceLimit";
524
+ message: string;
525
+ };
526
+ /**
527
+ * [`crate::asset::VerdictRule`] as JS sees it.
528
+ */
529
+ type VerdictRule = "onlyCandidate" | "notSuperseded" | "hardBinding";
530
+ /**
531
+ * [`crate::asset::Verdict`] as JS sees it.
532
+ */
533
+ type Verdict = {
534
+ kind: "unsigned";
535
+ } | {
536
+ kind: "inconclusive";
537
+ } | {
538
+ kind: "embedded";
539
+ } | {
540
+ kind: "recovered";
541
+ index: number;
542
+ decidedBy: VerdictRule;
543
+ } | {
544
+ kind: "recoveredDerivative";
545
+ index: number;
546
+ decidedBy: VerdictRule;
547
+ } | {
548
+ kind: "ambiguous";
549
+ candidates: number[];
550
+ };
477
551
  interface AssetVerification {
478
552
  credentials: FoundCredential[];
479
553
  recovery: RecoverySummary;
480
554
  goldenComparison: GoldenComparison;
481
- }
482
- interface RecoveryIssue {
483
- kind: RecoveryIssueKind;
484
- manifestId: string | undefined;
485
- message: string;
555
+ verdict: Verdict;
486
556
  }
487
557
  interface RecoverySummary {
488
558
  status: RecoveryStatus;
489
- bestCredentialIndex: number | undefined;
490
559
  issues: RecoveryIssue[];
491
560
  }
492
561
  type ContentBindingClass = "fingerprint" | "watermark";
@@ -496,6 +565,8 @@ type GoldenComparison = {
496
565
  kind: "noEmbeddedManifest";
497
566
  } | {
498
567
  kind: "noRecoveredManifest";
568
+ } | {
569
+ kind: "recoveryIncomplete";
499
570
  } | {
500
571
  kind: "matches";
501
572
  recoveredIndex: number;
@@ -503,8 +574,11 @@ type GoldenComparison = {
503
574
  kind: "differs";
504
575
  recoveredIndex: number;
505
576
  } | {
506
- kind: "indeterminate";
507
- recoveredIndex: number | undefined;
577
+ kind: "noneMatches";
578
+ candidates: number[];
579
+ } | {
580
+ kind: "unreadable";
581
+ recoveredIndex: number;
508
582
  };
509
583
  type RecoveryDiscovery = {
510
584
  method: "byBinding";
@@ -528,7 +602,6 @@ type RecoveryDiscovery = {
528
602
  registryScore: number | undefined;
529
603
  endpoint: string | undefined;
530
604
  };
531
- type RecoveryIssueKind = "binder" | "bindingQuery" | "queryRefused" | "contentQuery" | "capabilities" | "contentTooLarge" | "candidateFetch" | "candidateValidation" | "resourceLimit" | "endpointRefused";
532
605
  type RecoveryStatus = "notRequested" | "notFound" | "recovered" | "incomplete";
533
606
  declare class AssetVerifier {
534
607
  private constructor();
@@ -541,7 +614,7 @@ declare class AssetVerifier {
541
614
  */
542
615
  static create(options: AssetVerifierOptions): AssetVerifier;
543
616
  /**
544
- * Verify an asset against the configured trust anchors and per-call recovery plan.
617
+ * Verify an asset against the configured trust anchors and per-call recovery options.
545
618
  *
546
619
  * Reads the C2PA-native formats. A container format (MXF) is plugin-backed, and plugins
547
620
  * are native, so a master is verified through the native SDK.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trylimbo/sdk-verifier-wasm",
3
- "version": "0.2.11-canary.18",
3
+ "version": "0.2.11",
4
4
  "license": "UNLICENSED",
5
5
  "repository": {
6
6
  "type": "git",
@@ -40,6 +40,5 @@
40
40
  "devDependencies": {
41
41
  "comlink": "4.4.2",
42
42
  "typescript": "^7.0.2"
43
- },
44
- "stableVersion": "0.2.10"
43
+ }
45
44
  }