@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.
Files changed (139) hide show
  1. package/README.md +61 -0
  2. package/Zcam1Sdk.podspec +157 -0
  3. package/app.plugin.js +11 -0
  4. package/cpp/generated/zcam1_c2pa_utils.cpp +4091 -0
  5. package/cpp/generated/zcam1_c2pa_utils.hpp +367 -0
  6. package/cpp/generated/zcam1_certs_utils.cpp +1799 -0
  7. package/cpp/generated/zcam1_certs_utils.hpp +72 -0
  8. package/cpp/generated/zcam1_verify_utils.cpp +1857 -0
  9. package/cpp/generated/zcam1_verify_utils.hpp +79 -0
  10. package/cpp/proving/generated/zcam1_proving_utils.cpp +3661 -0
  11. package/cpp/proving/generated/zcam1_proving_utils.hpp +275 -0
  12. package/cpp/proving/zcam1-proving.cpp +16 -0
  13. package/cpp/proving/zcam1-proving.h +15 -0
  14. package/cpp/zcam1-sdk.cpp +20 -0
  15. package/cpp/zcam1-sdk.h +15 -0
  16. package/ios/Zcam1Camera.swift +2945 -0
  17. package/ios/Zcam1CameraFilmStyle.swift +191 -0
  18. package/ios/Zcam1CameraViewManager.m +86 -0
  19. package/ios/Zcam1Capture.h +13 -0
  20. package/ios/Zcam1Capture.mm +500 -0
  21. package/ios/Zcam1DepthData.swift +417 -0
  22. package/ios/Zcam1Sdk.h +16 -0
  23. package/ios/Zcam1Sdk.mm +66 -0
  24. package/ios/proving/Zcam1Proving.h +16 -0
  25. package/ios/proving/Zcam1Proving.mm +66 -0
  26. package/lib/module/NativeZcam1Capture.js +12 -0
  27. package/lib/module/NativeZcam1Capture.js.map +1 -0
  28. package/lib/module/NativeZcam1Sdk.js +7 -0
  29. package/lib/module/NativeZcam1Sdk.js.map +1 -0
  30. package/lib/module/bindings.js +51 -0
  31. package/lib/module/bindings.js.map +1 -0
  32. package/lib/module/camera.js +522 -0
  33. package/lib/module/camera.js.map +1 -0
  34. package/lib/module/capture.js +120 -0
  35. package/lib/module/capture.js.map +1 -0
  36. package/lib/module/common.js +35 -0
  37. package/lib/module/common.js.map +1 -0
  38. package/lib/module/generated/zcam1_c2pa_utils-ffi.js +43 -0
  39. package/lib/module/generated/zcam1_c2pa_utils-ffi.js.map +1 -0
  40. package/lib/module/generated/zcam1_c2pa_utils.js +1202 -0
  41. package/lib/module/generated/zcam1_c2pa_utils.js.map +1 -0
  42. package/lib/module/generated/zcam1_certs_utils-ffi.js +43 -0
  43. package/lib/module/generated/zcam1_certs_utils-ffi.js.map +1 -0
  44. package/lib/module/generated/zcam1_certs_utils.js +399 -0
  45. package/lib/module/generated/zcam1_certs_utils.js.map +1 -0
  46. package/lib/module/generated/zcam1_proving_utils-ffi.js +43 -0
  47. package/lib/module/generated/zcam1_proving_utils-ffi.js.map +1 -0
  48. package/lib/module/generated/zcam1_proving_utils.js +515 -0
  49. package/lib/module/generated/zcam1_proving_utils.js.map +1 -0
  50. package/lib/module/generated/zcam1_verify_utils-ffi.js +43 -0
  51. package/lib/module/generated/zcam1_verify_utils-ffi.js.map +1 -0
  52. package/lib/module/generated/zcam1_verify_utils.js +252 -0
  53. package/lib/module/generated/zcam1_verify_utils.js.map +1 -0
  54. package/lib/module/index.js +31 -0
  55. package/lib/module/index.js.map +1 -0
  56. package/lib/module/package.json +1 -0
  57. package/lib/module/picker.js +222 -0
  58. package/lib/module/picker.js.map +1 -0
  59. package/lib/module/proving/NativeZcam1Proving.js +7 -0
  60. package/lib/module/proving/NativeZcam1Proving.js.map +1 -0
  61. package/lib/module/proving/bindings.js +46 -0
  62. package/lib/module/proving/bindings.js.map +1 -0
  63. package/lib/module/proving/index.js +5 -0
  64. package/lib/module/proving/index.js.map +1 -0
  65. package/lib/module/proving/prove.js +346 -0
  66. package/lib/module/proving/prove.js.map +1 -0
  67. package/lib/module/utils.js +27 -0
  68. package/lib/module/utils.js.map +1 -0
  69. package/lib/module/verify.js +82 -0
  70. package/lib/module/verify.js.map +1 -0
  71. package/lib/typescript/package.json +1 -0
  72. package/lib/typescript/src/NativeZcam1Capture.d.ts +280 -0
  73. package/lib/typescript/src/NativeZcam1Capture.d.ts.map +1 -0
  74. package/lib/typescript/src/NativeZcam1Sdk.d.ts +8 -0
  75. package/lib/typescript/src/NativeZcam1Sdk.d.ts.map +1 -0
  76. package/lib/typescript/src/bindings.d.ts +14 -0
  77. package/lib/typescript/src/bindings.d.ts.map +1 -0
  78. package/lib/typescript/src/camera.d.ts +300 -0
  79. package/lib/typescript/src/camera.d.ts.map +1 -0
  80. package/lib/typescript/src/capture.d.ts +59 -0
  81. package/lib/typescript/src/capture.d.ts.map +1 -0
  82. package/lib/typescript/src/common.d.ts +10 -0
  83. package/lib/typescript/src/common.d.ts.map +1 -0
  84. package/lib/typescript/src/generated/zcam1_c2pa_utils-ffi.d.ts +175 -0
  85. package/lib/typescript/src/generated/zcam1_c2pa_utils-ffi.d.ts.map +1 -0
  86. package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts +811 -0
  87. package/lib/typescript/src/generated/zcam1_c2pa_utils.d.ts.map +1 -0
  88. package/lib/typescript/src/generated/zcam1_certs_utils-ffi.d.ts +82 -0
  89. package/lib/typescript/src/generated/zcam1_certs_utils-ffi.d.ts.map +1 -0
  90. package/lib/typescript/src/generated/zcam1_certs_utils.d.ts +413 -0
  91. package/lib/typescript/src/generated/zcam1_certs_utils.d.ts.map +1 -0
  92. package/lib/typescript/src/generated/zcam1_proving_utils-ffi.d.ts +153 -0
  93. package/lib/typescript/src/generated/zcam1_proving_utils-ffi.d.ts.map +1 -0
  94. package/lib/typescript/src/generated/zcam1_proving_utils.d.ts +321 -0
  95. package/lib/typescript/src/generated/zcam1_proving_utils.d.ts.map +1 -0
  96. package/lib/typescript/src/generated/zcam1_verify_utils-ffi.d.ts +84 -0
  97. package/lib/typescript/src/generated/zcam1_verify_utils-ffi.d.ts.map +1 -0
  98. package/lib/typescript/src/generated/zcam1_verify_utils.d.ts +286 -0
  99. package/lib/typescript/src/generated/zcam1_verify_utils.d.ts.map +1 -0
  100. package/lib/typescript/src/index.d.ts +29 -0
  101. package/lib/typescript/src/index.d.ts.map +1 -0
  102. package/lib/typescript/src/picker.d.ts +103 -0
  103. package/lib/typescript/src/picker.d.ts.map +1 -0
  104. package/lib/typescript/src/proving/NativeZcam1Proving.d.ts +8 -0
  105. package/lib/typescript/src/proving/NativeZcam1Proving.d.ts.map +1 -0
  106. package/lib/typescript/src/proving/bindings.d.ts +8 -0
  107. package/lib/typescript/src/proving/bindings.d.ts.map +1 -0
  108. package/lib/typescript/src/proving/index.d.ts +3 -0
  109. package/lib/typescript/src/proving/index.d.ts.map +1 -0
  110. package/lib/typescript/src/proving/prove.d.ts +74 -0
  111. package/lib/typescript/src/proving/prove.d.ts.map +1 -0
  112. package/lib/typescript/src/utils.d.ts +2 -0
  113. package/lib/typescript/src/utils.d.ts.map +1 -0
  114. package/lib/typescript/src/verify.d.ts +45 -0
  115. package/lib/typescript/src/verify.d.ts.map +1 -0
  116. package/package.json +118 -0
  117. package/src/NativeZcam1Capture.ts +335 -0
  118. package/src/NativeZcam1Sdk.ts +10 -0
  119. package/src/bindings.tsx +49 -0
  120. package/src/camera.tsx +705 -0
  121. package/src/capture.tsx +165 -0
  122. package/src/common.tsx +46 -0
  123. package/src/generated/zcam1_c2pa_utils-ffi.ts +456 -0
  124. package/src/generated/zcam1_c2pa_utils.ts +1866 -0
  125. package/src/generated/zcam1_certs_utils-ffi.ts +187 -0
  126. package/src/generated/zcam1_certs_utils.ts +549 -0
  127. package/src/generated/zcam1_proving_utils-ffi.ts +374 -0
  128. package/src/generated/zcam1_proving_utils.ts +804 -0
  129. package/src/generated/zcam1_verify_utils-ffi.ts +196 -0
  130. package/src/generated/zcam1_verify_utils.ts +372 -0
  131. package/src/index.ts +73 -0
  132. package/src/picker.tsx +342 -0
  133. package/src/proving/NativeZcam1Proving.ts +10 -0
  134. package/src/proving/bindings.tsx +50 -0
  135. package/src/proving/index.ts +8 -0
  136. package/src/proving/prove.tsx +492 -0
  137. package/src/utils.ts +38 -0
  138. package/src/verify.tsx +119 -0
  139. 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,7 @@
1
+ "use strict";
2
+
3
+ // Generated by uniffi-bindgen-react-native
4
+
5
+ import { TurboModuleRegistry } from "react-native";
6
+ export default TurboModuleRegistry.get("Zcam1Proving");
7
+ //# sourceMappingURL=NativeZcam1Proving.js.map
@@ -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,5 @@
1
+ "use strict";
2
+
3
+ export { FulfillmentStatus, IosProvingClient } from "./bindings.js";
4
+ export { ProverNetworkMode, ProverProvider, ProvingClient, useProofRequestStatus, useProver } from "./prove.js";
5
+ //# sourceMappingURL=index.js.map
@@ -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":[]}