@succinctlabs/react-native-zcam1 0.2.7 → 0.3.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.
Files changed (43) hide show
  1. package/ios/Zcam1Camera.swift +177 -9
  2. package/ios/Zcam1CameraFilmStyle.swift +18 -2
  3. package/ios/Zcam1CameraViewManager.m +4 -0
  4. package/ios/Zcam1DepthData.swift +219 -286
  5. package/lib/module/NativeZcam1Capture.js.map +1 -1
  6. package/lib/module/camera.js +113 -15
  7. package/lib/module/camera.js.map +1 -1
  8. package/lib/module/capture.js +21 -3
  9. package/lib/module/capture.js.map +1 -1
  10. package/lib/module/common.js +3 -2
  11. package/lib/module/common.js.map +1 -1
  12. package/lib/module/generated/zcam1_c2pa_utils.js +85 -6
  13. package/lib/module/generated/zcam1_c2pa_utils.js.map +1 -1
  14. package/lib/module/generated/zcam1_verify_utils.js +80 -3
  15. package/lib/module/generated/zcam1_verify_utils.js.map +1 -1
  16. package/lib/module/index.js +1 -1
  17. package/lib/module/index.js.map +1 -1
  18. package/lib/module/utils.js +5 -4
  19. package/lib/module/utils.js.map +1 -1
  20. package/lib/typescript/src/NativeZcam1Capture.d.ts +10 -0
  21. package/lib/typescript/src/NativeZcam1Capture.d.ts.map +1 -1
  22. package/lib/typescript/src/camera.d.ts +36 -0
  23. package/lib/typescript/src/camera.d.ts.map +1 -1
  24. package/lib/typescript/src/capture.d.ts +8 -1
  25. package/lib/typescript/src/capture.d.ts.map +1 -1
  26. package/lib/typescript/src/common.d.ts.map +1 -1
  27. package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts +60 -0
  28. package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts.map +1 -1
  29. package/lib/typescript/src/generated/zcam1_verify_utils.d.ts +134 -3
  30. package/lib/typescript/src/generated/zcam1_verify_utils.d.ts.map +1 -1
  31. package/lib/typescript/src/index.d.ts +2 -2
  32. package/lib/typescript/src/index.d.ts.map +1 -1
  33. package/lib/typescript/src/utils.d.ts +1 -1
  34. package/lib/typescript/src/utils.d.ts.map +1 -1
  35. package/package.json +2 -1
  36. package/src/NativeZcam1Capture.ts +12 -0
  37. package/src/camera.tsx +179 -9
  38. package/src/capture.tsx +30 -3
  39. package/src/common.tsx +3 -2
  40. package/src/generated/zcam1_c2pa_utils.ts +126 -3
  41. package/src/generated/zcam1_verify_utils.ts +92 -3
  42. package/src/index.ts +2 -1
  43. package/src/utils.ts +7 -3
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
 
3
+ import Geolocation from "@react-native-community/geolocation";
3
4
  import JailMonkey from "jail-monkey";
4
5
  import React from "react";
5
6
  import { requireNativeComponent } from "react-native";
6
- import { Dirs, Util } from "react-native-file-access";
7
+ import { Dirs, FileSystem, Util } from "react-native-file-access";
7
8
  import { buildSelfSignedCertificate, computeHash, formatFromPath, ManifestEditor } from "./bindings.js";
8
9
  import { ZPhoto } from "./capture.js";
9
10
  import NativeZcam1Sdk from "./NativeZcam1Capture.js";
@@ -25,6 +26,12 @@ export const CERT_KEY_TAG = "CERT_KEY_TAG";
25
26
  * - "bw": Contrasty B&W with warm tint
26
27
  */
27
28
 
29
+ /**
30
+ * Hardware shutter action type.
31
+ * - "photo": Full press on volume button or Camera Control. Trigger capture.
32
+ * - "focus": Light press on Camera Control. Trigger focus/zoom (optional).
33
+ */
34
+
28
35
  // ─────────────────────────────────────────────────────────────────────────────
29
36
  // Custom Film Style Recipe Types
30
37
  // ─────────────────────────────────────────────────────────────────────────────
