@succinctlabs/react-native-zcam1 0.2.5
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/README.md +61 -0
- package/Zcam1Sdk.podspec +157 -0
- package/app.plugin.js +11 -0
- package/cpp/generated/zcam1_c2pa_utils.cpp +4091 -0
- package/cpp/generated/zcam1_c2pa_utils.hpp +367 -0
- package/cpp/generated/zcam1_certs_utils.cpp +1799 -0
- package/cpp/generated/zcam1_certs_utils.hpp +72 -0
- package/cpp/generated/zcam1_verify_utils.cpp +1857 -0
- package/cpp/generated/zcam1_verify_utils.hpp +79 -0
- package/cpp/proving/generated/zcam1_proving_utils.cpp +3661 -0
- package/cpp/proving/generated/zcam1_proving_utils.hpp +275 -0
- package/cpp/proving/zcam1-proving.cpp +16 -0
- package/cpp/proving/zcam1-proving.h +15 -0
- package/cpp/zcam1-sdk.cpp +20 -0
- package/cpp/zcam1-sdk.h +15 -0
- package/ios/Zcam1Camera.swift +2945 -0
- package/ios/Zcam1CameraFilmStyle.swift +191 -0
- package/ios/Zcam1CameraViewManager.m +86 -0
- package/ios/Zcam1Capture.h +13 -0
- package/ios/Zcam1Capture.mm +500 -0
- package/ios/Zcam1DepthData.swift +417 -0
- package/ios/Zcam1Sdk.h +16 -0
- package/ios/Zcam1Sdk.mm +66 -0
- package/ios/proving/Zcam1Proving.h +16 -0
- package/ios/proving/Zcam1Proving.mm +66 -0
- package/lib/module/NativeZcam1Capture.js +12 -0
- package/lib/module/NativeZcam1Capture.js.map +1 -0
- package/lib/module/NativeZcam1Sdk.js +7 -0
- package/lib/module/NativeZcam1Sdk.js.map +1 -0
- package/lib/module/bindings.js +51 -0
- package/lib/module/bindings.js.map +1 -0
- package/lib/module/camera.js +522 -0
- package/lib/module/camera.js.map +1 -0
- package/lib/module/capture.js +120 -0
- package/lib/module/capture.js.map +1 -0
- package/lib/module/common.js +35 -0
- package/lib/module/common.js.map +1 -0
- package/lib/module/generated/zcam1_c2pa_utils-ffi.js +43 -0
- package/lib/module/generated/zcam1_c2pa_utils-ffi.js.map +1 -0
- package/lib/module/generated/zcam1_c2pa_utils.js +1202 -0
- package/lib/module/generated/zcam1_c2pa_utils.js.map +1 -0
- package/lib/module/generated/zcam1_certs_utils-ffi.js +43 -0
- package/lib/module/generated/zcam1_certs_utils-ffi.js.map +1 -0
- package/lib/module/generated/zcam1_certs_utils.js +399 -0
- package/lib/module/generated/zcam1_certs_utils.js.map +1 -0
- package/lib/module/generated/zcam1_proving_utils-ffi.js +43 -0
- package/lib/module/generated/zcam1_proving_utils-ffi.js.map +1 -0
- package/lib/module/generated/zcam1_proving_utils.js +515 -0
- package/lib/module/generated/zcam1_proving_utils.js.map +1 -0
- package/lib/module/generated/zcam1_verify_utils-ffi.js +43 -0
- package/lib/module/generated/zcam1_verify_utils-ffi.js.map +1 -0
- package/lib/module/generated/zcam1_verify_utils.js +252 -0
- package/lib/module/generated/zcam1_verify_utils.js.map +1 -0
- package/lib/module/index.js +31 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/picker.js +222 -0
- package/lib/module/picker.js.map +1 -0
- package/lib/module/proving/NativeZcam1Proving.js +7 -0
- package/lib/module/proving/NativeZcam1Proving.js.map +1 -0
- package/lib/module/proving/bindings.js +46 -0
- package/lib/module/proving/bindings.js.map +1 -0
- package/lib/module/proving/index.js +5 -0
- package/lib/module/proving/index.js.map +1 -0
- package/lib/module/proving/prove.js +346 -0
- package/lib/module/proving/prove.js.map +1 -0
- package/lib/module/utils.js +27 -0
- package/lib/module/utils.js.map +1 -0
- package/lib/module/verify.js +82 -0
- package/lib/module/verify.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeZcam1Capture.d.ts +280 -0
- package/lib/typescript/src/NativeZcam1Capture.d.ts.map +1 -0
- package/lib/typescript/src/NativeZcam1Sdk.d.ts +8 -0
- package/lib/typescript/src/NativeZcam1Sdk.d.ts.map +1 -0
- package/lib/typescript/src/bindings.d.ts +14 -0
- package/lib/typescript/src/bindings.d.ts.map +1 -0
- package/lib/typescript/src/camera.d.ts +300 -0
- package/lib/typescript/src/camera.d.ts.map +1 -0
- package/lib/typescript/src/capture.d.ts +59 -0
- package/lib/typescript/src/capture.d.ts.map +1 -0
- package/lib/typescript/src/common.d.ts +10 -0
- package/lib/typescript/src/common.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_c2pa_utils-ffi.d.ts +175 -0
- package/lib/typescript/src/generated/zcam1_c2pa_utils-ffi.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts +811 -0
- package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_certs_utils-ffi.d.ts +82 -0
- package/lib/typescript/src/generated/zcam1_certs_utils-ffi.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_certs_utils.d.ts +413 -0
- package/lib/typescript/src/generated/zcam1_certs_utils.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_proving_utils-ffi.d.ts +153 -0
- package/lib/typescript/src/generated/zcam1_proving_utils-ffi.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_proving_utils.d.ts +321 -0
- package/lib/typescript/src/generated/zcam1_proving_utils.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_verify_utils-ffi.d.ts +84 -0
- package/lib/typescript/src/generated/zcam1_verify_utils-ffi.d.ts.map +1 -0
- package/lib/typescript/src/generated/zcam1_verify_utils.d.ts +286 -0
- package/lib/typescript/src/generated/zcam1_verify_utils.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +29 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/picker.d.ts +103 -0
- package/lib/typescript/src/picker.d.ts.map +1 -0
- package/lib/typescript/src/proving/NativeZcam1Proving.d.ts +8 -0
- package/lib/typescript/src/proving/NativeZcam1Proving.d.ts.map +1 -0
- package/lib/typescript/src/proving/bindings.d.ts +8 -0
- package/lib/typescript/src/proving/bindings.d.ts.map +1 -0
- package/lib/typescript/src/proving/index.d.ts +3 -0
- package/lib/typescript/src/proving/index.d.ts.map +1 -0
- package/lib/typescript/src/proving/prove.d.ts +74 -0
- package/lib/typescript/src/proving/prove.d.ts.map +1 -0
- package/lib/typescript/src/utils.d.ts +2 -0
- package/lib/typescript/src/utils.d.ts.map +1 -0
- package/lib/typescript/src/verify.d.ts +45 -0
- package/lib/typescript/src/verify.d.ts.map +1 -0
- package/package.json +118 -0
- package/src/NativeZcam1Capture.ts +335 -0
- package/src/NativeZcam1Sdk.ts +10 -0
- package/src/bindings.tsx +49 -0
- package/src/camera.tsx +705 -0
- package/src/capture.tsx +165 -0
- package/src/common.tsx +46 -0
- package/src/generated/zcam1_c2pa_utils-ffi.ts +456 -0
- package/src/generated/zcam1_c2pa_utils.ts +1866 -0
- package/src/generated/zcam1_certs_utils-ffi.ts +187 -0
- package/src/generated/zcam1_certs_utils.ts +549 -0
- package/src/generated/zcam1_proving_utils-ffi.ts +374 -0
- package/src/generated/zcam1_proving_utils.ts +804 -0
- package/src/generated/zcam1_verify_utils-ffi.ts +196 -0
- package/src/generated/zcam1_verify_utils.ts +372 -0
- package/src/index.ts +73 -0
- package/src/picker.tsx +342 -0
- package/src/proving/NativeZcam1Proving.ts +10 -0
- package/src/proving/bindings.tsx +50 -0
- package/src/proving/index.ts +8 -0
- package/src/proving/prove.tsx +492 -0
- package/src/utils.ts +38 -0
- package/src/verify.tsx +119 -0
- package/turbo.json +27 -0
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// This file was autogenerated by some hot garbage in the `uniffi-bindgen-react-native` crate.
|
|
4
|
+
// Trust me, you don't want to mess with it!
|
|
5
|
+
import nativeModule from "./zcam1_verify_utils-ffi.js";
|
|
6
|
+
import { AbstractFfiConverterByteArray, FfiConverterArrayBuffer, FfiConverterBool, FfiConverterInt32, UniffiError, UniffiInternalError, UniffiRustCaller, uniffiCreateFfiConverterString, uniffiTypeNameSymbol, variantOrdinalSymbol } from "uniffi-bindgen-react-native";
|
|
7
|
+
|
|
8
|
+
// Get converters from the other files, if any.
|
|
9
|
+
import uniffiZcam1C2paUtilsModule from "./zcam1_c2pa_utils.js";
|
|
10
|
+
const {
|
|
11
|
+
FfiConverterTypeDeviceBindings
|
|
12
|
+
} = uniffiZcam1C2paUtilsModule.converters;
|
|
13
|
+
const uniffiCaller = new UniffiRustCaller(() => ({
|
|
14
|
+
code: 0
|
|
15
|
+
}));
|
|
16
|
+
const uniffiIsDebug =
|
|
17
|
+
// @ts-ignore -- The process global might not be defined
|
|
18
|
+
typeof process !== "object" ||
|
|
19
|
+
// @ts-ignore -- The process global might not be defined
|
|
20
|
+
process?.env?.NODE_ENV !== "production" || false;
|
|
21
|
+
// Public interface members begin here.
|
|
22
|
+
|
|
23
|
+
export function verifyBindingsFromManifest(bindings, normalizedMetadata, photoHash, production) /*throws*/{
|
|
24
|
+
return FfiConverterBool.lift(uniffiCaller.rustCallWithError(/*liftError:*/FfiConverterTypeVerifyError.lift.bind(FfiConverterTypeVerifyError), /*caller:*/callStatus => {
|
|
25
|
+
return nativeModule().ubrn_uniffi_zcam1_verify_utils_fn_func_verify_bindings_from_manifest(FfiConverterTypeDeviceBindings.lower(bindings), FfiConverterString.lower(normalizedMetadata), FfiConverterArrayBuffer.lower(photoHash), FfiConverterBool.lower(production), callStatus);
|
|
26
|
+
}, /*liftString:*/FfiConverterString.lift));
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Wrapper around [`sp1_verifier::Groth16Verifier::verify`].
|
|
30
|
+
*
|
|
31
|
+
* We hardcode the Groth16 VK bytes to only verify SP1 proofs.
|
|
32
|
+
*/
|
|
33
|
+
export function verifyGroth16(proof, publicInputs, sp1VkHash) /*throws*/{
|
|
34
|
+
return FfiConverterBool.lift(uniffiCaller.rustCallWithError(/*liftError:*/FfiConverterTypeVerifyError.lift.bind(FfiConverterTypeVerifyError), /*caller:*/callStatus => {
|
|
35
|
+
return nativeModule().ubrn_uniffi_zcam1_verify_utils_fn_func_verify_groth16(FfiConverterArrayBuffer.lower(proof), FfiConverterArrayBuffer.lower(publicInputs), FfiConverterString.lower(sp1VkHash), callStatus);
|
|
36
|
+
}, /*liftString:*/FfiConverterString.lift));
|
|
37
|
+
}
|
|
38
|
+
const stringConverter = {
|
|
39
|
+
stringToBytes: s => uniffiCaller.rustCall(status => nativeModule().ubrn_uniffi_internal_fn_func_ffi__string_to_arraybuffer(s, status)),
|
|
40
|
+
bytesToString: ab => uniffiCaller.rustCall(status => nativeModule().ubrn_uniffi_internal_fn_func_ffi__arraybuffer_to_string(ab, status)),
|
|
41
|
+
stringByteLength: s => uniffiCaller.rustCall(status => nativeModule().ubrn_uniffi_internal_fn_func_ffi__string_to_byte_length(s, status))
|
|
42
|
+
};
|
|
43
|
+
const FfiConverterString = uniffiCreateFfiConverterString(stringConverter);
|
|
44
|
+
|
|
45
|
+
// Flat error type: VerifyError
|
|
46
|
+
export let VerifyError_Tags = /*#__PURE__*/function (VerifyError_Tags) {
|
|
47
|
+
VerifyError_Tags["C2pa"] = "C2pa";
|
|
48
|
+
VerifyError_Tags["AppAttest"] = "AppAttest";
|
|
49
|
+
VerifyError_Tags["Base64"] = "Base64";
|
|
50
|
+
VerifyError_Tags["Io"] = "Io";
|
|
51
|
+
VerifyError_Tags["Groth16"] = "Groth16";
|
|
52
|
+
VerifyError_Tags["ProofNotFound"] = "ProofNotFound";
|
|
53
|
+
return VerifyError_Tags;
|
|
54
|
+
}({});
|
|
55
|
+
export const VerifyError = (() => {
|
|
56
|
+
class C2pa extends UniffiError {
|
|
57
|
+
/**
|
|
58
|
+
* @private
|
|
59
|
+
* This field is private and should not be used.
|
|
60
|
+
*/
|
|
61
|
+
[uniffiTypeNameSymbol] = "VerifyError";
|
|
62
|
+
/**
|
|
63
|
+
* @private
|
|
64
|
+
* This field is private and should not be used.
|
|
65
|
+
*/
|
|
66
|
+
[variantOrdinalSymbol] = 1;
|
|
67
|
+
tag = VerifyError_Tags.C2pa;
|
|
68
|
+
constructor(message) {
|
|
69
|
+
super("VerifyError", "C2pa", message);
|
|
70
|
+
}
|
|
71
|
+
static instanceOf(e) {
|
|
72
|
+
return instanceOf(e) && e[variantOrdinalSymbol] === 1;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
class AppAttest extends UniffiError {
|
|
76
|
+
/**
|
|
77
|
+
* @private
|
|
78
|
+
* This field is private and should not be used.
|
|
79
|
+
*/
|
|
80
|
+
[uniffiTypeNameSymbol] = "VerifyError";
|
|
81
|
+
/**
|
|
82
|
+
* @private
|
|
83
|
+
* This field is private and should not be used.
|
|
84
|
+
*/
|
|
85
|
+
[variantOrdinalSymbol] = 2;
|
|
86
|
+
tag = VerifyError_Tags.AppAttest;
|
|
87
|
+
constructor(message) {
|
|
88
|
+
super("VerifyError", "AppAttest", message);
|
|
89
|
+
}
|
|
90
|
+
static instanceOf(e) {
|
|
91
|
+
return instanceOf(e) && e[variantOrdinalSymbol] === 2;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
class Base64 extends UniffiError {
|
|
95
|
+
/**
|
|
96
|
+
* @private
|
|
97
|
+
* This field is private and should not be used.
|
|
98
|
+
*/
|
|
99
|
+
[uniffiTypeNameSymbol] = "VerifyError";
|
|
100
|
+
/**
|
|
101
|
+
* @private
|
|
102
|
+
* This field is private and should not be used.
|
|
103
|
+
*/
|
|
104
|
+
[variantOrdinalSymbol] = 3;
|
|
105
|
+
tag = VerifyError_Tags.Base64;
|
|
106
|
+
constructor(message) {
|
|
107
|
+
super("VerifyError", "Base64", message);
|
|
108
|
+
}
|
|
109
|
+
static instanceOf(e) {
|
|
110
|
+
return instanceOf(e) && e[variantOrdinalSymbol] === 3;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
class Io extends UniffiError {
|
|
114
|
+
/**
|
|
115
|
+
* @private
|
|
116
|
+
* This field is private and should not be used.
|
|
117
|
+
*/
|
|
118
|
+
[uniffiTypeNameSymbol] = "VerifyError";
|
|
119
|
+
/**
|
|
120
|
+
* @private
|
|
121
|
+
* This field is private and should not be used.
|
|
122
|
+
*/
|
|
123
|
+
[variantOrdinalSymbol] = 4;
|
|
124
|
+
tag = VerifyError_Tags.Io;
|
|
125
|
+
constructor(message) {
|
|
126
|
+
super("VerifyError", "Io", message);
|
|
127
|
+
}
|
|
128
|
+
static instanceOf(e) {
|
|
129
|
+
return instanceOf(e) && e[variantOrdinalSymbol] === 4;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
class Groth16 extends UniffiError {
|
|
133
|
+
/**
|
|
134
|
+
* @private
|
|
135
|
+
* This field is private and should not be used.
|
|
136
|
+
*/
|
|
137
|
+
[uniffiTypeNameSymbol] = "VerifyError";
|
|
138
|
+
/**
|
|
139
|
+
* @private
|
|
140
|
+
* This field is private and should not be used.
|
|
141
|
+
*/
|
|
142
|
+
[variantOrdinalSymbol] = 5;
|
|
143
|
+
tag = VerifyError_Tags.Groth16;
|
|
144
|
+
constructor(message) {
|
|
145
|
+
super("VerifyError", "Groth16", message);
|
|
146
|
+
}
|
|
147
|
+
static instanceOf(e) {
|
|
148
|
+
return instanceOf(e) && e[variantOrdinalSymbol] === 5;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
class ProofNotFound extends UniffiError {
|
|
152
|
+
/**
|
|
153
|
+
* @private
|
|
154
|
+
* This field is private and should not be used.
|
|
155
|
+
*/
|
|
156
|
+
[uniffiTypeNameSymbol] = "VerifyError";
|
|
157
|
+
/**
|
|
158
|
+
* @private
|
|
159
|
+
* This field is private and should not be used.
|
|
160
|
+
*/
|
|
161
|
+
[variantOrdinalSymbol] = 6;
|
|
162
|
+
tag = VerifyError_Tags.ProofNotFound;
|
|
163
|
+
constructor(message) {
|
|
164
|
+
super("VerifyError", "ProofNotFound", message);
|
|
165
|
+
}
|
|
166
|
+
static instanceOf(e) {
|
|
167
|
+
return instanceOf(e) && e[variantOrdinalSymbol] === 6;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Utility function which does not rely on instanceof.
|
|
172
|
+
function instanceOf(e) {
|
|
173
|
+
return e[uniffiTypeNameSymbol] === "VerifyError";
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
C2pa,
|
|
177
|
+
AppAttest,
|
|
178
|
+
Base64,
|
|
179
|
+
Io,
|
|
180
|
+
Groth16,
|
|
181
|
+
ProofNotFound,
|
|
182
|
+
instanceOf
|
|
183
|
+
};
|
|
184
|
+
})();
|
|
185
|
+
|
|
186
|
+
// Union type for VerifyError error type.
|
|
187
|
+
|
|
188
|
+
const FfiConverterTypeVerifyError = (() => {
|
|
189
|
+
const intConverter = FfiConverterInt32;
|
|
190
|
+
class FfiConverter extends AbstractFfiConverterByteArray {
|
|
191
|
+
read(from) {
|
|
192
|
+
switch (intConverter.read(from)) {
|
|
193
|
+
case 1:
|
|
194
|
+
return new VerifyError.C2pa(FfiConverterString.read(from));
|
|
195
|
+
case 2:
|
|
196
|
+
return new VerifyError.AppAttest(FfiConverterString.read(from));
|
|
197
|
+
case 3:
|
|
198
|
+
return new VerifyError.Base64(FfiConverterString.read(from));
|
|
199
|
+
case 4:
|
|
200
|
+
return new VerifyError.Io(FfiConverterString.read(from));
|
|
201
|
+
case 5:
|
|
202
|
+
return new VerifyError.Groth16(FfiConverterString.read(from));
|
|
203
|
+
case 6:
|
|
204
|
+
return new VerifyError.ProofNotFound(FfiConverterString.read(from));
|
|
205
|
+
default:
|
|
206
|
+
throw new UniffiInternalError.UnexpectedEnumCase();
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
write(value, into) {
|
|
210
|
+
const obj = value;
|
|
211
|
+
const index = obj[variantOrdinalSymbol];
|
|
212
|
+
intConverter.write(index, into);
|
|
213
|
+
}
|
|
214
|
+
allocationSize(value) {
|
|
215
|
+
return intConverter.allocationSize(0);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return new FfiConverter();
|
|
219
|
+
})();
|
|
220
|
+
|
|
221
|
+
/**
|
|
222
|
+
* This should be called before anything else.
|
|
223
|
+
*
|
|
224
|
+
* It is likely that this is being done for you by the library's `index.ts`.
|
|
225
|
+
*
|
|
226
|
+
* It checks versions of uniffi between when the Rust scaffolding was generated
|
|
227
|
+
* and when the bindings were generated.
|
|
228
|
+
*
|
|
229
|
+
* It also initializes the machinery to enable Rust to talk back to Javascript.
|
|
230
|
+
*/
|
|
231
|
+
function uniffiEnsureInitialized() {
|
|
232
|
+
// Get the bindings contract version from our ComponentInterface
|
|
233
|
+
const bindingsContractVersion = 29;
|
|
234
|
+
// Get the scaffolding contract version by calling the into the dylib
|
|
235
|
+
const scaffoldingContractVersion = nativeModule().ubrn_ffi_zcam1_verify_utils_uniffi_contract_version();
|
|
236
|
+
if (bindingsContractVersion !== scaffoldingContractVersion) {
|
|
237
|
+
throw new UniffiInternalError.ContractVersionMismatch(scaffoldingContractVersion, bindingsContractVersion);
|
|
238
|
+
}
|
|
239
|
+
if (nativeModule().ubrn_uniffi_zcam1_verify_utils_checksum_func_verify_bindings_from_manifest() !== 62750) {
|
|
240
|
+
throw new UniffiInternalError.ApiChecksumMismatch("uniffi_zcam1_verify_utils_checksum_func_verify_bindings_from_manifest");
|
|
241
|
+
}
|
|
242
|
+
if (nativeModule().ubrn_uniffi_zcam1_verify_utils_checksum_func_verify_groth16() !== 13082) {
|
|
243
|
+
throw new UniffiInternalError.ApiChecksumMismatch("uniffi_zcam1_verify_utils_checksum_func_verify_groth16");
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
export default Object.freeze({
|
|
247
|
+
initialize: uniffiEnsureInitialized,
|
|
248
|
+
converters: {
|
|
249
|
+
FfiConverterTypeVerifyError
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
//# sourceMappingURL=zcam1_verify_utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["nativeModule","AbstractFfiConverterByteArray","FfiConverterArrayBuffer","FfiConverterBool","FfiConverterInt32","UniffiError","UniffiInternalError","UniffiRustCaller","uniffiCreateFfiConverterString","uniffiTypeNameSymbol","variantOrdinalSymbol","uniffiZcam1C2paUtilsModule","FfiConverterTypeDeviceBindings","converters","uniffiCaller","code","uniffiIsDebug","process","env","NODE_ENV","verifyBindingsFromManifest","bindings","normalizedMetadata","photoHash","production","lift","rustCallWithError","FfiConverterTypeVerifyError","bind","callStatus","ubrn_uniffi_zcam1_verify_utils_fn_func_verify_bindings_from_manifest","lower","FfiConverterString","verifyGroth16","proof","publicInputs","sp1VkHash","ubrn_uniffi_zcam1_verify_utils_fn_func_verify_groth16","stringConverter","stringToBytes","s","rustCall","status","ubrn_uniffi_internal_fn_func_ffi__string_to_arraybuffer","bytesToString","ab","ubrn_uniffi_internal_fn_func_ffi__arraybuffer_to_string","stringByteLength","ubrn_uniffi_internal_fn_func_ffi__string_to_byte_length","VerifyError_Tags","VerifyError","C2pa","tag","constructor","message","instanceOf","e","AppAttest","Base64","Io","Groth16","ProofNotFound","intConverter","FfiConverter","read","from","UnexpectedEnumCase","write","value","into","obj","index","allocationSize","uniffiEnsureInitialized","bindingsContractVersion","scaffoldingContractVersion","ubrn_ffi_zcam1_verify_utils_uniffi_contract_version","ContractVersionMismatch","ubrn_uniffi_zcam1_verify_utils_checksum_func_verify_bindings_from_manifest","ApiChecksumMismatch","ubrn_uniffi_zcam1_verify_utils_checksum_func_verify_groth16","Object","freeze","initialize"],"sourceRoot":"../../../src","sources":["generated/zcam1_verify_utils.ts"],"mappings":";;AAAA;AACA;AACA,OAAOA,YAAY,MA6BZ,6BAA0B;AAEjC,SAEEC,6BAA6B,EAC7BC,uBAAuB,EACvBC,gBAAgB,EAChBC,iBAAiB,EAEjBC,WAAW,EACXC,mBAAmB,EACnBC,gBAAgB,EAChBC,8BAA8B,EAC9BC,oBAAoB,EACpBC,oBAAoB,QACf,6BAA6B;;AAEpC;AACA,OAAOC,0BAA0B,MAAM,uBAAoB;AAC3D,MAAM;EAAEC;AAA+B,CAAC,GAAGD,0BAA0B,CAACE,UAAU;AAChF,MAAMC,YAAY,GAAG,IAAIP,gBAAgB,CAAC,OAAO;EAAEQ,IAAI,EAAE;AAAE,CAAC,CAAC,CAAC;AAE9D,MAAMC,aAAa;AACjB;AACA,OAAOC,OAAO,KAAK,QAAQ;AAC3B;AACAA,OAAO,EAAEC,GAAG,EAAEC,QAAQ,KAAK,YAAY,IACvC,KAAK;AACP;;AAEA,OAAO,SAASC,0BAA0BA,CACxCC,QAAwB,EACxBC,kBAA0B,EAC1BC,SAAsB,EACtBC,UAAmB,EACV,UAAW;EACpB,OAAOrB,gBAAgB,CAACsB,IAAI,CAC1BX,YAAY,CAACY,iBAAiB,CAC5B,cAAeC,2BAA2B,CAACF,IAAI,CAACG,IAAI,CAACD,2BAA2B,CAAC,EACjF,WAAaE,UAAU,IAAK;IAC1B,OAAO7B,YAAY,CAAC,CAAC,CAAC8B,oEAAoE,CACxFlB,8BAA8B,CAACmB,KAAK,CAACV,QAAQ,CAAC,EAC9CW,kBAAkB,CAACD,KAAK,CAACT,kBAAkB,CAAC,EAC5CpB,uBAAuB,CAAC6B,KAAK,CAACR,SAAS,CAAC,EACxCpB,gBAAgB,CAAC4B,KAAK,CAACP,UAAU,CAAC,EAClCK,UACF,CAAC;EACH,CAAC,EACD,eAAgBG,kBAAkB,CAACP,IACrC,CACF,CAAC;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,aAAaA,CAC3BC,KAAkB,EAClBC,YAAyB,EACzBC,SAAiB,EACR,UAAW;EACpB,OAAOjC,gBAAgB,CAACsB,IAAI,CAC1BX,YAAY,CAACY,iBAAiB,CAC5B,cAAeC,2BAA2B,CAACF,IAAI,CAACG,IAAI,CAACD,2BAA2B,CAAC,EACjF,WAAaE,UAAU,IAAK;IAC1B,OAAO7B,YAAY,CAAC,CAAC,CAACqC,qDAAqD,CACzEnC,uBAAuB,CAAC6B,KAAK,CAACG,KAAK,CAAC,EACpChC,uBAAuB,CAAC6B,KAAK,CAACI,YAAY,CAAC,EAC3CH,kBAAkB,CAACD,KAAK,CAACK,SAAS,CAAC,EACnCP,UACF,CAAC;EACH,CAAC,EACD,eAAgBG,kBAAkB,CAACP,IACrC,CACF,CAAC;AACH;AAEA,MAAMa,eAAe,GAAG;EACtBC,aAAa,EAAGC,CAAS,IACvB1B,YAAY,CAAC2B,QAAQ,CAAEC,MAAM,IAC3B1C,YAAY,CAAC,CAAC,CAAC2C,uDAAuD,CAACH,CAAC,EAAEE,MAAM,CAClF,CAAC;EACHE,aAAa,EAAGC,EAAmB,IACjC/B,YAAY,CAAC2B,QAAQ,CAAEC,MAAM,IAC3B1C,YAAY,CAAC,CAAC,CAAC8C,uDAAuD,CAACD,EAAE,EAAEH,MAAM,CACnF,CAAC;EACHK,gBAAgB,EAAGP,CAAS,IAC1B1B,YAAY,CAAC2B,QAAQ,CAAEC,MAAM,IAC3B1C,YAAY,CAAC,CAAC,CAACgD,uDAAuD,CAACR,CAAC,EAAEE,MAAM,CAClF;AACJ,CAAC;AACD,MAAMV,kBAAkB,GAAGxB,8BAA8B,CAAC8B,eAAe,CAAC;;AAE1E;AACA,WAAYW,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;AAQ5B,OAAO,MAAMC,WAAW,GAAG,CAAC,MAAM;EAChC,MAAMC,IAAI,SAAS9C,WAAW,CAAC;IAC7B;AACJ;AACA;AACA;IACI,CAAUI,oBAAoB,IAAY,aAAa;IACvD;AACJ;AACA;AACA;IACI,CAAUC,oBAAoB,IAAI,CAAC;IAEnB0C,GAAG,GAAGH,gBAAgB,CAACE,IAAI;IAE3CE,WAAWA,CAACC,OAAe,EAAE;MAC3B,KAAK,CAAC,aAAa,EAAE,MAAM,EAAEA,OAAO,CAAC;IACvC;IAEA,OAAOC,UAAUA,CAACC,CAAM,EAAa;MACnC,OAAOD,UAAU,CAACC,CAAC,CAAC,IAAKA,CAAC,CAAS9C,oBAAoB,CAAC,KAAK,CAAC;IAChE;EACF;EACA,MAAM+C,SAAS,SAASpD,WAAW,CAAC;IAClC;AACJ;AACA;AACA;IACI,CAAUI,oBAAoB,IAAY,aAAa;IACvD;AACJ;AACA;AACA;IACI,CAAUC,oBAAoB,IAAI,CAAC;IAEnB0C,GAAG,GAAGH,gBAAgB,CAACQ,SAAS;IAEhDJ,WAAWA,CAACC,OAAe,EAAE;MAC3B,KAAK,CAAC,aAAa,EAAE,WAAW,EAAEA,OAAO,CAAC;IAC5C;IAEA,OAAOC,UAAUA,CAACC,CAAM,EAAkB;MACxC,OAAOD,UAAU,CAACC,CAAC,CAAC,IAAKA,CAAC,CAAS9C,oBAAoB,CAAC,KAAK,CAAC;IAChE;EACF;EACA,MAAMgD,MAAM,SAASrD,WAAW,CAAC;IAC/B;AACJ;AACA;AACA;IACI,CAAUI,oBAAoB,IAAY,aAAa;IACvD;AACJ;AACA;AACA;IACI,CAAUC,oBAAoB,IAAI,CAAC;IAEnB0C,GAAG,GAAGH,gBAAgB,CAACS,MAAM;IAE7CL,WAAWA,CAACC,OAAe,EAAE;MAC3B,KAAK,CAAC,aAAa,EAAE,QAAQ,EAAEA,OAAO,CAAC;IACzC;IAEA,OAAOC,UAAUA,CAACC,CAAM,EAAe;MACrC,OAAOD,UAAU,CAACC,CAAC,CAAC,IAAKA,CAAC,CAAS9C,oBAAoB,CAAC,KAAK,CAAC;IAChE;EACF;EACA,MAAMiD,EAAE,SAAStD,WAAW,CAAC;IAC3B;AACJ;AACA;AACA;IACI,CAAUI,oBAAoB,IAAY,aAAa;IACvD;AACJ;AACA;AACA;IACI,CAAUC,oBAAoB,IAAI,CAAC;IAEnB0C,GAAG,GAAGH,gBAAgB,CAACU,EAAE;IAEzCN,WAAWA,CAACC,OAAe,EAAE;MAC3B,KAAK,CAAC,aAAa,EAAE,IAAI,EAAEA,OAAO,CAAC;IACrC;IAEA,OAAOC,UAAUA,CAACC,CAAM,EAAW;MACjC,OAAOD,UAAU,CAACC,CAAC,CAAC,IAAKA,CAAC,CAAS9C,oBAAoB,CAAC,KAAK,CAAC;IAChE;EACF;EACA,MAAMkD,OAAO,SAASvD,WAAW,CAAC;IAChC;AACJ;AACA;AACA;IACI,CAAUI,oBAAoB,IAAY,aAAa;IACvD;AACJ;AACA;AACA;IACI,CAAUC,oBAAoB,IAAI,CAAC;IAEnB0C,GAAG,GAAGH,gBAAgB,CAACW,OAAO;IAE9CP,WAAWA,CAACC,OAAe,EAAE;MAC3B,KAAK,CAAC,aAAa,EAAE,SAAS,EAAEA,OAAO,CAAC;IAC1C;IAEA,OAAOC,UAAUA,CAACC,CAAM,EAAgB;MACtC,OAAOD,UAAU,CAACC,CAAC,CAAC,IAAKA,CAAC,CAAS9C,oBAAoB,CAAC,KAAK,CAAC;IAChE;EACF;EACA,MAAMmD,aAAa,SAASxD,WAAW,CAAC;IACtC;AACJ;AACA;AACA;IACI,CAAUI,oBAAoB,IAAY,aAAa;IACvD;AACJ;AACA;AACA;IACI,CAAUC,oBAAoB,IAAI,CAAC;IAEnB0C,GAAG,GAAGH,gBAAgB,CAACY,aAAa;IAEpDR,WAAWA,CAACC,OAAe,EAAE;MAC3B,KAAK,CAAC,aAAa,EAAE,eAAe,EAAEA,OAAO,CAAC;IAChD;IAEA,OAAOC,UAAUA,CAACC,CAAM,EAAsB;MAC5C,OAAOD,UAAU,CAACC,CAAC,CAAC,IAAKA,CAAC,CAAS9C,oBAAoB,CAAC,KAAK,CAAC;IAChE;EACF;;EAEA;EACA,SAAS6C,UAAUA,CAACC,CAAM,EAAoB;IAC5C,OAAQA,CAAC,CAAS/C,oBAAoB,CAAC,KAAK,aAAa;EAC3D;EACA,OAAO;IACL0C,IAAI;IACJM,SAAS;IACTC,MAAM;IACNC,EAAE;IACFC,OAAO;IACPC,aAAa;IACbN;EACF,CAAC;AACH,CAAC,EAAE,CAAC;;AAEJ;;AAMA,MAAM5B,2BAA2B,GAAG,CAAC,MAAM;EACzC,MAAMmC,YAAY,GAAG1D,iBAAiB;EAEtC,MAAM2D,YAAY,SAAS9D,6BAA6B,CAAW;IACjE+D,IAAIA,CAACC,IAAgB,EAAY;MAC/B,QAAQH,YAAY,CAACE,IAAI,CAACC,IAAI,CAAC;QAC7B,KAAK,CAAC;UACJ,OAAO,IAAIf,WAAW,CAACC,IAAI,CAACnB,kBAAkB,CAACgC,IAAI,CAACC,IAAI,CAAC,CAAC;QAE5D,KAAK,CAAC;UACJ,OAAO,IAAIf,WAAW,CAACO,SAAS,CAACzB,kBAAkB,CAACgC,IAAI,CAACC,IAAI,CAAC,CAAC;QAEjE,KAAK,CAAC;UACJ,OAAO,IAAIf,WAAW,CAACQ,MAAM,CAAC1B,kBAAkB,CAACgC,IAAI,CAACC,IAAI,CAAC,CAAC;QAE9D,KAAK,CAAC;UACJ,OAAO,IAAIf,WAAW,CAACS,EAAE,CAAC3B,kBAAkB,CAACgC,IAAI,CAACC,IAAI,CAAC,CAAC;QAE1D,KAAK,CAAC;UACJ,OAAO,IAAIf,WAAW,CAACU,OAAO,CAAC5B,kBAAkB,CAACgC,IAAI,CAACC,IAAI,CAAC,CAAC;QAE/D,KAAK,CAAC;UACJ,OAAO,IAAIf,WAAW,CAACW,aAAa,CAAC7B,kBAAkB,CAACgC,IAAI,CAACC,IAAI,CAAC,CAAC;QAErE;UACE,MAAM,IAAI3D,mBAAmB,CAAC4D,kBAAkB,CAAC,CAAC;MACtD;IACF;IACAC,KAAKA,CAACC,KAAe,EAAEC,IAAgB,EAAQ;MAC7C,MAAMC,GAAG,GAAGF,KAAY;MACxB,MAAMG,KAAK,GAAGD,GAAG,CAAC5D,oBAAoB,CAAW;MACjDoD,YAAY,CAACK,KAAK,CAACI,KAAK,EAAEF,IAAI,CAAC;IACjC;IACAG,cAAcA,CAACJ,KAAe,EAAU;MACtC,OAAON,YAAY,CAACU,cAAc,CAAC,CAAC,CAAC;IACvC;EACF;EACA,OAAO,IAAIT,YAAY,CAAC,CAAC;AAC3B,CAAC,EAAE,CAAC;;AAEJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASU,uBAAuBA,CAAA,EAAG;EACjC;EACA,MAAMC,uBAAuB,GAAG,EAAE;EAClC;EACA,MAAMC,0BAA0B,GAC9B3E,YAAY,CAAC,CAAC,CAAC4E,mDAAmD,CAAC,CAAC;EACtE,IAAIF,uBAAuB,KAAKC,0BAA0B,EAAE;IAC1D,MAAM,IAAIrE,mBAAmB,CAACuE,uBAAuB,CACnDF,0BAA0B,EAC1BD,uBACF,CAAC;EACH;EACA,IACE1E,YAAY,CAAC,CAAC,CAAC8E,0EAA0E,CAAC,CAAC,KAC3F,KAAK,EACL;IACA,MAAM,IAAIxE,mBAAmB,CAACyE,mBAAmB,CAC/C,uEACF,CAAC;EACH;EACA,IAAI/E,YAAY,CAAC,CAAC,CAACgF,2DAA2D,CAAC,CAAC,KAAK,KAAK,EAAE;IAC1F,MAAM,IAAI1E,mBAAmB,CAACyE,mBAAmB,CAC/C,wDACF,CAAC;EACH;AACF;AAEA,eAAeE,MAAM,CAACC,MAAM,CAAC;EAC3BC,UAAU,EAAEV,uBAAuB;EACnC5D,UAAU,EAAE;IACVc;EACF;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { 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 } from "./bindings.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Camera component for capturing photos with secure enclave integration.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { ZCamera } from "./camera.js";
|
|
10
|
+
export { initCapture } from "./capture.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Core cryptographic key types and secure enclave utilities.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export { getContentPublicKey, getSecureEnclaveKeyId } from "./common.js";
|
|
17
|
+
/**
|
|
18
|
+
* Image picker and private directory utilities for secure media selection.\
|
|
19
|
+
*/
|
|
20
|
+
export { privateDirectory, ZImagePicker } from "./picker.js";
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Verification utilities for validating media authenticity and capture metadata.
|
|
24
|
+
|
|
25
|
+
*/
|
|
26
|
+
export { VerifiableFile } from "./verify.js";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Flash mode for photo capture.
|
|
30
|
+
*/
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { CameraRoll } from "@react-native-camera-roll/camera-roll";
|
|
4
|
+
import { FlashList, useRecyclingState } from "@shopify/flash-list";
|
|
5
|
+
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
6
|
+
import { Dimensions, Image, StyleSheet, TouchableOpacity, View } from "react-native";
|
|
7
|
+
import { createThumbnail } from "react-native-create-thumbnail";
|
|
8
|
+
import { Dirs, FileSystem, Util } from "react-native-file-access";
|
|
9
|
+
import { AuthenticityStatus, authenticityStatus } from "./bindings.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Configuration for loading images from a private folder.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Configuration for loading images from the device's photo gallery.
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Props for the ZImagePicker component.
|
|
21
|
+
*/
|
|
22
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
|
+
/**
|
|
24
|
+
* Returns the path to the app's private document directory.
|
|
25
|
+
* @returns {string} The path to the private document directory.
|
|
26
|
+
*/
|
|
27
|
+
export function privateDirectory() {
|
|
28
|
+
return Dirs.DocumentDir;
|
|
29
|
+
}
|
|
30
|
+
const ZImageItem = ({
|
|
31
|
+
uri,
|
|
32
|
+
renderBadge,
|
|
33
|
+
renderSelectionOverlay,
|
|
34
|
+
onSelect,
|
|
35
|
+
multiSelect,
|
|
36
|
+
isSelected
|
|
37
|
+
}) => {
|
|
38
|
+
const [authStatus, setAuthStatus] = useRecyclingState(AuthenticityStatus.Unknown, [uri]);
|
|
39
|
+
const [thumbnail, setThumbnail] = useRecyclingState(uri, [uri]);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
let active = true;
|
|
42
|
+
const check = async () => {
|
|
43
|
+
const result = await authenticityStatus(uri);
|
|
44
|
+
if (active) {
|
|
45
|
+
setAuthStatus(result);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
check();
|
|
49
|
+
return () => {
|
|
50
|
+
active = false;
|
|
51
|
+
};
|
|
52
|
+
}, [uri, setAuthStatus]);
|
|
53
|
+
useEffect(() => {
|
|
54
|
+
const buildThumbnail = async () => {
|
|
55
|
+
const ext = Util.extname(uri)?.toLowerCase();
|
|
56
|
+
if (ext === "mov" || ext === "mp4") {
|
|
57
|
+
const thumbnail = await createThumbnail({
|
|
58
|
+
url: uri.replace("file://", "")
|
|
59
|
+
});
|
|
60
|
+
setThumbnail(thumbnail.path);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
buildThumbnail();
|
|
64
|
+
}, [uri, setThumbnail]);
|
|
65
|
+
const badge = useMemo(() => {
|
|
66
|
+
return renderBadge ? renderBadge(uri, authStatus) : null;
|
|
67
|
+
}, [renderBadge, uri, authStatus]);
|
|
68
|
+
const selectionOverlay = useMemo(() => {
|
|
69
|
+
return multiSelect && renderSelectionOverlay ? renderSelectionOverlay(uri, isSelected ?? false) : null;
|
|
70
|
+
}, [multiSelect, renderSelectionOverlay, uri, isSelected]);
|
|
71
|
+
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
72
|
+
style: styles.imageContainer,
|
|
73
|
+
onPress: () => onSelect(uri),
|
|
74
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
75
|
+
style: styles.image,
|
|
76
|
+
source: {
|
|
77
|
+
uri: thumbnail
|
|
78
|
+
}
|
|
79
|
+
}), multiSelect && isSelected && /*#__PURE__*/_jsx(View, {
|
|
80
|
+
style: {
|
|
81
|
+
position: "absolute",
|
|
82
|
+
top: 0,
|
|
83
|
+
left: 0,
|
|
84
|
+
right: 0,
|
|
85
|
+
bottom: 0,
|
|
86
|
+
backgroundColor: "rgba(0, 0, 0, 0.5)"
|
|
87
|
+
}
|
|
88
|
+
}), badge, selectionOverlay]
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* A component that displays a grid of images from either a private folder or photo gallery.
|
|
94
|
+
* Each image can display an authenticity badge and be selected by the user.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```tsx
|
|
98
|
+
* // Load from private folder
|
|
99
|
+
* <ZImagePicker
|
|
100
|
+
* source={{ path: privateDirectory() }}
|
|
101
|
+
* renderBadge={(status) => <Badge status={status} />}
|
|
102
|
+
* onSelect={(uri) => console.log('Selected:', uri)}
|
|
103
|
+
* />
|
|
104
|
+
*
|
|
105
|
+
* // Load from photo gallery album
|
|
106
|
+
* <ZImagePicker
|
|
107
|
+
* source={{ album: 'MyAlbum' }}
|
|
108
|
+
* onSelect={(uri) => console.log('Selected:', uri)}
|
|
109
|
+
* />
|
|
110
|
+
* ```
|
|
111
|
+
*/
|
|
112
|
+
export const ZImagePicker = props => {
|
|
113
|
+
const {
|
|
114
|
+
multiSelect,
|
|
115
|
+
selectedUris,
|
|
116
|
+
onSelectionChange,
|
|
117
|
+
onSelect,
|
|
118
|
+
renderBadge,
|
|
119
|
+
renderSelectionOverlay,
|
|
120
|
+
renderFromBottom,
|
|
121
|
+
refreshToken,
|
|
122
|
+
sortOrder,
|
|
123
|
+
source
|
|
124
|
+
} = props;
|
|
125
|
+
const [photos, setPhotos] = useState([]);
|
|
126
|
+
const sourceKey = useMemo(() => {
|
|
127
|
+
if ("album" in source) return `album:${source.album ?? ""}`;else if ("path" in source) return `path:${source.path}`;else return "unknown";
|
|
128
|
+
}, [source]);
|
|
129
|
+
useEffect(() => {
|
|
130
|
+
let cancelled = false;
|
|
131
|
+
const run = async () => {
|
|
132
|
+
try {
|
|
133
|
+
if ("album" in source) {
|
|
134
|
+
const result = await CameraRoll.getPhotos({
|
|
135
|
+
first: 20,
|
|
136
|
+
groupTypes: "Album",
|
|
137
|
+
groupName: source.album
|
|
138
|
+
});
|
|
139
|
+
const sortMultiplier = sortOrder === "newest-first" ? -1 : 1;
|
|
140
|
+
result.edges.sort((a, b) => sortMultiplier * (a.node.modificationTimestamp - b.node.modificationTimestamp));
|
|
141
|
+
const photoUris = result.edges.map(photo => photo.node.image.uri).filter(path => path !== null);
|
|
142
|
+
if (!cancelled) setPhotos(photoUris);
|
|
143
|
+
} else if ("path" in source) {
|
|
144
|
+
const photoFiles = await FileSystem.statDir(source.path);
|
|
145
|
+
const photosWithTimestamps = photoFiles.filter(f => f.type === "file").filter(f => !f.filename.startsWith(".")).map(f => {
|
|
146
|
+
const uri = `file://${f.path}`;
|
|
147
|
+
// Parse timestamp from ZCAM filename: "zcam-1768552335459-random.jpg"
|
|
148
|
+
const match = f.filename.match(/^zcam-(\d+)-/);
|
|
149
|
+
const timestamp = match?.[1] ? parseInt(match[1], 10) : f.lastModified;
|
|
150
|
+
return {
|
|
151
|
+
uri,
|
|
152
|
+
timestamp
|
|
153
|
+
};
|
|
154
|
+
});
|
|
155
|
+
const sortMultiplier = sortOrder === "newest-first" ? -1 : 1;
|
|
156
|
+
photosWithTimestamps.sort((a, b) => sortMultiplier * (a.timestamp - b.timestamp));
|
|
157
|
+
const photoUris = photosWithTimestamps.map(p => p.uri);
|
|
158
|
+
if (!cancelled) setPhotos(photoUris);
|
|
159
|
+
}
|
|
160
|
+
} catch (e) {
|
|
161
|
+
console.warn("ZImagePicker: failed to load images", e);
|
|
162
|
+
if (!cancelled) setPhotos([]);
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
run();
|
|
166
|
+
return () => {
|
|
167
|
+
cancelled = true;
|
|
168
|
+
};
|
|
169
|
+
}, [sourceKey, refreshToken, sortOrder, source]);
|
|
170
|
+
const handleSelect = useCallback(uri => {
|
|
171
|
+
if (multiSelect) {
|
|
172
|
+
// Multi-select mode: toggle selection.
|
|
173
|
+
const currentSelection = selectedUris ?? [];
|
|
174
|
+
const isSelected = currentSelection.includes(uri);
|
|
175
|
+
const newSelection = isSelected ? currentSelection.filter(u => u !== uri) : [...currentSelection, uri];
|
|
176
|
+
onSelectionChange?.(newSelection);
|
|
177
|
+
} else {
|
|
178
|
+
// Single-select mode: call onSelect callback.
|
|
179
|
+
onSelect?.(uri);
|
|
180
|
+
}
|
|
181
|
+
}, [multiSelect, selectedUris, onSelectionChange, onSelect]);
|
|
182
|
+
const renderItem = useCallback(({
|
|
183
|
+
item
|
|
184
|
+
}) => {
|
|
185
|
+
const isSelected = multiSelect && selectedUris?.includes(item);
|
|
186
|
+
return /*#__PURE__*/_jsx(ZImageItem, {
|
|
187
|
+
uri: item,
|
|
188
|
+
onSelect: handleSelect,
|
|
189
|
+
renderBadge: renderBadge,
|
|
190
|
+
renderSelectionOverlay: renderSelectionOverlay,
|
|
191
|
+
multiSelect: multiSelect,
|
|
192
|
+
isSelected: isSelected
|
|
193
|
+
});
|
|
194
|
+
}, [handleSelect, renderBadge, renderSelectionOverlay, multiSelect, selectedUris]);
|
|
195
|
+
return /*#__PURE__*/_jsx(FlashList, {
|
|
196
|
+
data: photos,
|
|
197
|
+
contentContainerStyle: {
|
|
198
|
+
flexGrow: 1
|
|
199
|
+
},
|
|
200
|
+
renderItem: renderItem,
|
|
201
|
+
numColumns: 3,
|
|
202
|
+
keyExtractor: uri => uri,
|
|
203
|
+
maintainVisibleContentPosition: {
|
|
204
|
+
startRenderingFromBottom: renderFromBottom ?? false
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
};
|
|
208
|
+
const {
|
|
209
|
+
width
|
|
210
|
+
} = Dimensions.get("window");
|
|
211
|
+
const IMAGE_SIZE = width / 3;
|
|
212
|
+
const styles = StyleSheet.create({
|
|
213
|
+
imageContainer: {
|
|
214
|
+
width: IMAGE_SIZE,
|
|
215
|
+
height: IMAGE_SIZE,
|
|
216
|
+
padding: 2
|
|
217
|
+
},
|
|
218
|
+
image: {
|
|
219
|
+
flex: 1
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
//# sourceMappingURL=picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CameraRoll","FlashList","useRecyclingState","useCallback","useEffect","useMemo","useState","Dimensions","Image","StyleSheet","TouchableOpacity","View","createThumbnail","Dirs","FileSystem","Util","AuthenticityStatus","authenticityStatus","jsx","_jsx","jsxs","_jsxs","privateDirectory","DocumentDir","ZImageItem","uri","renderBadge","renderSelectionOverlay","onSelect","multiSelect","isSelected","authStatus","setAuthStatus","Unknown","thumbnail","setThumbnail","active","check","result","buildThumbnail","ext","extname","toLowerCase","url","replace","path","badge","selectionOverlay","style","styles","imageContainer","onPress","children","image","source","position","top","left","right","bottom","backgroundColor","ZImagePicker","props","selectedUris","onSelectionChange","renderFromBottom","refreshToken","sortOrder","photos","setPhotos","sourceKey","album","cancelled","run","getPhotos","first","groupTypes","groupName","sortMultiplier","edges","sort","a","b","node","modificationTimestamp","photoUris","map","photo","filter","photoFiles","statDir","photosWithTimestamps","f","type","filename","startsWith","match","timestamp","parseInt","lastModified","p","e","console","warn","handleSelect","currentSelection","includes","newSelection","u","renderItem","item","data","contentContainerStyle","flexGrow","numColumns","keyExtractor","maintainVisibleContentPosition","startRenderingFromBottom","width","get","IMAGE_SIZE","create","height","padding","flex"],"sourceRoot":"../../src","sources":["picker.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"../../../src","sources":["proving/NativeZcam1Proving.ts"],"mappings":";;AAAA;;AAEA,SAASA,mBAAmB,QAAQ,cAAc;AAOlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,cAAc,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Generated by uniffi-bindgen-react-native
|
|
4
|
+
import installer from "./NativeZcam1Proving.js";
|
|
5
|
+
if (installer === null) {
|
|
6
|
+
throw new Error("Failed to load the ZCAM1 proving feature.\n" + "If you use Expo, you need to add a plugin for `@succinctlabs/react-native-zcam1`" + "in you app.json with { 'enableProving': true }\n" + "If you use bare React Native, set the `ZCAM1_ENABLE_PROVING` env var to `1` \n" + "Finally you'll have to run `npx expo prebuild && cd ios && pod install`");
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// Register the rust crate with Hermes
|
|
10
|
+
// - the boolean flag ensures this loads exactly once, even if the JS
|
|
11
|
+
// code is reloaded (e.g. during development with metro).
|
|
12
|
+
let rustInstalled = false;
|
|
13
|
+
if (!rustInstalled) {
|
|
14
|
+
installer.installRustCrate();
|
|
15
|
+
rustInstalled = true;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Export the generated bindings to the app.
|
|
19
|
+
export * from "./../generated/zcam1_proving_utils.js";
|
|
20
|
+
|
|
21
|
+
// Now import the bindings so we can:
|
|
22
|
+
// - intialize them
|
|
23
|
+
// - export them as namespaced objects as the default export.
|
|
24
|
+
import * as zcam1_proving_utils from "./../generated/zcam1_proving_utils.js";
|
|
25
|
+
|
|
26
|
+
// Initialize the generated bindings: mostly checksums, but also callbacks.
|
|
27
|
+
// - the boolean flag ensures this loads exactly once, even if the JS code
|
|
28
|
+
// is reloaded (e.g. during development with metro).
|
|
29
|
+
let initialized = false;
|
|
30
|
+
if (!initialized) {
|
|
31
|
+
zcam1_proving_utils.default.initialize();
|
|
32
|
+
initialized = true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// This provides parity with the index.web.ts version of this file.
|
|
36
|
+
// The web version relies on an asynchronous fetch, which this doesn't
|
|
37
|
+
// need, so we just no-op.
|
|
38
|
+
export async function uniffiInitAsync() {
|
|
39
|
+
// NOOP.
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// Export the crates as individually namespaced objects.
|
|
43
|
+
export default {
|
|
44
|
+
zcam1_proving_utils
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=bindings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["installer","Error","rustInstalled","installRustCrate","zcam1_proving_utils","initialized","default","initialize","uniffiInitAsync"],"sourceRoot":"../../../src","sources":["proving/bindings.tsx"],"mappings":";;AAAA;AACA,OAAOA,SAAS,MAAM,yBAAsB;AAE5C,IAAIA,SAAS,KAAK,IAAI,EAAE;EACtB,MAAM,IAAIC,KAAK,CACb,6CAA6C,GAC3C,kFAAkF,GAClF,kDAAkD,GAClD,gFAAgF,GAChF,yEACJ,CAAC;AACH;;AAEA;AACA;AACA;AACA,IAAIC,aAAa,GAAG,KAAK;AACzB,IAAI,CAACA,aAAa,EAAE;EAClBF,SAAS,CAACG,gBAAgB,CAAC,CAAC;EAC5BD,aAAa,GAAG,IAAI;AACtB;;AAEA;AACA,cAAc,uCAAoC;;AAElD;AACA;AACA;AACA,OAAO,KAAKE,mBAAmB,MAAM,uCAAoC;;AAEzE;AACA;AACA;AACA,IAAIC,WAAW,GAAG,KAAK;AACvB,IAAI,CAACA,WAAW,EAAE;EAChBD,mBAAmB,CAACE,OAAO,CAACC,UAAU,CAAC,CAAC;EACxCF,WAAW,GAAG,IAAI;AACpB;;AAEA;AACA;AACA;AACA,OAAO,eAAeG,eAAeA,CAAA,EAAG;EACtC;AAAA;;AAGF;AACA,eAAe;EACbJ;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FulfillmentStatus","IosProvingClient","ProverNetworkMode","ProverProvider","ProvingClient","useProofRequestStatus","useProver"],"sourceRoot":"../../../src","sources":["proving/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,EAAEC,gBAAgB,QAAQ,eAAY;AAChE,SACEC,iBAAiB,EACjBC,cAAc,EACdC,aAAa,EACbC,qBAAqB,EACrBC,SAAS,QACJ,YAAS","ignoreList":[]}
|