@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.
- package/ios/Zcam1Camera.swift +177 -9
- package/ios/Zcam1CameraFilmStyle.swift +18 -2
- package/ios/Zcam1CameraViewManager.m +4 -0
- package/ios/Zcam1DepthData.swift +219 -286
- package/lib/module/NativeZcam1Capture.js.map +1 -1
- package/lib/module/camera.js +113 -15
- package/lib/module/camera.js.map +1 -1
- package/lib/module/capture.js +21 -3
- package/lib/module/capture.js.map +1 -1
- package/lib/module/common.js +3 -2
- package/lib/module/common.js.map +1 -1
- package/lib/module/generated/zcam1_c2pa_utils.js +85 -6
- package/lib/module/generated/zcam1_c2pa_utils.js.map +1 -1
- package/lib/module/generated/zcam1_verify_utils.js +80 -3
- package/lib/module/generated/zcam1_verify_utils.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils.js +5 -4
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/src/NativeZcam1Capture.d.ts +10 -0
- package/lib/typescript/src/NativeZcam1Capture.d.ts.map +1 -1
- package/lib/typescript/src/camera.d.ts +36 -0
- package/lib/typescript/src/camera.d.ts.map +1 -1
- package/lib/typescript/src/capture.d.ts +8 -1
- package/lib/typescript/src/capture.d.ts.map +1 -1
- package/lib/typescript/src/common.d.ts.map +1 -1
- package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts +60 -0
- package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts.map +1 -1
- package/lib/typescript/src/generated/zcam1_verify_utils.d.ts +134 -3
- package/lib/typescript/src/generated/zcam1_verify_utils.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/utils.d.ts +1 -1
- package/lib/typescript/src/utils.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/NativeZcam1Capture.ts +12 -0
- package/src/camera.tsx +179 -9
- package/src/capture.tsx +30 -3
- package/src/common.tsx +3 -2
- package/src/generated/zcam1_c2pa_utils.ts +126 -3
- package/src/generated/zcam1_verify_utils.ts +92 -3
- package/src/index.ts +2 -1
- package/src/utils.ts +7 -3
package/lib/module/camera.js
CHANGED
|
@@ -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
|
-
|
|
367
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
package/lib/module/camera.js.map
CHANGED
|
@@ -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":[]}
|
package/lib/module/capture.js
CHANGED
|
@@ -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,
|
|
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","
|
|
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":[]}
|
package/lib/module/common.js
CHANGED
|
@@ -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
|
-
|
|
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) {
|
package/lib/module/common.js.map
CHANGED
|
@@ -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,
|
|
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,
|