@@ -346,6 +353,13 @@ export class ZCamera extends React.PureComponent {
346
353
  const when = new Date().toISOString().replace("T", " ").split(".")[0];
347
354
  const isJailBroken = JailMonkey.isJailBroken();
348
355
  const isLocationSpoofingAvailable = JailMonkey.canMockLocation();
356
+ const location = await retrieveLocationData(this.props.captureTimestampEnabled, this.props.captureLocationEnabled);
357
+ const authenticityData = {
358
+ isJailBroken,
359
+ isLocationSpoofingAvailable,
360
+ isLocationAvailable: location.isLocationAvailable,
361
+ locationRetrievalStatus: location.locationRetrievalStatus
362
+ };
349
363
  result.filePath = await embedBindings(result.filePath, when, {
350
364
  deviceMake: result.deviceMake,
351
365
  deviceModel: result.deviceModel,
@@ -362,11 +376,10 @@ export class ZCamera extends React.PureComponent {
362
376
  audioCodec: result.audioCodec,
363
377
  audioSampleRate: result.audioSampleRate,
364
378
  audioChannels: result.audioChannels,
365
- authenticityData: {
366
- isJailBroken,
367
- isLocationSpoofingAvailable
368
- },
369
- filmStyle: this.resolveFilmStyleInfo()
379
+ authenticityData,
380
+ filmStyle: this.resolveFilmStyleInfo(),
381
+ trustedTimestamp: location.trustedTimestamp,
382
+ location: location.coords
370
383
  }, this.props.captureInfo, this.certChainPem);
371
384
  return result;
372
385
  } finally {
@@ -399,6 +412,15 @@ export class ZCamera extends React.PureComponent {
399
412
  throw new Error("Native camera capture did not return a valid file path.");
400
413
  }
401
414
  const originalPath = result.filePath;
415
+ const depthHeatMapPath = result.depthHeatMapPath;
416
+ const depthRawHash = result.depthRawHash;
417
+
418
+ // Log depth diagnostics for troubleshooting.
419
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
420
+ const depthDiag = result._depthDiag;
421
+ if (depthDiag) {
422
+ console.log("[DEPTH_DIAG]", JSON.stringify(depthDiag, null, 2));
423
+ }
402
424
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
403
425
  const metadata = result.metadata ?? {};
404
426
  const exif = metadata["{Exif}"] ?? {};
@@ -409,6 +431,13 @@ export class ZCamera extends React.PureComponent {
409
431
  const softwareVersion = tiff.Software || "Unknown";
410
432
  const isJailBroken = JailMonkey.isJailBroken();
411
433
  const isLocationSpoofingAvailable = JailMonkey.canMockLocation();
434
+ const location = await retrieveLocationData(this.props.captureTimestampEnabled, this.props.captureLocationEnabled);
435
+ const authenticityData = {
436
+ isJailBroken,
437
+ isLocationSpoofingAvailable,
438
+ isLocationAvailable: location.isLocationAvailable,
439
+ locationRetrievalStatus: location.locationRetrievalStatus
440
+ };
412
441
  const destinationPath = await embedBindings(originalPath, when, {
413
442
  deviceMake: deviceMake,
414
443
  deviceModel: deviceModel,
@@ -420,13 +449,12 @@ export class ZCamera extends React.PureComponent {
420
449
  exposureTime: exif.ExposureTime,
421
450
  depthOfField: exif.FNumber,
422
451
  focalLength: exif.FocalLength,
423
- authenticityData: {
424
- isJailBroken,
425
- isLocationSpoofingAvailable
426
- },
452
+ authenticityData,
427
453
  depthData: result.depthData,
428
- filmStyle: this.resolveFilmStyleInfo()
429
- }, this.props.captureInfo, this.certChainPem);
454
+ filmStyle: this.resolveFilmStyleInfo(),
455
+ trustedTimestamp: location.trustedTimestamp,
456
+ location: location.coords
457
+ }, this.props.captureInfo, this.certChainPem, depthHeatMapPath, depthRawHash);
430
458
  return new ZPhoto(originalPath, destinationPath);
431
459
  }
432
460
 
@@ -447,6 +475,8 @@ export class ZCamera extends React.PureComponent {
447
475
  customFilmStyles,
448
476
  depthEnabled = false,
449
477
  onOrientationChange,
478
+ hardwareShutterEnabled = true,
479
+ onHardwareShutter,
450
480
  style
451
481
  } = this.props;
452
482
 
@@ -470,7 +500,9 @@ export class ZCamera extends React.PureComponent {
470
500
  filmStyleOverrides: mergedFilmStyleOverrides,
471
501
  customFilmStyles: customFilmStyles,
472
502
  depthEnabled: depthEnabled,
473
- onOrientationChange: onOrientationChange ? event => onOrientationChange(event.nativeEvent.orientation) : undefined
503
+ onOrientationChange: onOrientationChange ? event => onOrientationChange(event.nativeEvent.orientation) : undefined,
504
+ hardwareShutterEnabled: hardwareShutterEnabled,
505
+ onHardwareShutter: onHardwareShutter ? event => onHardwareShutter(event.nativeEvent.action) : undefined
474
506
  });
475
507
  }
476
508
  }
