scandit-sdk
Version:
Scandit Barcode Scanner SDK for the Web
626 lines • 107 kB
Markdown
<html><head><link rel="stylesheet" href="assets/css/main.css"><style>body{margin:20px}</style></head><body>
<h1 id="change-log">Change Log</h1>
<h2 id="5150-2024-05-23">5.15.0 (2024-05-23)</h2>
<h3 id="changes">Changes</h3>
<ul>
<li>Deprecate <code>ScanditSDK.configure()</code>'s <code>preloadBlurryRecognition</code> and <code>preloadEngine</code> options. The generation/loading of the blurry tables are handled automatically by the engine.</li>
</ul>
<h2 id="5140-2024-01-15">5.14.0 (2024-01-15)</h2>
<h3 id="changes-1">Changes</h3>
<ul>
<li>"Back Dual Wide Camera" is now the default camera on iPhone's that supports it.</li>
<li>Add <code>BarcodePicker.setCameraFOVSwitcherEnabled</code> method. It shows or hide a GUI button to switch between Wide and UltraWide cameras on iPhone devices that supports it.</li>
</ul>
<h2 id="5135-2023-08-31">5.13.5 (2023-08-31)</h2>
<ul>
<li>Fix Resize Observer warning.</li>
</ul>
<h2 id="5134-2023-08-25">5.13.4 (2023-08-25)</h2>
<ul>
<li>Make deprecation notice more visible.</li>
</ul>
<h2 id="5133-2023-08-04">5.13.3 (2023-08-04)</h2>
<ul>
<li>Add deprecation notice.</li>
</ul>
<h2 id="5132-2023-06-19">5.13.2 (2023-06-19)</h2>
<ul>
<li>Fixed zoom issue happening on iPhone when resolution is updated.</li>
</ul>
<h2 id="5131-2023-05-4">5.13.1 (2023-05-4)</h2>
<ul>
<li>Fixed frozen video stream happening in WebView on some Android devices.</li>
</ul>
<h2 id="5130-2023-01-25">5.13.0 (2023-01-25)</h2>
<h3 id="updates">Updates</h3>
<ul>
<li>Updated <em>external Scandit Data Capture library</em> to version 6.16.0.</li>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.20.13.</li>
<li>Updated <em>ua-parser-js</em> to version 1.0.33.</li>
</ul>
<h2 id="5122-2022-12-30">5.12.2 (2022-12-30)</h2>
<h3 id="changes-2">Changes</h3>
<ul>
<li>Improved camera initialization speed in some situations and whenever changing preferred video frame resolution.</li>
</ul>
<h3 id="fixes">Fixes</h3>
<ul>
<li>Fixed rare issue causing the library to never finish loading until website data is cleared in <em>Safari</em>, due to IndexedDB storage becoming stuck.</li>
<li>Fixed default video "play" poster being shortly displayed while camera is initially loading/switching in some WebViews.</li>
<li>Fixed deprecation warnings for Sass slash operator usages.</li>
</ul>
<h3 id="updates-1">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.20.7.</li>
<li>Updated <em>@juggle/resize-observer</em> library to version 3.4.0.</li>
<li>Updated <em>csstype</em> to version 3.1.1.</li>
<li>Updated <em>eventemitter3</em> library to version 5.0.0.</li>
<li>Updated <em>tslib</em> library to version 2.4.1.</li>
<li>Updated <em>ua-parser-js</em> to version 1.0.32.</li>
</ul>
<h2 id="5121-2022-08-12">5.12.1 (2022-08-12)</h2>
<h3 id="fixes-1">Fixes</h3>
<ul>
<li>Fixed detection of camera device connection and removal events sometimes causing errors when accessing a camera or getting the list of cameras on <em>iOS</em>.</li>
</ul>
<h3 id="updates-2">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.18.9.</li>
</ul>
<h2 id="5120-2022-06-03">5.12.0 (2022-06-03)</h2>
<h3 id="updates-3">Updates</h3>
<ul>
<li>Updated <em>external Scandit Data Capture library</em> to version 6.13.0.</li>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.18.3.</li>
<li>Updated <em>csstype</em> to version 3.1.0.</li>
</ul>
<h3 id="external-scandit-data-capture-library-updates">External Scandit Data Capture Library Updates</h3>
<ul>
<li>GS1 parser: Added support for AIs in the 400-427, including checksum support.</li>
<li>Fixed Aztec false positives that happened where data miscodes and erasures exceeded the error correction capacity.</li>
<li>Fixed a crash where MRZ documents have an empty name or surname field.</li>
</ul>
<h2 id="5111-2022-05-16">5.11.1 (2022-05-16)</h2>
<h3 id="changes-3">Changes</h3>
<ul>
<li>Improved <em>external Scandit Data Capture library</em> loading behaviour: faster loading with no unnecessary requests when WebAssembly files are served with the wrong MIME type.</li>
</ul>
<h3 id="fixes-2">Fixes</h3>
<ul>
<li>Fixed camera access failures in some rare situations when switching between apps on <em>iOS</em>.</li>
</ul>
<h3 id="updates-4">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.17.11.</li>
<li>Updated <em>tslib</em> library to version 2.4.0.</li>
</ul>
<h2 id="5110-2022-03-31">5.11.0 (2022-03-31)</h2>
<h3 id="updates-5">Updates</h3>
<ul>
<li>Updated <em>external Scandit Data Capture library</em> to version 6.12.0.</li>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.17.8.</li>
<li>Updated <em>csstype</em> to version 3.0.11.</li>
</ul>
<h3 id="external-scandit-data-capture-library-updates-1">External Scandit Data Capture Library Updates</h3>
<ul>
<li>When <em>QR</em> codes' encoding isn't specified through Extended Channel Interpretation (ECI), revert back to guessing the encoding.</li>
<li>Right guard quiet zone requirements for <em>GS1 DataBar Limited</em> codes can be relaxed via the symbology extension <code>Extension.RELAXED_SHARP_QUIET_ZONE_CHECK</code>.</li>
<li>Improved 1D code highlighting accuracy when glare is present on the barcode.</li>
<li>For <em>KIX</em> codes, <code>X</code> used as a separator character in house number fields no longer count towards the maximal length of house numbers. Previously, some valid <em>KIX</em> codes were rejected incorrectly.</li>
<li>Fixed typos in some of the WMI regions of the VIN parser results.</li>
</ul>
<h2 id="5100-2022-03-02">5.10.0 (2022-03-02)</h2>
<h3 id="updates-6">Updates</h3>
<ul>
<li>Updated <em>external Scandit Data Capture library</em> to version 6.11.0.</li>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.16.5.</li>
</ul>
<h3 id="external-scandit-data-capture-library-updates-2">External Scandit Data Capture Library Updates</h3>
<ul>
<li>Improved 1D barcode reader performance with perspective distortion (pitch) and slight rotation angles.</li>
<li>Fixed Error 2 occurrence for unusual configurations with small barcode search areas.</li>
<li>Fixed the wording of some VIN parser error messages.</li>
</ul>
<h2 id="593-2022-01-20">5.9.3 (2022-01-20)</h2>
<h3 id="fixes-3">Fixes</h3>
<ul>
<li>Fixed camera initialization issues due to quick camera start/stop sequences causing the library to get stuck.</li>
</ul>
<h3 id="updates-7">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.16.7.</li>
</ul>
<h2 id="592-2021-12-22">5.9.2 (2021-12-22)</h2>
<h3 id="changes-4">Changes</h3>
<ul>
<li>The barcode picker now displays a message and accepts a tap/click from the user to recover camera access in cases where it is lost and cannot be automatically recovered.</li>
</ul>
<h3 id="fixes-4">Fixes</h3>
<ul>
<li>Fixed incorrect initial camera being accessed in <em>Chrome</em> WebViews on some devices.</li>
<li>Fixed library failing to load in some situations in <em>Firefox</em> and <em>Safari</em>.</li>
</ul>
<h3 id="updates-8">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.16.5.</li>
</ul>
<h2 id="591-2021-11-17">5.9.1 (2021-11-17)</h2>
<h3 id="fixes-5">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker</code> resources (video elements, WebGL contexts) not being correctly released and cleaned up on destroy in some situations.</li>
</ul>
<h3 id="updates-9">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.16.3.</li>
<li>Updated <em>csstype</em> to version 3.0.10.</li>
</ul>
<h2 id="590-2021-11-05">5.9.0 (2021-11-05)</h2>
<h3 id="additions">Additions</h3>
<ul>
<li>Added a new <code>loadTextRecognition</code> option (disabled by default) to <code>ScanditSDK.configure()</code> to enable/disable text recognition, loading the appropriate more advanced version of the <em>external Scandit Data Capture library</em> as needed.</li>
<li>Added a new <code>textRecognitionSettings</code> option to <code>ScanSettings</code>'s constructor and relative functions <code>ScanSettings.getTextRecognitionSettings()</code> and <code>ScanSettings.setTextRecognitionSettings()</code> to control the settings being used for text recognition.</li>
<li>Added a new <code>recognitionMode</code> option to <code>ScanSettings</code>'s constructor and relative functions <code>ScanSettings.getRecognitionMode()</code> and <code>ScanSettings.setRecognitionMode()</code> to control whether codes and/or text are recognized.</li>
<li>Added a new <code>ScanSettings.RecognitionMode</code> enumeration (used inside <code>ScanSettings</code>) to list the different recognition mode (code/text combinations) available.</li>
<li>Added a new <code>TextRecognitionSettings</code> class to handle configuration of text recognition settings.</li>
<li>Added a new <code>texts</code> property to the <code>ScanResult</code> object, containing the list of texts found in the image (if any).</li>
<li>Added a new <code>ScanResult.rejectText()</code> function to reject a text in listeners registered with <code>BarcodePicker.onProcessFrame()</code> or <code>BarcodePicker.onScan()</code>: if all codes and texts in the result are rejected, sound, vibration and GUI flashing will be suppressed.</li>
<li>Added a new <code>logLevel</code> option to <code>ScanditSDK.configure()</code> to select the desired console log level of the library.</li>
<li>Added a new <code>cameraAccessError</code> event to the <code>BarcodePicker</code>, emitted when an error with the access to the current camera is detected.</li>
</ul>
<h3 id="changes-5">Changes</h3>
<ul>
<li>The rejection functionality has been expanded to now consider both codes and texts: only if all codes and texts in the result are rejected, sound, vibration and GUI flashing will be suppressed.</li>
<li>The session clearing functionality has been expanded to be applied to both codes and texts: all recognized barcodes/texts are removed from the scanner session and are allowed to be scanned again in case a <em>codeDuplicateFilter</em> and/or <em>textDuplicateFilter</em> option was set in <code>ScanSettings</code> or <code>TextRecognitionSettings</code>.</li>
<li>The <code>BarcodePicker</code> is no longer permanently stopped in case of a camera access error, if and when camera access is resumed, the barcode picker resumes its operations according to its current settings.</li>
</ul>
<h3 id="fixes-6">Fixes</h3>
<ul>
<li>Fixed rare camera initialization issues on some specific devices causing certain cameras to be inaccessible.</li>
<li>Fixed rare camera initialization issues on some specific devices causing the library to get stuck.</li>
<li>Fixed rare "Maximum call stack size exceeded" error when initializing a barcode picker in <em>Safari</em>.</li>
</ul>
<h3 id="updates-10">Updates</h3>
<ul>
<li>Updated <em>external Scandit Data Capture library</em> to version 6.10.0.</li>
<li>Updated <em>@babel/runtime-corejs2</em> to version 7.16.0.</li>
<li>Updated <em>ua-parser-js</em> to version 1.0.2.</li>
</ul>
<h3 id="external-scandit-data-capture-library-updates-3">External Scandit Data Capture Library Updates</h3>
<ul>
<li>Improved scan performance of thin 1D barcodes at perspective, and 1D barcodes with glare because of reflective packaging material.</li>
<li>Improved scan performance of <em>Aztec</em> codes.</li>
<li>Added ECI (Extended Channel Interpretation) support for <em>MaxiCode</em> codes.</li>
<li>Improved recognition performance on low resolution and single region <em>Data Matrix</em> codes.</li>
<li>Improved speed and usability of MRZ scanning, as documents do not need to be aligned as precisely as before.</li>
<li>Corrected reported encoding for <em>MaxiCode</em> codes to "ISO-8859-1" if not explicitly specified with ECI for extended ASCII codes. Previous to this release, "US-ASCII" was returned.</li>
<li>Fixed a bug in <em>Aztec</em> codes that made it hard to scan some codes with little data / low number of elements.</li>
<li>Fixed binary data processing in the <em>DotCode</em> detector.</li>
<li>GS1 parser: fixed an issue that the returned GTIN (Global Trade Item Number) field omitted first and last character.</li>
<li>GS1 parser: fixed an issue that the returned GSRN (Global Service Relation Number) field omitted last character.</li>
<li>GS1 parser: fixed an issue that the returned SSCC (Serial Shipping Container Code) field omitted first and last character.</li>
<li>Fixed an issue with scanning El Salvador MRZ ID documents.</li>
</ul>
<h2 id="582-2021-10-26">5.8.2 (2021-10-26)</h2>
<h3 id="fixes-7">Fixes</h3>
<ul>
<li>Fixed failing bundling of library due to wrong required modules present in the final WebSDK browser bundles.</li>
</ul>
<h3 id="updates-11">Updates</h3>
<ul>
<li>Updated <em>ua-parser-js</em> to version 1.0.1.</li>
</ul>
<h2 id="581-2021-10-21">5.8.1 (2021-10-21)</h2>
<h3 id="fixes-8">Fixes</h3>
<ul>
<li>Fixed incorrect initial camera being accessed in <em>Chrome</em> WebViews in some situations.</li>
</ul>
<h3 id="updates-12">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.15.4.</li>
<li>Updated <em>csstype</em> library to version 3.0.9.</li>
<li>Updated <em>js-cookie</em> library to version 3.0.1.</li>
</ul>
<h2 id="580-2021-08-26">5.8.0 (2021-08-26)</h2>
<h3 id="fixes-9">Fixes</h3>
<ul>
<li>Fixed incorrect cameras' video feed being sometimes briefly shown before showing the correct main camera's video feed, when initializing a <code>BarcodePicker</code> with default camera access.</li>
</ul>
<h3 id="updates-13">Updates</h3>
<ul>
<li>Updated <em>external Scandit Data Capture library</em> to version 6.9.1.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.15.3.</li>
<li>Updated <em>howler</em> library to version 2.2.3.</li>
<li>Updated <em>js-cookie</em> library to version 3.0.0.</li>
<li>Updated <em>tslib</em> library to version 2.3.1.</li>
</ul>
<h3 id="external-scandit-data-capture-library-updates-4">External Scandit Data Capture Library Updates</h3>
<ul>
<li>Improved scanning performance for <em>(Micro-)QR</em>, <em>(Micro-)PDF417</em>, and <em>Data Matrix</em> codes.</li>
<li>Fixed rare MSI Plessey false positives.</li>
<li>HIBC parser: fixed the issue that codes with space check digit were not parsed.</li>
</ul>
<h2 id="571-2021-07-01">5.7.1 (2021-07-01)</h2>
<h3 id="fixes-10">Fixes</h3>
<ul>
<li>Fixed browser bug preventing the library to correctly load on the very first page load on <em>iOS</em> 14.6.</li>
</ul>
<h2 id="570-2021-06-28">5.7.0 (2021-06-28)</h2>
<h3 id="changes-6">Changes</h3>
<ul>
<li>Switched from <em>Scandit Engine</em> to <em>Scandit Data Capture</em>.</li>
</ul>
<h3 id="fixes-11">Fixes</h3>
<ul>
<li>Fixed rare camera access freeze issues when switching or pausing/resuming access on some <em>Android</em> mobile devices in <em>Chrome</em>.</li>
<li>Fixed Web Component barcode picker UI not being correctly vertically centered in some situations.</li>
<li>Fixed Web Component barcode picker UI moving slightly while switching cameras.</li>
<li>Fixed browser bug preventing correct processing of the camera video feed in <em>Chrome</em> WebViews.</li>
<li>Fixed browser bug preventing the library to correctly load on the very first page load in <em>Safari</em> 14.6.</li>
</ul>
<h3 id="updates-14">Updates</h3>
<ul>
<li>Replaced <em>external Scandit Engine library</em> with <em>external Scandit Data Capture library</em> version 6.8.1.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.14.6.</li>
<li>Updated <em>@juggle/resize-observer</em> library to version 3.3.1.</li>
<li>Updated <em>csstype</em> to version 3.0.8.</li>
<li>Updated <em>tslib</em> library to version 2.3.0.</li>
<li>Updated <em>ua-parser-js</em> to version 0.7.28.</li>
</ul>
<h3 id="external-scandit-data-capture-library-updates-5">External Scandit Data Capture Library Updates</h3>
<ul>
<li>Added support for <em>Data Matrix</em> Rectangular Extension (ISO/IEC21471:2020).</li>
<li>Added blurry recognition support for <em>Codabar</em>, increasing the decode range by up to 60% (may vary by device).</li>
<li>Added "strict" symbology extension for 1D symbologies. It enforces strict standard adherence to eliminate false positives in blurry, irregular or damaged barcodes at the cost of reduced scan performance.</li>
<li>Added ECI (Extended Channel Interpretation) support for <em>Data Matrix</em> codes.</li>
<li>Added ECI (Extended Channel Interpretation) support for <em>Aztec</em> codes.</li>
<li>Added GS1 support for <em>Aztec</em> codes.</li>
<li>Improved 1D barcode scanning performance for codes with perspective distortion.</li>
<li>Improved decoding performance of large <em>Data Matrix</em> codes.</li>
<li>Corrected encoding names to true IANA names, i.e. from "ASCII" to "US-ASCII", from "ISO8859-x" to "ISO-5589-x" and from "UTF8" to "UTF-8".</li>
<li>Corrected reported encoding for <em>QR</em> codes to "ISO-8859-1" if not explicitly specified otherwise. Previous to this release, when the character encoding is not explicitly specified, the <em>QR</em> code reader would attempt to guess the encoding. This behaviour goes counter to what's written in the <em>QR</em> code specification. The new default is to assume an encoding of ISO-8859-1 (latin-1).</li>
<li>Corrected reported encoding for <em>(Micro)PDF417</em> codes to "ISO-8859-1" if not explicitly specified with ECI. Previous to this release, in some cases "US-ASCII" was returned.</li>
</ul>
<h2 id="560-2021-03-26">5.6.0 (2021-03-26)</h2>
<h3 id="additions-1">Additions</h3>
<ul>
<li>Added a new <code>deviceName</code> option to <code>ScanSettings</code>'s constructor and relative functions <code>ScanSettings.getDeviceName()</code> and <code>ScanSettings.setDeviceName()</code> to control the descriptive device name to identify the current device when looking at analytics tools.</li>
<li>Added new <em>Matrix 2 of 5</em> symbology support and relative <code>Barcode.Symbology.MATRIX_2_OF_5</code> enumeration value.</li>
<li>Added new <em>USPS Intelligent Mail</em> symbology support and relative <code>Barcode.Symbology.USPS_INTELLIGENT_MAIL</code> enumeration value.</li>
</ul>
<h3 id="updates-15">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.19.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.13.10.</li>
<li>Updated <em>@juggle/resize-observer</em> library to version 3.3.0.</li>
<li>Updated <em>csstype</em> to version 3.0.7.</li>
</ul>
<h2 id="553-2021-02-18">5.5.3 (2021-02-18)</h2>
<h3 id="fixes-12">Fixes</h3>
<ul>
<li>Fixed incorrect NPM script setup preventing correct installation.</li>
</ul>
<h2 id="552-2021-02-17">5.5.2 (2021-02-17)</h2>
<h3 id="updates-16">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.18.3.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.12.13.</li>
<li>Updated <em>objectFitPolyfill</em> library to version 2.3.5.</li>
<li>Updated <em>ua-parser-js</em> to version 0.7.24.</li>
</ul>
<h2 id="551-2021-02-01">5.5.1 (2021-02-01)</h2>
<h3 id="changes-7">Changes</h3>
<ul>
<li>Added detection of camera device connection and removal events, resulting in an update of available device information and change in cameras returned from <code>CameraAccess.getCameras()</code>.</li>
<li>Improved detection and identification of cameras on desktop/laptop devices, resulting in more accurate front/back property assignments (with related correct video mirroring choices) and faster initial camera access.</li>
<li>Web Component now shows initialization errors as console error messages instead of HTML text.</li>
<li>Improved documentation structure.</li>
</ul>
<h3 id="fixes-13">Fixes</h3>
<ul>
<li>Fixed unnecessary camera access attempts being made when no camera is available.</li>
<li>Fixed unnecessary camera access attempts being made when the initial camera is already correctly accessed on desktop/laptop devices.</li>
<li>Fixed the same camera objects being incorrectly shared for different actual cameras in some rare situations.</li>
<li>Fixed camera front/back type property being incorrectly guessed and assigned on desktop/laptop devices in some situations.</li>
<li>Fixed incorrect detection of main front/back cameras on desktop/laptop devices in some situations.</li>
<li>Fixed rare camera access attempts being stopped and failing ahead of time when the camera could have been accessed correctly.</li>
<li>Fixed Web Component not correctly catching and displaying some errors on initialization.</li>
</ul>
<h3 id="updates-17">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.18.2.</li>
<li>Updated <em>csstype</em> library to version 3.0.6.</li>
<li>Updated <em>tslib</em> library to version 2.1.0.</li>
<li>Updated <em>ua-parser-js</em> to version 0.7.23.</li>
</ul>
<h2 id="550-2020-12-10">5.5.0 (2020-12-10)</h2>
<h3 id="additions-2">Additions</h3>
<ul>
<li>Added a new <code>codeDirectionHint</code> option to <code>ScanSettings</code>'s constructor and relative functions <code>ScanSettings.getCodeDirectionHint()</code> and <code>ScanSettings.setCodeDirectionHint()</code> to control the code direction hint telling in what direction 1D codes are most likely orientated, used to locate/scan difficult codes in said directions differing from the default <em>left-to-right</em>.</li>
</ul>
<h3 id="changes-8">Changes</h3>
<ul>
<li>Improved decode/scan performance of difficult blurry codes when using cameras with no autofocus capabilities.</li>
</ul>
<h3 id="fixes-14">Fixes</h3>
<ul>
<li>Fixed newly created <code>Scanner</code> and <code>BarcodePicker</code> objects stopping to scan when (re-)created during or shortly after the destruction of another instance due to an incorrect <code>Scanner.isBusyProcessing()</code> reported status.</li>
</ul>
<h2 id="542-2020-11-19">5.4.2 (2020-11-19)</h2>
<h3 id="fixes-15">Fixes</h3>
<ul>
<li>Fixed camera access attempts immediately failing instead of retrying with lower video feed resolution requirements.</li>
</ul>
<h2 id="541-2020-11-19">5.4.1 (2020-11-19)</h2>
<h3 id="changes-9">Changes</h3>
<ul>
<li>Improved detection of small or rotated codes.</li>
</ul>
<h3 id="fixes-16">Fixes</h3>
<ul>
<li>Fixed camera reaccess failing in some rare situations when camera access is paused and resumed, and new device information results in no labels and modified device identifiers: the correct camera is now always identified and reaccessed when possible.</li>
<li>Fixed modified device identifiers scenarios resulting in the loss of previously stored information about inaccessible cameras.</li>
<li>Fixed modified device identifiers scenarios resulting in the new camera being accessed with lower video feed resolution compared to the previous state.</li>
<li>Fixed modified device identifiers scenarios resulting in wrong information being stored in old camera objects and new camera objects incorrectly being created: existing camera objects are now correctly kept and used, and all correctly reflect their current status.</li>
</ul>
<h3 id="updates-18">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.17.2.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.12.5.</li>
<li>Updated <em>csstype</em> library to version 3.0.5.</li>
</ul>
<h2 id="540-2020-11-03">5.4.0 (2020-11-03)</h2>
<h3 id="additions-3">Additions</h3>
<ul>
<li>Added a new optional argument (disabled by default) to the <code>CameraAccess.getCameras()</code> function, allowing to force updated available device information to be retrieved, instead of relying on cached information from previous calls.</li>
</ul>
<h3 id="changes-10">Changes</h3>
<ul>
<li>Improved camera listing via <code>CameraAccess.getCameras()</code> and in internal operations, resulting in faster camera access and possibly reduced camera access user permission requests.</li>
<li>Added automatic handling of unexpected camera video stream interruptions, now leading to camera reinitialization.</li>
</ul>
<h3 id="fixes-17">Fixes</h3>
<ul>
<li>Fixed non-standard camera access behaviour of some browsers causing camera initialization failures and black video feeds.</li>
<li>Fixed <code>BarcodePicker</code> visibility changes causing some UI elements to be incorrectly hidden.</li>
<li>Fixed <code>BarcodePicker</code> visibility changes not correctly maintaining its element's dimensions in some situations.</li>
</ul>
<h2 id="532-2020-10-27">5.3.2 (2020-10-27)</h2>
<h3 id="changes-11">Changes</h3>
<ul>
<li>Improved camera (re)access speed when the browser/tab comes back in foreground, gets focus or the screen is turned on again on mobile devices.</li>
</ul>
<h3 id="fixes-18">Fixes</h3>
<ul>
<li>Fixed camera access failing in some situations when switching between cameras or setting camera options.</li>
<li>Fixed camera (re)access failing and causing errors when the browser/tab goes into background, loses focus or the screen is turned off on mobile devices in <em>Chrome</em> and <em>Firefox mobile</em>.</li>
</ul>
<h3 id="updates-19">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.12.1.</li>
<li>Updated <em>csstype</em> library to version 3.0.4.</li>
<li>Updated <em>howler</em> library to version 2.2.1.</li>
<li>Updated <em>tslib</em> library to version 2.0.3.</li>
</ul>
<h2 id="531-2020-10-21">5.3.1 (2020-10-21)</h2>
<h3 id="updates-20">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.17.1.</li>
</ul>
<h2 id="530-2020-10-06">5.3.0 (2020-10-06)</h2>
<h3 id="additions-4">Additions</h3>
<ul>
<li>Added a new <code>BarcodePicker.setCameraType()</code> function to select a camera based on its camera type (facing mode/direction).</li>
<li>Added new possible <code>BrowserCompatibility.Feature</code> entries in the <code>missingFeatures</code> property of <code>BrowserCompatibility</code> regarding incorrect website / web application access: <code>HTTP_PROTOCOL</code> and <code>SECURE_CONTEXT</code>, referring respectively to direct local file access instead of using a web server (<em>file:</em> vs <em>http(s):</em> protocol) and an <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts">insecure context</a>.</li>
</ul>
<h3 id="changes-12">Changes</h3>
<ul>
<li><code>UnsupportedBrowserError</code>' s <code>message</code> property now contains a summary of the missing browser features (coming from the included <code>BrowserCompatibility</code> in the <code>data</code> property) at its end.</li>
<li>The Web Component's <code>camera</code> attribute now reflects the currently active camera.</li>
<li>The Web Component's <code>cameraType</code> attribute can now be changed after initial creation to select a camera based on its camera type (facing mode/direction).</li>
</ul>
<h3 id="fixes-19">Fixes</h3>
<ul>
<li>Fixed <em>Safari</em> on <em>iOS</em> losing camera access a few seconds after the <code>BarcodePicker</code> element is hidden (externally or through the <code>BarcodePicker.setVisible()</code> function).</li>
<li>Fixed <em>Safari</em> on <em>iOS</em> not correctly resuming camera video feed after the the camera is paused due to different tabs accessing it or the user manually using the browser's camera access button.</li>
<li>Fixed occasional multiple camera access attempts being triggered and possibly causing errors when automatically resuming camera video feed after a pause.</li>
<li>Fixed Web Component not correctly reflecting internal status in some attributes and not updating on some attribute changes.</li>
</ul>
<h3 id="updates-21">Updates</h3>
<ul>
<li>Updated <em>ua-parser-js</em> library to version 0.7.22.</li>
</ul>
<h2 id="520-2020-09-01">5.2.0 (2020-09-01)</h2>
<h3 id="additions-5">Additions</h3>
<ul>
<li>The barcode picker can now be integrated as a <a href="https://developer.mozilla.org/en-US/docs/Web/Web_Components">Web Component</a>. The Component is in beta version, functionality could change at any time independently from major version changes. Please consult the README file for usage.</li>
</ul>
<h3 id="changes-13">Changes</h3>
<ul>
<li>Multiple calls to <code>configure()</code> without waiting on the returned promise will return the same promise object. In case <code>configure()</code> is called again after the promise returned successfully, arguments from subsequent calls are ignored and the same promise returned from the successful call will be returned. If <code>configure()</code> has failed, it may be retried after the rejection of the returned promise.</li>
</ul>
<h3 id="fixes-20">Fixes</h3>
<ul>
<li>Fixed <code>BarcodePicker.setActiveCamera()</code>, <code>BarcodePicker.resumeScanning()</code>, <code>BarcodePicker.accessCamera()</code>, <code>BarcodePicker.setCameraSwitcherEnabled()</code> function calls done after a successful camera access while the camera is not being accessed and <code>CameraAccess.getCameras()</code> function calls after the first one incorrectly triggering unnecessary camera access attempts and relative user permission requests (making the process slower) in <em>Firefox mobile</em>.</li>
<li>Fixed multiple <code>BarcodePicker</code> instances created at the same time having a different and incomplete list of available cameras.</li>
</ul>
<h3 id="updates-22">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.11.2.</li>
<li>Updated <em>csstype</em> library to version 3.0.3.</li>
<li>Updated <em>eventemitter3</em> library to version 4.0.7.</li>
<li>Updated <em>tslib</em> library to version 2.0.1.</li>
</ul>
<h2 id="514-2020-08-06">5.1.4 (2020-08-06)</h2>
<h3 id="fixes-21">Fixes</h3>
<ul>
<li>Fixed the <code>BarcodePicker</code> occasionally processing video frames buffered just before being hidden shortly after being shown again via external style changes in <em>Safari</em>.</li>
<li>Fixed the <code>BarcodePicker</code> not processing any video frames while the element is hidden but scanning is still enabled in <em>Safari</em> (hiding the element doesn't implicitly pause scanning, use <code>BarcodePicker.pauseScanning()</code> and <code>BarcodePicker.resumeScanning()</code> if needed).</li>
<li>Fixed TypeScript type definition in declaration file causing compilation failures for TypeScript versions < 3.5.</li>
<li>Fixed incorrect sourcemaps for the provided minified browser files.</li>
</ul>
<h2 id="513-2020-08-04">5.1.3 (2020-08-04)</h2>
<h3 id="changes-14">Changes</h3>
<ul>
<li>Deprecated errors of type <code>NotSupportedError</code> that can happen on some older browsers when accessing the camera are now automatically mapped to the more recent type: <code>AbortError</code>.</li>
</ul>
<h3 id="fixes-22">Fixes</h3>
<ul>
<li>Fixed missing <em>emscripten</em> types causing compilation to fail when using the library as a TypeScript dependency.</li>
<li>Fixed non-standard camera access behaviour of some uncommon browsers causing uncaught errors instead of being handled gracefully.</li>
</ul>
<h3 id="updates-23">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.11.0.</li>
<li>Updated <em>csstype</em> library to version 3.0.2.</li>
</ul>
<h2 id="512-2020-07-24">5.1.2 (2020-07-24)</h2>
<h3 id="fixes-23">Fixes</h3>
<ul>
<li>Fixed <code>Parser.parseRawData()</code> failing to parse the given data when the byte array contains some specific values.</li>
</ul>
<h3 id="updates-24">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.16.1.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.10.5.</li>
</ul>
<h2 id="511-2020-07-13">5.1.1 (2020-07-13)</h2>
<h3 id="fixes-24">Fixes</h3>
<ul>
<li>Fixed <em>external Scandit Engine library</em> failing to load in <em>Edge</em> 16/17/18.</li>
</ul>
<h2 id="510-2020-07-07">5.1.0 (2020-07-07)</h2>
<h3 id="changes-15">Changes</h3>
<ul>
<li>Optimized IndexedDB storage calls for external Scandit Engine data storage.</li>
<li>Extended default symbol count ranges for several symbologies (Code 128: 6-40, Code 39: 6-40, Code 93: 6-40, MSI-Plessey: 6-32, Interleaved 2 of 5: 6-40).</li>
</ul>
<h3 id="fixes-25">Fixes</h3>
<ul>
<li>Fixed <em>external Scandit Engine library</em> registering a device activation already on initial configuration when preloading is enabled: a device is registered only at the time the first frame is processed (or a parse operation is performed).</li>
</ul>
<h3 id="updates-25">Updates</h3>
<ul>
<li>Updated <em>external Scandit Engine library</em> to version 5.16.</li>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.10.4.</li>
<li>Updated <em>csstype</em> library to version 2.6.11.</li>
</ul>
<h2 id="501-2020-06-10">5.0.1 (2020-06-10)</h2>
<h3 id="changes-16">Changes</h3>
<ul>
<li><code>CameraAccess.getCameras()</code>'s promise now doesn't reject anymore on optional failed camera access (necessary in some situation for additional device data access), but instead returns a list of cameras with limited information.</li>
</ul>
<h3 id="fixes-26">Fixes</h3>
<ul>
<li>Fixed loss of WebGL context due to external factors causing external Scandit Engine errors about incorrect image data and failure to continue processing video frames; the context is now automatically recreated.</li>
<li>Fixed missing camera enumeration information in some scenarios (limited webviews) causing <code>BarcodePicker</code> creation and <code>CameraAccess.getCameras()</code> to fail.</li>
<li>Fixed rare camera initialization issues on some combinations of browsers/devices causing incorrect 0x0 video feed resolution to be reported and possible external Scandit Engine errors to be consequently triggered.</li>
</ul>
<h3 id="updates-26">Updates</h3>
<ul>
<li>Updated <em>@babel/runtime-corejs2</em> library to version 7.10.2.</li>
<li>Updated <em>@juggle/resize-observer</em> library to version 3.2.0.</li>
<li>Updated <em>eventemitter3</em> library to version 4.0.4.</li>
<li>Updated <em>howler</em> library to version 2.2.0.</li>
<li>Updated <em>tslib</em> library to version 2.0.0.</li>
</ul>
<h2 id="500-2020-05-11">5.0.0 (2020-05-11)</h2>
<h3 id="additions-6">Additions</h3>
<ul>
<li><p>Implemented and enabled by default asynchronous preloading of the <em>external Scandit Engine library</em> (used by <code>BarcodePicker</code> and <code>Scanner</code> objects to perform scan operations).</p>
<p>If enabled, the <em>external Scandit Engine library</em> is preloaded (downloaded if needed, WebAssembly code compiled/instantiated and initialized) asynchronously via a separate WebWorker at library configuration time. Any <code>BarcodePicker</code> or <code>Scanner</code> object will then be ready to start processing video frames much faster, as the needed <em>external Scandit Engine library</em> will already be in a partially or fully initialized state thanks to it being preloaded.</p>
<p>If disabled (old behaviour), <code>BarcodePicker</code> and <code>Scanner</code> objects will load the <em>external Scandit Engine library</em> on creation (if it wasn't already loaded before by a previously created object), and will thus require more time to be initialized and ready.</p>
<p>In either case the loaded <em>external Scandit Engine library</em> will be reused whenever possible for later successive uses of the library.</p>
<p>Note also that preloading does not trigger a device activation for licensing purposes.</p>
</li>
<li><p>Implemented and enabled by default asynchronous preloading of barcode blurry recognition data (already in use before depending on <code>ScanSettings</code>'s <code>blurryRecognition</code> option to allow accurate scanning capabilities for out-of-focus 1D codes).</p>
<p>If enabled, all the data necessary to process frames in this advanced way is generated (if needed) asynchronously via a separate WebWorker at library configuration time. Any <code>BarcodePicker</code> or <code>Scanner</code> object will then be able to start processing video frames much faster, as it won't need to generate barcode blurry recognition data lazily only when needed. If necessary, depending on given <code>ScanSettings</code> options and on readiness of the data, processing is also initially performed without barcode blurry recognition until this data becomes available, at which point the new data will be loaded and used.</p>
<p>If disabled (old behaviour), <code>BarcodePicker</code> and <code>Scanner</code> objects will load or generate barcode blurry recognition data lazily when needed to process the first frame, depending on given <code>ScanSettings</code> options, and will thus require more time the first time the library is actively used with the given active symbologies. As this needs to be done in the same WebWorker, the processing of the frame will then be blocked until the needed data is loaded or generated.</p>
<p>In either case the data for barcode blurry recognition will be cached for later successive uses of the library.</p>
<p>Note also that preloading does not trigger a device activation for licensing purposes.</p>
</li>
<li><p>Added a new <code>preloadEngine</code> option to <code>ScanditSDK.configure()</code> to enable/disable asynchronous preloading of the <em>external Scandit Engine library</em>.</p>
</li>
<li><p>Added a new <code>preloadBlurryRecognition</code> option to <code>ScanditSDK.configure()</code> to enable/disable asynchronous preloading of barcode blurry recognition data.</p>
</li>
<li><p>Improved and expanded Single Image Mode appearance and configuration options. The UI now looks different and contains information text and a button, with dynamic content depending on the platform. Configuration is now done via the <code>SingleImageModeSettings</code> interface on <code>BarcodePicker</code> creation.</p>
</li>
<li><p>Added a new <code>SingleImageModeSettings</code> interface defining options available for Single Image Mode configuration on each platform: it's now possible to set custom CSS style properties for the different elements of the UI, and to pass completely different HTML elements altogether (in addition to control usage strategy of the mode as previously possible).</p>
</li>
<li><p>Added a new <code>SingleImageModePlatformSettings</code> interface (used inside <code>SingleImageModeSettings</code>) to define the actual options for Single Image Mode for different platforms.</p>
</li>
<li><p>Added a new <code>SingleImageModeSettings.UsageStrategy</code> enumeration (used inside <code>SingleImageModeSettings</code>) to list the different types of usage strategies available for Single Image Mode.</p>
</li>
<li><p>Added a new <code>singleImageModeSettings</code> option to <code>BarcodePicker.create()</code> to set Single Image Mode settings, accepting a <code>SingleImageModeSettings</code> object.</p>
</li>
<li><p>Added a new <code>cameraType</code> option to <code>BarcodePicker.create()</code> to easily set the preferred initial camera type (facing mode/direction) to be used for video input and Single Image Mode (when available).</p>
</li>
<li><p>Added a new <code>Scanner.removeListener()</code> function to more easily remove <code>Scanner</code> event listeners in a standard way by passing event name and listener function.</p>
</li>
<li><p>Added a new <code>Scanner.removeAllListeners()</code> function to more easily remove all <code>Scanner</code> event listeners in a standard way by passing an event name.</p>
</li>
<li><p>It's now possible to remove listeners added for <code>Scanner</code>'s <code>ready</code> event via the new <code>Scanner.removeListener("ready")</code> or <code>Scanner.removeAllListeners("ready")</code> functions.</p>
</li>
<li><p>Added new <em>IATA 2 of 5</em> symbology support and relative <code>Barcode.Symbology.IATA_2_OF_5</code> enumeration value.</p>
</li>
<li><p>Added new <code>Vehicle Identification Number (VIN)</code> support to <code>Parser</code> and relative <code>Parser.DataFormat.VIN</code> enumeration value.</p>
</li>
<li><p>Added support for <em>Ultra HD (4K)</em> camera video feed resolution and relative <code>CameraSettings.ResolutionPreference.ULTRA_HD</code> enumeration value.</p>
</li>
<li><p>Added dependency to <em>csstype</em> library.</p>
</li>
</ul>
<h3 id="changes-17">Changes</h3>
<ul>
<li><strong>BREAKING</strong>: Removed <code>BarcodePicker.create()</code>'s <code>singleImageMode</code> option (replaced by the new <code>singleImageModeSettings</code> option).</li>
<li><strong>BREAKING</strong>: Single Image Mode's UI has been changed substantially.</li>
<li><strong>BREAKING</strong>: Data passed to <code>Scanner.processImage()</code> is "detached"/"neutered" becoming unusable as it's being passed to the <em>external Scandit Engine library</em>. Note that you can still access the same data once it's returned in the <code>ScanResult</code> object's <code>imageData</code> property as before.</li>
<li><strong>BREAKING</strong>: <code>ScanResult</code>'s <code>imageData</code> property will now be overwritten with the next video frame data after being returned and made available in all <code>submitFrame</code>/<code>processFrame</code>/<code>scan</code> even listeners for the current frame (the underlying data structure is reused). If the data is needed after the listener has finished executing, a copy should be made.</li>
<li><strong>BREAKING</strong>: <code>ScanResult</code>'s <code>imageData</code> property is now given as an <code>Uint8Array</code> (instead of <code>Uint8ClampedArray</code>). In case the old data format is required, the data view (type) can easily be changed with <code>new Uint8ClampedArray(imageData.buffer)</code>.</li>
<li><strong>BREAKING</strong>: <code>BarcodePicker.setTorchEnabled()</code> and <code>BarcodePicker.setZoom()</code> functions now return a promise resolving to the <code>BarcodePicker</code> object instance instead of directly the instance; this is due to the fact that the function needs to access the camera again.</li>
<li><strong>BREAKING</strong>: <code>SymbologySettings.getActiveSymbolCounts()</code> now always returns the full list of active symbol counts, also for the default cases.</li>
<li><strong>BREAKING</strong>: <code>SymbologySettings.getEnabledChecksums()</code> now returns all enabled optional checksums, including any default ones.</li>
<li><strong>BREAKING</strong>: <code>SymbologySettings.getEnabledExtensions()</code> now returns all enabled optional extensions, including any default ones.</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.onReady()</code> function (in favor of <code>BarcodePicker.on("ready")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.onScan()</code> function (in favor of <code>BarcodePicker.on("scan")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.onSubmitFrame()</code> function (in favor of <code>BarcodePicker.on("submitFrame")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.onProcessFrame()</code> function (in favor of <code>BarcodePicker.on("processFrame")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.onScanError()</code> function (in favor of <code>BarcodePicker.on("scanError")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeScanListener()</code> function (in favor of <code>BarcodePicker.removeListener("scan")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeSubmitFrameListener()</code> function (in favor of <code>BarcodePicker.removeListener("submitFrame")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeProcessFrameListener()</code> function (in favor of <code>BarcodePicker.removeListener("processFrame")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeScanErrorListener()</code> function (in favor of <code>BarcodePicker.removeListener("scanError")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeScanListeners()</code> function (in favor of <code>BarcodePicker.removeAllListeners("scan")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeSubmitFrameListeners()</code> function (in favor of <code>BarcodePicker.removeAllListeners("submitFrame")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeProcessFrameListeners()</code> function (in favor of <code>BarcodePicker.removeAllListeners("processFrame")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>BarcodePicker.removeScanErrorListeners()</code> function (in favor of <code>BarcodePicker.removeAllListeners("scanError")</code>).</li>
<li><strong>BREAKING</strong>: Removed previously deprecated <code>Scanner.onReady()</code> function (in favor of <code>Scanner.on("ready")</code>).</li>
<li><code>Scanner.processImage()</code> now accepts image data passed as <code>Uint8Array</code> (data given as <code>Uint8ClampedArray</code> is still compatible).</li>
<li>The <em>external Scandit Engine library</em> used by <code>BarcodePicker</code> and <code>Scanner</code> objects is now reused whenever possible on object destruction and recreation instead of being in turn also uselessly destroyed and recreated.</li>
<li>Cameras that are found to be inaccessible are now blacklisted and not returned in subsequent <code>CameraAccess.getCameras()</code> calls, they will also be ignored on <code>BarcodePicker</code> creation and when switching cameras through the camera switcher button, where other available cameras will be used as fallback if possible.</li>
<li>Greatly improved <code>BarcodePicker</code> and <code>Scanner</code> initialization times for objects created later after library configuration or after a previous object's destruction, thanks to asynchronous preloading and reuse of the <em>external Scandit Engine library</em>.</li>
<li>Greatly improved <code>BarcodePicker</code> and <code>Scanner</code> initialization times on first usage of the library, thanks to asynchronous preloading of barcode blurry recognition data.</li>
<li>Greatly improved memory usage: no more repeated allocations of new video frame data structures causing rapid increases in memory consumption and need for frequent garbage collection executions; reuse of critical data structures brings much more stable continuous memory use.</li>
<li>Improved general frame processing speed.</li>
<li>Improved scanning performance smoothness between frames: more homogeneity between subsequent processing times.</li>
<li>Improved Single Image Mode scan accuracy.</li>
<li>Local Storage is now used to store (completely random) device IDs for licensing purposes instead of cookies.</li>
<li>Removed dependency to <em>webrtc-adapter</em> library.</li>
<li>Reduced main library code size.</li>
</ul>
<h3 id="fixes-27">Fixes</h3>
<ul>
<li>Fixed several out-of-memory crashes and improved memory usage stability while scanning.</li>
<li>Fixed rare temporary discrepancies between detected camera video feed resolution and effective processed video frame data size causing possible errors and memory access problems.</li>
<li>Fixed cameras that are found to be inaccessible causing <code>BarcodePicker</code> initialization to fail when they are selected as the automatic initial camera: if other cameras are available they will be used as fallback.</li>
<li>Fixed cameras that are found to be inaccessible causing no video stream to be shown when switching cameras through the GUI: if other cameras are available they will be used as fallback.</li>
<li>Fixed inaccessible infrared cameras being listed by <code>CameraAccess.getCameras()</code> and possibly causing failures to initialize <code>BarcodePicker</code> objects on some devices; these cameras are now ignored.</li>
<li>Fixed <code>BarcodePicker</code> and <code>Scanner</code> objects wrongfully emitting their <code>ready</code> events ahead of time: now the event more accurately represents the time when the objects can actually start being used without delay.</li>
<li>Fixed some specific <code>SymbologySettings</code> enabled by default optional checksums and extensions not being disabled via <code>SymbologySettings.disableChecksums()</code> and <code>SymbologySettings.disableExtensions()</code>.</li>
<li>Fixed the external Scandit Engine not processing given images if they were provided at a specific point in time right after library loading but before configuration was fully completed (and no further images were then given afterwards).</li>
<li>Fixed Single Image Mode UI incorrectly accepting further files while an image was already being processed in some situations.</li>
<li>Fixed Single Image Mode UI remaining disabled if a temporary error was encountered during the file loading process.</li>
<li>Fixed some <code>ScanditEngineError</code> objects with specific format originating from <code>Parser</code> operations causing uncaught errors instead of being returned as gracefully returned errors.</li>
<li>Fixed some camera access errors not being correctly handled and then causing other possible logical errors in <em>Edge</em>.</li>
<li>Fixed deprecated networking functions being used for analytics communication, triggering console warning messages in some situations.</li>
</ul>
<h3 id="updates-27">Updates