@scandit/web-datacapture-core 8.1.1 → 8.2.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 (273) hide show
  1. package/build/js/Camera.js +1 -1
  2. package/build/js/{DataCaptureContext-fzPdCXUX.d.ts → DataCaptureContext-Dvdr7st4.d.ts} +322 -214
  3. package/build/js/DataCaptureContext.d.ts +7 -7
  4. package/build/js/DataCaptureContext.js +1 -1
  5. package/build/js/DataCaptureContextRelated.d.ts +9 -9
  6. package/build/js/DataCaptureVersion.js +1 -1
  7. package/build/js/DataCaptureView.d.ts +7 -7
  8. package/build/js/DataCaptureView.js +1 -1
  9. package/build/js/Feedback.js +1 -1
  10. package/build/js/FrameData.d.ts +8 -8
  11. package/build/js/FrameData.js +1 -1
  12. package/build/js/ImageFrameSource.js +1 -1
  13. package/build/js/NotificationPresenter/index.d.ts +4 -4
  14. package/build/js/NotificationPresenter/private/ConcreteNotificationPresenter.d.ts +4 -4
  15. package/build/js/NotificationPresenter/private/presets.d.ts +8 -8
  16. package/build/js/ScanditIcon.d.ts +1 -1
  17. package/build/js/ScanditIcon.js +1 -1
  18. package/build/js/ScanditIconBuilder.d.ts +2 -1
  19. package/build/js/ScanditIconBuilder.js +1 -1
  20. package/build/js/Vibration.js +1 -1
  21. package/build/js/browserHelper.d.ts +27 -1
  22. package/build/js/browserHelper.js +1 -1
  23. package/build/js/chunks/chunk-24MGHMOY.js +1 -0
  24. package/build/js/chunks/chunk-3A7LM5JG.js +1 -0
  25. package/build/js/chunks/chunk-3MKSI2DV.js +1 -0
  26. package/build/js/chunks/{chunk-G2KEAB3J.js → chunk-4J3Y5IIL.js} +1 -1
  27. package/build/js/chunks/chunk-6EEMWSEO.js +1 -0
  28. package/build/js/chunks/{chunk-J6LCRGZO.js → chunk-7HYFN4JO.js} +1 -1
  29. package/build/js/chunks/{chunk-O7QIRKOP.js → chunk-7OFC24NE.js} +1 -1
  30. package/build/js/chunks/chunk-A225YZFY.js +2 -0
  31. package/build/js/chunks/chunk-AAEQZ45T.js +1 -0
  32. package/build/js/chunks/chunk-ACF5LYP7.js +1 -0
  33. package/build/js/chunks/chunk-BBOKPRKO.js +2 -0
  34. package/build/js/chunks/chunk-CAUB35PV.js +1 -0
  35. package/build/js/chunks/chunk-CX2R2XQK.js +1 -0
  36. package/build/js/chunks/chunk-DGIQ3GF7.js +1 -0
  37. package/build/js/chunks/chunk-DN32UPQC.js +1 -0
  38. package/build/js/chunks/chunk-DSFN65OM.js +1 -0
  39. package/build/js/chunks/{chunk-EC74ZSTB.js → chunk-DTREAYZQ.js} +1 -1
  40. package/build/js/chunks/chunk-DZKTI5AJ.js +1 -0
  41. package/build/js/chunks/chunk-ECPEKYII.js +1 -0
  42. package/build/js/chunks/chunk-EMLXDXWN.js +1 -0
  43. package/build/js/chunks/chunk-FQYVZGCE.js +1 -0
  44. package/build/js/chunks/chunk-GLSB4QTY.js +1 -0
  45. package/build/js/chunks/chunk-GQ7A6533.js +1 -0
  46. package/build/js/chunks/chunk-I4F6XB6S.js +1 -0
  47. package/build/js/chunks/chunk-JCP7NQPV.js +1 -0
  48. package/build/js/chunks/chunk-JIGCOX5J.js +1 -0
  49. package/build/js/chunks/{chunk-4F5JUHOJ.js → chunk-KSCFPJAW.js} +1 -1
  50. package/build/js/chunks/chunk-KXAJHLEO.js +1 -0
  51. package/build/js/chunks/{chunk-UN33F7AA.js → chunk-MX6NS4FA.js} +1 -1
  52. package/build/js/chunks/chunk-NT5WI2PS.js +1 -0
  53. package/build/js/chunks/{chunk-Q45KFJIS.js → chunk-NXAYIU7F.js} +1 -1
  54. package/build/js/chunks/{chunk-4FMQAH4G.js → chunk-NXW6JP4X.js} +1 -1
  55. package/build/js/chunks/{chunk-24IG7HUA.js → chunk-O4HDBWKK.js} +1 -1
  56. package/build/js/chunks/chunk-O7EM4VIM.js +1 -0
  57. package/build/js/chunks/chunk-OFNPZ4HM.js +6 -0
  58. package/build/js/chunks/chunk-PM5CNTBV.js +1 -0
  59. package/build/js/chunks/chunk-QFSNPY5Y.js +1 -0
  60. package/build/js/chunks/{chunk-3LVMEVOI.js → chunk-QIWPWOQG.js} +1 -1
  61. package/build/js/chunks/chunk-QPR2YHD4.js +1 -0
  62. package/build/js/chunks/chunk-QUBJJDLC.js +1 -0
  63. package/build/js/chunks/{chunk-BIJB4K7G.js → chunk-QUWP3ILW.js} +1 -1
  64. package/build/js/chunks/{chunk-D6JKW7G4.js → chunk-RP4YFAF2.js} +1 -1
  65. package/build/js/chunks/chunk-SFS4ELLN.js +1 -0
  66. package/build/js/chunks/chunk-SYGWA3T6.js +35 -0
  67. package/build/js/chunks/chunk-TTGJAMI2.js +1 -0
  68. package/build/js/chunks/{chunk-523EQN4Z.js → chunk-U7ETOWGJ.js} +1 -1
  69. package/build/js/chunks/{chunk-X2ZGBI4S.js → chunk-UERKPMRV.js} +1 -1
  70. package/build/js/chunks/{chunk-2OCDIZIS.js → chunk-UQVVJP5Z.js} +1 -1
  71. package/build/js/chunks/{chunk-RHMGLXJ3.js → chunk-V2OKMBZD.js} +1 -1
  72. package/build/js/chunks/{chunk-TXVFFRVY.js → chunk-VJ7ZYB4V.js} +1 -1
  73. package/build/js/chunks/chunk-VSROWPI6.js +1 -0
  74. package/build/js/chunks/chunk-W33RVR5M.js +1 -0
  75. package/build/js/chunks/{chunk-L7WVCDGR.js → chunk-WVVNJRUA.js} +1 -1
  76. package/build/js/chunks/chunk-XG6VNDVQ.js +1 -0
  77. package/build/js/chunks/{chunk-4JH6EEAE.js → chunk-XIAF6V7E.js} +1 -1
  78. package/build/js/chunks/{chunk-C657OBED.js → chunk-XYZYNUX3.js} +1 -1
  79. package/build/js/chunks/chunk-Y7V35LNT.js +1 -0
  80. package/build/js/chunks/{chunk-LORGLY2X.js → chunk-YE2GYNRP.js} +1 -1
  81. package/build/js/chunks/chunk-ZWO2PAO7.js +1 -0
  82. package/build/js/controls/CameraFOVSwitchControl.d.ts +8 -8
  83. package/build/js/controls/CameraFOVSwitchControl.js +1 -1
  84. package/build/js/controls/CameraSwitchControl.d.ts +8 -8
  85. package/build/js/controls/CameraSwitchControl.js +1 -1
  86. package/build/js/controls/TorchSwitchControl.d.ts +8 -8
  87. package/build/js/controls/TorchSwitchControl.js +1 -1
  88. package/build/js/controls/common.d.ts +8 -8
  89. package/build/js/controls/index.d.ts +8 -8
  90. package/build/js/controls/index.js +1 -1
  91. package/build/js/defaults/DefaultsCamera.d.ts +30 -0
  92. package/build/js/defaults/DefaultsDataCaptureView.js +1 -1
  93. package/build/js/index.d.ts +15 -15
  94. package/build/js/index.js +1 -1
  95. package/build/js/moduleLoader.d.ts +8 -8
  96. package/build/js/private/CameraAccess.js +1 -1
  97. package/build/js/private/CameraManager.d.ts +10 -10
  98. package/build/js/private/CameraManager.js +1 -1
  99. package/build/js/private/CameraPool.d.ts +7 -7
  100. package/build/js/private/CanvasDrawer.d.ts +1 -1
  101. package/build/js/private/CanvasDrawer.js +1 -1
  102. package/build/js/private/CanvasDrawerWithMetrics.d.ts +21 -13
  103. package/build/js/private/CanvasDrawerWithMetrics.js +1 -1
  104. package/build/js/private/CoreModuleLicenseTextProvider.d.ts +8 -8
  105. package/build/js/private/CoreModuleLicenseTextProvider.js +1 -1
  106. package/build/js/private/CustomLocationsView.js +1 -1
  107. package/build/js/private/DataCaptureContextRelated.d.ts +8 -8
  108. package/build/js/private/FrameReaders/FrameReader.d.ts +8 -8
  109. package/build/js/private/FrameReaders/FrameReader.js +1 -1
  110. package/build/js/private/FrameReaders/FrameReaderAbstract.d.ts +8 -8
  111. package/build/js/private/FrameReaders/GrayScaleFrameReader.d.ts +8 -8
  112. package/build/js/private/FrameReaders/GrayScaleFrameReader.js +1 -1
  113. package/build/js/private/FrameReaders/index.d.ts +8 -8
  114. package/build/js/private/FrameReaders/index.js +1 -1
  115. package/build/js/private/GestureRecognizer/GestureRecognizer.js +1 -1
  116. package/build/js/private/GestureRecognizer/PointerEventsDetector.d.ts +1 -1
  117. package/build/js/private/GestureRecognizer/PointerEventsDetector.js +1 -1
  118. package/build/js/private/GestureRecognizer/index.js +1 -1
  119. package/build/js/private/ImageConverterBase.d.ts +2 -1
  120. package/build/js/private/ImageConverterBase.js +1 -1
  121. package/build/js/private/ImageConverterMainThread.js +1 -1
  122. package/build/js/private/NormalizedModuleLoaderOptions.d.ts +8 -8
  123. package/build/js/private/OrientationObserver.js +1 -1
  124. package/build/js/private/SingleImageUploaderView.d.ts +35 -0
  125. package/build/js/private/SingleImageUploaderView.js +1 -1
  126. package/build/js/private/ViewControls+related.js +1 -1
  127. package/build/js/private/ViewControls_related.d.ts +8 -8
  128. package/build/js/private/ViewsRegistry.d.ts +8 -8
  129. package/build/js/private/djinni-types/index.d.ts +10 -1
  130. package/build/js/private/djinni-types/index.js +1 -1
  131. package/build/js/private/hybridDesktopPlatformHelpers.js +1 -1
  132. package/build/js/private/ui/atoms/AimerSvgIcon.js +1 -1
  133. package/build/js/private/ui/atoms/ArrowDownSvgIcon.js +1 -1
  134. package/build/js/private/ui/atoms/ArrowLeftSvgIcon.js +1 -1
  135. package/build/js/private/ui/atoms/ArrowRightSvgIcon.js +1 -1
  136. package/build/js/private/ui/atoms/ArrowUpSvgIcon.js +1 -1
  137. package/build/js/private/ui/atoms/ArrowsUp.js +1 -1
  138. package/build/js/private/ui/atoms/Backdrop.d.ts +1 -1
  139. package/build/js/private/ui/atoms/Backdrop.js +1 -1
  140. package/build/js/private/ui/atoms/CalendarExclamationMarkSvgIcon.js +1 -1
  141. package/build/js/private/ui/atoms/CameraFOVUltrawideSvgIcon.js +1 -1
  142. package/build/js/private/ui/atoms/CameraFOVWideSvgIcon.js +1 -1
  143. package/build/js/private/ui/atoms/CameraSwitchReverseSvgIcon.js +1 -1
  144. package/build/js/private/ui/atoms/CameraSwitchSvgIcon.js +1 -1
  145. package/build/js/private/ui/atoms/Card.js +1 -1
  146. package/build/js/private/ui/atoms/CardList.js +1 -1
  147. package/build/js/private/ui/atoms/CheckSvgIcon.js +1 -1
  148. package/build/js/private/ui/atoms/ChevronDownSvgIcon.js +1 -1
  149. package/build/js/private/ui/atoms/ChevronLeftSvgIcon.js +1 -1
  150. package/build/js/private/ui/atoms/ChevronRightSvgIcon.js +1 -1
  151. package/build/js/private/ui/atoms/ChevronUpSvgIcon.js +1 -1
  152. package/build/js/private/ui/atoms/CrossSvgIcon.js +1 -1
  153. package/build/js/private/ui/atoms/DeleteSvgIcon.js +1 -1
  154. package/build/js/private/ui/atoms/Dot5xSvgIcon.js +1 -1
  155. package/build/js/private/ui/atoms/ExclamationMarkSvgIcon.js +1 -1
  156. package/build/js/private/ui/atoms/GlassSvgIcon.d.ts +1 -1
  157. package/build/js/private/ui/atoms/GlassSvgIcon.js +1 -1
  158. package/build/js/private/ui/atoms/HandLensCheckSvgIcon.js +1 -1
  159. package/build/js/private/ui/atoms/KeyboardSvgIcon.js +1 -1
  160. package/build/js/private/ui/atoms/LowStockSvgIcon.js +1 -1
  161. package/build/js/private/ui/atoms/OnexSvgIcon.js +1 -1
  162. package/build/js/private/ui/atoms/PauseSvgIcon.d.ts +17 -0
  163. package/build/js/private/ui/atoms/PauseSvgIcon.js +1 -0
  164. package/build/js/private/ui/atoms/PrinterSvgIcon.js +1 -1
  165. package/build/js/private/ui/atoms/ProgressBar.js +1 -1
  166. package/build/js/private/ui/atoms/QuestionMarkSvgIcon.d.ts +1 -1
  167. package/build/js/private/ui/atoms/QuestionMarkSvgIcon.js +1 -1
  168. package/build/js/private/ui/atoms/RestartSvgIcon.js +1 -1
  169. package/build/js/private/ui/atoms/RoundedCheckSvgIcon.js +1 -1
  170. package/build/js/private/ui/atoms/RoundedCrossSvgIcon.js +1 -1
  171. package/build/js/private/ui/atoms/RoundedExclamationMarkSvgIcon.js +1 -1
  172. package/build/js/private/ui/atoms/ScanSvgIcon.d.ts +17 -0
  173. package/build/js/private/ui/atoms/ScanSvgIcon.js +1 -0
  174. package/build/js/private/ui/atoms/ShutterButton.js +1 -1
  175. package/build/js/private/ui/atoms/SlashSvgIcon.js +1 -1
  176. package/build/js/private/ui/atoms/StarFilledSvgIcon.js +1 -1
  177. package/build/js/private/ui/atoms/StarHalfFilledSvgIcon.js +1 -1
  178. package/build/js/private/ui/atoms/StarOutlinedSvgIcon.js +1 -1
  179. package/build/js/private/ui/atoms/SvgIcon.d.ts +1 -0
  180. package/build/js/private/ui/atoms/SvgIcon.js +1 -1
  181. package/build/js/private/ui/atoms/ToPickSvgIcon.js +1 -1
  182. package/build/js/private/ui/atoms/Toast.d.ts +11 -16
  183. package/build/js/private/ui/atoms/Toast.js +1 -1
  184. package/build/js/private/ui/atoms/TorchOffSvgIcon.js +1 -1
  185. package/build/js/private/ui/atoms/TorchOnSvgIcon.js +1 -1
  186. package/build/js/private/ui/atoms/TwoxSvgIcon.js +1 -1
  187. package/build/js/private/ui/atoms/WrongItemSvgIcon.js +1 -1
  188. package/build/js/private/ui/colors.d.ts +5 -1
  189. package/build/js/private/ui/colors.js +1 -1
  190. package/build/js/private/ui/molecules/CameraFOVSwitchButton.js +1 -1
  191. package/build/js/private/ui/molecules/CameraSwitchButton.js +1 -1
  192. package/build/js/private/ui/molecules/ControlsLayout.js +1 -1
  193. package/build/js/private/ui/molecules/HintPresenter.d.ts +7 -7
  194. package/build/js/private/ui/molecules/HintPresenter.js +1 -1
  195. package/build/js/private/ui/molecules/LoadingOverlay.js +1 -1
  196. package/build/js/private/ui/molecules/TorchSwitchIconButton.js +1 -1
  197. package/build/js/private/utils/cookieStore.d.ts +18 -0
  198. package/build/js/private/utils/cookieStore.js +1 -0
  199. package/build/js/private/utils/cookieStorePolyfill.d.ts +43 -0
  200. package/build/js/private/utils/cookieStorePolyfill.js +1 -0
  201. package/build/js/private/utils/fromGrayScaleToRgba.d.ts +12 -0
  202. package/build/js/private/utils/fromGrayScaleToRgba.js +1 -0
  203. package/build/js/private/utils/getTimestamp.d.ts +9 -0
  204. package/build/js/private/utils/getTimestamp.js +1 -0
  205. package/build/js/private/utils/globalThisPolyfill.d.ts +2 -2
  206. package/build/js/private/utils/globalThisPolyfill.js +1 -1
  207. package/build/js/private/utils/index.d.ts +1 -0
  208. package/build/js/private/utils/index.js +1 -1
  209. package/build/js/private/utils/polyfillLoader.d.ts +2 -0
  210. package/build/js/private/utils/polyfillLoader.js +1 -1
  211. package/build/js/private/utils/replaceImagesInViewUtils.d.ts +8 -8
  212. package/build/js/private/utils/safeRequestAnimationFrame.d.ts +23 -0
  213. package/build/js/private/utils/safeRequestAnimationFrame.js +1 -0
  214. package/build/js/private/utils/safeStorage.d.ts +4 -3
  215. package/build/js/private/utils/safeStorage.js +1 -1
  216. package/build/js/private/utils/warnMultithreadingUnavailable.js +1 -1
  217. package/build/js/worker/ImageConverterForwarder.d.ts +10 -9
  218. package/build/js/worker/ImageConverterForwarder.js +1 -1
  219. package/build/js/worker/ImageConverterWorker.js +1 -1
  220. package/build/js/worker/ViewInfoHelper.d.ts +47 -0
  221. package/build/js/worker/ViewInfoHelper.js +1 -0
  222. package/build/js/worker/WorkerMain.d.ts +8 -8
  223. package/build/js/worker/WorkerMain.js +1 -1
  224. package/build/js/worker/coreCapture.inlineWorker.d.ts +8 -8
  225. package/build/js/worker/coreCapture.inlineWorker.js +1 -1
  226. package/build/js/worker/dataCaptureEngine.d.ts +7 -7
  227. package/build/js/worker/dataCaptureEngine.js +1 -1
  228. package/build/js/worker/dataCaptureLoader.d.ts +9 -9
  229. package/build/js/worker/dataCaptureLoader.js +1 -1
  230. package/build/js/worker/dataCaptureWorkerRelated.d.ts +7 -7
  231. package/build/js/worker/dataCaptureWorkerRelated.js +1 -1
  232. package/build/js/worker/helperFs.d.ts +11 -1
  233. package/build/js/worker/helperFs.js +1 -1
  234. package/build/js/worker/index.d.ts +8 -8
  235. package/build/js/worker/index.js +1 -1
  236. package/package.json +4 -6
  237. package/build/js/chunks/chunk-457L5N2F.js +0 -1
  238. package/build/js/chunks/chunk-4GKVQAVF.js +0 -1
  239. package/build/js/chunks/chunk-4QDO6ZMC.js +0 -35
  240. package/build/js/chunks/chunk-4ZAHOKYN.js +0 -1
  241. package/build/js/chunks/chunk-56CY5YB3.js +0 -1
  242. package/build/js/chunks/chunk-5IGOKD23.js +0 -1
  243. package/build/js/chunks/chunk-5JAPQHXF.js +0 -1
  244. package/build/js/chunks/chunk-AFCJ24Y3.js +0 -1
  245. package/build/js/chunks/chunk-C3EY6I75.js +0 -2
  246. package/build/js/chunks/chunk-DMOXDUF6.js +0 -1
  247. package/build/js/chunks/chunk-DZKZ6RMW.js +0 -1
  248. package/build/js/chunks/chunk-F2IJCZAS.js +0 -1
  249. package/build/js/chunks/chunk-F6TT5US7.js +0 -1
  250. package/build/js/chunks/chunk-FPCUMIQC.js +0 -1
  251. package/build/js/chunks/chunk-GHDJPETZ.js +0 -1
  252. package/build/js/chunks/chunk-HMOFGW5O.js +0 -1
  253. package/build/js/chunks/chunk-JKKB2J3F.js +0 -1
  254. package/build/js/chunks/chunk-JVZGAWFX.js +0 -1
  255. package/build/js/chunks/chunk-MBL5Q2H2.js +0 -1
  256. package/build/js/chunks/chunk-MKTACV3Q.js +0 -1
  257. package/build/js/chunks/chunk-NDQQHCZN.js +0 -1
  258. package/build/js/chunks/chunk-PA2BMEFD.js +0 -1
  259. package/build/js/chunks/chunk-SOCEWYYO.js +0 -1
  260. package/build/js/chunks/chunk-SVJ6BU5X.js +0 -1
  261. package/build/js/chunks/chunk-TU44BW74.js +0 -1
  262. package/build/js/chunks/chunk-U273RPMS.js +0 -6
  263. package/build/js/chunks/chunk-V6RG452U.js +0 -1
  264. package/build/js/chunks/chunk-VBUDN72N.js +0 -2
  265. package/build/js/chunks/chunk-WL2XKPJD.js +0 -1
  266. package/build/js/chunks/chunk-XINFYUZW.js +0 -1
  267. package/build/js/chunks/chunk-XLRKXFUR.js +0 -0
  268. package/build/js/chunks/chunk-YPAFWBL4.js +0 -1
  269. package/build/js/chunks/chunk-YRQ34YNY.js +0 -1
  270. package/build/js/chunks/chunk-ZDSGG7SD.js +0 -1
  271. package/build/js/chunks/chunk-ZEBGTTCX.js +0 -1
  272. /package/build/js/chunks/{chunk-3CXYB36D.js → chunk-TU2LKPHV.js} +0 -0
  273. /package/build/js/chunks/{chunk-ATTDETQP.js → chunk-VFOSFLTM.js} +0 -0
