react-native-nitro-zxing 0.1.0-alpha.0

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 (423) hide show
  1. package/README.md +34 -0
  2. package/VisionCameraZxing.podspec +48 -0
  3. package/android/CMakeLists.txt +43 -0
  4. package/android/build.gradle +150 -0
  5. package/android/fix-prefab.gradle +51 -0
  6. package/android/gradle.properties +5 -0
  7. package/android/src/main/AndroidManifest.xml +3 -0
  8. package/android/src/main/cpp/cpp-adapter.cpp +7 -0
  9. package/android/src/main/java/com/margelo/nitro/camera/zxing/VisionCameraZxingPackage.kt +21 -0
  10. package/cpp/BarcodeValueTypeClassifier.cpp +70 -0
  11. package/cpp/BarcodeValueTypeClassifier.hpp +14 -0
  12. package/cpp/FrameImageView.cpp +75 -0
  13. package/cpp/FrameImageView.hpp +34 -0
  14. package/cpp/HybridBarcode.cpp +59 -0
  15. package/cpp/HybridBarcode.hpp +26 -0
  16. package/cpp/HybridBarcodeScanner.cpp +121 -0
  17. package/cpp/HybridBarcodeScanner.hpp +26 -0
  18. package/cpp/HybridBarcodeScannerFactory.cpp +11 -0
  19. package/cpp/HybridBarcodeScannerFactory.hpp +14 -0
  20. package/cpp/ImageDownscaler.cpp +34 -0
  21. package/cpp/ImageDownscaler.hpp +21 -0
  22. package/cpp/ZXingDecoder.cpp +189 -0
  23. package/cpp/ZXingDecoder.hpp +72 -0
  24. package/cpp/zxing-core/LICENSE +202 -0
  25. package/cpp/zxing-core/README.md +156 -0
  26. package/cpp/zxing-core/core/CMakeLists.txt +784 -0
  27. package/cpp/zxing-core/core/Version.h.in +28 -0
  28. package/cpp/zxing-core/core/ZXingConfig.cmake.in +9 -0
  29. package/cpp/zxing-core/core/src/Barcode.cpp +255 -0
  30. package/cpp/zxing-core/core/src/Barcode.h +191 -0
  31. package/cpp/zxing-core/core/src/BarcodeData.h +100 -0
  32. package/cpp/zxing-core/core/src/BarcodeFormat.cpp +286 -0
  33. package/cpp/zxing-core/core/src/BarcodeFormat.h +272 -0
  34. package/cpp/zxing-core/core/src/BinaryBitmap.cpp +111 -0
  35. package/cpp/zxing-core/core/src/BinaryBitmap.h +66 -0
  36. package/cpp/zxing-core/core/src/BitArray.cpp +38 -0
  37. package/cpp/zxing-core/core/src/BitArray.h +181 -0
  38. package/cpp/zxing-core/core/src/BitMatrix.cpp +175 -0
  39. package/cpp/zxing-core/core/src/BitMatrix.h +199 -0
  40. package/cpp/zxing-core/core/src/BitMatrixCursor.h +253 -0
  41. package/cpp/zxing-core/core/src/BitMatrixIO.cpp +101 -0
  42. package/cpp/zxing-core/core/src/BitMatrixIO.h +21 -0
  43. package/cpp/zxing-core/core/src/BitSource.cpp +77 -0
  44. package/cpp/zxing-core/core/src/BitSource.h +72 -0
  45. package/cpp/zxing-core/core/src/ByteArray.h +42 -0
  46. package/cpp/zxing-core/core/src/CharacterSet.cpp +78 -0
  47. package/cpp/zxing-core/core/src/CharacterSet.h +58 -0
  48. package/cpp/zxing-core/core/src/ConcentricFinder.cpp +312 -0
  49. package/cpp/zxing-core/core/src/ConcentricFinder.h +156 -0
  50. package/cpp/zxing-core/core/src/Content.cpp +471 -0
  51. package/cpp/zxing-core/core/src/Content.h +82 -0
  52. package/cpp/zxing-core/core/src/ContentType.h +19 -0
  53. package/cpp/zxing-core/core/src/CreateBarcode.cpp +490 -0
  54. package/cpp/zxing-core/core/src/CreateBarcode.h +132 -0
  55. package/cpp/zxing-core/core/src/DecoderResult.h +92 -0
  56. package/cpp/zxing-core/core/src/DetectorResult.h +44 -0
  57. package/cpp/zxing-core/core/src/ECI.cpp +81 -0
  58. package/cpp/zxing-core/core/src/ECI.h +78 -0
  59. package/cpp/zxing-core/core/src/Error.cpp +29 -0
  60. package/cpp/zxing-core/core/src/Error.h +79 -0
  61. package/cpp/zxing-core/core/src/Flags.h +165 -0
  62. package/cpp/zxing-core/core/src/GTIN.cpp +253 -0
  63. package/cpp/zxing-core/core/src/GTIN.h +58 -0
  64. package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.cpp +197 -0
  65. package/cpp/zxing-core/core/src/GlobalHistogramBinarizer.h +34 -0
  66. package/cpp/zxing-core/core/src/GridSampler.cpp +124 -0
  67. package/cpp/zxing-core/core/src/GridSampler.h +59 -0
  68. package/cpp/zxing-core/core/src/HRI.cpp +343 -0
  69. package/cpp/zxing-core/core/src/HRI.h +16 -0
  70. package/cpp/zxing-core/core/src/HybridBinarizer.cpp +315 -0
  71. package/cpp/zxing-core/core/src/HybridBinarizer.h +40 -0
  72. package/cpp/zxing-core/core/src/ImageView.h +168 -0
  73. package/cpp/zxing-core/core/src/JSON.cpp +154 -0
  74. package/cpp/zxing-core/core/src/JSON.h +66 -0
  75. package/cpp/zxing-core/core/src/LocalGrid.cpp +242 -0
  76. package/cpp/zxing-core/core/src/LocalGrid.h +91 -0
  77. package/cpp/zxing-core/core/src/LogMatrix.h +105 -0
  78. package/cpp/zxing-core/core/src/Matrix.h +125 -0
  79. package/cpp/zxing-core/core/src/MultiFormatReader.cpp +107 -0
  80. package/cpp/zxing-core/core/src/MultiFormatReader.h +34 -0
  81. package/cpp/zxing-core/core/src/MultiFormatWriter.cpp +111 -0
  82. package/cpp/zxing-core/core/src/MultiFormatWriter.h +62 -0
  83. package/cpp/zxing-core/core/src/Pattern.h +472 -0
  84. package/cpp/zxing-core/core/src/PerspectiveTransform.cpp +81 -0
  85. package/cpp/zxing-core/core/src/PerspectiveTransform.h +47 -0
  86. package/cpp/zxing-core/core/src/Point.h +185 -0
  87. package/cpp/zxing-core/core/src/Quadrilateral.h +215 -0
  88. package/cpp/zxing-core/core/src/Range.h +112 -0
  89. package/cpp/zxing-core/core/src/ReadBarcode.cpp +335 -0
  90. package/cpp/zxing-core/core/src/ReadBarcode.h +33 -0
  91. package/cpp/zxing-core/core/src/Reader.h +32 -0
  92. package/cpp/zxing-core/core/src/ReaderOptions.h +210 -0
  93. package/cpp/zxing-core/core/src/ReedSolomon.cpp +100 -0
  94. package/cpp/zxing-core/core/src/ReedSolomon.h +66 -0
  95. package/cpp/zxing-core/core/src/RegressionLine.h +161 -0
  96. package/cpp/zxing-core/core/src/ResultPoint.cpp +20 -0
  97. package/cpp/zxing-core/core/src/ResultPoint.h +35 -0
  98. package/cpp/zxing-core/core/src/StdGenerator.h +121 -0
  99. package/cpp/zxing-core/core/src/StdPrint.h +38 -0
  100. package/cpp/zxing-core/core/src/StdScope.h +55 -0
  101. package/cpp/zxing-core/core/src/StructuredAppend.h +19 -0
  102. package/cpp/zxing-core/core/src/SymbologyIdentifier.h +29 -0
  103. package/cpp/zxing-core/core/src/TextDecoder.cpp +59 -0
  104. package/cpp/zxing-core/core/src/TextDecoder.h +23 -0
  105. package/cpp/zxing-core/core/src/TextEncoder.cpp +75 -0
  106. package/cpp/zxing-core/core/src/TextEncoder.h +31 -0
  107. package/cpp/zxing-core/core/src/ThresholdBinarizer.h +58 -0
  108. package/cpp/zxing-core/core/src/TritMatrix.h +29 -0
  109. package/cpp/zxing-core/core/src/Utf.cpp +276 -0
  110. package/cpp/zxing-core/core/src/Utf.h +26 -0
  111. package/cpp/zxing-core/core/src/WhiteRectDetector.cpp +276 -0
  112. package/cpp/zxing-core/core/src/WhiteRectDetector.h +36 -0
  113. package/cpp/zxing-core/core/src/WriteBarcode.cpp +213 -0
  114. package/cpp/zxing-core/core/src/WriteBarcode.h +72 -0
  115. package/cpp/zxing-core/core/src/ZXAlgorithms.h +353 -0
  116. package/cpp/zxing-core/core/src/ZXConfig.h +17 -0
  117. package/cpp/zxing-core/core/src/ZXTestSupport.h +9 -0
  118. package/cpp/zxing-core/core/src/ZXVersion.h +14 -0
  119. package/cpp/zxing-core/core/src/ZXingC.cpp +460 -0
  120. package/cpp/zxing-core/core/src/ZXingC.h +296 -0
  121. package/cpp/zxing-core/core/src/ZXingCpp.cpp +18 -0
  122. package/cpp/zxing-core/core/src/ZXingCpp.h +76 -0
  123. package/cpp/zxing-core/core/src/ZXingQt.h +606 -0
  124. package/cpp/zxing-core/core/src/aztec/AZDecoder.cpp +376 -0
  125. package/cpp/zxing-core/core/src/aztec/AZDecoder.h +20 -0
  126. package/cpp/zxing-core/core/src/aztec/AZDetector.cpp +508 -0
  127. package/cpp/zxing-core/core/src/aztec/AZDetector.h +25 -0
  128. package/cpp/zxing-core/core/src/aztec/AZDetectorResult.h +51 -0
  129. package/cpp/zxing-core/core/src/aztec/AZEncoder.cpp +318 -0
  130. package/cpp/zxing-core/core/src/aztec/AZEncoder.h +44 -0
  131. package/cpp/zxing-core/core/src/aztec/AZEncodingState.h +40 -0
  132. package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.cpp +377 -0
  133. package/cpp/zxing-core/core/src/aztec/AZHighLevelEncoder.h +36 -0
  134. package/cpp/zxing-core/core/src/aztec/AZReader.cpp +45 -0
  135. package/cpp/zxing-core/core/src/aztec/AZReader.h +21 -0
  136. package/cpp/zxing-core/core/src/aztec/AZToken.cpp +44 -0
  137. package/cpp/zxing-core/core/src/aztec/AZToken.h +39 -0
  138. package/cpp/zxing-core/core/src/aztec/AZWriter.cpp +38 -0
  139. package/cpp/zxing-core/core/src/aztec/AZWriter.h +55 -0
  140. package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.cpp +194 -0
  141. package/cpp/zxing-core/core/src/datamatrix/DMBitLayout.h +21 -0
  142. package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.cpp +63 -0
  143. package/cpp/zxing-core/core/src/datamatrix/DMDataBlock.h +41 -0
  144. package/cpp/zxing-core/core/src/datamatrix/DMDecoder.cpp +457 -0
  145. package/cpp/zxing-core/core/src/datamatrix/DMDecoder.h +19 -0
  146. package/cpp/zxing-core/core/src/datamatrix/DMDetector.cpp +1230 -0
  147. package/cpp/zxing-core/core/src/datamatrix/DMDetector.h +23 -0
  148. package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.cpp +137 -0
  149. package/cpp/zxing-core/core/src/datamatrix/DMECEncoder.h +26 -0
  150. package/cpp/zxing-core/core/src/datamatrix/DMEncoderContext.h +128 -0
  151. package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.cpp +919 -0
  152. package/cpp/zxing-core/core/src/datamatrix/DMHighLevelEncoder.h +29 -0
  153. package/cpp/zxing-core/core/src/datamatrix/DMReader.cpp +40 -0
  154. package/cpp/zxing-core/core/src/datamatrix/DMReader.h +21 -0
  155. package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.cpp +141 -0
  156. package/cpp/zxing-core/core/src/datamatrix/DMSymbolInfo.h +78 -0
  157. package/cpp/zxing-core/core/src/datamatrix/DMSymbolShape.h +17 -0
  158. package/cpp/zxing-core/core/src/datamatrix/DMVersion.cpp +82 -0
  159. package/cpp/zxing-core/core/src/datamatrix/DMVersion.h +76 -0
  160. package/cpp/zxing-core/core/src/datamatrix/DMWriter.cpp +114 -0
  161. package/cpp/zxing-core/core/src/datamatrix/DMWriter.h +62 -0
  162. package/cpp/zxing-core/core/src/librscpp/README.md +65 -0
  163. package/cpp/zxing-core/core/src/librscpp/decode.h +258 -0
  164. package/cpp/zxing-core/core/src/librscpp/encode.h +124 -0
  165. package/cpp/zxing-core/core/src/librscpp/field.h +158 -0
  166. package/cpp/zxing-core/core/src/librscpp/poly.h +194 -0
  167. package/cpp/zxing-core/core/src/libzint/2of5inter.c +1 -0
  168. package/cpp/zxing-core/core/src/libzint/2of5inter_based.c +1 -0
  169. package/cpp/zxing-core/core/src/libzint/aztec.c +1 -0
  170. package/cpp/zxing-core/core/src/libzint/aztec.h +1 -0
  171. package/cpp/zxing-core/core/src/libzint/big5.h +1 -0
  172. package/cpp/zxing-core/core/src/libzint/codabar.c +1 -0
  173. package/cpp/zxing-core/core/src/libzint/code.c +1 -0
  174. package/cpp/zxing-core/core/src/libzint/code128.c +1 -0
  175. package/cpp/zxing-core/core/src/libzint/code128.h +1 -0
  176. package/cpp/zxing-core/core/src/libzint/common.c +1 -0
  177. package/cpp/zxing-core/core/src/libzint/common.h +1 -0
  178. package/cpp/zxing-core/core/src/libzint/dmatrix.c +1 -0
  179. package/cpp/zxing-core/core/src/libzint/dmatrix.h +1 -0
  180. package/cpp/zxing-core/core/src/libzint/dxfilmedge.c +1 -0
  181. package/cpp/zxing-core/core/src/libzint/eci.c +1 -0
  182. package/cpp/zxing-core/core/src/libzint/eci.h +1 -0
  183. package/cpp/zxing-core/core/src/libzint/eci_sb.h +1 -0
  184. package/cpp/zxing-core/core/src/libzint/filemem.c +1 -0
  185. package/cpp/zxing-core/core/src/libzint/filemem.h +1 -0
  186. package/cpp/zxing-core/core/src/libzint/fonts/normal_woff2.h +1 -0
  187. package/cpp/zxing-core/core/src/libzint/fonts/upcean_woff2.h +1 -0
  188. package/cpp/zxing-core/core/src/libzint/gb18030.h +1 -0
  189. package/cpp/zxing-core/core/src/libzint/gb2312.h +1 -0
  190. package/cpp/zxing-core/core/src/libzint/gbk.h +1 -0
  191. package/cpp/zxing-core/core/src/libzint/general_field.c +1 -0
  192. package/cpp/zxing-core/core/src/libzint/general_field.h +1 -0
  193. package/cpp/zxing-core/core/src/libzint/gs1.c +1 -0
  194. package/cpp/zxing-core/core/src/libzint/gs1.h +1 -0
  195. package/cpp/zxing-core/core/src/libzint/gs1_lint.h +1 -0
  196. package/cpp/zxing-core/core/src/libzint/iso3166.h +1 -0
  197. package/cpp/zxing-core/core/src/libzint/iso4217.h +1 -0
  198. package/cpp/zxing-core/core/src/libzint/ksx1001.h +1 -0
  199. package/cpp/zxing-core/core/src/libzint/large.c +1 -0
  200. package/cpp/zxing-core/core/src/libzint/large.h +1 -0
  201. package/cpp/zxing-core/core/src/libzint/library.c +1 -0
  202. package/cpp/zxing-core/core/src/libzint/maxicode.c +1 -0
  203. package/cpp/zxing-core/core/src/libzint/maxicode.h +1 -0
  204. package/cpp/zxing-core/core/src/libzint/medical.c +1 -0
  205. package/cpp/zxing-core/core/src/libzint/output.c +1 -0
  206. package/cpp/zxing-core/core/src/libzint/output.h +1 -0
  207. package/cpp/zxing-core/core/src/libzint/pdf417.c +1 -0
  208. package/cpp/zxing-core/core/src/libzint/pdf417.h +1 -0
  209. package/cpp/zxing-core/core/src/libzint/pdf417_tabs.h +1 -0
  210. package/cpp/zxing-core/core/src/libzint/qr.c +1 -0
  211. package/cpp/zxing-core/core/src/libzint/qr.h +1 -0
  212. package/cpp/zxing-core/core/src/libzint/raster.c +1 -0
  213. package/cpp/zxing-core/core/src/libzint/raster_font.h +1 -0
  214. package/cpp/zxing-core/core/src/libzint/reedsol.c +1 -0
  215. package/cpp/zxing-core/core/src/libzint/reedsol.h +1 -0
  216. package/cpp/zxing-core/core/src/libzint/reedsol_logs.h +1 -0
  217. package/cpp/zxing-core/core/src/libzint/rss.c +1 -0
  218. package/cpp/zxing-core/core/src/libzint/rss.h +1 -0
  219. package/cpp/zxing-core/core/src/libzint/sjis.h +1 -0
  220. package/cpp/zxing-core/core/src/libzint/stubs.c +137 -0
  221. package/cpp/zxing-core/core/src/libzint/svg.c +1 -0
  222. package/cpp/zxing-core/core/src/libzint/telepen.c +1 -0
  223. package/cpp/zxing-core/core/src/libzint/upcean.c +1 -0
  224. package/cpp/zxing-core/core/src/libzint/vector.c +1 -0
  225. package/cpp/zxing-core/core/src/libzint/zfiletypes.h +1 -0
  226. package/cpp/zxing-core/core/src/libzint/zint.h +1 -0
  227. package/cpp/zxing-core/core/src/libzint/zintconfig.h +1 -0
  228. package/cpp/zxing-core/core/src/libzueci/README.md +11 -0
  229. package/cpp/zxing-core/core/src/libzueci/zueci.c +1718 -0
  230. package/cpp/zxing-core/core/src/libzueci/zueci.h +179 -0
  231. package/cpp/zxing-core/core/src/libzueci/zueci_big5.h +3884 -0
  232. package/cpp/zxing-core/core/src/libzueci/zueci_common.h +31 -0
  233. package/cpp/zxing-core/core/src/libzueci/zueci_gb18030.h +264 -0
  234. package/cpp/zxing-core/core/src/libzueci/zueci_gb2312.h +2381 -0
  235. package/cpp/zxing-core/core/src/libzueci/zueci_gbk.h +4047 -0
  236. package/cpp/zxing-core/core/src/libzueci/zueci_ksx1001.h +2932 -0
  237. package/cpp/zxing-core/core/src/libzueci/zueci_sb.h +1112 -0
  238. package/cpp/zxing-core/core/src/libzueci/zueci_sjis.h +2286 -0
  239. package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.cpp +68 -0
  240. package/cpp/zxing-core/core/src/maxicode/MCBitMatrixParser.h +30 -0
  241. package/cpp/zxing-core/core/src/maxicode/MCDecoder.cpp +329 -0
  242. package/cpp/zxing-core/core/src/maxicode/MCDecoder.h +19 -0
  243. package/cpp/zxing-core/core/src/maxicode/MCReader.cpp +65 -0
  244. package/cpp/zxing-core/core/src/maxicode/MCReader.h +21 -0
  245. package/cpp/zxing-core/core/src/oned/ODCodabarReader.cpp +102 -0
  246. package/cpp/zxing-core/core/src/oned/ODCodabarReader.h +21 -0
  247. package/cpp/zxing-core/core/src/oned/ODCodabarWriter.cpp +136 -0
  248. package/cpp/zxing-core/core/src/oned/ODCodabarWriter.h +34 -0
  249. package/cpp/zxing-core/core/src/oned/ODCode128Patterns.h +130 -0
  250. package/cpp/zxing-core/core/src/oned/ODCode128Reader.cpp +236 -0
  251. package/cpp/zxing-core/core/src/oned/ODCode128Reader.h +21 -0
  252. package/cpp/zxing-core/core/src/oned/ODCode128Writer.cpp +261 -0
  253. package/cpp/zxing-core/core/src/oned/ODCode128Writer.h +34 -0
  254. package/cpp/zxing-core/core/src/oned/ODCode39Reader.cpp +213 -0
  255. package/cpp/zxing-core/core/src/oned/ODCode39Reader.h +26 -0
  256. package/cpp/zxing-core/core/src/oned/ODCode39Writer.cpp +176 -0
  257. package/cpp/zxing-core/core/src/oned/ODCode39Writer.h +34 -0
  258. package/cpp/zxing-core/core/src/oned/ODCode93Patterns.h +80 -0
  259. package/cpp/zxing-core/core/src/oned/ODCode93Reader.cpp +112 -0
  260. package/cpp/zxing-core/core/src/oned/ODCode93Reader.h +21 -0
  261. package/cpp/zxing-core/core/src/oned/ODCode93Writer.cpp +192 -0
  262. package/cpp/zxing-core/core/src/oned/ODCode93Writer.h +32 -0
  263. package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.cpp +246 -0
  264. package/cpp/zxing-core/core/src/oned/ODDXFilmEdgeReader.h +26 -0
  265. package/cpp/zxing-core/core/src/oned/ODDataBarCommon.cpp +172 -0
  266. package/cpp/zxing-core/core/src/oned/ODDataBarCommon.h +204 -0
  267. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.cpp +253 -0
  268. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedBitDecoder.h +19 -0
  269. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.cpp +383 -0
  270. package/cpp/zxing-core/core/src/oned/ODDataBarExpandedReader.h +25 -0
  271. package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.cpp +163 -0
  272. package/cpp/zxing-core/core/src/oned/ODDataBarLimitedReader.h +23 -0
  273. package/cpp/zxing-core/core/src/oned/ODDataBarReader.cpp +240 -0
  274. package/cpp/zxing-core/core/src/oned/ODDataBarReader.h +25 -0
  275. package/cpp/zxing-core/core/src/oned/ODEAN13Writer.cpp +62 -0
  276. package/cpp/zxing-core/core/src/oned/ODEAN13Writer.h +34 -0
  277. package/cpp/zxing-core/core/src/oned/ODEAN8Writer.cpp +51 -0
  278. package/cpp/zxing-core/core/src/oned/ODEAN8Writer.h +34 -0
  279. package/cpp/zxing-core/core/src/oned/ODITFReader.cpp +97 -0
  280. package/cpp/zxing-core/core/src/oned/ODITFReader.h +33 -0
  281. package/cpp/zxing-core/core/src/oned/ODITFWriter.cpp +78 -0
  282. package/cpp/zxing-core/core/src/oned/ODITFWriter.h +34 -0
  283. package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.cpp +323 -0
  284. package/cpp/zxing-core/core/src/oned/ODMultiUPCEANReader.h +32 -0
  285. package/cpp/zxing-core/core/src/oned/ODReader.cpp +259 -0
  286. package/cpp/zxing-core/core/src/oned/ODReader.h +35 -0
  287. package/cpp/zxing-core/core/src/oned/ODRowReader.h +222 -0
  288. package/cpp/zxing-core/core/src/oned/ODTelepenReader.cpp +199 -0
  289. package/cpp/zxing-core/core/src/oned/ODTelepenReader.h +25 -0
  290. package/cpp/zxing-core/core/src/oned/ODUPCAWriter.cpp +33 -0
  291. package/cpp/zxing-core/core/src/oned/ODUPCAWriter.h +34 -0
  292. package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.cpp +80 -0
  293. package/cpp/zxing-core/core/src/oned/ODUPCEANCommon.h +129 -0
  294. package/cpp/zxing-core/core/src/oned/ODUPCEWriter.cpp +56 -0
  295. package/cpp/zxing-core/core/src/oned/ODUPCEWriter.h +34 -0
  296. package/cpp/zxing-core/core/src/oned/ODWriterHelper.cpp +39 -0
  297. package/cpp/zxing-core/core/src/oned/ODWriterHelper.h +48 -0
  298. package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.cpp +796 -0
  299. package/cpp/zxing-core/core/src/pdf417/MicroPDFReader.h +23 -0
  300. package/cpp/zxing-core/core/src/pdf417/PDF417.cpp +85 -0
  301. package/cpp/zxing-core/core/src/pdf417/PDF417.h +81 -0
  302. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeMetadata.h +53 -0
  303. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.cpp +48 -0
  304. package/cpp/zxing-core/core/src/pdf417/PDFBarcodeValue.h +38 -0
  305. package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.cpp +116 -0
  306. package/cpp/zxing-core/core/src/pdf417/PDFBoundingBox.h +75 -0
  307. package/cpp/zxing-core/core/src/pdf417/PDFCodeword.h +71 -0
  308. package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.cpp +588 -0
  309. package/cpp/zxing-core/core/src/pdf417/PDFCodewordDecoder.h +41 -0
  310. package/cpp/zxing-core/core/src/pdf417/PDFCompaction.h +20 -0
  311. package/cpp/zxing-core/core/src/pdf417/PDFCustomData.h +32 -0
  312. package/cpp/zxing-core/core/src/pdf417/PDFDecoder.cpp +725 -0
  313. package/cpp/zxing-core/core/src/pdf417/PDFDecoder.h +20 -0
  314. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.cpp +247 -0
  315. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResult.h +74 -0
  316. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.cpp +321 -0
  317. package/cpp/zxing-core/core/src/pdf417/PDFDetectionResultColumn.h +83 -0
  318. package/cpp/zxing-core/core/src/pdf417/PDFDetector.cpp +371 -0
  319. package/cpp/zxing-core/core/src/pdf417/PDFDetector.h +45 -0
  320. package/cpp/zxing-core/core/src/pdf417/PDFEncoder.cpp +570 -0
  321. package/cpp/zxing-core/core/src/pdf417/PDFEncoder.h +182 -0
  322. package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.cpp +570 -0
  323. package/cpp/zxing-core/core/src/pdf417/PDFHighLevelEncoder.h +32 -0
  324. package/cpp/zxing-core/core/src/pdf417/PDFReader.cpp +333 -0
  325. package/cpp/zxing-core/core/src/pdf417/PDFReader.h +28 -0
  326. package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.cpp +559 -0
  327. package/cpp/zxing-core/core/src/pdf417/PDFScanningDecoder.h +41 -0
  328. package/cpp/zxing-core/core/src/pdf417/PDFWriter.cpp +170 -0
  329. package/cpp/zxing-core/core/src/pdf417/PDFWriter.h +74 -0
  330. package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.cpp +623 -0
  331. package/cpp/zxing-core/core/src/pdf417/ZXBigInteger.h +81 -0
  332. package/cpp/zxing-core/core/src/pdf417/ZXNullable.h +105 -0
  333. package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.cpp +294 -0
  334. package/cpp/zxing-core/core/src/qrcode/QRBitMatrixParser.h +41 -0
  335. package/cpp/zxing-core/core/src/qrcode/QRCodecMode.cpp +95 -0
  336. package/cpp/zxing-core/core/src/qrcode/QRCodecMode.h +59 -0
  337. package/cpp/zxing-core/core/src/qrcode/QRDataBlock.cpp +93 -0
  338. package/cpp/zxing-core/core/src/qrcode/QRDataBlock.h +52 -0
  339. package/cpp/zxing-core/core/src/qrcode/QRDataMask.h +50 -0
  340. package/cpp/zxing-core/core/src/qrcode/QRDecoder.cpp +359 -0
  341. package/cpp/zxing-core/core/src/qrcode/QRDecoder.h +19 -0
  342. package/cpp/zxing-core/core/src/qrcode/QRDetector.cpp +920 -0
  343. package/cpp/zxing-core/core/src/qrcode/QRDetector.h +45 -0
  344. package/cpp/zxing-core/core/src/qrcode/QRECB.h +52 -0
  345. package/cpp/zxing-core/core/src/qrcode/QREncodeResult.h +33 -0
  346. package/cpp/zxing-core/core/src/qrcode/QREncoder.cpp +568 -0
  347. package/cpp/zxing-core/core/src/qrcode/QREncoder.h +21 -0
  348. package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.cpp +51 -0
  349. package/cpp/zxing-core/core/src/qrcode/QRErrorCorrectionLevel.h +39 -0
  350. package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.cpp +160 -0
  351. package/cpp/zxing-core/core/src/qrcode/QRFormatInformation.h +61 -0
  352. package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.cpp +156 -0
  353. package/cpp/zxing-core/core/src/qrcode/QRMaskUtil.h +15 -0
  354. package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.cpp +318 -0
  355. package/cpp/zxing-core/core/src/qrcode/QRMatrixUtil.h +25 -0
  356. package/cpp/zxing-core/core/src/qrcode/QRReader.cpp +149 -0
  357. package/cpp/zxing-core/core/src/qrcode/QRReader.h +21 -0
  358. package/cpp/zxing-core/core/src/qrcode/QRVersion.cpp +754 -0
  359. package/cpp/zxing-core/core/src/qrcode/QRVersion.h +127 -0
  360. package/cpp/zxing-core/core/src/qrcode/QRWriter.cpp +51 -0
  361. package/cpp/zxing-core/core/src/qrcode/QRWriter.h +74 -0
  362. package/cpp/zxing-core/core/version.rc.in +34 -0
  363. package/cpp/zxing-core/core/zxing.pc.in +8 -0
  364. package/cpp/zxing-core/wrappers/ios/README.md +25 -0
  365. package/cpp/zxing-core/wrappers/ios/Sources/Wrapper/Version.h +29 -0
  366. package/cpp/zxing-core/zxing-cpp.podspec +45 -0
  367. package/lib/factory.d.ts +10 -0
  368. package/lib/factory.js +12 -0
  369. package/lib/index.d.ts +9 -0
  370. package/lib/index.js +9 -0
  371. package/lib/specs/Barcode.nitro.d.ts +63 -0
  372. package/lib/specs/Barcode.nitro.js +1 -0
  373. package/lib/specs/BarcodeFormat.d.ts +11 -0
  374. package/lib/specs/BarcodeFormat.js +1 -0
  375. package/lib/specs/BarcodeScanner.nitro.d.ts +89 -0
  376. package/lib/specs/BarcodeScanner.nitro.js +1 -0
  377. package/lib/specs/BarcodeScannerFactory.nitro.d.ts +26 -0
  378. package/lib/specs/BarcodeScannerFactory.nitro.js +1 -0
  379. package/lib/specs/BarcodeValueType.d.ts +9 -0
  380. package/lib/specs/BarcodeValueType.js +1 -0
  381. package/lib/specs/Point.d.ts +14 -0
  382. package/lib/specs/Point.js +1 -0
  383. package/lib/specs/Rect.d.ts +22 -0
  384. package/lib/specs/Rect.js +1 -0
  385. package/lib/useBarcodeScanner.d.ts +23 -0
  386. package/lib/useBarcodeScanner.js +25 -0
  387. package/nitro.json +20 -0
  388. package/nitrogen/generated/.gitattributes +1 -0
  389. package/nitrogen/generated/android/VisionCameraZxing+autolinking.cmake +83 -0
  390. package/nitrogen/generated/android/VisionCameraZxing+autolinking.gradle +27 -0
  391. package/nitrogen/generated/android/VisionCameraZxingOnLoad.cpp +49 -0
  392. package/nitrogen/generated/android/VisionCameraZxingOnLoad.hpp +34 -0
  393. package/nitrogen/generated/android/kotlin/com/margelo/nitro/camera/zxing/VisionCameraZxingOnLoad.kt +35 -0
  394. package/nitrogen/generated/ios/VisionCameraZxing+autolinking.rb +62 -0
  395. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.cpp +17 -0
  396. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Bridge.hpp +27 -0
  397. package/nitrogen/generated/ios/VisionCameraZxing-Swift-Cxx-Umbrella.hpp +38 -0
  398. package/nitrogen/generated/ios/VisionCameraZxingAutolinking.mm +35 -0
  399. package/nitrogen/generated/ios/VisionCameraZxingAutolinking.swift +16 -0
  400. package/nitrogen/generated/shared/c++/BarcodeFormat.hpp +124 -0
  401. package/nitrogen/generated/shared/c++/BarcodeScannerOptions.hpp +85 -0
  402. package/nitrogen/generated/shared/c++/BarcodeValueType.hpp +120 -0
  403. package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.cpp +23 -0
  404. package/nitrogen/generated/shared/c++/HybridBarcodeScannerSpec.hpp +74 -0
  405. package/nitrogen/generated/shared/c++/HybridBarcodeSpec.cpp +27 -0
  406. package/nitrogen/generated/shared/c++/HybridBarcodeSpec.hpp +82 -0
  407. package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.cpp +21 -0
  408. package/nitrogen/generated/shared/c++/HybridZXingBarcodeScannerFactorySpec.hpp +67 -0
  409. package/nitrogen/generated/shared/c++/Point.hpp +87 -0
  410. package/nitrogen/generated/shared/c++/Rect.hpp +95 -0
  411. package/nitrogen/generated/shared/c++/TargetBarcodeFormat.hpp +124 -0
  412. package/package.json +108 -0
  413. package/react-native.config.js +16 -0
  414. package/src/factory.ts +26 -0
  415. package/src/index.ts +9 -0
  416. package/src/specs/Barcode.nitro.ts +70 -0
  417. package/src/specs/BarcodeFormat.ts +31 -0
  418. package/src/specs/BarcodeScanner.nitro.ts +91 -0
  419. package/src/specs/BarcodeScannerFactory.nitro.ts +27 -0
  420. package/src/specs/BarcodeValueType.ts +25 -0
  421. package/src/specs/Point.ts +14 -0
  422. package/src/specs/Rect.ts +22 -0
  423. package/src/useBarcodeScanner.ts +36 -0
