@succinctlabs/react-native-zcam1 0.2.5 → 0.2.7

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 (42) hide show
  1. package/README.md +144 -10
  2. package/Zcam1Sdk.podspec +1 -4
  3. package/cpp/generated/zcam1_c2pa_utils.cpp +2910 -3365
  4. package/cpp/generated/zcam1_c2pa_utils.hpp +130 -352
  5. package/cpp/generated/zcam1_certs_utils.cpp +1266 -1064
  6. package/cpp/generated/zcam1_certs_utils.hpp +37 -57
  7. package/cpp/generated/zcam1_verify_utils.cpp +1307 -1120
  8. package/cpp/generated/zcam1_verify_utils.hpp +39 -64
  9. package/cpp/proving/generated/zcam1_proving_utils.cpp +2619 -2917
  10. package/cpp/proving/generated/zcam1_proving_utils.hpp +102 -260
  11. package/ios/Zcam1Camera.swift +140 -53
  12. package/ios/Zcam1CameraFilmStyle.swift +106 -0
  13. package/lib/module/camera.js +2 -11
  14. package/lib/module/camera.js.map +1 -1
  15. package/lib/module/capture.js +2 -2
  16. package/lib/module/capture.js.map +1 -1
  17. package/lib/module/common.js +1 -1
  18. package/lib/module/common.js.map +1 -1
  19. package/lib/module/index.js +1 -1
  20. package/lib/module/index.js.map +1 -1
  21. package/lib/module/picker.js +2 -1
  22. package/lib/module/picker.js.map +1 -1
  23. package/lib/module/proving/prove.js +4 -4
  24. package/lib/module/proving/prove.js.map +1 -1
  25. package/lib/module/utils.js +7 -0
  26. package/lib/module/utils.js.map +1 -1
  27. package/lib/typescript/src/camera.d.ts.map +1 -1
  28. package/lib/typescript/src/index.d.ts +1 -1
  29. package/lib/typescript/src/index.d.ts.map +1 -1
  30. package/lib/typescript/src/picker.d.ts.map +1 -1
  31. package/lib/typescript/src/proving/prove.d.ts +1 -1
  32. package/lib/typescript/src/proving/prove.d.ts.map +1 -1
  33. package/lib/typescript/src/utils.d.ts +4 -0
  34. package/lib/typescript/src/utils.d.ts.map +1 -1
  35. package/package.json +2 -2
  36. package/src/camera.tsx +2 -13
  37. package/src/capture.tsx +2 -2
  38. package/src/common.tsx +1 -1
  39. package/src/index.ts +1 -1
  40. package/src/picker.tsx +2 -1
  41. package/src/proving/prove.tsx +5 -5
  42. package/src/utils.ts +7 -0
@@ -10,6 +10,7 @@ import CoreMotion
10
10
  import Foundation
11
11
  import Harbeth
12
12
  import ImageIO
13
+ import MetalKit
13
14
  import MobileCoreServices
14
15
  import UIKit
15
16
 
@@ -2620,13 +2621,113 @@ public final class Zcam1CameraService: NSObject, AVCaptureAudioDataOutputSampleB
2620
2621
  }
2621
2622
  // Capture delegate implementation moved into the internal PhotoCaptureDelegate helper.
2622
2623
 