@@ -1,15 +1,15 @@
1
1
  /// <reference types="emscripten" />
2
2
  import { a as Camera, D as DeviceCamera, l as CameraSettings, b as CameraPosition, g as FrameSource, f as FrameSourceJSON } from './Camera-DhGjpcjv.js';
3
3
  import { DataCaptureContextSettingsJSON, DataCaptureContextSettings } from './DataCaptureContextSettings.js';
4
- import { MarginsWithUnitJSON, MarginsWithUnit } from './commons/MarginsWithUnit.js';
5
- import { PointWithUnitJSON, PointWithUnit } from './commons/PointWithUnit.js';
4
+ import { LogoStyle, FocusGestureJSON, ZoomGestureJSON, FocusGesture, ZoomGesture } from './DataCaptureViewPlusRelated.js';
5
+ import { NotificationPresenter } from './NotificationPresenter/NotificationPresenter.js';
6
6
  import { Anchor } from './commons/Anchor.js';
7
+ import { MarginsWithUnitJSON, MarginsWithUnit } from './commons/MarginsWithUnit.js';
7
8
  import { Orientation } from './commons/Orientation.js';
8
9
  import { Point, PointJSON } from './commons/Point.js';
10
+ import { PointWithUnitJSON, PointWithUnit } from './commons/PointWithUnit.js';
9
11
  import { Quadrilateral } from './commons/Quadrilateral.js';