@@ -478,7 +510,7 @@ export class ZCamera extends React.PureComponent {
478
510
  /**
479
511
  * Embeds C2PA bindings and capture metadata into a photo, producing a new signed file.
480
512
  */
481
- async function embedBindings(originalPath, when, metadata, captureInfo, certChainPem) {
513
+ async function embedBindings(originalPath, when, metadata, captureInfo, certChainPem, depthHeatMapPath, depthRawHash) {
482
514
  originalPath = stripFileProtocol(originalPath);
483
515
  const dataHash = computeHash(originalPath);
484
516
  const format = formatFromPath(originalPath);
@@ -496,7 +528,33 @@ async function embedBindings(originalPath, when, metadata, captureInfo, certChai
496
528
  } else {
497
529
  normalizedMetadata = manifestEditor.addVideoMetadataAction(metadata, when);
498
530
  }
499
- const assertion = await generateAppAttestAssertion(dataHash, normalizedMetadata, captureInfo.deviceKeyId);
531
+
532
+ // Embed depth heat map as a C2PA assertion if available.
533
+ // The heat map JPEG is read from disk (written by Swift during capture) — only the
534
+ // file path string crosses the RN bridge, not the binary data.
535
+ if (depthHeatMapPath && format.indexOf("video") < 0) {
536
+ try {
537
+ const heatMapBase64 = await FileSystem.readFile(depthHeatMapPath, "base64");
538
+ const depthData = metadata.depthData;
539
+ manifestEditor.addAssertion("succinct.depth-heatmap", JSON.stringify({
540
+ format: "image/jpeg",
541
+ width: depthData?.width,
542
+ height: depthData?.height,
543
+ colormap: "turbo",
544
+ depth_accuracy: depthData?.accuracy,
545
+ depth_range_min: depthData?.statistics?.min,
546
+ depth_range_max: depthData?.statistics?.max,
547
+ sensor_type: depthData?.pixelFormat,
548
+ raw_depth_hash: depthRawHash,
549
+ image_data: heatMapBase64
550
+ }));
551
+ } catch (e) {
552
+ console.warn("[embedBindings] Failed to embed depth heat map:", e);
553
+ } finally {
554
+ FileSystem.unlink(depthHeatMapPath).catch(() => {});
555
+ }
556
+ }
557
+ const assertion = await generateAppAttestAssertion(dataHash, normalizedMetadata, captureInfo.deviceKeyId, captureInfo.production);
500
558
 
501
559
  // Add an assertion containing all data needed to later generate a proof
502
560
  manifestEditor.addAssertion("succinct.bindings", JSON.stringify({
@@ -510,4 +568,44 @@ async function embedBindings(originalPath, when, metadata, captureInfo, certChai
510
568
  await manifestEditor.embedManifestToFile(destinationPath, format);
511
569
  return destinationPath;
512
570
  }
571
+ function retrieveLocationData(captureTimestampEnabled, captureLocationEnabled) {
572
+ if (!captureTimestampEnabled && !captureLocationEnabled) {
573
+ return Promise.resolve({
574
+ coords: undefined,
575
+ trustedTimestamp: undefined,
576
+ isLocationAvailable: undefined,
577
+ locationRetrievalStatus: undefined
578
+ });
579
+ }
580
+ return new Promise(resolve => {
581
+ Geolocation.getCurrentPosition(position => {
582
+ resolve({
583
+ coords: captureLocationEnabled ? {
584
+ latitude: position.coords.latitude.toFixed(6),
585
+ longitude: position.coords.longitude.toFixed(6),
586
+ altitude: position.coords.altitude?.toFixed(6),
587
+ accuracy: position.coords.accuracy.toFixed(6),
588
+ altitudeAccuracy: position.coords.altitudeAccuracy?.toFixed(6)
589
+ } : undefined,
590
+ trustedTimestamp: captureTimestampEnabled ? BigInt(Math.trunc(position.timestamp)) : undefined,
591
+ isLocationAvailable: true,
592
+ locationRetrievalStatus: "success"
593
+ });
594
+ }, error => {
595
+ console.warn(`[ZCAM1] failed to retrieve GPS location data: ${error.message}`);
596
+ resolve({
597
+ coords: undefined,
598
+ trustedTimestamp: undefined,
599
+ isLocationAvailable: false,
600
+ locationRetrievalStatus: error.message
601
+ });
602
+ }, {
603
+ timeout: 1000,
604
+ // 1 second
605
+ maximumAge: 60 * 1000,
606
+ // 1 minute
607
+ enableHighAccuracy: true
608
+ });
609
+ });
610
+ }
513
611
  //# sourceMappingURL=camera.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["JailMonkey","React","requireNativeComponent","Dirs","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","stripFileProtocol","jsx","_jsx","CERT_KEY_TAG","DEFAULT_FILM_STYLE_RECIPES","normal","mellow","type","config","temperature","tint","value","highlights","shadows","nostalgic","bw","intensity","color","r","g","b","Zcam1CameraView","ZCamera","PureComponent","nativeRef","createRef","recordingInProgress","lastVideoStartResult","constructor","props","certChainPem","certChain","pem","console","warn","captureInfo","contentPublicKey","resolveFilmStyleInfo","filmStyle","filmStyleOverrides","customFilmStyles","isOverride","undefined","isCustom","source","recipe","name","JSON","stringify","getMinZoom","getMaxZoom","getSwitchOverZoomFactors","hasUltraWideCamera","getExposureRange","resetExposure","focusAtPoint","x","y","setZoomAnimated","factor","getDeviceDiagnostics","isDepthSupported","hasDepthZoomLimitations","getDepthSupportedZoomRanges","startVideoRecording","position","options","Error","result","startNativeVideoRecording","maxDurationSeconds","e","stopVideoRecording","stopNativeVideoRecording","when","Date","toISOString","replace","split","isJailBroken","isLocationSpoofingAvailable","canMockLocation","filePath","embedBindings","deviceMake","deviceModel","softwareVersion","format","hasAudio","durationSeconds","fileSizeBytes","width","height","rotationDegrees","frameRate","videoCodec","audioCodec","audioSampleRate","audioChannels","authenticityData","takePhoto","captureFormat","flash","includeDepthData","aspectRatio","orientation","takeNativePhoto","originalPath","metadata","exif","tiff","DateTime","Make","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","depthData","render","isActive","zoom","torch","exposure","depthEnabled","onOrientationChange","style","mergedFilmStyleOverrides","ref","flex","event","nativeEvent","dataHash","ext","extname","CacheDir","now","Math","random","slice","manifestEditor","contentKeyId","buffer","normalizedMetadata","indexOf","addPhotoMetadataAction","addVideoMetadataAction","assertion","deviceKeyId","addAssertion","app_id","appId","device_key_id","attestation","embedManifestToFile"],"sourceRoot":"../../src","sources":["camera.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Geolocation","JailMonkey","React","requireNativeComponent","Dirs","FileSystem","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","stripFileProtocol","jsx","_jsx","CERT_KEY_TAG","DEFAULT_FILM_STYLE_RECIPES","normal","mellow","type","config","temperature","tint","value","highlights","shadows","nostalgic","bw","intensity","color","r","g","b","Zcam1CameraView","ZCamera","PureComponent","nativeRef","createRef","recordingInProgress","lastVideoStartResult","constructor","props","certChainPem","certChain","pem","console","warn","captureInfo","contentPublicKey","resolveFilmStyleInfo","filmStyle","filmStyleOverrides","customFilmStyles","isOverride","undefined","isCustom","source","recipe","name","JSON","stringify","getMinZoom","getMaxZoom","getSwitchOverZoomFactors","hasUltraWideCamera","getExposureRange","resetExposure","focusAtPoint","x","y","setZoomAnimated","factor","getDeviceDiagnostics","isDepthSupported","hasDepthZoomLimitations","getDepthSupportedZoomRanges","startVideoRecording","position","options","Error","result","startNativeVideoRecording","maxDurationSeconds","e","stopVideoRecording","stopNativeVideoRecording","when","Date","toISOString","replace","split","isJailBroken","isLocationSpoofingAvailable","canMockLocation","location","retrieveLocationData","captureTimestampEnabled","captureLocationEnabled","authenticityData","isLocationAvailable","locationRetrievalStatus","filePath","embedBindings","deviceMake","deviceModel","softwareVersion","format","hasAudio","durationSeconds","fileSizeBytes","width","height","rotationDegrees","frameRate","videoCodec","audioCodec","audioSampleRate","audioChannels","trustedTimestamp","coords","takePhoto","captureFormat","flash","includeDepthData","aspectRatio","orientation","takeNativePhoto","originalPath","depthHeatMapPath","depthRawHash","depthDiag","_depthDiag","log","metadata","exif","tiff","DateTime","Make","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","depthData","render","isActive","zoom","torch","exposure","depthEnabled","onOrientationChange","hardwareShutterEnabled","onHardwareShutter","style","mergedFilmStyleOverrides","ref","flex","event","nativeEvent","action","dataHash","ext","extname","CacheDir","now","Math","random","slice","manifestEditor","contentKeyId","buffer","normalizedMetadata","indexOf","addPhotoMetadataAction","addVideoMetadataAction","heatMapBase64","readFile","addAssertion","colormap","depth_accuracy","accuracy","depth_range_min","statistics","min","depth_range_max","max","sensor_type","pixelFormat","raw_depth_hash","image_data","unlink","catch","assertion","deviceKeyId","production","app_id","appId","device_key_id","attestation","embedManifestToFile","Promise","resolve","getCurrentPosition","latitude","toFixed","longitude","altitude","altitudeAccuracy","BigInt","trunc","timestamp","error","message","timeout","maximumAge","enableHighAccuracy"],"sourceRoot":"../../src","sources":["camera.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { generateHardwareKey, getAttestation } from "@pagopa/io-react-native-integrity";
4
+ import Geolocation from "@react-native-community/geolocation";
4
5
  import EncryptedStorage from "react-native-encrypted-storage";
5
6
  import { getContentPublicKey, getSecureEnclaveKeyId } from "./common.js";
6
7
  export { buildSelfSignedCertificate, SelfSignedCertChain } from "./bindings.js";
@@ -66,6 +67,9 @@ export async function initCapture(settings) {
66
67
  // If running in simulator, hardware key generation is not supported
67
68
  const err = error;
68
69
  if (err?.code === "-1" || err?.message?.includes("UNSUPPORTED_SERVICE")) {
70
+ if (settings.production) {
71
+ throw new Error("ZCAM: Simulator is not supported in production mode. Set production: false for development.");
72
+ }
69
73
  console.warn("[ZCAM] Running in simulator - using mock device key. This is for development only.");
70
74
  // Generate a mock device key for simulator testing
71
75
  deviceKeyId = `SIMULATOR_DEVICE_KEY_${Date.now()}`;
@@ -84,6 +88,7 @@ export async function initCapture(settings) {
84
88
  }
85
89
  return {
86
90
  appId: settings.appId,
91
+ production: settings.production,
87
92
  deviceKeyId,
88
93
  contentPublicKey,
89
94
  contentKeyId,
@@ -97,8 +102,8 @@ export async function initCapture(settings) {
97
102
  * @param settings - Configuration settings for registration
98
103
  * @returns Attestation data and challenge
99
104
  */
100
- export async function updateRegistration(keyId, _settings) {
101
- // Try to get real attestation, but fall back to mock for simulator
105
+ export async function updateRegistration(keyId, settings) {
106
+ // Try to get real attestation, but fall back to mock for simulator in dev mode
102
107
  let attestation;
103
108
  try {
104
109
  attestation = await getAttestation(keyId, keyId);
@@ -106,9 +111,11 @@ export async function updateRegistration(keyId, _settings) {
106
111
  // If running in simulator, App Attest is not supported
107
112
  const err = error;
108
113
  if (err?.code === "-1" || err?.message?.includes("UNSUPPORTED_SERVICE")) {
114
+ if (settings.production) {
115
+ throw new Error("ZCAM: Simulator is not supported in production mode. Set production: false for development.");
116
+ }
109
117
  console.warn("[ZCAM] Running in simulator - using mock attestation. This is for development only.");
110
118
  // Use a mock attestation for simulator testing
111
- // In production, this would need to be rejected by the backend
112
119
  return `SIMULATOR_MOCK_${keyId}_${Date.now()}`;
113
120
  } else {
114
121
  throw error;
@@ -117,4 +124,15 @@ export async function updateRegistration(keyId, _settings) {
117
124
  await EncryptedStorage.setItem(`attestation-${keyId}`, attestation);
118
125
  return attestation;
119
126
  }
127
+
128
+ /**
129
+ * Requests location permission from the user.
130
+ * This function triggers the native location authorization prompt on the device.
131
+ * @throws {string} Error message if permission request fails
132
+ */
133
+ export function requestLocationPermission() {
134
+ Geolocation.requestAuthorization(() => {}, error => {
135
+ throw error.message;
136
+ });
137
+ }
120
138
  //# sourceMappingURL=capture.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["generateHardwareKey","getAttestation","EncryptedStorage","getContentPublicKey","getSecureEnclaveKeyId","buildSelfSignedCertificate","SelfSignedCertChain","ZCamera","NativeZcam1Capture","previewFile","filePath","ZPhoto","constructor","originalPath","path","initCapture","settings","deviceKeyId","getItem","appId","contentPublicKey","kty","Error","contentKeyId","error","err","code","message","includes","console","warn","Date","now","setItem","attestation","updateRegistration","keyId","_settings"],"sourceRoot":"../../src","sources":["capture.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["generateHardwareKey","getAttestation","Geolocation","EncryptedStorage","getContentPublicKey","getSecureEnclaveKeyId","buildSelfSignedCertificate","SelfSignedCertChain","ZCamera","NativeZcam1Capture","previewFile","filePath","ZPhoto","constructor","originalPath","path","initCapture","settings","deviceKeyId","getItem","appId","contentPublicKey","kty","Error","contentKeyId","error","err","code","message","includes","production","console","warn","Date","now","setItem","attestation","updateRegistration","keyId","requestLocationPermission","requestAuthorization"],"sourceRoot":"../../src","sources":["capture.tsx"],"mappings":";;AAAA,SAASA,mBAAmB,EAAEC,cAAc,QAAQ,mCAAmC;AACvF,OAAOC,WAAW,MAAM,qCAAqC;AAC7D,OAAOC,gBAAgB,MAAM,gCAAgC;AAE7D,SAAqBC,mBAAmB,EAAEC,qBAAqB,QAAQ,aAAU;AACjF,SAASC,0BAA0B,EAAEC,mBAAmB,QAAQ,eAAY;;AAE5E;AACA;AACA;AACA,SAOEC,OAAO,QACF,aAAU;AAEjB,OAAOC,kBAAkB,MAAM,yBAAsB;;AAErD;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAACC,QAAgB,EAAiB;EACjE,OAAOF,kBAAkB,CAACC,WAAW,CAACC,QAAQ,CAAC;AACjD;;AAEA;AACA;AACA;;AAQA;AACA;AACA;;AAMA;AACA;AACA;;AAUA;AACA;AACA;;AAMA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,CAAC;EAIlBC,WAAWA,CAACC,YAAoB,EAAEC,IAAY,EAAE;IAC9C,IAAI,CAACD,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAACC,QAAkB,EAAwB;EAC1E,IAAIC,WAAW,GAAG,MAAMf,gBAAgB,CAACgB,OAAO,CAAC,eAAeF,QAAQ,CAACG,KAAK,EAAE,CAAC;EAEjF,MAAMC,gBAAgB,GAAG,MAAMjB,mBAAmB,CAAC,CAAC;EAEpD,IAAIiB,gBAAgB,CAACC,GAAG,KAAK,IAAI,EAAE;IACjC,MAAM,IAAIC,KAAK,CAAC,mCAAmC,CAAC;EACtD;EAEA,MAAMC,YAAY,GAAGnB,qBAAqB,CAACgB,gBAAgB,CAAC;EAE5D,IAAIH,WAAW,IAAI,IAAI,EAAE;IACvB;IACA,IAAI;MACFA,WAAW,GAAG,MAAMlB,mBAAmB,CAAC,CAAC;IAC3C,CAAC,CAAC,OAAOyB,KAAc,EAAE;MACvB;MACA,MAAMC,GAAG,GAAGD,KAAwD;MACpE,IAAIC,GAAG,EAAEC,IAAI,KAAK,IAAI,IAAID,GAAG,EAAEE,OAAO,EAAEC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;QACvE,IAAIZ,QAAQ,CAACa,UAAU,EAAE;UACvB,MAAM,IAAIP,KAAK,CACb,6FACF,CAAC;QACH;QAEAQ,OAAO,CAACC,IAAI,CACV,oFACF,CAAC;QACD;QACAd,WAAW,GAAG,wBAAwBe,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;MACpD,CAAC,MAAM;QACL,MAAMT,KAAK;MACb;IACF;IACA,MAAMtB,gBAAgB,CAACgC,OAAO,CAAC,eAAelB,QAAQ,CAACG,KAAK,EAAE,EAAEF,WAAW,CAAC;EAC9E;EAEA,IAAIA,WAAW,IAAI,IAAI,EAAE;IACvB,MAAM,IAAIK,KAAK,CAAC,iCAAiC,CAAC;EACpD;EAEA,IAAIa,WAAW,GAAG,MAAMjC,gBAAgB,CAACgB,OAAO,CAAC,eAAeD,WAAW,EAAE,CAAC;EAE9E,IAAIkB,WAAW,IAAI,IAAI,EAAE;IACvBA,WAAW,GAAG,MAAMC,kBAAkB,CAACnB,WAAW,EAAED,QAAQ,CAAC;EAC/D;EAEA,OAAO;IACLG,KAAK,EAAEH,QAAQ,CAACG,KAAK;IACrBU,UAAU,EAAEb,QAAQ,CAACa,UAAU;IAC/BZ,WAAW;IACXG,gBAAgB;IAChBG,YAAY;IACZY;EACF,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,kBAAkBA,CAACC,KAAa,EAAErB,QAAkB,EAAmB;EAC3F;EACA,IAAImB,WAAmB;EACvB,IAAI;IACFA,WAAW,GAAG,MAAMnC,cAAc,CAACqC,KAAK,EAAEA,KAAK,CAAC;EAClD,CAAC,CAAC,OAAOb,KAAc,EAAE;IACvB;IACA,MAAMC,GAAG,GAAGD,KAAwD;IACpE,IAAIC,GAAG,EAAEC,IAAI,KAAK,IAAI,IAAID,GAAG,EAAEE,OAAO,EAAEC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;MACvE,IAAIZ,QAAQ,CAACa,UAAU,EAAE;QACvB,MAAM,IAAIP,KAAK,CACb,6FACF,CAAC;MACH;MACAQ,OAAO,CAACC,IAAI,CACV,qFACF,CAAC;MACD;MACA,OAAO,kBAAkBM,KAAK,IAAIL,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;IAChD,CAAC,MAAM;MACL,MAAMT,KAAK;IACb;EACF;EAEA,MAAMtB,gBAAgB,CAACgC,OAAO,CAAC,eAAeG,KAAK,EAAE,EAAEF,WAAW,CAAC;EAEnE,OAAOA,WAAW;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,yBAAyBA,CAAA,EAAG;EAC1CrC,WAAW,CAACsC,oBAAoB,CAC9B,MAAM,CAAC,CAAC,EACPf,KAAK,IAAK;IACT,MAAMA,KAAK,CAACG,OAAO;EACrB,CACF,CAAC;AACH","ignoreList":[]}
@@ -15,8 +15,9 @@ function flexibleBase64Decode(str) {
15
15
  return hasPadding ? base64.decode(str) : base64nopad.decode(str);
16
16
  }
17
17
  export async function getContentPublicKey() {
18
- return await getPublicKeyFixed(CONTENT_KEY_TAG).catch(() => {
19
- return generate(CONTENT_KEY_TAG);
18
+ return await getPublicKeyFixed(CONTENT_KEY_TAG).catch(async () => {
19
+ await generate(CONTENT_KEY_TAG);
20
+ return getPublicKeyFixed(CONTENT_KEY_TAG);
20
21
  });
21
22
  }
22
23
  export function getSecureEnclaveKeyId(publicKey) {
@@ -1 +1 @@
1
- {"version":3,"names":["sha1","generate","getPublicKeyFixed","base64","base64nopad","base64url","base64urlnopad","CONTENT_KEY_TAG","flexibleBase64Decode","str","isUrlSafe","includes","hasPadding","decode","getContentPublicKey","catch","getSecureEnclaveKeyId","publicKey","kty","x","y","out","Uint8Array","length","set","Error"],"sourceRoot":"../../src","sources":["common.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,iBAAiB,QAAwB,gCAAgC;AAC5F,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAE5E,MAAMC,eAAe,GAAG,uBAAuB;AAS/C;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAW,EAAc;EACrD,MAAMC,SAAS,GAAGD,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EACxD,MAAMC,UAAU,GAAGH,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EAEpC,IAAID,SAAS,EAAE;IACb,OAAOE,UAAU,GAAGP,SAAS,CAACQ,MAAM,CAACJ,GAAG,CAAC,GAAGH,cAAc,CAACO,MAAM,CAACJ,GAAG,CAAC;EACxE;EACA,OAAOG,UAAU,GAAGT,MAAM,CAACU,MAAM,CAACJ,GAAG,CAAC,GAAGL,WAAW,CAACS,MAAM,CAACJ,GAAG,CAAC;AAClE;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAuB;EAC9D,OAAO,MAAMZ,iBAAiB,CAACK,eAAe,CAAC,CAACQ,KAAK,CAAC,MAAM;IAC1D,OAAOd,QAAQ,CAACM,eAAe,CAAC;EAClC,CAAC,CAAC;AACJ;AAEA,OAAO,SAASS,qBAAqBA,CAACC,SAAgB,EAAc;EAClE,IAAIA,SAAS,CAACC,GAAG,KAAK,IAAI,EAAE;IAC1B,MAAMC,CAAC,GAAGX,oBAAoB,CAACS,SAAS,CAACE,CAAC,CAAC;IAC3C,MAAMC,CAAC,GAAGZ,oBAAoB,CAACS,SAAS,CAACG,CAAC,CAAC;IAE3C,MAAMC,GAAG,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAGH,CAAC,CAACI,MAAM,GAAGH,CAAC,CAACG,MAAM,CAAC;IACnDF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACfA,GAAG,CAACG,GAAG,CAACL,CAAC,EAAE,CAAC,CAAC;IACbE,GAAG,CAACG,GAAG,CAACJ,CAAC,EAAE,CAAC,GAAGD,CAAC,CAACI,MAAM,CAAC;IAExB,OAAOvB,IAAI,CAACqB,GAAG,CAAC;EAClB,CAAC,MAAM;IACL,MAAM,IAAII,KAAK,CAAC,kBAAkB,CAAC;EACrC;AACF","ignoreList":[]}
1
+ {"version":3,"names":["sha1","generate","getPublicKeyFixed","base64","base64nopad","base64url","base64urlnopad","CONTENT_KEY_TAG","flexibleBase64Decode","str","isUrlSafe","includes","hasPadding","decode","getContentPublicKey","catch","getSecureEnclaveKeyId","publicKey","kty","x","y","out","Uint8Array","length","set","Error"],"sourceRoot":"../../src","sources":["common.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,yBAAyB;AAC9C,SAASC,QAAQ,EAAEC,iBAAiB,QAAwB,gCAAgC;AAC5F,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,EAAEC,cAAc,QAAQ,aAAa;AAE5E,MAAMC,eAAe,GAAG,uBAAuB;AAS/C;AACA;AACA,SAASC,oBAAoBA,CAACC,GAAW,EAAc;EACrD,MAAMC,SAAS,GAAGD,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EACxD,MAAMC,UAAU,GAAGH,GAAG,CAACE,QAAQ,CAAC,GAAG,CAAC;EAEpC,IAAID,SAAS,EAAE;IACb,OAAOE,UAAU,GAAGP,SAAS,CAACQ,MAAM,CAACJ,GAAG,CAAC,GAAGH,cAAc,CAACO,MAAM,CAACJ,GAAG,CAAC;EACxE;EACA,OAAOG,UAAU,GAAGT,MAAM,CAACU,MAAM,CAACJ,GAAG,CAAC,GAAGL,WAAW,CAACS,MAAM,CAACJ,GAAG,CAAC;AAClE;AAEA,OAAO,eAAeK,mBAAmBA,CAAA,EAAuB;EAC9D,OAAO,MAAMZ,iBAAiB,CAACK,eAAe,CAAC,CAACQ,KAAK,CAAC,YAAY;IAChE,MAAMd,QAAQ,CAACM,eAAe,CAAC;IAC/B,OAAOL,iBAAiB,CAACK,eAAe,CAAC;EAC3C,CAAC,CAAC;AACJ;AAEA,OAAO,SAASS,qBAAqBA,CAACC,SAAgB,EAAc;EAClE,IAAIA,SAAS,CAACC,GAAG,KAAK,IAAI,EAAE;IAC1B,MAAMC,CAAC,GAAGX,oBAAoB,CAACS,SAAS,CAACE,CAAC,CAAC;IAC3C,MAAMC,CAAC,GAAGZ,oBAAoB,CAACS,SAAS,CAACG,CAAC,CAAC;IAE3C,MAAMC,GAAG,GAAG,IAAIC,UAAU,CAAC,CAAC,GAAGH,CAAC,CAACI,MAAM,GAAGH,CAAC,CAACG,MAAM,CAAC;IACnDF,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACfA,GAAG,CAACG,GAAG,CAACL,CAAC,EAAE,CAAC,CAAC;IACbE,GAAG,CAACG,GAAG,CAACJ,CAAC,EAAE,CAAC,GAAGD,CAAC,CAACI,MAAM,CAAC;IAExB,OAAOvB,IAAI,CAACqB,GAAG,CAAC;EAClB,CAAC,MAAM;IACL,MAAM,IAAII,KAAK,CAAC,kBAAkB,CAAC;EACrC;AACF","ignoreList":[]}
@@ -89,15 +89,19 @@ const FfiConverterTypeAuthenticityData = (() => {
89
89
  read(from) {
90
90
  return {
91
91
  isJailBroken: FfiConverterBool.read(from),
92
- isLocationSpoofingAvailable: FfiConverterBool.read(from)
92
+ isLocationSpoofingAvailable: FfiConverterBool.read(from),
93
+ isLocationAvailable: FfiConverterOptionalBool.read(from),
94
+ locationRetrievalStatus: FfiConverterOptionalString.read(from)
93
95
  };
94
96
  }
95
97
  write(value, into) {
96
98
  FfiConverterBool.write(value.isJailBroken, into);
97
99
  FfiConverterBool.write(value.isLocationSpoofingAvailable, into);
100
+ FfiConverterOptionalBool.write(value.isLocationAvailable, into);
101
+ FfiConverterOptionalString.write(value.locationRetrievalStatus, into);
98
102
  }
99
103
  allocationSize(value) {
100
- return FfiConverterBool.allocationSize(value.isJailBroken) + FfiConverterBool.allocationSize(value.isLocationSpoofingAvailable);
104
+ return FfiConverterBool.allocationSize(value.isJailBroken) + FfiConverterBool.allocationSize(value.isLocationSpoofingAvailable) + FfiConverterOptionalBool.allocationSize(value.isLocationAvailable) + FfiConverterOptionalString.allocationSize(value.locationRetrievalStatus);
101
105
  }
102
106
  }
103
107
  return new FFIConverter();
@@ -383,6 +387,63 @@ const FfiConverterTypeFilmStyleInfo = (() => {
383
387
  }
384
388
  return new FFIConverter();
385
389
  })();
390
+
391
+ /**
392
+ * GPS location captured at the time of photo/video creation.
393
+ *
394
+ * Coordinates and accuracy are stored as strings to preserve the original
395
+ * precision from the device without floating-point rounding.
396
+ */
397
+
398
+ /**
399
+ * Generated factory for {@link LocationInfo} record objects.
400
+ */
401
+ export const LocationInfo = (() => {
402
+ const defaults = () => ({});
403
+ const create = (() => {
404
+ return uniffiCreateRecord(defaults);
405
+ })();
406
+ return Object.freeze({
407
+ /**
408
+ * Create a frozen instance of {@link LocationInfo}, with defaults specified
409
+ * in Rust, in the {@link zcam1_c2pa_utils} crate.
410
+ */
411
+ create,
412
+ /**
413
+ * Create a frozen instance of {@link LocationInfo}, with defaults specified
414
+ * in Rust, in the {@link zcam1_c2pa_utils} crate.
415
+ */
416
+ new: create,
417
+ /**
418
+ * Defaults specified in the {@link zcam1_c2pa_utils} crate.
419
+ */
420
+ defaults: () => Object.freeze(defaults())
421
+ });
422
+ })();
423
+ const FfiConverterTypeLocationInfo = (() => {
424
+ class FFIConverter extends AbstractFfiConverterByteArray {
425
+ read(from) {
426
+ return {
427
+ latitude: FfiConverterString.read(from),
428
+ longitude: FfiConverterString.read(from),
429
+ altitude: FfiConverterOptionalString.read(from),
430
+ accuracy: FfiConverterString.read(from),
431
+ altitudeAccuracy: FfiConverterOptionalString.read(from)
432
+ };
433
+ }
434
+ write(value, into) {
435
+ FfiConverterString.write(value.latitude, into);
436
+ FfiConverterString.write(value.longitude, into);
437
+ FfiConverterOptionalString.write(value.altitude, into);
438
+ FfiConverterString.write(value.accuracy, into);
439
+ FfiConverterOptionalString.write(value.altitudeAccuracy, into);
440
+ }
441
+ allocationSize(value) {
442
+ return FfiConverterString.allocationSize(value.latitude) + FfiConverterString.allocationSize(value.longitude) + FfiConverterOptionalString.allocationSize(value.altitude) + FfiConverterString.allocationSize(value.accuracy) + FfiConverterOptionalString.allocationSize(value.altitudeAccuracy);
443
+ }
444
+ }
445
+ return new FFIConverter();
446
+ })();
386
447
  /**
387
448
  * Generated factory for {@link PhotoMetadataInfo} record objects.
388
449
  */
@@ -424,7 +485,9 @@ const FfiConverterTypePhotoMetadataInfo = (() => {
424
485
  focalLength: FfiConverterUInt32.read(from),
425
486
  authenticityData: FfiConverterTypeAuthenticityData.read(from),
426
487
  depthData: FfiConverterOptionalTypeDepthData.read(from),
427
- filmStyle: FfiConverterOptionalTypeFilmStyleInfo.read(from)
488
+ filmStyle: FfiConverterOptionalTypeFilmStyleInfo.read(from),
489
+ trustedTimestamp: FfiConverterOptionalUInt64.read(from),
490
+ location: FfiConverterOptionalTypeLocationInfo.read(from)
428
491
  };
429
492
  }
430
493
  write(value, into) {
@@ -441,9 +504,11 @@ const FfiConverterTypePhotoMetadataInfo = (() => {
441
504
  FfiConverterTypeAuthenticityData.write(value.authenticityData, into);
442
505
  FfiConverterOptionalTypeDepthData.write(value.depthData, into);
443
506
  FfiConverterOptionalTypeFilmStyleInfo.write(value.filmStyle, into);
507
+ FfiConverterOptionalUInt64.write(value.trustedTimestamp, into);
508
+ FfiConverterOptionalTypeLocationInfo.write(value.location, into);
444
509
  }
445
510
  allocationSize(value) {
446
- return FfiConverterString.allocationSize(value.deviceMake) + FfiConverterString.allocationSize(value.deviceModel) + FfiConverterString.allocationSize(value.softwareVersion) + FfiConverterUInt32.allocationSize(value.xResolution) + FfiConverterUInt32.allocationSize(value.yResolution) + FfiConverterUInt32.allocationSize(value.orientation) + FfiConverterString.allocationSize(value.iso) + FfiConverterUInt32.allocationSize(value.exposureTime) + FfiConverterUInt32.allocationSize(value.depthOfField) + FfiConverterUInt32.allocationSize(value.focalLength) + FfiConverterTypeAuthenticityData.allocationSize(value.authenticityData) + FfiConverterOptionalTypeDepthData.allocationSize(value.depthData) + FfiConverterOptionalTypeFilmStyleInfo.allocationSize(value.filmStyle);
511
+ return FfiConverterString.allocationSize(value.deviceMake) + FfiConverterString.allocationSize(value.deviceModel) + FfiConverterString.allocationSize(value.softwareVersion) + FfiConverterUInt32.allocationSize(value.xResolution) + FfiConverterUInt32.allocationSize(value.yResolution) + FfiConverterUInt32.allocationSize(value.orientation) + FfiConverterString.allocationSize(value.iso) + FfiConverterUInt32.allocationSize(value.exposureTime) + FfiConverterUInt32.allocationSize(value.depthOfField) + FfiConverterUInt32.allocationSize(value.focalLength) + FfiConverterTypeAuthenticityData.allocationSize(value.authenticityData) + FfiConverterOptionalTypeDepthData.allocationSize(value.depthData) + FfiConverterOptionalTypeFilmStyleInfo.allocationSize(value.filmStyle) + FfiConverterOptionalUInt64.allocationSize(value.trustedTimestamp) + FfiConverterOptionalTypeLocationInfo.allocationSize(value.location);
447
512
  }
448
513
  }
449
514
  return new FFIConverter();
@@ -536,7 +601,9 @@ const FfiConverterTypeVideoMetadataInfo = (() => {
536
601
  audioSampleRate: FfiConverterOptionalUInt32.read(from),
537
602
  audioChannels: FfiConverterOptionalUInt32.read(from),
538
603
  authenticityData: FfiConverterTypeAuthenticityData.read(from),
539
- filmStyle: FfiConverterOptionalTypeFilmStyleInfo.read(from)
604
+ filmStyle: FfiConverterOptionalTypeFilmStyleInfo.read(from),
605
+ trustedTimestamp: FfiConverterOptionalUInt64.read(from),
606
+ location: FfiConverterOptionalTypeLocationInfo.read(from)
540
607
  };
541
608
  }
542
609
  write(value, into) {
@@ -557,9 +624,11 @@ const FfiConverterTypeVideoMetadataInfo = (() => {
557
624
  FfiConverterOptionalUInt32.write(value.audioChannels, into);
558
625
  FfiConverterTypeAuthenticityData.write(value.authenticityData, into);
559
626
  FfiConverterOptionalTypeFilmStyleInfo.write(value.filmStyle, into);
627
+ FfiConverterOptionalUInt64.write(value.trustedTimestamp, into);
628
+ FfiConverterOptionalTypeLocationInfo.write(value.location, into);
560
629
  }
561
630
  allocationSize(value) {
562
- return FfiConverterString.allocationSize(value.deviceMake) + FfiConverterString.allocationSize(value.deviceModel) + FfiConverterString.allocationSize(value.softwareVersion) + FfiConverterString.allocationSize(value.format) + FfiConverterBool.allocationSize(value.hasAudio) + FfiConverterUInt32.allocationSize(value.durationSeconds) + FfiConverterUInt32.allocationSize(value.fileSizeBytes) + FfiConverterUInt32.allocationSize(value.width) + FfiConverterUInt32.allocationSize(value.height) + FfiConverterUInt32.allocationSize(value.rotationDegrees) + FfiConverterUInt32.allocationSize(value.frameRate) + FfiConverterOptionalString.allocationSize(value.videoCodec) + FfiConverterOptionalString.allocationSize(value.audioCodec) + FfiConverterOptionalUInt32.allocationSize(value.audioSampleRate) + FfiConverterOptionalUInt32.allocationSize(value.audioChannels) + FfiConverterTypeAuthenticityData.allocationSize(value.authenticityData) + FfiConverterOptionalTypeFilmStyleInfo.allocationSize(value.filmStyle);
631
+ return FfiConverterString.allocationSize(value.deviceMake) + FfiConverterString.allocationSize(value.deviceModel) + FfiConverterString.allocationSize(value.softwareVersion) + FfiConverterString.allocationSize(value.format) + FfiConverterBool.allocationSize(value.hasAudio) + FfiConverterUInt32.allocationSize(value.durationSeconds) + FfiConverterUInt32.allocationSize(value.fileSizeBytes) + FfiConverterUInt32.allocationSize(value.width) + FfiConverterUInt32.allocationSize(value.height) + FfiConverterUInt32.allocationSize(value.rotationDegrees) + FfiConverterUInt32.allocationSize(value.frameRate) + FfiConverterOptionalString.allocationSize(value.videoCodec) + FfiConverterOptionalString.allocationSize(value.audioCodec) + FfiConverterOptionalUInt32.allocationSize(value.audioSampleRate) + FfiConverterOptionalUInt32.allocationSize(value.audioChannels) + FfiConverterTypeAuthenticityData.allocationSize(value.authenticityData) + FfiConverterOptionalTypeFilmStyleInfo.allocationSize(value.filmStyle) + FfiConverterOptionalUInt64.allocationSize(value.trustedTimestamp) + FfiConverterOptionalTypeLocationInfo.allocationSize(value.location);
563
632
  }
564
633
  }
565
634
  return new FFIConverter();
@@ -1091,6 +1160,9 @@ const uniffiTypeManifestStoreObjectFactory = (() => {
1091
1160
  // FfiConverter for ManifestStoreInterface
1092
1161
  const FfiConverterTypeManifestStore = new FfiConverterObject(uniffiTypeManifestStoreObjectFactory);
1093
1162
 
1163
+ // FfiConverter for boolean | undefined
1164
+ const FfiConverterOptionalBool = new FfiConverterOptional(FfiConverterBool);
1165
+
1094
1166
  // FfiConverter for DepthData | undefined
1095
1167
  const FfiConverterOptionalTypeDepthData = new FfiConverterOptional(FfiConverterTypeDepthData);
1096
1168
 
@@ -1100,6 +1172,9 @@ const FfiConverterOptionalTypeDeviceBindings = new FfiConverterOptional(FfiConve
1100
1172
  // FfiConverter for FilmStyleInfo | undefined
1101
1173
  const FfiConverterOptionalTypeFilmStyleInfo = new FfiConverterOptional(FfiConverterTypeFilmStyleInfo);
1102
1174
 
1175
+ // FfiConverter for LocationInfo | undefined
1176
+ const FfiConverterOptionalTypeLocationInfo = new FfiConverterOptional(FfiConverterTypeLocationInfo);
1177
+
1103
1178
  // FfiConverter for Proof | undefined
1104
1179
  const FfiConverterOptionalTypeProof = new FfiConverterOptional(FfiConverterTypeProof);
1105
1180
 
@@ -1109,6 +1184,9 @@ const FfiConverterOptionalString = new FfiConverterOptional(FfiConverterString);
1109
1184
  // FfiConverter for /*u32*/number | undefined
1110
1185
  const FfiConverterOptionalUInt32 = new FfiConverterOptional(FfiConverterUInt32);
1111
1186
 
1187
+ // FfiConverter for /*u64*/bigint | undefined
1188
+ const FfiConverterOptionalUInt64 = new FfiConverterOptional(FfiConverterUInt64);
1189
+
1112
1190
  /**
1113
1191
  * This should be called before anything else.
1114
1192
  *
@@ -1191,6 +1269,7 @@ export default Object.freeze({
1191
1269
  FfiConverterTypeDeviceBindings,
1192
1270
  FfiConverterTypeExclusion,
1193
1271
  FfiConverterTypeFilmStyleInfo,
1272
+ FfiConverterTypeLocationInfo,
1194
1273
  FfiConverterTypeManifest,
1195
1274
  FfiConverterTypeManifestEditor,
1196
1275
  FfiConverterTypeManifestStore,