2624
+ // MARK: - Metal Preview View
2625
+
2626
+ /// Metal-backed preview view that renders CIImage directly to GPU without CPU readback.
2627
+ /// Eliminates the expensive GPU→CPU texture readback that UIImageView + CIContext.createCGImage() causes.
2628
+ /// The previous UIImageView approach spent ~74% of CPU time on agxsTwiddleAddressCommon (Metal texture readback).
2629
+ @available(iOS 16.0, *)
2630
+ private class MetalPreviewView: MTKView, MTKViewDelegate {
2631
+
2632
+ private var ciContext: CIContext?
2633
+ private var commandQueue: MTLCommandQueue?
2634
+ private var currentImage: CIImage?
2635
+ private let colorSpace = CGColorSpaceCreateDeviceRGB()
2636
+
2637
+ init() {
2638
+ guard let device = MTLCreateSystemDefaultDevice() else {
2639
+ super.init(frame: .zero, device: nil)
2640
+ return
2641
+ }
2642
+ super.init(frame: .zero, device: device)
2643
+
2644
+ self.delegate = self
2645
+ commandQueue = device.makeCommandQueue()
2646
+ ciContext = CIContext(mtlDevice: device, options: [.cacheIntermediates: false])
2647
+
2648
+ // Manual draw mode — we trigger draws when new frames arrive.
2649
+ isPaused = true
2650
+ enableSetNeedsDisplay = false
2651
+ framebufferOnly = false
2652
+
2653
+ // Opaque for optimal compositing performance.
2654
+ isOpaque = true
2655
+ clearsContextBeforeDrawing = false
2656
+ }
2657
+
2658
+ required init(coder: NSCoder) {
2659
+ fatalError("init(coder:) not supported")
2660
+ }
2661
+
2662
+ /// Render a CIImage to the Metal drawable. Safe to call from any thread.
2663
+ func render(_ image: CIImage) {
2664
+ currentImage = image
2665
+ DispatchQueue.main.async { [weak self] in
2666
+ self?.draw()
2667
+ }
2668
+ }
2669
+
2670
+ /// Clear the preview (e.g., during camera position switch).
2671
+ func clear() {
2672
+ currentImage = nil
2673
+ }
2674
+
2675
+ // MARK: - MTKViewDelegate
2676
+
2677
+ func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
2678
+ // Scaling is handled dynamically in draw(in:).
2679
+ }
2680
+
2681
+ func draw(in view: MTKView) {
2682
+ guard let drawable = currentDrawable,
2683
+ let commandBuffer = commandQueue?.makeCommandBuffer(),
2684
+ let ciContext = ciContext else {
2685
+ return
2686
+ }
2687
+
2688
+ let drawableSize = view.drawableSize
2689
+ let bounds = CGRect(origin: .zero, size: drawableSize)
2690
+
2691
+ guard let image = currentImage else {
2692
+ // No image — present empty drawable to avoid stale frames.
2693
+ commandBuffer.present(drawable)
2694
+ commandBuffer.commit()
2695
+ return
2696
+ }
2697
+
2698
+ // Scale to fill the drawable (scaleAspectFill behavior).
2699
+ let scaleX = drawableSize.width / image.extent.width
2700
+ let scaleY = drawableSize.height / image.extent.height
2701
+ let scale = max(scaleX, scaleY)
2702
+
2703
+ // Apply scale, then center within the drawable bounds.
2704
+ var scaled = image.transformed(by: CGAffineTransform(scaleX: scale, y: scale))
2705
+ let tx = (drawableSize.width - scaled.extent.width) / 2 - scaled.extent.origin.x
2706
+ let ty = (drawableSize.height - scaled.extent.height) / 2 - scaled.extent.origin.y
2707
+ scaled = scaled.transformed(by: CGAffineTransform(translationX: tx, y: ty))
2708
+
2709
+ // Crop to drawable bounds (clips overflowing edges from aspect fill).
2710
+ let cropped = scaled.cropped(to: bounds)
2711
+
2712
+ ciContext.render(
2713
+ cropped,
2714
+ to: drawable.texture,
2715
+ commandBuffer: commandBuffer,
2716
+ bounds: bounds,
2717
+ colorSpace: colorSpace
2718
+ )
2719
+
2720
+ commandBuffer.present(drawable)
2721
+ commandBuffer.commit()
2722
+ }
2723
+ }
2724
+
2623
2725
  // MARK: - Camera Preview View
2624
2726
 
2625
2727
  /// UIView subclass that displays the live camera preview.
2626
2728
  ///
2627
- /// NEW ARCHITECTURE: Always uses AVCaptureVideoDataOutput for preview rendering.
2628
- /// This eliminates the complexity of toggling between preview layer and film style image view.
2629
- /// All frames go through the same pipeline - film style is applied when needed.
2729
+ /// Uses Metal-backed rendering via MetalPreviewView to keep the entire preview pipeline on GPU.
2730
+ /// CIImage from the camera CIFilter film styles Metal drawable, with zero CPU readback.
2630
2731
  ///