10
12
  import { Size } from './commons/Size.js';
11
- import { LogoStyle, FocusGestureJSON, ZoomGestureJSON, FocusGesture, ZoomGesture } from './DataCaptureViewPlusRelated.js';
12
- import { NotificationPresenter } from './NotificationPresenter/NotificationPresenter.js';
13
13
  import { Serializable } from './private/Serializable.js';
14
14
  import { DidTapCustomLocationsViewListener, StateToRender, StateToRenderDomView } from './private/CustomLocationsView.js';
15
15
  import { nativeHandle } from './private/nativeHandle.js';
@@ -27,21 +27,6 @@ import { HTMLElementStateJSON } from './private/HtmlElementState.js';
27
27
  import { AsyncStateMachine } from './private/utils/AsyncStateMachine.js';
28
28
  import { Optional, MethodSignature } from './tsHelper.js';
29
29
 
30
- type ControlType = "camera-fov" | "camera" | "shutter" | "torch";
31
- interface SerializedControl {
32
- type: ControlType;
33
- }
34
- interface PrivateBaseControl {
35
- install: (view: DataCaptureView$1) => Promise<boolean>;
36
- remove: (definitiveRemoval?: boolean) => void;
37
- update?: (view: DataCaptureView$1) => void;
38
- }
39
- interface Control extends Serializable<SerializedControl> {
40
- }
41
- interface PrivateControl extends Control, PrivateBaseControl {
42
- view: DataCaptureView$1 | null;
43
- }
44
-
45
30
  interface DataCaptureOverlay extends Serializable {
46
31
  [nativeHandle]?: {
47
32
  className: string;
@@ -84,6 +69,7 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
84
69
  private singleImageUploaderPaintboardElement?;
85
70
  private frameSourceListener;
86
71
  private _previewCamera;
72
+ private isConnected;
87
73
  private get videoElement();
88
74
  private visibilityListener;
89
75
  private cameraRecoveryListener;
@@ -109,7 +95,7 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
109
95
  private onOrientationChangeListener;
110
96
  private hintPresenter;
111
97
  private onHintPresenterUpdateHandler;
112
- private onBeforeShowToastsHandler;
98
+ private onViewFinderUpdateRequestedHandler;
113
99
  private onWorkerMessageHandler;
114
100
  private localizationSubscription?;
115
101
  private htmlElementDidChangeHandler;
@@ -165,6 +151,8 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
165
151
  getNotificationPresenter(): NotificationPresenter;
166
152
  private removeStyles;
167
153
  private onHintPresenterUpdate;
154
+ /** Called when the hint presenter requests the viewfinder rect. */
155
+ private onViewFinderUpdateRequested;
168
156
  private clearHtmlElementContent;
169
157
  private setupHtmlElement;
170
158
  private setupHtmlElementSingleImageUploader;
@@ -176,7 +164,11 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
176
164
  private handleVideoDisplay;
177
165
  private isCanvasDrawerWithMetrics;
178
166
  private onWorkerMessage;
179
- private onBeforeShowToasts;
167
+ /**
168
+ * Called when the view size has changed and SDC has recalculated everything, including the viewfinder rect.
169
+ */
170
+ private onSDCViewSizeChangedCallback;
171
+ private updateHintPresenterViewFinderRect;
180
172
  private drawEngineCommands;
181
173
  private displayError;
182
174
  private clearError;
@@ -192,24 +184,19 @@ declare class DataCaptureView$1 implements Serializable<DataCaptureViewJSON> {
192
184
  private unfreezeFrame;
193
185
  }
194
186
 
195
- interface FrameData {
196
- readonly width: number;
197
- readonly height: number;
198
- readonly isFrameSourceMirrored: boolean;
199
- toBlob(type?: string, quality?: number): Promise<Blob | null>;
200
- getData(): Promise<Uint8ClampedArray | null>;
187
+ type ControlType = "camera-fov" | "camera" | "shutter" | "torch";
188
+ interface SerializedControl {
189
+ type: ControlType;
201
190
  }
202
- type PrivateLoadableFrameData = Omit<FrameData, "getData" | "toBlob"> & {
203
- frameId: number;
204
- };
205
- /**
206
- * Adds some function to the passed frame data object to let the user load the frame data.
207
- */
208
- declare function convertToPublicFrameData(loadableFrameData: PrivateLoadableFrameData, context: DataCaptureContext): FrameData;
209
-
210
- interface ModuleLoader {
211
- moduleName: string;
212
- load(options: ModuleLoaderOptions): Promise<any>;
191
+ interface PrivateBaseControl {
192
+ install: (view: DataCaptureView$1) => Promise<boolean>;
193
+ remove: (definitiveRemoval?: boolean) => void;
194
+ update?: (view: DataCaptureView$1) => void;
195
+ }
196
+ interface Control extends Serializable<SerializedControl> {
197
+ }
198
+ interface PrivateControl extends Control, PrivateBaseControl {
199
+ view: DataCaptureView$1 | null;
213
200
  }
214
201
 
215
202
  /**
@@ -224,21 +211,23 @@ interface ExtractCentaurusLicenseResponse {
224
211
  type RequestFrameDataResponse = {
225
212
  data: Uint8ClampedArray;
226
213
  colorType: ColorType;
214
+ frameId: FrameId;
227
215
  } | {
228
216
  data: null;
229
217
  colorType: null;
218
+ frameId: null;
230
219
  };
231
220
  interface IsFeatureSupportedResponse {
232
221
  supported: boolean;
233
222
  }
234
- interface GetViewfinderInfo {
223
+ interface GetViewfinderInfoResponse {
235
224
  isDisplayingViewfinder: boolean;
236
225
  rect: RectJSON;
237
226
  }
238
227
  interface GetOpenSourceSoftwareLicenseInfoResponse {
239
228
  licenseText: string;
240
229
  }
241
- type WorkerResponse<C> = C extends "processFrame" ? ProcessFrameParameters : C extends "extractCentaurusLicense" ? ExtractCentaurusLicenseResponse : C extends "requestFrameData" ? RequestFrameDataResponse : C extends "isFeatureSupported" ? IsFeatureSupportedResponse : C extends "getViewfinderInfo" ? GetViewfinderInfo : C extends "getOpenSourceSoftwareLicenseInfo" ? GetOpenSourceSoftwareLicenseInfoResponse : undefined;
230
+ type WorkerResponse<C> = C extends "processFrame" ? ProcessFrameParameters : C extends "extractCentaurusLicense" ? ExtractCentaurusLicenseResponse : C extends "requestFrameData" ? RequestFrameDataResponse : C extends "isFeatureSupported" ? IsFeatureSupportedResponse : C extends "getViewfinderInfo" ? GetViewfinderInfoResponse : C extends "getOpenSourceSoftwareLicenseInfo" ? GetOpenSourceSoftwareLicenseInfoResponse : undefined;
242
231
  interface DataCaptureActionMessage {
243
232
  command: DataCaptureActionMessageKey;
244
233
  id: number;
@@ -262,11 +251,11 @@ type ProcessFrameDataCaptureAction = DataCaptureActionMessage & ProcessFramePara
262
251
  };
263
252
  type RequestFrameDataDataCaptureAction = DataCaptureActionMessage & {
264
253
  command: "requestFrameData";
265
- frameId: number;
254
+ frameId: FrameId;
266
255
  };
267
256
  type DeleteFrameDataDataCaptureAction = DataCaptureActionMessage & {
268
257
  command: "deleteFrameData";
269
- frameId: number;
258
+ frameId: FrameId;
270
259
  };
271
260
  type VisibilityChangeAction = DataCaptureActionMessage & {
272
261
  command: "documentVisibility";
@@ -329,7 +318,7 @@ type AnyDataCaptureActionMessage = ConvertToJPEGResultDataCaptureAction | Create
329
318
  /**
330
319
  * MESSAGES EMITTED BY THE WORKER
331
320
  */
332
- type DataCaptureCallbackMessageKeys = "contextDidChangeStatus" | "didStartObservingContext" | "draw" | "hideHint" | "isFeatureSupported" | "loadLibraryProgress" | "performanceMetricsReport" | "showHint" | "successFeedback" | "updateHint" | "workerTaskId" | "onFrameProcessingStarted" | "onFrameProcessingFinished" | "onFrameSkipped" | "showToast" | "hideToast" | "showGuidance" | "hideGuidance" | "startUpdateTimer" | "stopUpdateTimer" | "setViewfinderRect";
321
+ type DataCaptureCallbackMessageKeys = "contextDidChangeStatus" | "didStartObservingContext" | "draw" | "hideHint" | "isFeatureSupported" | "loadLibraryProgress" | "performanceMetricsReport" | "showHint" | "successFeedback" | "updateHint" | "workerTaskId" | "onFrameProcessingStarted" | "onFrameProcessingFinished" | "onFrameSkipped" | "showToast" | "hideToast" | "showGuidance" | "hideGuidance" | "startUpdateTimer" | "stopUpdateTimer" | "setViewfinderRect" | "viewSizeChanged";
333
322
  interface BaseDataCaptureCallbackMessage {
334
323
  type: DataCaptureCallbackMessageKeys;
335
324
  }
@@ -440,7 +429,17 @@ type StartUpdateTimerMessage = BaseDataCaptureCallbackMessage & {
440
429
  type StopUpdateTimerMessage = BaseDataCaptureCallbackMessage & {
441
430
  type: "stopUpdateTimer";
442
431
  };
443
- type DataCaptureCallbackMessage = ConsoleWorkerMessage | ConvertToJPEGMessage | DidChangeStatusWorkerMessage | DrawWorkerMessage | HideHintWorkerMessage | IsFeatureSupportedMessage | LoadLibraryProgressMessage | PerformanceMetricsReportMessage | ShowHintWorkerMessage | StartObservingContextWorkerMessage | SuccessFeedbackWorkerMessage | UpdateHintWorkerMessage | WorkerTaskIdWorkerMessage | OnFrameProcessingStartedMessage | OnFrameProcessingFinishedMessage | OnFrameSkippedMessage | ShowToastMessage | HideToastMessage | ShowGuidanceMessage | HideGuidanceMessage | StartUpdateTimerMessage | StopUpdateTimerMessage;
432
+ interface ViewInfo<T extends Orientation | number = Orientation> {
433
+ width: number;
434
+ height: number;
435
+ orientation: T;
436
+ viewFinderRect: RectJSON;
437
+ }
438
+ type ViewSizeChangedMessage = BaseDataCaptureCallbackMessage & {
439
+ type: "viewSizeChanged";
440
+ payload: ViewInfo | null;
441
+ };
442
+ type DataCaptureCallbackMessage = ConsoleWorkerMessage | ConvertToJPEGMessage | DidChangeStatusWorkerMessage | DrawWorkerMessage | HideHintWorkerMessage | IsFeatureSupportedMessage | LoadLibraryProgressMessage | PerformanceMetricsReportMessage | ShowHintWorkerMessage | StartObservingContextWorkerMessage | SuccessFeedbackWorkerMessage | UpdateHintWorkerMessage | WorkerTaskIdWorkerMessage | OnFrameProcessingStartedMessage | OnFrameProcessingFinishedMessage | OnFrameSkippedMessage | ShowToastMessage | HideToastMessage | ShowGuidanceMessage | HideGuidanceMessage | StartUpdateTimerMessage | StopUpdateTimerMessage | ViewSizeChangedMessage;
444
443
  /**
445
444
  * OTHERS
446
445
  */
@@ -480,6 +479,7 @@ interface GestureRecognizer extends EmscriptenClassHandle {
480
479
  }
481
480
  interface DataCaptureView extends EmscriptenClassHandle {
482
481
  setViewSize: (w: number, h: number, orientation: Orientation) => void;
482
+ getViewInfo: () => string;
483
483
  setNeedsRedrawDelegate: (delegate: unknown) => void;
484
484
  draw: () => void;
485
485
  getDrawCommands: () => Uint8Array;
@@ -554,6 +554,7 @@ declare enum HintIcon {
554
554
  }
555
555
  declare enum HintAnchor {
556
556
  Top = "top",
557
+ Center = "center",
557
558
  AboveViewFinder = "aboveViewFinder",
558
559
  BelowViewFinder = "belowViewFinder"
559
560
  }
@@ -610,10 +611,13 @@ interface GenericHint {
610
611
  hintStyle: Omit<HintStyle, "anchor" | "verticalOffsetRatio" | "font" | "hintWidth" | "hintHeight" | "hintCornerStyle">;
611
612
  }
612
613
  interface PerformanceMetrics {
613
- processedFramesCount: number;
614
+ cameraOutputFrames: number;
614
615
  redrawRequestsCount: number;
615
616
  actualRedrawsCount: number;
616
617
  frameDataPoolSize: number;
618
+ frameProcessingStartedCount: number;
619
+ frameProcessedCount: number;
620
+ frameSkippedCount: number;
617
621
  }
618
622
  declare enum LicensedFeature {
619
623
  Ocr = 0,
@@ -770,6 +774,224 @@ interface ModuleHandler<M extends Module> {
770
774
  set: (v: M) => void;
771
775
  }
772
776
 
777
+ interface LoadLibraryParameters {
778
+ libraryLocation: string;
779
+ locationPath: string;
780
+ writableDataPathOverride?: string;
781
+ indexedDBTimeoutMs: number;
782
+ verifyResponseHash: boolean;
783
+ onProgress?: (info: ProgressInfo) => void;
784
+ referredOrigin?: string;
785
+ fixedWasmMemory: number | null;
786
+ simdSupport: boolean;
787
+ threadsSupport: boolean;
788
+ }
789
+ interface CreateContextParameters {
790
+ context: DataCaptureContextJSON;
791
+ deviceId: string;
792
+ delayedRegistration: boolean;
793
+ highEndBlurryRecognition: boolean;
794
+ appName: string | null;
795
+ parentDomain: string;
796
+ }
797
+ interface UpdateContextParameters {
798
+ context: DataCaptureContextJSON;
799
+ view: {
800
+ width: number;
801
+ height: number;
802
+ visible: boolean;
803
+ orientation: Orientation;
804
+ } | null;
805
+ }
806
+ interface SetFrameSourceParameters {
807
+ mirrorAxis: PrivateMirrorAxis;
808
+ isCameraFrameSource: boolean;
809
+ }
810
+ type ProcessFrameParameters = FrameCapture;
811
+ interface ReportCameraPropertiesParameters {
812
+ deviceId: string;
813
+ hasAutofocus: boolean;
814
+ isFrontFacing: boolean;
815
+ }
816
+ interface WorkerFunctions {
817
+ getOffscreenCanvas: () => OffscreenCanvas | undefined;
818
+ postMessage: (message: DataCaptureCallbackMessage, transfer?: Transferable[]) => void;
819
+ }
820
+ /**
821
+ * DataCaptureEngine is an abstraction of the engine, it is created by the engine worker
822
+ * and should be used as a singleton. It calls the underlying engine methods directly.
823
+ */
824
+ declare class DataCaptureEngine<M extends Module> {
825
+ private static get3dPartyLicenseKeyMethodName;
826
+ context: DataCaptureContext$1;
827
+ lastUsedModuleMirrorAxis: unknown;
828
+ view: DataCaptureView | undefined;
829
+ hintPresenterV2: HintPresenterV2 | null;
830
+ /**
831
+ * Maximum number of frames to keep in the pool.
832
+ * Set to 5 to balance between:
833
+ * - Providing sufficient buffering for frame listener callbacks that may arrive slightly out-of-order
834
+ * - Minimizing memory overhead in the worker thread
835
+ * - At 30 fps, 5 frames = ~167ms of retention, sufficient for most listener callbacks
836
+ * - For higher frame rates, FIFO eviction prevents unbounded growth
837
+ */
838
+ protected readonly MAX_NUMBER_OF_IMAGES_IN_FRAME_DATA_POOL: number;
839
+ protected readonly moduleHandler: ModuleHandler<M>;
840
+ protected readonly redrawInterval: number;
841
+ protected readonly redrawRequests: number[];
842
+ protected readonly workerFunctions: WorkerFunctions;
843
+ protected _isDrawLoopRunning: boolean;
844
+ protected contextDeserializer: DataCaptureContextDeserializer | undefined;
845
+ /**
846
+ * Frame data pool that stores copies of frame data for access by listeners.
847
+ * Frame data is stored with frameId as key, typically using performance.now() for high-precision timing.
848
+ *
849
+ * Frame ID Generation & Management:
850
+ * - frameId comes from camera frame sources (typically performance.now() in milliseconds with decimal precision)
851
+ * - Frames are stored in insertion order (Map preserves insertion order in JavaScript)
852
+ * - Memory is managed through two complementary mechanisms:
853
+ * 1. Bounded pool size (MAX_NUMBER_OF_IMAGES_IN_FRAME_DATA_POOL) with FIFO eviction of oldest frames
854
+ * 2. Immediate deletion after transfer via requestFrameData() to give callers control over lifetime
855
+ * - For the deleteFrameData() API, frames marked for deletion are cleaned up on next prepareFrameForListener call
856
+ * - This combination prevents both unbounded memory growth and memory leaks from unrequested frames
857
+ */
858
+ protected frameDataPool: Map<FrameId, {
859
+ data: Uint8ClampedArray;
860
+ colorType: ColorType;
861
+ frameId: FrameId;
862
+ width: number;
863
+ height: number;
864
+ }>;
865
+ protected lastFrameColorType: ColorType;
866
+ protected lastFrameId: FrameId | null;
867
+ protected imageFrameSource?: DataCaptureImageBufferFrameSource;
868
+ protected libraryLoadingPromise: Promise<void> | undefined;
869
+ protected loopTimeoutId?: ReturnType<typeof setTimeout>;
870
+ protected resourcePath: string;
871
+ protected writableDataPath: string;
872
+ protected poorMansBenchmarkLogs: boolean;
873
+ protected parentDomain: string;
874
+ protected readonly writableDataPathStandard: string;
875
+ protected readonly resourceFilesSubfolder: string;
876
+ protected performanceMetricsReporterTimer: ReturnType<typeof setTimeout> | number | undefined;
877
+ protected lastMetricsReportTime: number;
878
+ protected readonly metricsReportInterval: number;
879
+ protected performanceMetrics: PerformanceMetrics;
880
+ protected frameProcessingStartedCount: number;
881
+ protected frameProcessingFinishedCount: number;
882
+ protected gestureRecognizer: GestureRecognizer | null;
883
+ private gestureListener;
884
+ private webPlatformHintPresenter;
885
+ private webImageConverterInstance;
886
+ private lastViewInfo;
887
+ constructor(moduleHandler: ModuleHandler<M>, workerFunctions: WorkerFunctions);
888
+ get Module(): M;
889
+ set isDrawLoopRunning(newValue: boolean);
890
+ get isDrawLoopRunning(): boolean;
891
+ /**
892
+ * Prepares frame data for listener callbacks by pooling it and cleaning up marked frames.
893
+ * Called on session update for tracking modes and on didScan for scan modes.
894
+ * @param frameData - The frame data to prepare for listener access.
895
+ * @returns The loadable frame data metadata.
896
+ */
897
+ prepareFrameForListener(frameData: WasmFrameData): PrivateLoadableFrameData;
898
+ createContext(createContextJSON: CreateContextParameters): EngineWorkerResponse<"createContext">;
899
+ convertToJPEGResult(imageId: number, result: Uint8Array): void;
900
+ /**
901
+ * Returns the ImageConverterInstance to be used in the worker thread. Depending on the availability of
902
+ * OffscreenCanvas, a different implementation is returned.
903
+ */
904
+ protected getImageConverterInstance(options: {
905
+ quality: number;
906
+ }): ImageConverterInstance;
907
+ onTap(point: PointJSON): void;
908
+ hintPresenterV2Update(): void;
909
+ private lastFrameProcessingStartedCount;
910
+ private lastFrameProcessingFinishedCount;
911
+ startReportingPerformanceMetrics(): void;
912
+ private scheduleMetricsReporting;
913
+ private checkAndReportMetrics;
914
+ reportPerformanceMetrics(): Promise<void>;
915
+ deleteFrameData(frameId: FrameId): void;
916
+ dispose(): EngineWorkerResponse<"dispose">;
917
+ private cleanupMetricsReporting;
918
+ flushAnalytics(): void;
919
+ extractCentaurusLicense(scanditLicenseKey: string): EngineWorkerResponse<"extractCentaurusLicense">;
920
+ getModeDeserializers(): Vector;
921
+ loadLibrary(parameters: LoadLibraryParameters): EngineWorkerResponse<"loadLibrary">;
922
+ processFrame(parameters: ProcessFrameParameters): EngineWorkerResponse<"processFrame">;
923
+ reportCameraProperties(properties: ReportCameraPropertiesParameters): EngineWorkerResponse<"reportCameraProperties">;
924
+ /**
925
+ * Request frame data from the pool.
926
+ * Converts grayscale to RGBA in the worker if needed.
927
+ * Frames are immediately deleted after transfer to prevent memory accumulation.
928
+ * @param frameId - The ID of the frame to retrieve.
929
+ * @returns The frame data, with the frame deleted from the pool immediately after.
930
+ */
931
+ requestFrameData(frameId: FrameId): EngineWorkerResponse<"requestFrameData">;
932
+ scheduleRedraw(view: DataCaptureView, redrawInMs: number): void;
933
+ sendViewRefreshCommands(commands: Uint8Array): void;
934
+ setFrameSource(mirrorAxis: PrivateMirrorAxis, isCameraFrameSource: boolean): EngineWorkerResponse<"setFrameSource">;
935
+ /**
936
+ * The draw loop check at regular interval if any redraw request were made by the engine.
937
+ * If a redraw is necessary, it gathers and sends drawing commands to the main thread.
938
+ */
939
+ startDrawLoop(view: DataCaptureView): void;
940
+ updateContext(contextUpdateParameters: UpdateContextParameters): EngineWorkerResponse<"updateContext">;
941
+ notifyMainThreadOnViewInfoChanged(view?: DataCaptureView): void;
942
+ protected getViewInfo(view?: DataCaptureView | null): ViewInfo | null;
943
+ protected getOrientationFromNumber(orientation: number): Orientation;
944
+ /**
945
+ * Called before updateContextFromJson
946
+ *
947
+ * @protected
948
+ * @param {UpdateContextParameters} contextUpdateParameters
949
+ * @returns {UpdateContextParameters}
950
+ */
951
+ protected onBeforeUpdateContextHook(contextUpdateParameters: UpdateContextParameters): UpdateContextParameters;
952
+ onDocumentVisibilityChange(state: DocumentVisibilityState): void;
953
+ isFeatureSupported(feature: LicensedFeature): EngineWorkerResponse<"isFeatureSupported">;
954
+ getViewfinderInfo(): EngineWorkerResponse<"getViewfinderInfo">;
955
+ getOpenSourceSoftwareLicenseInfo(): EngineWorkerResponse<"getOpenSourceSoftwareLicenseInfo">;
956
+ protected getWasmDynamicLibraries(coreWasmURI: string): string[];
957
+ protected getWasmCoreExpectedHash(simdSupport: boolean, threadsSupport: boolean): string;
958
+ protected getWasmCoreFileName(simdSupport: boolean, threadsSupport: boolean): string;
959
+ protected getWasmMetadata(): Record<string, {
960
+ bytes: number;
961
+ }>;
962
+ protected getWasmSideModuleFileName(): string;
963
+ private _loadProgressCallback;
964
+ /**
965
+ * Redraw requests are scheduled at [now + redrawInMs], so when pushed they must be sorted
966
+ * in chronological order so that we can later easily check if we need to redraw by checking
967
+ * the first element.
968
+ * @param redrawInMs
969
+ */
970
+ private addRedrawRequest;
971
+ private contextDidChangeStatus;
972
+ private didStartObservingContext;
973
+ private mapMirrorAxisOnModule;
974
+ protected setView(view: DataCaptureView | undefined): void;
975
+ /**
976
+ * Add a native overlay to the view without passing from the deserializer.
977
+ * must be implemented in the specific module.
978
+ * @param event - The message event containing the overlay handle.
979
+ */
980
+ addNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
981
+ /**
982
+ * Remove a native overlay from the view.
983
+ * must be implemented in the specific module.
984
+ * @param event - The message event containing the overlay handle.
985
+ */
986
+ removeNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
987
+ private setViewRefreshHandler;
988
+ private setupDataDecoding;
989
+ private start;
990
+ private getWritableDataPath;
991
+ private numOfMBToPages;
992
+ private setup;
993
+ }
994
+
773
995
  declare enum MeteringMode {
774
996
  CONTINUOUS = "continuous",
775
997
  MANUAL = "manual",
@@ -805,9 +1027,40 @@ interface GUI {
805
1027
  isCameraRecoveryVisible: () => boolean;
806
1028
  setCameraRecoveryVisible: (visible: boolean) => void;
807
1029
  }
1030
+ /**
1031
+ * Branded type for frame IDs to improve type safety.
1032
+ *
1033
+ * Frame IDs are high-resolution timestamps generated via performance.now() using getTimestamp().
1034
+ * Using a branded type prevents accidental mixing with other numeric IDs and
1035
+ * makes the intent of numeric values explicit in type signatures.
1036
+ *
1037
+ * Example:
1038
+ * ```typescript
1039
+ * // ✓ Correct: explicitly marked as a frame ID
1040
+ * const frameId: FrameId = getTimestamp() as FrameId;
1041
+ *
1042
+ * // ✗ TypeScript error: number is not assignable to FrameId
1043
+ * const wrongId: FrameId = 12345;
1044
+ * ```
1045
+ *
1046
+ * Benefits:
1047
+ * - Prevents confusion between frame IDs and other numeric identifiers
1048
+ * - Makes it immediately clear in function signatures that a value is a frame ID
1049
+ * - Compiler catches accidental type mismatches at compile time
1050
+ */
1051
+ declare const FrameIdBrand: unique symbol;
1052
+ type FrameId = number & {
1053
+ readonly [FrameIdBrand]: "FrameId";
1054
+ };
1055
+ /**
1056
+ * Creates a branded FrameId using the current high-resolution timestamp.
1057
+ * @returns A branded FrameId value
1058
+ */
1059
+ declare function createFrameId(): FrameId;
808
1060
  interface FrameCapture {
809
1061
  colorType?: ColorType;
810
1062
  data: Uint8ClampedArray;
1063
+ frameId: FrameId;
811
1064
  height: number;
812
1065
  width: number;
813
1066
  }
@@ -997,172 +1250,24 @@ declare class CameraManager {
997
1250
  private handleVideoPause;
998
1251
  }
999
1252
 
1000
- interface LoadLibraryParameters {
1001
- libraryLocation: string;
1002
- locationPath: string;
1003
- writableDataPathOverride?: string;
1004
- verifyResponseHash: boolean;
1005
- onProgress?: (info: ProgressInfo) => void;
1006
- referredOrigin?: string;
1007
- fixedWasmMemory: number | null;
1008
- simdSupport: boolean;
1009
- threadsSupport: boolean;
1010
- }
1011
- interface CreateContextParameters {
1012
- context: DataCaptureContextJSON;
1013
- deviceId: string;
1014
- delayedRegistration: boolean;
1015
- highEndBlurryRecognition: boolean;
1016
- appName: string | null;
1017
- parentDomain: string;
1018
- }
1019
- interface UpdateContextParameters {
1020
- context: DataCaptureContextJSON;
1021
- view: {
1022
- width: number;
1023
- height: number;
1024
- visible: boolean;
1025
- orientation: Orientation;
1026
- } | null;
1027
- }
1028
- interface SetFrameSourceParameters {
1029
- mirrorAxis: PrivateMirrorAxis;
1030
- isCameraFrameSource: boolean;
1031
- }
1032
- type ProcessFrameParameters = FrameCapture;
1033
- interface ReportCameraPropertiesParameters {
1034
- deviceId: string;
1035
- hasAutofocus: boolean;
1036
- isFrontFacing: boolean;
1037
- }
1038
- interface WorkerFunctions {
1039
- getOffscreenCanvas: () => OffscreenCanvas | undefined;
1040
- postMessage: (message: DataCaptureCallbackMessage, transfer?: Transferable[]) => void;
1253
+ interface FrameData {
1254
+ readonly width: number;
1255
+ readonly height: number;
1256
+ readonly isFrameSourceMirrored: boolean;
1257
+ toBlob(type?: string, quality?: number): Promise<Blob | null>;
1258
+ getData(): Promise<Uint8ClampedArray | null>;
1041
1259
  }
1260
+ type PrivateLoadableFrameData = Omit<FrameData, "getData" | "toBlob"> & {
1261
+ frameId: FrameId;
1262
+ };
1042
1263
  /**
1043
- * DataCaptureEngine is an abstraction of the engine, it is created by the engine worker
1044
- * and should be used as a singleton. It calls the underlying engine methods directly.
1264
+ * Adds some function to the passed frame data object to let the user load the frame data.
1045
1265
  */
1046
- declare class DataCaptureEngine<M extends Module> {
1047
- private static get3dPartyLicenseKeyMethodName;
1048
- context: DataCaptureContext$1;
1049
- lastUsedModuleMirrorAxis: unknown;
1050
- view: DataCaptureView | undefined;
1051
- hintPresenterV2: HintPresenterV2 | null;
1052
- protected readonly MAX_NUMBER_OF_IMAGES_IN_FRAME_DATA_POOL: number;
1053
- protected readonly moduleHandler: ModuleHandler<M>;
1054
- protected readonly redrawInterval: number;
1055
- protected readonly redrawRequests: number[];
1056
- protected readonly workerFunctions: WorkerFunctions;
1057
- protected _isDrawLoopRunning: boolean;
1058
- protected contextDeserializer: DataCaptureContextDeserializer | undefined;
1059
- protected frameDataPool: Map<number, {
1060
- data: Uint8ClampedArray;
1061
- colorType: ColorType;
1062
- }>;
1063
- protected lastFrameColorType: ColorType;
1064
- protected imageFrameSource?: DataCaptureImageBufferFrameSource;
1065
- protected lastFrameCounter: number;
1066
- protected libraryLoadingPromise: Promise<void> | undefined;
1067
- protected loopTimeoutId?: ReturnType<typeof setTimeout>;
1068
- protected resourcePath: string;
1069
- protected writableDataPath: string;
1070
- protected poorMansBenchmarkLogs: boolean;
1071
- protected parentDomain: string;
1072
- protected readonly writableDataPathStandard: string;
1073
- protected readonly resourceFilesSubfolder: string;
1074
- protected performanceMetricsReporterTimer: ReturnType<typeof setTimeout> | undefined;
1075
- protected performanceMetrics: PerformanceMetrics;
1076
- protected gestureRecognizer: GestureRecognizer | null;
1077
- private gestureListener;
1078
- private webPlatformHintPresenter;
1079
- private webImageConverterInstance;
1080
- constructor(moduleHandler: ModuleHandler<M>, workerFunctions: WorkerFunctions);
1081
- get Module(): M;
1082
- set isDrawLoopRunning(newValue: boolean);
1083
- get isDrawLoopRunning(): boolean;
1084
- convertToLoadableFrameData(frameData: WasmFrameData): PrivateLoadableFrameData;
1085
- createContext(createContextJSON: CreateContextParameters): EngineWorkerResponse<"createContext">;
1086
- convertToJPEGResult(imageId: number, result: Uint8Array): void;
1087
- /**
1088
- * Returns the ImageConverterInstance to be used in the worker thread. Depending on the availability of
1089
- * OffscreenCanvas, a different implementation is returned.
1090
- */
1091
- protected getImageConverterInstance(options: {
1092
- quality: number;
1093
- }): ImageConverterInstance;
1094
- onTap(point: PointJSON): void;
1095
- hintPresenterV2Update(): void;
1096
- startReportingPerformanceMetrics(): void;
1097
- reportPerformanceMetrics(): Promise<void>;
1098
- deleteFrameData(frameId: number): void;
1099
- dispose(): EngineWorkerResponse<"dispose">;
1100
- flushAnalytics(): void;
1101
- extractCentaurusLicense(scanditLicenseKey: string): EngineWorkerResponse<"extractCentaurusLicense">;
1102
- getModeDeserializers(): Vector;
1103
- loadLibrary(parameters: LoadLibraryParameters): EngineWorkerResponse<"loadLibrary">;
1104
- processFrame(parameters: ProcessFrameParameters): EngineWorkerResponse<"processFrame">;
1105
- reportCameraProperties(properties: ReportCameraPropertiesParameters): EngineWorkerResponse<"reportCameraProperties">;
1106
- requestFrameData(frameId: number): EngineWorkerResponse<"requestFrameData">;
1107
- scheduleRedraw(view: DataCaptureView, redrawInMs: number): void;
1108
- sendViewRefreshCommands(commands: Uint8Array): void;
1109
- setFrameSource(mirrorAxis: PrivateMirrorAxis, isCameraFrameSource: boolean): EngineWorkerResponse<"setFrameSource">;
1110
- /**
1111
- * The draw loop check at regular interval if any redraw request were made by the engine.
1112
- * If a redraw is necessary, it gathers and sends drawing commands to the main thread.
1113
- */
1114
- startDrawLoop(view: DataCaptureView): void;
1115
- updateContext(contextUpdateParameters: UpdateContextParameters): EngineWorkerResponse<"updateContext">;
1116
- /**
1117
- * Called before updateContextFromJson
1118
- *
1119
- * @protected
1120
- * @param {UpdateContextParameters} contextUpdateParameters
1121
- * @returns {UpdateContextParameters}
1122
- */
1123
- protected onBeforeUpdateContextHook(contextUpdateParameters: UpdateContextParameters): UpdateContextParameters;
1124
- onDocumentVisibilityChange(state: DocumentVisibilityState): void;
1125
- isFeatureSupported(feature: LicensedFeature): EngineWorkerResponse<"isFeatureSupported">;
1126
- getViewfinderInfo(): EngineWorkerResponse<"getViewfinderInfo">;
1127
- getOpenSourceSoftwareLicenseInfo(): EngineWorkerResponse<"getOpenSourceSoftwareLicenseInfo">;
1128
- protected getNextFrameId(): number;
1129
- protected getWasmDynamicLibraries(coreWasmURI: string): string[];
1130
- protected getWasmCoreExpectedHash(simdSupport: boolean, threadsSupport: boolean): string;
1131
- protected getWasmCoreFileName(simdSupport: boolean, threadsSupport: boolean): string;
1132
- protected getWasmMetadata(): Record<string, {
1133
- bytes: number;
1134
- }>;
1135
- protected getWasmSideModuleFileName(): string;
1136
- private _loadProgressCallback;
1137
- /**
1138
- * Redraw requests are scheduled at [now + redrawInMs], so when pushed they must be sorted
1139
- * in chronological order so that we can later easily check if we need to redraw by checking
1140
- * the first element.
1141
- * @param redrawInMs
1142
- */
1143
- private addRedrawRequest;
1144
- private contextDidChangeStatus;
1145
- private didStartObservingContext;
1146
- private mapMirrorAxisOnModule;
1147
- protected setView(view: DataCaptureView | undefined): void;
1148
- /**
1149
- * Add a native overlay to the view without passing from the deserializer.
1150
- * must be implemented in the specific module.
1151
- * @param event - The message event containing the overlay handle.
1152
- */
1153
- addNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
1154
- /**
1155
- * Remove a native overlay from the view.
1156
- * must be implemented in the specific module.
1157
- * @param event - The message event containing the overlay handle.
1158
- */
1159
- removeNativeOverlay(event: MessageEvent<AnyDataCaptureActionMessage>): void;
1160
- private setViewRefreshHandler;
1161
- private setupDataDecoding;
1162
- private start;
1163
- private getWritableDataPath;
1164
- private numOfMBToPages;
1165
- private setup;
1266
+ declare function convertToPublicFrameData(loadableFrameData: PrivateLoadableFrameData, context: DataCaptureContext): FrameData;
1267
+
1268
+ interface ModuleLoader {
1269
+ moduleName: string;
1270
+ load(options: ModuleLoaderOptions): Promise<any>;
1166
1271
  }
1167
1272
 
1168
1273
  type CommandAndPayload<A, C> = A extends {
@@ -1204,6 +1309,7 @@ declare class DataCaptureLoader {
1204
1309
  protected get name(): string;
1205
1310
  protected get fixedWasmMemory(): number | null;
1206
1311
  static create(options: DataCaptureLoaderOptions): Promise<DataCaptureLoader>;
1312
+ private getIndexedDBTimeoutMs;
1207
1313
  load(): Promise<WorkerResponse<"loadLibrary">>;
1208
1314
  /**
1209
1315
  * Send a task (i.e. a command) to the worker. Every task sent has a corresponding Promise object which
@@ -1219,7 +1325,8 @@ declare class DataCaptureLoader {
1219
1325
  }
1220
1326
 
1221
1327
  declare enum HintPresenterEvents {
1222
- Update = "hintpresenterupdate"
1328
+ Update = "hintpresenterupdate",
1329
+ ViewFinderUpdateRequested = "hintpresenterviewfinderupdaterequested"
1223
1330
  }
1224
1331
  declare class HintPresenter extends ScanditHTMLElement {
1225
1332
  static readonly tag: "scandit-hints";
@@ -1227,8 +1334,6 @@ declare class HintPresenter extends ScanditHTMLElement {
1227
1334
  private root;
1228
1335
  private _viewFinderRect;
1229
1336
  private onDidToastHideHandler;
1230
- private orientationObserver;
1231
- private onOrientationChangeHandler;
1232
1337
  constructor();
1233
1338
  private static createStyleElement;
1234
1339
  static register(): void;
@@ -1247,8 +1352,12 @@ declare class HintPresenter extends ScanditHTMLElement {
1247
1352
  private hideGuidance;
1248
1353
  private startUpdateTimer;
1249
1354
  private stopUpdateTimer;
1355
+ /**
1356
+ * Whenever a toast is shown, we need to ensure that the view finder rect is set. If not, we dispatch an event to
1357
+ * let the view know about it.
1358
+ */
1359
+ private ensureViewFinderRectIsSet;
1250
1360
  private idFromHint;
1251
- private onOrientationChange;
1252
1361
  }
1253
1362
  declare global {
1254
1363
  interface HTMLElementTagNameMap {
@@ -1285,7 +1394,6 @@ declare enum PrivateMirrorAxis {
1285
1394
  }
1286
1395
 
1287
1396
  type DataCaptureContextState = "unconfigured" | "configuring" | "configured" | "creating-context" | "ready";
1288
-
1289
1397
  type Change = {
1290
1398
  type: "modeEnabled";
1291
1399
  newValue: boolean;
@@ -1571,4 +1679,4 @@ declare class DataCaptureContext implements Serializable<DataCaptureContextJSON>
1571
1679
  protected isFeatureSupported(feature: LicensedFeature): Promise<boolean>;
1572
1680
  }
1573
1681
 
1574
- export { type WorkerResponse as $, convertToPublicFrameData as A, type ModuleLoader as B, type Control as C, type DataCaptureContextState as D, type DataCaptureLoaderOptions as E, type FrameData as F, DataCaptureLoader as G, HintPresenter as H, type PerformanceMetrics as I, DataCaptureEngine as J, type Module as K, type GenericHint as L, type ModuleLoaderOptions as M, type FrameCapture as N, type AnyDataCaptureActionMessage as O, type PrivateChangeSet as P, type AugmentedWorker as Q, type ModuleHandler as R, type DataCaptureCallbackMessage as S, type DataCaptureActionMessageKey as T, type EngineWorkerResponse as U, type ExtractCentaurusLicenseResponse as V, type WorkerFunctions as W, type RequestFrameDataResponse as X, type IsFeatureSupportedResponse as Y, type GetViewfinderInfo as Z, type GetOpenSourceSoftwareLicenseInfoResponse as _, type ControlType as a, type GuidanceHint as a$, type LoadLibraryDataCaptureAction as a0, type ConvertToJPEGResultDataCaptureAction as a1, type CreateContextDataCaptureAction as a2, type SetFrameSourceDataCaptureAction as a3, type ProcessFrameDataCaptureAction as a4, type RequestFrameDataDataCaptureAction as a5, type DeleteFrameDataDataCaptureAction as a6, type VisibilityChangeAction as a7, type IsFeatureSupportedAction as a8, type UpdateContextDataCaptureAction as a9, type StartUpdateTimerMessage as aA, type StopUpdateTimerMessage as aB, type PayloadForCommand as aC, type DataCaptureWorker as aD, type EmscriptenClassHandle as aE, type DataCaptureContext$1 as aF, type DataCaptureImageBufferFrameSource as aG, type GestureListener as aH, type GestureRecognizer as aI, type DataCaptureView as aJ, type JSONParseable as aK, type DataCaptureContextDeserializerResult as aL, type DataCaptureContextDeserializer as aM, type CaptureModeDeserializerInstance as aN, type ModuleMirrorAxis as aO, type Vector as aP, type WasmFrameData as aQ, HintFont as aR, HintTextAlignment as aS, HintWidth as aT, HintHeight as aU, HintCornerStyle as aV, HintIcon as aW, HintAnchor as aX, type HintStyle as aY, GuidanceHintAnchor as aZ, GuidanceHintStyle as a_, type DisposeDataCaptureAction as aa, type FlushAnalyticsDataCaptureAction as ab, type ReportCameraPropertiesDataCaptureAction as ac, type SetLogLevelDataCaptureAction as ad, type ExtractCentaurusLicenseDataCaptureAction as ae, type OnTapAction as af, type HintPresenterV2updateAction as ag, type GetViewfinderInfoAction as ah, type GetOpenSourceSoftwareLicenseInfoAction as ai, type AddNativeOverlayAction as aj, type RemoveNativeOverlayAction as ak, type DataCaptureCallbackMessageKeys as al, type SuccessFeedbackWorkerMessage as am, type ShowHintWorkerMessage as an, type UpdateHintWorkerMessage as ao, type IsFeatureSupportedMessage as ap, type HideHintWorkerMessage as aq, type PerformanceMetricsReportMessage as ar, type DidTapTrackedBarcode as as, type OnFrameProcessingStartedMessage as at, type OnFrameProcessingFinishedMessage as au, type OnFrameSkippedMessage as av, type ShowToastMessage as aw, type HideToastMessage as ax, type ShowGuidanceMessage as ay, type HideGuidanceMessage as az, type Change as b, ToastHintStyle as b0, type ToastHint as b1, LicensedFeature as b2, type HintPresenterV2 as b3, type PlatformHintPresenter as b4, type LoadLibraryParameters as b5, type CreateContextParameters as b6, type UpdateContextParameters as b7, type SetFrameSourceParameters as b8, type ProcessFrameParameters as b9, type ReportCameraPropertiesParameters as ba, type PrivateBaseControl as bb, type PrivateControl as bc, MeteringMode as bd, CameraResolutionConstraint as be, type ExtendedMediaTrackCapabilities as bf, type ExtendedMediaTrackConstraintSet as bg, type GUI as bh, CameraManagerEvent as bi, type CameraManagerEventParameters as bj, CameraManager as bk, HintPresenterEvents as bl, type DataCaptureMode as c, type PrivateDataCaptureMode as d, type DataCaptureModeJSON as e, type PrivateDataCaptureComponent as f, type DataCaptureComponentJSON as g, type DataCaptureComponent as h, type PrivateDataCaptureContextOptions as i, type PrivateDataCaptureContext as j, type DataCaptureContextCreationOptions as k, type PrivateCapabilityInfo as l, type DataCaptureContextJSON as m, type PrivateFrameHandlerResponse as n, type PrivateFrameHandler as o, DataCaptureContext as p, type DataCaptureContextListener as q, type ContextStatusJSON as r, ContextStatus as s, PrivateMirrorAxis as t, type DataCaptureOverlay as u, type DataCaptureViewListener as v, type DataCaptureViewJSON as w, type DataCaptureViewConnectOptions as x, DataCaptureView$1 as y, type PrivateLoadableFrameData as z };
1682
+ export { type GetViewfinderInfoResponse as $, convertToPublicFrameData as A, type ModuleLoader as B, type Control as C, type DataCaptureContextState as D, type DataCaptureLoaderOptions as E, type FrameData as F, DataCaptureLoader as G, HintPresenter as H, type PerformanceMetrics as I, type FrameId as J, DataCaptureEngine as K, type Module as L, type ModuleLoaderOptions as M, type GenericHint as N, type FrameCapture as O, type PrivateChangeSet as P, type AnyDataCaptureActionMessage as Q, type AugmentedWorker as R, type ModuleHandler as S, type DataCaptureCallbackMessage as T, type DataCaptureActionMessageKey as U, type ViewInfo as V, type WorkerFunctions as W, type EngineWorkerResponse as X, type ExtractCentaurusLicenseResponse as Y, type RequestFrameDataResponse as Z, type IsFeatureSupportedResponse as _, type ControlType as a, type HintStyle as a$, type GetOpenSourceSoftwareLicenseInfoResponse as a0, type WorkerResponse as a1, type LoadLibraryDataCaptureAction as a2, type ConvertToJPEGResultDataCaptureAction as a3, type CreateContextDataCaptureAction as a4, type SetFrameSourceDataCaptureAction as a5, type ProcessFrameDataCaptureAction as a6, type RequestFrameDataDataCaptureAction as a7, type DeleteFrameDataDataCaptureAction as a8, type VisibilityChangeAction as a9, type ShowGuidanceMessage as aA, type HideGuidanceMessage as aB, type StartUpdateTimerMessage as aC, type StopUpdateTimerMessage as aD, type ViewSizeChangedMessage as aE, type PayloadForCommand as aF, type DataCaptureWorker as aG, type EmscriptenClassHandle as aH, type DataCaptureContext$1 as aI, type DataCaptureImageBufferFrameSource as aJ, type GestureListener as aK, type GestureRecognizer as aL, type DataCaptureView as aM, type JSONParseable as aN, type DataCaptureContextDeserializerResult as aO, type DataCaptureContextDeserializer as aP, type CaptureModeDeserializerInstance as aQ, type ModuleMirrorAxis as aR, type Vector as aS, type WasmFrameData as aT, HintFont as aU, HintTextAlignment as aV, HintWidth as aW, HintHeight as aX, HintCornerStyle as aY, HintIcon as aZ, HintAnchor as a_, type IsFeatureSupportedAction as aa, type UpdateContextDataCaptureAction as ab, type DisposeDataCaptureAction as ac, type FlushAnalyticsDataCaptureAction as ad, type ReportCameraPropertiesDataCaptureAction as ae, type SetLogLevelDataCaptureAction as af, type ExtractCentaurusLicenseDataCaptureAction as ag, type OnTapAction as ah, type HintPresenterV2updateAction as ai, type GetViewfinderInfoAction as aj, type GetOpenSourceSoftwareLicenseInfoAction as ak, type AddNativeOverlayAction as al, type RemoveNativeOverlayAction as am, type DataCaptureCallbackMessageKeys as an, type SuccessFeedbackWorkerMessage as ao, type ShowHintWorkerMessage as ap, type UpdateHintWorkerMessage as aq, type IsFeatureSupportedMessage as ar, type HideHintWorkerMessage as as, type PerformanceMetricsReportMessage as at, type DidTapTrackedBarcode as au, type OnFrameProcessingStartedMessage as av, type OnFrameProcessingFinishedMessage as aw, type OnFrameSkippedMessage as ax, type ShowToastMessage as ay, type HideToastMessage as az, type Change as b, GuidanceHintAnchor as b0, GuidanceHintStyle as b1, type GuidanceHint as b2, ToastHintStyle as b3, type ToastHint as b4, LicensedFeature as b5, type HintPresenterV2 as b6, type PlatformHintPresenter as b7, type LoadLibraryParameters as b8, type CreateContextParameters as b9, type UpdateContextParameters as ba, type SetFrameSourceParameters as bb, type ProcessFrameParameters as bc, type ReportCameraPropertiesParameters as bd, type PrivateBaseControl as be, type PrivateControl as bf, MeteringMode as bg, CameraResolutionConstraint as bh, type ExtendedMediaTrackCapabilities as bi, type ExtendedMediaTrackConstraintSet as bj, type GUI as bk, createFrameId as bl, CameraManagerEvent as bm, type CameraManagerEventParameters as bn, CameraManager as bo, HintPresenterEvents as bp, type DataCaptureMode as c, type PrivateDataCaptureMode as d, type DataCaptureModeJSON as e, type PrivateDataCaptureComponent as f, type DataCaptureComponentJSON as g, type DataCaptureComponent as h, type PrivateDataCaptureContextOptions as i, type PrivateDataCaptureContext as j, type DataCaptureContextCreationOptions as k, type PrivateCapabilityInfo as l, type DataCaptureContextJSON as m, type PrivateFrameHandlerResponse as n, type PrivateFrameHandler as o, DataCaptureContext as p, type DataCaptureContextListener as q, type ContextStatusJSON as r, ContextStatus as s, PrivateMirrorAxis as t, type DataCaptureOverlay as u, type DataCaptureViewListener as v, type DataCaptureViewJSON as w, type DataCaptureViewConnectOptions as x, DataCaptureView$1 as y, type PrivateLoadableFrameData as z };