@@ -0,0 +1,95 @@
1
+ ///
2
+ /// Rect.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
11
+ #include <NitroModules/JSIConverter.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
16
+ #include <NitroModules/NitroDefines.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/JSIHelpers.hpp>)
21
+ #include <NitroModules/JSIHelpers.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+ #if __has_include(<NitroModules/PropNameIDCache.hpp>)
26
+ #include <NitroModules/PropNameIDCache.hpp>
27
+ #else
28
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
29
+ #endif
30
+
31
+
32
+
33
+
34
+
35
+ namespace margelo::nitro::camera::zxing {
36
+
37
+ /**
38
+ * A struct which can be represented as a JavaScript object (Rect).
39
+ */
40
+ struct Rect final {
41
+ public:
42
+ double left SWIFT_PRIVATE;
43
+ double right SWIFT_PRIVATE;
44
+ double top SWIFT_PRIVATE;
45
+ double bottom SWIFT_PRIVATE;
46
+
47
+ public:
48
+ Rect() = default;
49
+ explicit Rect(double left, double right, double top, double bottom): left(left), right(right), top(top), bottom(bottom) {}
50
+
51
+ public:
52
+ friend bool operator==(const Rect& lhs, const Rect& rhs) = default;
53
+ };
54
+
55
+ } // namespace margelo::nitro::camera::zxing
56
+
57
+ namespace margelo::nitro {
58
+
59
+ // C++ Rect <> JS Rect (object)
60
+ template <>
61
+ struct JSIConverter<margelo::nitro::camera::zxing::Rect> final {
62
+ static inline margelo::nitro::camera::zxing::Rect fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
63
+ jsi::Object obj = arg.asObject(runtime);
64
+ return margelo::nitro::camera::zxing::Rect(
65
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "left"))),
66
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "right"))),
67
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "top"))),
68
+ JSIConverter<double>::fromJSI(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "bottom")))
69
+ );
70
+ }
71
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, const margelo::nitro::camera::zxing::Rect& arg) {
72
+ jsi::Object obj(runtime);
73
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "left"), JSIConverter<double>::toJSI(runtime, arg.left));
74
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "right"), JSIConverter<double>::toJSI(runtime, arg.right));
75
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "top"), JSIConverter<double>::toJSI(runtime, arg.top));
76
+ obj.setProperty(runtime, PropNameIDCache::get(runtime, "bottom"), JSIConverter<double>::toJSI(runtime, arg.bottom));
77
+ return obj;
78
+ }
79
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
80
+ if (!value.isObject()) {
81
+ return false;
82
+ }
83
+ jsi::Object obj = value.getObject(runtime);
84
+ if (!nitro::isPlainObject(runtime, obj)) {
85
+ return false;
86
+ }
87
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "left")))) return false;
88
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "right")))) return false;
89
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "top")))) return false;
90
+ if (!JSIConverter<double>::canConvert(runtime, obj.getProperty(runtime, PropNameIDCache::get(runtime, "bottom")))) return false;
91
+ return true;
92
+ }
93
+ };
94
+
95
+ } // namespace margelo::nitro
@@ -0,0 +1,124 @@
1
+ ///
2
+ /// TargetBarcodeFormat.hpp
3
+ /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
+ /// https://github.com/mrousavy/nitro
5
+ /// Copyright © Marc Rousavy @ Margelo
6
+ ///
7
+
8
+ #pragma once
9
+
10
+ #if __has_include(<NitroModules/NitroHash.hpp>)
11
+ #include <NitroModules/NitroHash.hpp>
12
+ #else
13
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
14
+ #endif
15
+ #if __has_include(<NitroModules/JSIConverter.hpp>)
16
+ #include <NitroModules/JSIConverter.hpp>
17
+ #else
18
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
19
+ #endif
20
+ #if __has_include(<NitroModules/NitroDefines.hpp>)
21
+ #include <NitroModules/NitroDefines.hpp>
22
+ #else
23
+ #error NitroModules cannot be found! Are you sure you installed NitroModules properly?
24
+ #endif
25
+
26
+ namespace margelo::nitro::camera::zxing {
27
+
28
+ /**
29
+ * An enum which can be represented as a JavaScript union (TargetBarcodeFormat).
30
+ */
31
+ enum class TargetBarcodeFormat {
32
+ CODE_128 SWIFT_NAME(code128) = 0,
33
+ CODE_39 SWIFT_NAME(code39) = 1,
34
+ CODE_93 SWIFT_NAME(code93) = 2,
35
+ CODABAR SWIFT_NAME(codabar) = 3,
36
+ DATA_MATRIX SWIFT_NAME(dataMatrix) = 4,
37
+ EAN_13 SWIFT_NAME(ean13) = 5,
38
+ EAN_8 SWIFT_NAME(ean8) = 6,
39
+ ITF SWIFT_NAME(itf) = 7,
40
+ QR_CODE SWIFT_NAME(qrCode) = 8,
41
+ UPC_A SWIFT_NAME(upcA) = 9,
42
+ UPC_E SWIFT_NAME(upcE) = 10,
43
+ PDF_417 SWIFT_NAME(pdf417) = 11,
44
+ AZTEC SWIFT_NAME(aztec) = 12,
45
+ ALL_FORMATS SWIFT_NAME(allFormats) = 13,
46
+ } CLOSED_ENUM;
47
+
48
+ } // namespace margelo::nitro::camera::zxing
49
+
50
+ namespace margelo::nitro {
51
+
52
+ // C++ TargetBarcodeFormat <> JS TargetBarcodeFormat (union)
53
+ template <>
54
+ struct JSIConverter<margelo::nitro::camera::zxing::TargetBarcodeFormat> final {
55
+ static inline margelo::nitro::camera::zxing::TargetBarcodeFormat fromJSI(jsi::Runtime& runtime, const jsi::Value& arg) {
56
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, arg);
57
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
58
+ case hashString("code-128"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::CODE_128;
59
+ case hashString("code-39"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::CODE_39;
60
+ case hashString("code-93"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::CODE_93;
61
+ case hashString("codabar"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::CODABAR;
62
+ case hashString("data-matrix"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::DATA_MATRIX;
63
+ case hashString("ean-13"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::EAN_13;
64
+ case hashString("ean-8"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::EAN_8;
65
+ case hashString("itf"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::ITF;
66
+ case hashString("qr-code"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::QR_CODE;
67
+ case hashString("upc-a"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::UPC_A;
68
+ case hashString("upc-e"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::UPC_E;
69
+ case hashString("pdf-417"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::PDF_417;
70
+ case hashString("aztec"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::AZTEC;
71
+ case hashString("all-formats"): return margelo::nitro::camera::zxing::TargetBarcodeFormat::ALL_FORMATS;
72
+ default: [[unlikely]]
73
+ throw std::invalid_argument("Cannot convert \"" + unionValue + "\" to enum TargetBarcodeFormat - invalid value!");
74
+ }
75
+ }
76
+ static inline jsi::Value toJSI(jsi::Runtime& runtime, margelo::nitro::camera::zxing::TargetBarcodeFormat arg) {
77
+ switch (arg) {
78
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::CODE_128: return JSIConverter<std::string>::toJSI(runtime, "code-128");
79
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::CODE_39: return JSIConverter<std::string>::toJSI(runtime, "code-39");
80
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::CODE_93: return JSIConverter<std::string>::toJSI(runtime, "code-93");
81
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::CODABAR: return JSIConverter<std::string>::toJSI(runtime, "codabar");
82
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::DATA_MATRIX: return JSIConverter<std::string>::toJSI(runtime, "data-matrix");
83
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::EAN_13: return JSIConverter<std::string>::toJSI(runtime, "ean-13");
84
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::EAN_8: return JSIConverter<std::string>::toJSI(runtime, "ean-8");
85
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::ITF: return JSIConverter<std::string>::toJSI(runtime, "itf");
86
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::QR_CODE: return JSIConverter<std::string>::toJSI(runtime, "qr-code");
87
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::UPC_A: return JSIConverter<std::string>::toJSI(runtime, "upc-a");
88
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::UPC_E: return JSIConverter<std::string>::toJSI(runtime, "upc-e");
89
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::PDF_417: return JSIConverter<std::string>::toJSI(runtime, "pdf-417");
90
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::AZTEC: return JSIConverter<std::string>::toJSI(runtime, "aztec");
91
+ case margelo::nitro::camera::zxing::TargetBarcodeFormat::ALL_FORMATS: return JSIConverter<std::string>::toJSI(runtime, "all-formats");
92
+ default: [[unlikely]]
93
+ throw std::invalid_argument("Cannot convert TargetBarcodeFormat to JS - invalid value: "
94
+ + std::to_string(static_cast<int>(arg)) + "!");
95
+ }
96
+ }
97
+ static inline bool canConvert(jsi::Runtime& runtime, const jsi::Value& value) {
98
+ if (!value.isString()) {
99
+ return false;
100
+ }
101
+ std::string unionValue = JSIConverter<std::string>::fromJSI(runtime, value);
102
+ switch (hashString(unionValue.c_str(), unionValue.size())) {
103
+ case hashString("code-128"):
104
+ case hashString("code-39"):
105
+ case hashString("code-93"):
106
+ case hashString("codabar"):
107
+ case hashString("data-matrix"):
108
+ case hashString("ean-13"):
109
+ case hashString("ean-8"):
110
+ case hashString("itf"):
111
+ case hashString("qr-code"):
112
+ case hashString("upc-a"):
113
+ case hashString("upc-e"):
114
+ case hashString("pdf-417"):
115
+ case hashString("aztec"):
116
+ case hashString("all-formats"):
117
+ return true;
118
+ default:
119
+ return false;
120
+ }
121
+ }
122
+ };
123
+
124
+ } // namespace margelo::nitro
package/package.json ADDED
@@ -0,0 +1,108 @@
1
+ {
2
+ "name": "react-native-nitro-zxing",
3
+ "version": "0.1.0-alpha.0",
4
+ "description": "Barcode scanning plugin for react-native-vision-camera powered by zxing-cpp.",
5
+ "main": "lib/index",
6
+ "module": "lib/index",
7
+ "types": "lib/index.d.ts",
8
+ "react-native": "src/index",
9
+ "source": "src/index",
10
+ "files": [
11
+ "src",
12
+ "react-native.config.js",
13
+ "lib",
14
+ "nitrogen",
15
+ "android/build.gradle",
16
+ "android/gradle.properties",
17
+ "android/fix-prefab.gradle",
18
+ "android/CMakeLists.txt",
19
+ "android/src",
20
+ "ios/**/*.h",
21
+ "ios/**/*.m",
22
+ "ios/**/*.mm",
23
+ "ios/**/*.cpp",
24
+ "ios/**/*.swift",
25
+ "cpp/*.hpp",
26
+ "cpp/*.cpp",
27
+ "cpp/zxing-core/core",
28
+ "cpp/zxing-core/wrappers/ios/Sources/Wrapper/Version.h",
29
+ "cpp/zxing-core/LICENSE",
30
+ "nitro.json",
31
+ "*.podspec",
32
+ "README.md"
33
+ ],
34
+ "scripts": {
35
+ "typecheck": "tsc --noEmit",
36
+ "clean": "rm -rf android/build node_modules/**/android/build lib",
37
+ "build": "tsc",
38
+ "typescript": "tsc",
39
+ "specs": "tsc --noEmit false && nitrogen",
40
+ "prepack": "test -f cpp/zxing-core/core/CMakeLists.txt || (echo 'zxing-core submodule missing: run git submodule update --init' && exit 1)",
41
+ "release": "release-it"
42
+ },
43
+ "keywords": [
44
+ "react-native",
45
+ "camera",
46
+ "react-native-camera",
47
+ "vision-camera",
48
+ "barcode",
49
+ "barcode-scanner",
50
+ "qr-code",
51
+ "qrcode",
52
+ "scanner",
53
+ "code-scanner",
54
+ "zxing",
55
+ "zxing-cpp",
56
+ "frame-processor",
57
+ "ios",
58
+ "android"
59
+ ],
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/margelo/react-native-nitro-zxing.git"
63
+ },
64
+ "author": "Margelo",
65
+ "license": "MIT",
66
+ "bugs": {
67
+ "url": "https://github.com/margelo/react-native-nitro-zxing/issues"
68
+ },
69
+ "homepage": "https://github.com/margelo/react-native-nitro-zxing",
70
+ "publishConfig": {
71
+ "registry": "https://registry.npmjs.org/"
72
+ },
73
+ "devDependencies": {
74
+ "@types/react": "19.2.15",
75
+ "nitrogen": "0.37.0",
76
+ "react": "19.2.3",
77
+ "react-native": "0.85.3",
78
+ "react-native-nitro-image": "0.15.2",
79
+ "react-native-nitro-modules": "0.37.0",
80
+ "react-native-vision-camera": "5.2.3",
81
+ "typescript": "6.0.3"
82
+ },
83
+ "peerDependencies": {
84
+ "react": "*",
85
+ "react-native": "*",
86
+ "react-native-nitro-image": "*",
87
+ "react-native-nitro-modules": "*",
88
+ "react-native-vision-camera": "*"
89
+ },
90
+ "peerDependenciesMeta": {
91
+ "react-native-nitro-modules": {
92
+ "optional": true
93
+ }
94
+ },
95
+ "release-it": {
96
+ "npm": {
97
+ "publish": true
98
+ },
99
+ "git": false,
100
+ "github": {
101
+ "release": false
102
+ },
103
+ "hooks": {
104
+ "before:init": "bun typecheck",
105
+ "after:bump": "bun run build"
106
+ }
107
+ }
108
+ }
@@ -0,0 +1,16 @@
1
+ // https://github.com/react-native-community/cli/blob/main/docs/dependencies.md
2
+
3
+ module.exports = {
4
+ dependency: {
5
+ platforms: {
6
+ /**
7
+ * @type {import('@react-native-community/cli-types').IOSDependencyParams}
8
+ */
9
+ ios: {},
10
+ /**
11
+ * @type {import('@react-native-community/cli-types').AndroidDependencyParams}
12
+ */
13
+ android: {},
14
+ },
15
+ },
16
+ }
package/src/factory.ts ADDED
@@ -0,0 +1,26 @@
1
+ import type { Image } from 'react-native-nitro-image'
2
+ import { NitroModules } from 'react-native-nitro-modules'
3
+ import type { Frame } from 'react-native-vision-camera'
4
+ import type { Barcode } from './specs/Barcode.nitro'
5
+ import type { BarcodeScanner } from './specs/BarcodeScanner.nitro'
6
+ import type {
7
+ BarcodeScannerOptions,
8
+ ZXingBarcodeScannerFactory,
9
+ } from './specs/BarcodeScannerFactory.nitro'
10
+
11
+ const factory = NitroModules.createHybridObject<ZXingBarcodeScannerFactory>(
12
+ 'ZXingBarcodeScannerFactory',
13
+ )
14
+
15
+ /**
16
+ * Create a new {@linkcode BarcodeScanner}.
17
+ *
18
+ * The {@linkcode BarcodeScanner} can be used to
19
+ * scan {@linkcode Barcode}s in a {@linkcode Frame} or
20
+ * an existing {@linkcode Image}.
21
+ */
22
+ export function createBarcodeScanner(
23
+ options: BarcodeScannerOptions,
24
+ ): BarcodeScanner {
25
+ return factory.createBarcodeScanner(options)
26
+ }
package/src/index.ts ADDED
@@ -0,0 +1,9 @@
1
+ export * from './factory'
2
+ export * from './specs/Barcode.nitro'
3
+ export * from './specs/BarcodeFormat'
4
+ export * from './specs/BarcodeScanner.nitro'
5
+ export * from './specs/BarcodeScannerFactory.nitro'
6
+ export * from './specs/BarcodeValueType'
7
+ export * from './specs/Point'
8
+ export * from './specs/Rect'
9
+ export * from './useBarcodeScanner'
@@ -0,0 +1,70 @@
1
+ import type { Image } from 'react-native-nitro-image'
2
+ import type { HybridObject } from 'react-native-nitro-modules'
3
+ import type { Frame } from 'react-native-vision-camera'
4
+ import type { createBarcodeScanner } from '../factory'
5
+ import type { BarcodeFormat } from './BarcodeFormat'
6
+ import type { BarcodeScanner } from './BarcodeScanner.nitro'
7
+ import type { BarcodeValueType } from './BarcodeValueType'
8
+ import type { Point } from './Point'
9
+ import type { Rect } from './Rect'
10
+
11
+ /**
12
+ * Represents a single detected Barcode.
13
+ *
14
+ * A {@linkcode Barcode} is produced via the
15
+ * {@linkcode BarcodeScanner} (see
16
+ * {@linkcode createBarcodeScanner | createBarcodeScanner(...)}).
17
+ *
18
+ * See {@linkcode BarcodeScanner.scanCodes | BarcodeScanner.scanCodes(...)}
19
+ * and {@linkcode BarcodeScanner.scanCodesInImageAsync | BarcodeScanner.scanCodesInImageAsync(...)}
20
+ * for information about Barcode coordinate systems.
21
+ *
22
+ * @example
23
+ * ```ts
24
+ * const barcode = ...
25
+ * console.log(`Barcode value: ${barcode.rawValue}`)
26
+ * ```
27
+ */
28
+ export interface Barcode
29
+ extends HybridObject<{
30
+ ios: 'c++'
31
+ android: 'c++'
32
+ }> {
33
+ /**
34
+ * Get the format of this {@linkcode Barcode}.
35
+ * @see {@linkcode BarcodeFormat}
36
+ */
37
+ readonly format: BarcodeFormat
38
+
39
+ /**
40
+ * Get the {@linkcode Barcode}'s bounding box.
41
+ *
42
+ * The coordinates are relative to the input {@linkcode Frame}
43
+ * or {@linkcode Image}.
44
+ */
45
+ readonly boundingBox: Rect
46
+ /**
47
+ * Get the {@linkcode Barcode}'s corner points.
48
+ *
49
+ * The coordinates are relative to the input {@linkcode Frame}
50
+ * or {@linkcode Image}.
51
+ */
52
+ readonly cornerPoints: Point[]
53
+ /**
54
+ * Get the {@linkcode Barcode}'s value in a user-friendly format.
55
+ */
56
+ readonly displayValue: string | undefined
57
+ /**
58
+ * Get the {@linkcode Barcode}'s value in raw bytes.
59
+ */
60
+ readonly rawBytes: ArrayBuffer | undefined
61
+ /**
62
+ * Get the {@linkcode Barcode}'s raw value as a string.
63
+ */
64
+ readonly rawValue: string | undefined
65
+ /**
66
+ * Get the {@linkcode Barcode}'s value's type.
67
+ * @see {@linkcode BarcodeValueType}
68
+ */
69
+ readonly valueType: BarcodeValueType
70
+ }
@@ -0,0 +1,31 @@
1
+ import type { Barcode } from './Barcode.nitro'
2
+ import type { BarcodeScanner } from './BarcodeScanner.nitro'
3
+
4
+ /**
5
+ * Represents a detected {@linkcode Barcode}'s format, or
6
+ * `'unknown'` if the format of a scanned Barcode could not be
7
+ * determined.
8
+ */
9
+ export type BarcodeFormat =
10
+ | 'unknown'
11
+ | 'code-128'
12
+ | 'code-39'
13
+ | 'code-93'
14
+ | 'codabar'
15
+ | 'data-matrix'
16
+ | 'ean-13'
17
+ | 'ean-8'
18
+ | 'itf'
19
+ | 'qr-code'
20
+ | 'upc-a'
21
+ | 'upc-e'
22
+ | 'pdf-417'
23
+ | 'aztec'
24
+
25
+ /**
26
+ * Represents a target {@linkcode BarcodeFormat} that the {@linkcode BarcodeScanner}
27
+ * can be configured to scan for, or `'all-formats'` to scan for every supported format.
28
+ */
29
+ export type TargetBarcodeFormat =
30
+ | Exclude<BarcodeFormat, 'unknown'>
31
+ | 'all-formats'
@@ -0,0 +1,91 @@
1
+ import type { Image } from 'react-native-nitro-image'
2
+ import type { HybridObject } from 'react-native-nitro-modules'
3
+ import type { Frame, PreviewViewMethods } from 'react-native-vision-camera'
4
+ import type { createBarcodeScanner } from '../factory'
5
+ import type { useBarcodeScanner } from '../useBarcodeScanner'
6
+ import type { Barcode } from './Barcode.nitro'
7
+
8
+ /**
9
+ * Represents a Barcode Scanner that uses ZXing (zxing-cpp).
10
+ *
11
+ * The {@linkcode BarcodeScanner} can be used in a
12
+ * Frame Processor by calling {@linkcode BarcodeScanner.scanCodes | scanCodes(...)},
13
+ * or for static images by calling
14
+ * {@linkcode BarcodeScanner.scanCodesInImageAsync | scanCodesInImageAsync(...)}.
15
+ *
16
+ * @see {@linkcode useBarcodeScanner | useBarcodeScanner(...)}
17
+ * @see {@linkcode createBarcodeScanner | createBarcodeScanner(...)}
18
+ */
19
+ export interface BarcodeScanner
20
+ extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
21
+ /**
22
+ * Synchronously detects {@linkcode Barcode}s in the
23
+ * given {@linkcode Frame}.
24
+ *
25
+ * All coordinates in the {@linkcode Barcode} are
26
+ * relative to the {@linkcode Frame}'s coordinate system.
27
+ *
28
+ * You can convert {@linkcode Barcode} coordinates to Camera coordinates using
29
+ * {@linkcode Frame.convertFramePointToCameraPoint | Frame.convertFramePointToCameraPoint(...)},
30
+ * and then convert the Camera coordinates to Preview View coordinates using
31
+ * {@linkcode PreviewViewMethods.convertCameraPointToViewPoint | PreviewViewMethods.convertCameraPointToViewPoint(...)}.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const scanner = // ...
36
+ * const frame = // ...
37
+ * const previewView = // ...
38
+ *
39
+ * const barcodes = scanner.scanCodes(frame)
40
+ * for (const barcode of barcodes) {
41
+ * console.log('Barcode value:', barcode.rawValue)
42
+ * for (const point of barcode.cornerPoints) {
43
+ * const cameraPoint = frame.convertFramePointToCameraPoint(point)
44
+ * const previewPoint = previewView.convertCameraPointToViewPoint(cameraPoint)
45
+ * console.log('Corner Point:', previewPoint)
46
+ * }
47
+ * }
48
+ * ```
49
+ */
50
+ scanCodes(frame: Frame): Barcode[]
51
+ /**
52
+ * Asynchronously detects {@linkcode Barcode}s in the
53
+ * given {@linkcode Frame}.
54
+ *
55
+ * The Frame must remain valid until the returned Promise settles. Do not
56
+ * call {@linkcode Frame.dispose | Frame.dispose()} before awaiting it.
57
+ *
58
+ * @see {@linkcode scanCodes}
59
+ */
60
+ scanCodesAsync(frame: Frame): Promise<Barcode[]>
61
+
62
+ /**
63
+ * Asynchronously detects {@linkcode Barcode}s in the
64
+ * given {@linkcode Image}.
65
+ *
66
+ * This can be used to scan codes in an existing still image, such as
67
+ * an image loaded from disk, bundled resources or a URL via
68
+ * `react-native-nitro-image`.
69
+ *
70
+ * All coordinates in the returned {@linkcode Barcode}s are relative
71
+ * to the given {@linkcode Image}'s coordinate system.
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * import { loadImage } from 'react-native-nitro-image'
76
+ * import { createBarcodeScanner } from 'react-native-nitro-zxing'
77
+ *
78
+ * const image = await loadImage({ url: 'https://example.com/barcode.png' })
79
+ * const scanner = createBarcodeScanner({ barcodeFormats: ['all-formats'] })
80
+ *
81
+ * try {
82
+ * const barcodes = await scanner.scanCodesInImageAsync(image)
83
+ * console.log('Barcode value:', barcodes[0]?.rawValue)
84
+ * } finally {
85
+ * image.dispose()
86
+ * scanner.dispose()
87
+ * }
88
+ * ```
89
+ */
90
+ scanCodesInImageAsync(image: Image): Promise<Barcode[]>
91
+ }
@@ -0,0 +1,27 @@
1
+ import type { HybridObject } from 'react-native-nitro-modules'
2
+ import type { TargetBarcodeFormat } from './BarcodeFormat'
3
+ import type { BarcodeScanner } from './BarcodeScanner.nitro'
4
+
5
+ export interface BarcodeScannerOptions {
6
+ /**
7
+ * Specifies the formats to be used for Barcode
8
+ * scanning.
9
+ *
10
+ * If you want to detect all kinds of barcodes,
11
+ * use {@linkcode TargetBarcodeFormat | ['all-formats']}
12
+ */
13
+ barcodeFormats: TargetBarcodeFormat[]
14
+ }
15
+
16
+ export interface ZXingBarcodeScannerFactory
17
+ extends HybridObject<{ ios: 'c++'; android: 'c++' }> {
18
+ /**
19
+ * Create a new {@linkcode BarcodeScanner}.
20
+ */
21
+ createBarcodeScanner(options: BarcodeScannerOptions): BarcodeScanner
22
+ }
23
+
24
+ /**
25
+ * Alias of {@linkcode ZXingBarcodeScannerFactory}.
26
+ */
27
+ export type BarcodeScannerFactory = ZXingBarcodeScannerFactory
@@ -0,0 +1,25 @@
1
+ import type { Barcode } from './Barcode.nitro'
2
+ import type { BarcodeFormat } from './BarcodeFormat'
3
+
4
+ /**
5
+ * Represents the semantic type of data encoded in a {@linkcode Barcode} - e.g.
6
+ * a URL, a phone number, or a WiFi config - or `'unknown'` if the content type
7
+ * could not be classified.
8
+ *
9
+ * This describes **what** the barcode's content represents, not the barcode's
10
+ * visual format (see {@linkcode BarcodeFormat}).
11
+ */
12
+ export type BarcodeValueType =
13
+ | 'unknown'
14
+ | 'contact-info'
15
+ | 'email'
16
+ | 'isbn'
17
+ | 'phone'
18
+ | 'product'
19
+ | 'sms'
20
+ | 'text'
21
+ | 'url'
22
+ | 'wifi'
23
+ | 'geo'
24
+ | 'calendar-event'
25
+ | 'driver-license'
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Represents a Point in the current context's
3
+ * coordinate system.
4
+ */
5
+ export interface Point {
6
+ /**
7
+ * The X coordinate of the Point.
8
+ */
9
+ x: number
10
+ /**
11
+ * The Y coordinate of the Point.
12
+ */
13
+ y: number
14
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Represents a Rectangle in the current context's
3
+ * coordinate system.
4
+ */
5
+ export interface Rect {
6
+ /**
7
+ * The left value (min X) of the Rectangle.
8
+ */
9
+ left: number
10
+ /**
11
+ * The right value (max X) of the Rectangle.
12
+ */
13
+ right: number
14
+ /**
15
+ * The top value (min Y) of the Rectangle.
16
+ */
17
+ top: number
18
+ /**
19
+ * The bottom value (max Y) of the Rectangle.
20
+ */
21
+ bottom: number
22
+ }