2631
2732
  /// This view is intended to be wrapped by a React Native view manager
2632
2733
  /// and controlled via props such as `isActive` and `position`.
@@ -2648,7 +2749,7 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
2648
2749
  guard oldValue != position else { return }
2649
2750
  // Set flag first to stop accepting frames, then clear the preview.
2650
2751
  isReconfiguring = true
2651
- previewImageView.image = nil
2752
+ metalPreviewView.clear()
2652
2753
  reconfigureSession()
2653
2754
  }
2654
2755
  }
@@ -2726,20 +2827,14 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
2726
2827
  /// Token for this view's motion manager listener, used for cleanup in deinit.
2727
2828
  private var orientationListenerToken: Int?
2728
2829
 
2729
- // Preview rendering - single UIImageView for all frames (filtered or not)
2730
- private let previewImageView: UIImageView = {
2731
- let iv = UIImageView()
2732
- iv.contentMode = .scaleAspectFill
2733
- iv.clipsToBounds = true
2734
- return iv
2735
- }()
2830
+ // Preview rendering — Metal-backed view for GPU-only frame display.
2831
+ private let metalPreviewView = MetalPreviewView()
2736
2832
 
2737
- // Video processing
2833
+ // Video processing.
2738
2834
  private var videoDataOutput: AVCaptureVideoDataOutput?
2739
2835
  private let videoDataQueue = DispatchQueue(label: "com.zcam1.videodata", qos: .userInteractive)
2740
2836
  private var currentFilmStyleEnum: Zcam1CameraFilmStyle = .normal
2741
- private var currentCustomFilmStyles: [C7FilterProtocol]?
2742
- private let ciContext = CIContext(options: [.useSoftwareRenderer: false])
2837
+ private var currentFilmStyleRecipe: [[String: Any]]?
2743
2838
  private var frameCount: Int = 0
2744
2839
 
2745
2840
  // Flag to skip frames during camera reconfiguration to avoid showing incorrectly mirrored frames.
@@ -2758,10 +2853,10 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
2758
2853
  private func commonInit() {
2759
2854
  backgroundColor = .black
2760
2855
 
2761
- // Add preview image view as the only preview mechanism.
2762
- previewImageView.frame = bounds
2763
- previewImageView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
2764
- addSubview(previewImageView)
2856
+ // Add Metal preview view for GPU-only frame rendering.
2857
+ metalPreviewView.frame = bounds
2858
+ metalPreviewView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
2859
+ addSubview(metalPreviewView)
2765
2860
 
2766
2861
  // Register for orientation change events from the motion manager.
2767
2862
  orientationListenerToken = Zcam1MotionManager.shared.addListener { [weak self] orientation in
@@ -2782,21 +2877,24 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
2782
2877
 
2783
2878
  public override func layoutSubviews() {
2784
2879
  super.layoutSubviews()
2785
- previewImageView.frame = bounds
2880
+ metalPreviewView.frame = bounds
2786
2881
  }
2787
2882
 
2788
2883
  // MARK: - Film Style Resolution
2789
2884
 
2790
2885
  /// Resolves and applies the current film style, checking overrides and custom film styles first.
2886
+ /// Creates CIFilter chain for GPU-only preview, and Harbeth chain for capture/recording via the service.
2791
2887
  private func applyCurrentFilmStyle() {
2792
2888
  // Check filmStyleOverrides first.
2793
2889
  if let overrides = filmStyleOverrides as? [String: [[String: Any]]],
2794
2890
  let recipe = overrides[filmStyle] {
2795
2891
  print("[Zcam1CameraView] Using film style override for '\(filmStyle)'")
2796
- let filmStyles = Zcam1CameraFilmStyle.createFilmStyles(from: recipe)
2797
- currentCustomFilmStyles = filmStyles
2892
+ // Store recipe for per-frame CIFilter creation on the capture queue (thread-safe).
2893
+ currentFilmStyleRecipe = recipe
2894
+ // Harbeth chain for capture/recording via the service.
2895
+ let harbethFilters = Zcam1CameraFilmStyle.createFilmStyles(from: recipe)
2798
2896
  currentFilmStyleEnum = .normal
2799
- Zcam1CameraService.shared.setCustomFilmStyles(filmStyles)
2897
+ Zcam1CameraService.shared.setCustomFilmStyles(harbethFilters)
2800
2898
  return
2801
2899
  }
2802
2900
 
@@ -2804,15 +2902,15 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
2804
2902
  if let custom = customFilmStyles as? [String: [[String: Any]]],
2805
2903
  let recipe = custom[filmStyle] {
2806
2904
  print("[Zcam1CameraView] Using custom film style '\(filmStyle)'")
2807
- let filmStyles = Zcam1CameraFilmStyle.createFilmStyles(from: recipe)
2808
- currentCustomFilmStyles = filmStyles
2905
+ currentFilmStyleRecipe = recipe
2906
+ let harbethFilters = Zcam1CameraFilmStyle.createFilmStyles(from: recipe)
2809
2907
  currentFilmStyleEnum = .normal
2810
- Zcam1CameraService.shared.setCustomFilmStyles(filmStyles)
2908
+ Zcam1CameraService.shared.setCustomFilmStyles(harbethFilters)
2811
2909
  return
2812
2910
  }
2813
2911
 
2814
2912
  // Fall back to no film style (JS SDK provides all built-in recipes via filmStyleOverrides).
2815
- currentCustomFilmStyles = nil
2913
+ currentFilmStyleRecipe = nil
2816
2914
  currentFilmStyleEnum = .normal
2817
2915
  Zcam1CameraService.shared.setFilmStyle(.normal)
2818
2916
  }
@@ -2844,38 +2942,27 @@ public final class Zcam1CameraView: UIView, AVCaptureVideoDataOutputSampleBuffer
2844
2942
  return
2845
2943
  }
2846
2944
 
2847
- // Convert pixel buffer to UIImage.
2848
- let ciImage = CIImage(cvPixelBuffer: pixelBuffer)
2849
- guard let cgImage = ciContext.createCGImage(ciImage, from: ciImage.extent) else {
2850
- return
2851
- }
2945
+ // Create CIImage from pixel buffer (zero-cost wrapper, stays on GPU).
2946
+ var ciImage = CIImage(cvPixelBuffer: pixelBuffer)
2852
2947
 
2853
- // Create UIImage with fixed portrait orientation for display.
2854
- // The app UI is portrait-locked, so the preview frame is always taller than wide.
2855
- // Camera sensor buffers always arrive in landscape (native sensor orientation),
2856
- // so we rotate to fit the portrait frame.
2857
- //
2858
- // Back camera: .right (90° CW) maps the landscape-right sensor to portrait.
2859
- // Front camera: .left (90° CCW) because the mirrored pixel buffer from
2860
- // isVideoMirrored on the AVCaptureConnection changes the effective sensor
2861
- // orientation. Using .right would display upside-down; .rightMirrored would
2862
- // fix orientation but cancel out the mirror. .left gives correct orientation
2863
- // while preserving the connection-level mirror for a natural selfie view.
2948
+ // Apply orientation as a lazy CIImage transform (no CPU work).
2949
+ // Camera sensor buffers always arrive in landscape (native sensor orientation).
2950
+ // Back camera: .right (90° CW) maps landscape-right sensor to portrait.
2951
+ // Front camera: .left (90° CCW) because isVideoMirrored on the AVCaptureConnection
2952
+ // changes the effective sensor orientation.
2864
2953
  let isFront = position.lowercased() == "front"
2865
- let imageOrientation: UIImage.Orientation = isFront ? .left : .right
2866
-
2867
- var displayImage = UIImage(cgImage: cgImage, scale: 1.0, orientation: imageOrientation)
2954
+ ciImage = ciImage.oriented(isFront ? .left : .right)
2868
2955
 
2869
- // Apply film style if needed.
2870
- if let customFilmStyles = currentCustomFilmStyles {
2871
- displayImage = Zcam1CameraFilmStyle.apply(filmStyles: customFilmStyles, to: displayImage)
2956
+ // Apply film style CIFilters if configured (GPU pipeline, lazy evaluation).
2957
+ // Filters are created fresh per-frame from the stored recipe to avoid cross-thread
2958
+ // mutation of CIFilter instances (recipe is set on main thread, read here on capture queue).
2959
+ if let recipe = currentFilmStyleRecipe {
2960
+ let filters = Zcam1CameraFilmStyle.createCIFilters(from: recipe)
2961
+ ciImage = Zcam1CameraFilmStyle.applyCIFilters(filters, to: ciImage)
2872
2962
  }
2873
2963
 
2874
- // Update UI on main thread, but double-check we're not reconfiguring.
2875
- DispatchQueue.main.async { [weak self] in
2876
- guard let self = self, !self.isReconfiguring else { return }
2877
- self.previewImageView.image = displayImage
2878
- }
2964
+ // Render directly to Metal drawable (GPU→GPU, no CPU readback).
2965
+ metalPreviewView.render(ciImage)
2879
2966
  }
2880
2967
 
2881
2968
  public func captureOutput(
@@ -188,4 +188,110 @@ public enum Zcam1CameraFilmStyle: String, CaseIterable {
188
188
 
189
189
  return outputBuffer
190
190
  }
191
+
192
+ // MARK: - CIFilter-based Pipeline (GPU-only, for preview rendering)
193
+
194
+ /// Create CIFilter equivalents from a JavaScript film style recipe.
195
+ /// Used for GPU-only preview rendering without CPU readback.
196
+ /// Results are visually approximate to Harbeth — exact film styles are applied via Harbeth during capture.
197
+ static func createCIFilters(from recipe: [[String: Any]]) -> [CIFilter] {
198
+ var filters: [CIFilter] = []
199
+
200
+ // Collect color controls into a single CIColorControls filter for efficiency.
201
+ var saturation: Float?
202
+ var contrast: Float?
203
+ var brightness: Float?
204
+
205
+ for effect in recipe {
206
+ guard let type = effect["type"] as? String else { continue }
207
+
208
+ switch type {
209
+ case "whiteBalance":
210
+ if let config = effect["config"] as? [String: Any],
211
+ let temp = config["temperature"] as? Float {
212
+ let tint = config["tint"] as? Float ?? 0
213
+ if let filter = CIFilter(name: "CITemperatureAndTint") {
214
+ filter.setValue(CIVector(x: 6500, y: 0), forKey: "inputNeutral")
215
+ filter.setValue(
216
+ CIVector(x: CGFloat(6500 + temp * 100), y: CGFloat(tint * 100)),
217
+ forKey: "inputTargetNeutral"
218
+ )
219
+ filters.append(filter)
220
+ }
221
+ }
222
+ case "saturation":
223
+ saturation = effect["value"] as? Float
224
+ case "contrast":
225
+ contrast = effect["value"] as? Float
226
+ case "brightness":
227
+ brightness = effect["value"] as? Float
228
+ case "hue":
229
+ if let value = effect["value"] as? Float {
230
+ if let filter = CIFilter(name: "CIHueAdjust") {
231
+ // Harbeth uses degrees, CIFilter uses radians.
232
+ filter.setValue(NSNumber(value: value * .pi / 180.0), forKey: "inputAngle")
233
+ filters.append(filter)
234
+ }
235
+ }
236
+ case "vibrance":
237
+ if let value = effect["value"] as? Float {
238
+ if let filter = CIFilter(name: "CIVibrance") {
239
+ filter.setValue(NSNumber(value: value), forKey: "inputAmount")
240
+ filters.append(filter)
241
+ }
242
+ }
243
+ case "highlightShadow":
244
+ if let config = effect["config"] as? [String: Any],
245
+ let highlights = config["highlights"] as? Float,
246
+ let shadows = config["shadows"] as? Float {
247
+ if let filter = CIFilter(name: "CIHighlightShadowAdjust") {
248
+ filter.setValue(NSNumber(value: highlights), forKey: "inputHighlightAmount")
249
+ filter.setValue(NSNumber(value: shadows), forKey: "inputShadowAmount")
250
+ filters.append(filter)
251
+ }
252
+ }
253
+ case "monochrome":
254
+ if let config = effect["config"] as? [String: Any],
255
+ let intensity = config["intensity"] as? Float {
256
+ if let filter = CIFilter(name: "CIColorMonochrome") {
257
+ filter.setValue(NSNumber(value: intensity), forKey: "inputIntensity")
258
+ if let colorConfig = config["color"] as? [String: Any],
259
+ let r = colorConfig["r"] as? CGFloat,
260
+ let g = colorConfig["g"] as? CGFloat,
261
+ let b = colorConfig["b"] as? CGFloat {
262
+ filter.setValue(CIColor(red: r, green: g, blue: b), forKey: "inputColor")
263
+ }
264
+ filters.append(filter)
265
+ }
266
+ }
267
+ default:
268
+ break
269
+ }
270
+ }
271
+
272
+ // Combine saturation, contrast, and brightness into one CIColorControls filter.
273
+ if saturation != nil || contrast != nil || brightness != nil {
274
+ if let filter = CIFilter(name: "CIColorControls") {
275
+ if let s = saturation { filter.setValue(NSNumber(value: s), forKey: "inputSaturation") }
276
+ if let c = contrast { filter.setValue(NSNumber(value: c), forKey: "inputContrast") }
277
+ if let b = brightness { filter.setValue(NSNumber(value: b), forKey: "inputBrightness") }
278
+ // Insert at start so color controls are applied before other effects.
279
+ filters.insert(filter, at: 0)
280
+ }
281
+ }
282
+
283
+ return filters
284
+ }
285
+
286
+ /// Apply an array of CIFilters to a CIImage. All processing stays on GPU (lazy evaluation).
287
+ static func applyCIFilters(_ filters: [CIFilter], to image: CIImage) -> CIImage {
288
+ var result = image
289
+ for filter in filters {
290
+ filter.setValue(result, forKey: kCIInputImageKey)
291
+ if let output = filter.outputImage {
292
+ result = output
293
+ }
294
+ }
295
+ return result
296
+ }
191
297
  }
@@ -7,7 +7,7 @@ import { Dirs, Util } from "react-native-file-access";
7
7
  import { buildSelfSignedCertificate, computeHash, formatFromPath, ManifestEditor } from "./bindings.js";
8
8
  import { ZPhoto } from "./capture.js";
9
9
  import NativeZcam1Sdk from "./NativeZcam1Capture.js";
10
- import { generateAppAttestAssertion } from "./utils.js";
10
+ import { generateAppAttestAssertion, stripFileProtocol } from "./utils.js";
11
11
  import { jsx as _jsx } from "react/jsx-runtime";
12
12
  export const CERT_KEY_TAG = "CERT_KEY_TAG";
13
13
 
@@ -393,16 +393,8 @@ export class ZCamera extends React.PureComponent {
393
393
  const includeDepthData = options.includeDepthData ?? false;
394
394
  const aspectRatio = options.aspectRatio ?? "4:3";
395
395
  const orientation = options.orientation ?? "auto";
396
- console.log("[ZCamera] takePhoto: calling native with includeDepthData =", includeDepthData);
397
396
  const result = await NativeZcam1Sdk.takeNativePhoto(format, this.props.position || "back", flash, includeDepthData, aspectRatio, orientation, false // skipPostProcessing - default to false for normal operation
398
397
  );
399
- console.log("[ZCamera] takePhoto: native result:", {
400
- filePath: result?.filePath ? "present" : "missing",
401
- format: result?.format,
402
- hasMetadata: !!result?.metadata,
403
- hasDepthData: !!result?.depthData,
404
- depthDataKeys: result?.depthData ? Object.keys(result.depthData) : null
405
- });
406
398
  if (!result || !result.filePath) {
407
399
  throw new Error("Native camera capture did not return a valid file path.");
408
400
  }
@@ -487,7 +479,7 @@ export class ZCamera extends React.PureComponent {
487
479
  * Embeds C2PA bindings and capture metadata into a photo, producing a new signed file.
488
480
  */
489
481
  async function embedBindings(originalPath, when, metadata, captureInfo, certChainPem) {
490
- originalPath = originalPath.replace("file://", "");
482
+ originalPath = stripFileProtocol(originalPath);
491
483
  const dataHash = computeHash(originalPath);
492
484
  const format = formatFromPath(originalPath);
493
485
  const ext = Util.extname(originalPath);
@@ -502,7 +494,6 @@ async function embedBindings(originalPath, when, metadata, captureInfo, certChai
502
494
  if (format.indexOf("video") < 0) {
503
495
  normalizedMetadata = manifestEditor.addPhotoMetadataAction(metadata, when);
504
496
  } else {
505
- console.log("Metadata", metadata);
506
497
  normalizedMetadata = manifestEditor.addVideoMetadataAction(metadata, when);
507
498
  }
508
499
  const assertion = await generateAppAttestAssertion(dataHash, normalizedMetadata, captureInfo.deviceKeyId);
@@ -1 +1 @@
1
- {"version":3,"names":["JailMonkey","React","requireNativeComponent","Dirs","Util","buildSelfSignedCertificate","computeHash","formatFromPath","ManifestEditor","ZPhoto","NativeZcam1Sdk","generateAppAttestAssertion","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","log","takeNativePhoto","hasMetadata","metadata","hasDepthData","depthData","depthDataKeys","Object","keys","originalPath","exif","tiff","DateTime","Make","Model","Software","destinationPath","xResolution","PixelXDimension","yResolution","PixelYDimension","Orientation","iso","ISOSpeedRatings","toString","exposureTime","ExposureTime","depthOfField","FNumber","focalLength","FocalLength","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":["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":[]}
@@ -55,7 +55,7 @@ export async function initCapture(settings) {
55
55
  let deviceKeyId = await EncryptedStorage.getItem(`deviceKeyId-${settings.appId}`);
56
56
  const contentPublicKey = await getContentPublicKey();
57
57
  if (contentPublicKey.kty !== "EC") {
58
- throw "Only EC public keys are supported";
58
+ throw new Error("Only EC public keys are supported");
59
59
  }
60
60
  const contentKeyId = getSecureEnclaveKeyId(contentPublicKey);
61
61
  if (deviceKeyId == null) {
@@ -76,7 +76,7 @@ export async function initCapture(settings) {
76
76
  await EncryptedStorage.setItem(`deviceKeyId-${settings.appId}`, deviceKeyId);
77
77
  }
78
78
  if (deviceKeyId == null) {
79
- throw "failed to generate a device key";
79
+ throw new Error("Failed to generate a device key");
80
80
  }
81
81
  let attestation = await EncryptedStorage.getItem(`attestation-${deviceKeyId}`);
82
82
  if (attestation == null) {
@@ -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","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","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":[]}
@@ -29,7 +29,7 @@ export function getSecureEnclaveKeyId(publicKey) {
29
29
  out.set(y, 1 + x.length);
30
30
  return sha1(out);
31
31
  } else {
32
- throw "Invalid key type";
32
+ throw new Error("Invalid key type");
33
33
  }
34
34
  }
35
35
  //# sourceMappingURL=common.js.map
@@ -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"],"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,kBAAkB;EAC1B;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,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":[]}
@@ -7,7 +7,7 @@ export { AuthenticityData, AuthenticityStatus, authenticityStatus, buildSelfSign
7
7
  */
8
8
 
9
9
  export { ZCamera } from "./camera.js";
10
- export { initCapture } from "./capture.js";
10
+ export { initCapture, previewFile } from "./capture.js";
11
11
 
12
12
  /**
13
13
  * Core cryptographic key types and secure enclave utilities.
@@ -1 +1 @@
1
- {"version":3,"names":["AuthenticityData","AuthenticityStatus","authenticityStatus","buildSelfSignedCertificate","C2paError","C2paError_Tags","Claim","computeHash","computeHashFromBuffer","DepthData","DepthDataStatistics","DeviceBindings","Exclusion","extractManifest","FilmStyleInfo","formatFromPath","Manifest","ManifestEditor","ManifestStore","PhotoMetadataInfo","Proof","SelfSignedCertChain","VerifyError","VerifyError_Tags","VideoMetadataInfo","ZCamera","initCapture","getContentPublicKey","getSecureEnclaveKeyId","privateDirectory","ZImagePicker","VerifiableFile"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAKA,SACEA,gBAAgB,EAChBC,kBAAkB,EAClBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,SAAS,EACTC,cAAc,EACdC,KAAK,EACLC,WAAW,EACXC,qBAAqB,EACrBC,SAAS,EACTC,mBAAmB,EACnBC,cAAc,EACdC,SAAS,EACTC,eAAe,EACfC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,KAAK,EACLC,mBAAmB,EACnBC,WAAW,EACXC,gBAAgB,EAChBC,iBAAiB,QACZ,eAAY;;AAEnB;AACA;AACA;;AAYA,SAASC,OAAO,QAAQ,aAAU;AAElC,SAASC,WAAW,QAAQ,cAAW;;AAEvC;AACA;AACA;;AAEA,SAASC,mBAAmB,EAAEC,qBAAqB,QAAQ,aAAU;AAGrE;AACA;AACA;AACA,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,aAAU;;AAEzD;AACA;AACA;AACA;AACA,SAA+BC,cAAc,QAAQ,aAAU;;AAE/D;AACA;AACA","ignoreList":[]}
1
+ {"version":3,"names":["AuthenticityData","AuthenticityStatus","authenticityStatus","buildSelfSignedCertificate","C2paError","C2paError_Tags","Claim","computeHash","computeHashFromBuffer","DepthData","DepthDataStatistics","DeviceBindings","Exclusion","extractManifest","FilmStyleInfo","formatFromPath","Manifest","ManifestEditor","ManifestStore","PhotoMetadataInfo","Proof","SelfSignedCertChain","VerifyError","VerifyError_Tags","VideoMetadataInfo","ZCamera","initCapture","previewFile","getContentPublicKey","getSecureEnclaveKeyId","privateDirectory","ZImagePicker","VerifiableFile"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAKA,SACEA,gBAAgB,EAChBC,kBAAkB,EAClBC,kBAAkB,EAClBC,0BAA0B,EAC1BC,SAAS,EACTC,cAAc,EACdC,KAAK,EACLC,WAAW,EACXC,qBAAqB,EACrBC,SAAS,EACTC,mBAAmB,EACnBC,cAAc,EACdC,SAAS,EACTC,eAAe,EACfC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,cAAc,EACdC,aAAa,EACbC,iBAAiB,EACjBC,KAAK,EACLC,mBAAmB,EACnBC,WAAW,EACXC,gBAAgB,EAChBC,iBAAiB,QACZ,eAAY;;AAEnB;AACA;AACA;;AAYA,SAASC,OAAO,QAAQ,aAAU;AAElC,SAASC,WAAW,EAAEC,WAAW,QAAQ,cAAW;;AAEpD;AACA;AACA;;AAEA,SAASC,mBAAmB,EAAEC,qBAAqB,QAAQ,aAAU;AAGrE;AACA;AACA;AACA,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,aAAU;;AAEzD;AACA;AACA;AACA;AACA,SAA+BC,cAAc,QAAQ,aAAU;;AAE/D;AACA;AACA","ignoreList":[]}
@@ -7,6 +7,7 @@ import { Dimensions, Image, StyleSheet, TouchableOpacity, View } from "react-nat
7
7
  import { createThumbnail } from "react-native-create-thumbnail";
8
8
  import { Dirs, FileSystem, Util } from "react-native-file-access";
9
9
  import { AuthenticityStatus, authenticityStatus } from "./bindings.js";
10
+ import { stripFileProtocol } from "./utils.js";
10
11
 
11
12
  /**
12
13
  * Configuration for loading images from a private folder.
@@ -55,7 +56,7 @@ const ZImageItem = ({
55
56
  const ext = Util.extname(uri)?.toLowerCase();
56
57
  if (ext === "mov" || ext === "mp4") {
57
58
  const thumbnail = await createThumbnail({
58
- url: uri.replace("file://", "")
59
+ url: stripFileProtocol(uri)
59
60
  });
60
61
  setThumbnail(thumbnail.path);
61
62
  }