simple-dynamsoft-mcp 5.0.0 → 6.3.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 (1061) hide show
  1. package/.env.example +89 -57
  2. package/LICENSE +21 -21
  3. package/README.md +592 -331
  4. package/data/metadata/data-manifest.json +315 -0
  5. package/data/metadata/dynamsoft_sdks.json +525 -0
  6. package/package.json +74 -53
  7. package/scripts/prebuild-rag-index.mjs +88 -0
  8. package/scripts/run-gemini-tests.mjs +25 -0
  9. package/scripts/sync-submodules.mjs +6 -0
  10. package/scripts/update-data-lock.mjs +124 -0
  11. package/scripts/update-sdk-versions.mjs +342 -0
  12. package/scripts/verify-data-lock.mjs +122 -0
  13. package/src/data-bootstrap.js +255 -0
  14. package/src/data-root.js +22 -0
  15. package/src/gemini-retry.js +148 -0
  16. package/src/index.js +1518 -1230
  17. package/src/normalizers.js +338 -274
  18. package/src/rag.js +1203 -589
  19. package/src/resource-index/builders.js +744 -0
  20. package/src/resource-index/config.js +226 -0
  21. package/src/resource-index/docs-loader.js +117 -0
  22. package/src/resource-index/paths.js +98 -0
  23. package/src/resource-index/samples.js +723 -0
  24. package/src/resource-index/uri.js +96 -0
  25. package/src/resource-index/version-policy.js +164 -0
  26. package/src/resource-index.js +536 -1220
  27. package/src/submodule-sync.js +139 -0
  28. package/code-snippet/dynamic-web-twain/UI-customization/image-editor.html +0 -1052
  29. package/code-snippet/dynamic-web-twain/UI-customization/loading-bar.html +0 -213
  30. package/code-snippet/dynamic-web-twain/UI-customization/progress-bar.html +0 -93
  31. package/code-snippet/dynamic-web-twain/UI-customization/thumbnail.html +0 -352
  32. package/code-snippet/dynamic-web-twain/UI-customization/without-UI.html +0 -111
  33. package/code-snippet/dynamic-web-twain/classification/document/SaveToFile.aspx +0 -24
  34. package/code-snippet/dynamic-web-twain/classification/document/document.html +0 -1142
  35. package/code-snippet/dynamic-web-twain/classification/tag/SaveToFile.aspx +0 -24
  36. package/code-snippet/dynamic-web-twain/classification/tag/tag.html +0 -930
  37. package/code-snippet/dynamic-web-twain/edit-image.html +0 -456
  38. package/code-snippet/dynamic-web-twain/gen-tree.py +0 -80
  39. package/code-snippet/dynamic-web-twain/input-options/download.html +0 -73
  40. package/code-snippet/dynamic-web-twain/input-options/load-from-local-drive.html +0 -60
  41. package/code-snippet/dynamic-web-twain/input-options/load-images-by-file-type.html +0 -112
  42. package/code-snippet/dynamic-web-twain/localstorage.html +0 -208
  43. package/code-snippet/dynamic-web-twain/output-options/convertToBase64.html +0 -161
  44. package/code-snippet/dynamic-web-twain/output-options/convertToBlob.html +0 -216
  45. package/code-snippet/dynamic-web-twain/output-options/save.html +0 -188
  46. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/DeleteFile.aspx +0 -33
  47. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/Download.aspx +0 -92
  48. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/SaveToFileEx.aspx +0 -37
  49. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/simultaneous-scan-upload.html +0 -351
  50. package/code-snippet/dynamic-web-twain/output-options/upload/DeleteFile.aspx +0 -33
  51. package/code-snippet/dynamic-web-twain/output-options/upload/Download.aspx +0 -92
  52. package/code-snippet/dynamic-web-twain/output-options/upload/SaveToFileEx.aspx +0 -37
  53. package/code-snippet/dynamic-web-twain/output-options/upload/upload.html +0 -365
  54. package/code-snippet/dynamic-web-twain/readme.md +0 -54
  55. package/code-snippet/dynamic-web-twain/scan/auto-remove-blank-page.html +0 -71
  56. package/code-snippet/dynamic-web-twain/scan/basic-scan.html +0 -227
  57. package/code-snippet/dynamic-web-twain/scan/capabilities/capabilities.html +0 -296
  58. package/code-snippet/dynamic-web-twain/scan/custom-data.html +0 -81
  59. package/code-snippet/dynamic-web-twain/scan/focus-scanUI-always-on-top.html +0 -59
  60. package/code-snippet/dynamic-web-twain/scan/get-custom-data.html +0 -122
  61. package/code-snippet/dynamic-web-twain/scan/image-layout.html +0 -224
  62. package/code-snippet/dynamic-web-twain/scan/mag-data.html +0 -76
  63. package/code-snippet/dynamic-web-twain/scan/read-barcode.html +0 -87
  64. package/code-snippet/dynamic-web-twain/scan/scan-one-side.html +0 -181
  65. package/code-snippet/dynamic-web-twain/scan/transfer-mode.html +0 -215
  66. package/code-snippet/dynamic-web-twain/scan/xfer-count.html +0 -83
  67. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/build.gradle +0 -36
  68. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/proguard-rules.pro +0 -21
  69. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/AndroidManifest.xml +0 -23
  70. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/java/com/dynamsoft/scanmultiplebarcodes/MainActivity.java +0 -70
  71. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/drawable/dbr_icon.xml +0 -21
  72. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/layout/activity_main.xml +0 -27
  73. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/values/colors.xml +0 -5
  74. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/values/strings.xml +0 -3
  75. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/values/themes.xml +0 -5
  76. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/build.gradle +0 -36
  77. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/proguard-rules.pro +0 -21
  78. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/AndroidManifest.xml +0 -24
  79. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/java/com/dynamsoft/scansinglebarcode/MainActivity.java +0 -87
  80. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/drawable/dbr_icon.xml +0 -21
  81. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/layout/activity_main.xml +0 -27
  82. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/values/colors.xml +0 -5
  83. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/values/strings.xml +0 -3
  84. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/values/themes.xml +0 -5
  85. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/build.gradle +0 -43
  86. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/proguard-rules.pro +0 -21
  87. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/AndroidManifest.xml +0 -22
  88. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/java/com/dynamsoft/scansinglebarcodekt/MainActivity.kt +0 -73
  89. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/drawable/dbr_icon.xml +0 -21
  90. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/layout/activity_main.xml +0 -27
  91. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/values/colors.xml +0 -5
  92. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/values/strings.xml +0 -3
  93. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/values/themes.xml +0 -5
  94. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/build.gradle +0 -37
  95. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/proguard-rules.pro +0 -21
  96. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/AndroidManifest.xml +0 -27
  97. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadAztec.json +0 -91
  98. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadCommon2D.json +0 -185
  99. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDPM.json +0 -138
  100. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDataMatrix.json +0 -178
  101. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDenseBarcodes.json +0 -138
  102. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDotCode.json +0 -130
  103. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDIndustrial.json +0 -155
  104. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDRetail.json +0 -148
  105. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadQR.json +0 -150
  106. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/HomeActivity.java +0 -98
  107. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ResultActivity.java +0 -45
  108. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ui/HomeItemAdapter.java +0 -77
  109. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ui/HomeItemsRecyclerView.java +0 -75
  110. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ui/ModeInfo.java +0 -41
  111. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/drawable/dbr_icon.xml +0 -21
  112. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/drawable/shape_home_item1.xml +0 -7
  113. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/drawable/shape_home_item2.xml +0 -7
  114. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/layout/activity_home.xml +0 -96
  115. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/layout/activity_result.xml +0 -17
  116. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/layout/layout_home_item.xml +0 -55
  117. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/attr_HomeItemsRecyclerView.xml +0 -9
  118. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/colors.xml +0 -16
  119. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/dimens.xml +0 -8
  120. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/strings.xml +0 -23
  121. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/themes.xml +0 -5
  122. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/build.gradle +0 -45
  123. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradle/wrapper/gradle-wrapper.properties +0 -6
  124. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradle.properties +0 -21
  125. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradlew +0 -185
  126. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradlew.bat +0 -89
  127. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/settings.gradle +0 -19
  128. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/build.gradle +0 -38
  129. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/proguard-rules.pro +0 -21
  130. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/AndroidManifest.xml +0 -32
  131. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/CaptureActivity.java +0 -256
  132. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/HomeActivity.java +0 -31
  133. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/settings/PreferencesConstants.java +0 -12
  134. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/settings/SettingsActivity.java +0 -47
  135. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/drawable/arrow_back_24.xml +0 -5
  136. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/drawable/dbr_icon.xml +0 -21
  137. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/activity_capture.xml +0 -54
  138. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/activity_home.xml +0 -84
  139. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/activity_settings.xml +0 -17
  140. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/layout_appbar.xml +0 -19
  141. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/menu/main_menu.xml +0 -11
  142. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/arrays.xml +0 -20
  143. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/colors.xml +0 -11
  144. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/strings.xml +0 -17
  145. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/themes.xml +0 -19
  146. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/xml/root_preferences.xml +0 -28
  147. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/build.gradle +0 -41
  148. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/proguard-rules.pro +0 -21
  149. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/AndroidManifest.xml +0 -38
  150. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/assets/Templates/ReadFromAnImage.json +0 -118
  151. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/MainActivity.java +0 -211
  152. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/ui/ThumbnailsRecyclerView.java +0 -219
  153. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/ui/resultsview/CustomizedResultsDisplayView.java +0 -142
  154. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/ui/resultsview/ResultsRecyclerView.java +0 -91
  155. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/utils/BitmapUtils.java +0 -74
  156. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/utils/UriUtils.java +0 -116
  157. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/boundary.xml +0 -7
  158. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/dashed_border.xml +0 -10
  159. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/dbr_icon.xml +0 -21
  160. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/image_button_state.xml +0 -19
  161. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/activity_main.xml +0 -155
  162. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/item_result.xml +0 -41
  163. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/item_thumbnail.xml +0 -23
  164. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/results_view.xml +0 -60
  165. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/attr_customized.xml +0 -7
  166. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/colors.xml +0 -11
  167. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/strings.xml +0 -19
  168. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/themes.xml +0 -12
  169. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/xml/dynamsoft_file_paths.xml +0 -6
  170. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/build.gradle +0 -38
  171. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/proguard-rules.pro +0 -21
  172. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/AndroidManifest.xml +0 -29
  173. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/HomeActivity.java +0 -17
  174. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/MainActivity.java +0 -121
  175. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/ui/resultsview/CustomizedResultsDisplayView.java +0 -80
  176. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/ui/resultsview/ResultsRecyclerView.java +0 -91
  177. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/drawable/dbr_icon.xml +0 -21
  178. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/activity_home.xml +0 -84
  179. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/activity_main.xml +0 -22
  180. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/item_result.xml +0 -41
  181. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/results_view.xml +0 -48
  182. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/attr_customized.xml +0 -7
  183. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/colors.xml +0 -8
  184. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/strings.xml +0 -11
  185. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/themes.xml +0 -18
  186. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/xml/backup_rules.xml +0 -13
  187. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/xml/data_extraction_rules.xml +0 -19
  188. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/build.gradle +0 -44
  189. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/proguard-rules.pro +0 -21
  190. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/AndroidManifest.xml +0 -31
  191. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/CameraXImageSourceAdapter.java +0 -64
  192. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/HomeActivity.java +0 -16
  193. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/MainActivity.java +0 -146
  194. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/ui/PreviewWithDrawingQuads.java +0 -94
  195. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/ui/resultsview/CustomizedResultsDisplayView.java +0 -80
  196. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/ui/resultsview/ResultsRecyclerView.java +0 -91
  197. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/drawable/dbr_icon.xml +0 -21
  198. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/activity_home.xml +0 -84
  199. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/activity_main.xml +0 -23
  200. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/item_result.xml +0 -41
  201. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/results_view.xml +0 -48
  202. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/attr_customized.xml +0 -7
  203. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/colors.xml +0 -8
  204. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/strings.xml +0 -10
  205. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/themes.xml +0 -18
  206. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/build.gradle +0 -35
  207. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/proguard-rules.pro +0 -21
  208. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/AndroidManifest.xml +0 -30
  209. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/HomeActivity.java +0 -17
  210. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/MainActivity.java +0 -138
  211. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/ParseUtil.java +0 -107
  212. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/ResultActivity.java +0 -46
  213. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/drawable/dbr_icon.xml +0 -21
  214. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/layout/activity_home.xml +0 -84
  215. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/layout/activity_main.xml +0 -32
  216. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/layout/activity_result.xml +0 -15
  217. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/values/colors.xml +0 -8
  218. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/values/strings.xml +0 -7
  219. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/values/themes.xml +0 -12
  220. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/build.gradle +0 -47
  221. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/proguard-rules.pro +0 -21
  222. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/AndroidManifest.xml +0 -37
  223. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/home/HomeActivity.java +0 -42
  224. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/CameraSettings.java +0 -45
  225. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/DecodeSettings.java +0 -279
  226. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/MultiFrameCrossFilterSettings.java +0 -59
  227. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/ResultFeedbackSettings.java +0 -31
  228. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/SettingsCache.java +0 -49
  229. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/scanner/ScannerActivity.java +0 -225
  230. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/scanner/ScannerViewModel.java +0 -67
  231. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/OnItemClickListener.java +0 -5
  232. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/SettingsActivity.java +0 -37
  233. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/SettingsFragment.java +0 -160
  234. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/SettingsViewModel.java +0 -49
  235. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/barcodeformat/BarcodeFormatsFragment.java +0 -65
  236. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/barcodeformat/BarcodeFormatsViewModel.java +0 -61
  237. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/simplifiedsettings/SimplifiedSettingsFragment.java +0 -60
  238. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/simplifiedsettings/SimplifiedSettingsViewModel.java +0 -24
  239. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/CustomResultDisplayView.java +0 -56
  240. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/ExpandLinearLayout.java +0 -220
  241. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/Extension.java +0 -27
  242. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/RadioGroupWithTitle.java +0 -145
  243. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/ResultsRecyclerView.java +0 -91
  244. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/SingleLineLayout.java +0 -302
  245. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/formatselection/BarcodeFormatConstants.java +0 -80
  246. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/formatselection/FormatSelectionAdapter.java +0 -122
  247. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/formatselection/FormatSelectionView.java +0 -98
  248. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ItemTouchHelperInter.java +0 -7
  249. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ModeSelectionAdapter.java +0 -174
  250. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ModeSelectionView.java +0 -98
  251. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ModesMapConstant.java +0 -55
  252. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/MyTouchHelperCallBack.java +0 -45
  253. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/enter_pop_slide.xml +0 -12
  254. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/enter_slide.xml +0 -12
  255. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/exit_pop_slide.xml +0 -12
  256. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/exit_slide.xml +0 -12
  257. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/arrow_back_24.xml +0 -5
  258. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/dbr_icon.xml +0 -21
  259. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/icon_right_transparent.xml +0 -4
  260. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_checkbox.xml +0 -6
  261. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_checkbox2.xml +0 -5
  262. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_checktext_textcolor.xml +0 -5
  263. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_radiobutton_selected.xml +0 -13
  264. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_radiobutton_textcolor.xml +0 -5
  265. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_switch_track.xml +0 -20
  266. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/shape_circle_conner_dialog.xml +0 -8
  267. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/shape_radio_group.xml +0 -8
  268. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/activity_home.xml +0 -84
  269. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/activity_main.xml +0 -41
  270. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/activity_settings.xml +0 -20
  271. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/dialog_import_template.xml +0 -44
  272. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/format_selection.xml +0 -8
  273. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/fragment_barcode_format.xml +0 -101
  274. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/fragment_settings.xml +0 -305
  275. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/fragment_simplified_settings.xml +0 -149
  276. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/item_result.xml +0 -42
  277. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_appbar.xml +0 -19
  278. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_expand_arrow_and_switch.xml +0 -58
  279. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_expand_arrow_only.xml +0 -45
  280. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_expand_switch_only.xml +0 -44
  281. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_radio_group_with_title.xml +0 -46
  282. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_single_line.xml +0 -33
  283. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/modes_selection_spinner_item.xml +0 -17
  284. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/modes_selection_spinner_text.xml +0 -13
  285. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/results_view.xml +0 -48
  286. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/menu/menu_main.xml +0 -11
  287. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/array.xml +0 -14
  288. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/attrs_customized.xml +0 -65
  289. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/colors.xml +0 -23
  290. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/dimens.xml +0 -20
  291. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/spinner_items.xml +0 -10
  292. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/strings.xml +0 -112
  293. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/themes.xml +0 -29
  294. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/xml/backup_rules.xml +0 -13
  295. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/xml/data_extraction_rules.xml +0 -19
  296. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/build.gradle +0 -39
  297. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/proguard-rules.pro +0 -21
  298. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/AndroidManifest.xml +0 -28
  299. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/assets/Templates/ReadMultipleBarcodes.json +0 -116
  300. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/java/com/dynamsoft/dbr/locateanitemwithbarcode/LocateGrabCodeActivity.java +0 -87
  301. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/java/com/dynamsoft/dbr/locateanitemwithbarcode/LocateScanActivity.java +0 -162
  302. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/java/com/dynamsoft/dbr/locateanitemwithbarcode/LocateStartActivity.java +0 -58
  303. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/drawable/arrow_back_24.xml +0 -5
  304. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/drawable/dbr_icon.xml +0 -21
  305. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/drawable/ic_launcher_background.xml +0 -170
  306. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/layout/activity_grab_code.xml +0 -23
  307. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/layout/activity_locate_start.xml +0 -94
  308. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/layout/activity_scanner.xml +0 -34
  309. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/values/colors.xml +0 -35
  310. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/values/strings.xml +0 -10
  311. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/values/themes.xml +0 -8
  312. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/build.gradle +0 -34
  313. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/proguard-rules.pro +0 -21
  314. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/AndroidManifest.xml +0 -27
  315. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/assets/Templates/ReadGS1AIBarcode.json +0 -135
  316. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/java/com/dynamsoft/readgs1ai/HomeActivity.java +0 -17
  317. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/java/com/dynamsoft/readgs1ai/MainActivity.java +0 -182
  318. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/drawable/dbr_icon.xml +0 -21
  319. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/layout/activity_home.xml +0 -84
  320. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/layout/activity_main.xml +0 -19
  321. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/values/colors.xml +0 -8
  322. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/values/strings.xml +0 -7
  323. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/values/themes.xml +0 -11
  324. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/build.gradle +0 -39
  325. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/proguard-rules.pro +0 -21
  326. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/AndroidManifest.xml +0 -32
  327. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/HomeActivity.java +0 -17
  328. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/MainActivity.java +0 -272
  329. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/UIHandler.java +0 -14
  330. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/ZoomSeekbarView.java +0 -191
  331. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/drawable/dbr_icon.xml +0 -21
  332. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/drawable/ic_baseline_shape.xml +0 -5
  333. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/drawable/shape_circle_bg.xml +0 -16
  334. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/layout/activity_home.xml +0 -84
  335. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/layout/activity_main.xml +0 -77
  336. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/values/colors.xml +0 -8
  337. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/values/strings.xml +0 -10
  338. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/values/themes.xml +0 -12
  339. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/xml/backup_rules.xml +0 -13
  340. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/xml/data_extraction_rules.xml +0 -19
  341. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/build.gradle +0 -42
  342. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradle/wrapper/gradle-wrapper.properties +0 -6
  343. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradle.properties +0 -21
  344. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradlew +0 -185
  345. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradlew.bat +0 -89
  346. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/settings.gradle +0 -18
  347. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/AppDelegate.swift +0 -35
  348. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  349. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -36
  350. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Assets.xcassets/Contents.json +0 -6
  351. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Base.lproj/LaunchScreen.storyboard +0 -25
  352. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Base.lproj/Main.storyboard +0 -52
  353. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/DynamsoftResources.bundle/Templates/ReadMultipleBarcodes.json +0 -139
  354. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Info.plist +0 -25
  355. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/SceneDelegate.swift +0 -51
  356. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/ViewController.swift +0 -161
  357. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes.xcodeproj/project.pbxproj +0 -422
  358. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/AppDelegate.swift +0 -35
  359. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  360. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -36
  361. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Assets.xcassets/Contents.json +0 -6
  362. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Base.lproj/LaunchScreen.storyboard +0 -25
  363. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Base.lproj/Main.storyboard +0 -52
  364. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/DynamsoftResources.bundle/Templates/ReadSingleBarcode.json +0 -105
  365. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Info.plist +0 -25
  366. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/SceneDelegate.swift +0 -51
  367. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/ViewController.swift +0 -115
  368. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode.xcodeproj/project.pbxproj +0 -422
  369. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/AppDelegate.h +0 -13
  370. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/AppDelegate.m +0 -39
  371. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  372. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -36
  373. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Assets.xcassets/Contents.json +0 -6
  374. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Base.lproj/LaunchScreen.storyboard +0 -25
  375. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Base.lproj/Main.storyboard +0 -52
  376. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/DynamsoftResources.bundle/Templates/ReadSingleBarcode.json +0 -105
  377. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Info.plist +0 -25
  378. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/SceneDelegate.h +0 -14
  379. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/SceneDelegate.m +0 -56
  380. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/ViewController.h +0 -13
  381. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/ViewController.m +0 -127
  382. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/main.m +0 -17
  383. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc.xcodeproj/project.pbxproj +0 -426
  384. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  385. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  386. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Assets.xcassets/Contents.json +0 -6
  387. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/BarcodeScannerView.swift +0 -66
  388. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/ContentView.swift +0 -47
  389. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Preview Content/Preview Assets.xcassets/Contents.json +0 -6
  390. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUIApp.swift +0 -16
  391. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI.xcodeproj/project.pbxproj +0 -377
  392. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/AppDelegate.swift +0 -35
  393. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  394. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  395. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/Contents.json +0 -6
  396. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/dynamsoft-logo.imageset/Contents.json +0 -23
  397. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/1d_industrial.imageset/Contents.json +0 -23
  398. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/1d_retail.imageset/Contents.json +0 -23
  399. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/Contents.json +0 -6
  400. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/any_codes.imageset/Contents.json +0 -23
  401. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/aztec_code.imageset/Contents.json +0 -23
  402. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/common_2d.imageset/Contents.json +0 -23
  403. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/data_matrix.imageset/Contents.json +0 -23
  404. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/dot_code.imageset/Contents.json +0 -23
  405. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/dpm_code.imageset/Contents.json +0 -23
  406. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/high_density.imageset/Contents.json +0 -23
  407. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/qr_code.imageset/Contents.json +0 -23
  408. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Base.lproj/LaunchScreen.storyboard +0 -25
  409. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Base.lproj/Main.storyboard +0 -24
  410. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadAztec.json +0 -91
  411. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadCommon1DAnd2D.json +0 -272
  412. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadCommon2D.json +0 -185
  413. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDPM.json +0 -138
  414. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDataMatrix.json +0 -178
  415. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDenseBarcodes.json +0 -138
  416. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDotCode.json +0 -130
  417. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadOneDIndustrial.json +0 -155
  418. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadOneDRetail.json +0 -148
  419. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadQR.json +0 -150
  420. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Info.plist +0 -25
  421. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/ResultViewController.swift +0 -43
  422. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/SceneDelegate.swift +0 -57
  423. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/ViewController.swift +0 -271
  424. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples.xcodeproj/project.pbxproj +0 -426
  425. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/AppDelegate.swift +0 -35
  426. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  427. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  428. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/Contents.json +0 -6
  429. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  430. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Base.lproj/LaunchScreen.storyboard +0 -25
  431. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Base.lproj/Main.storyboard +0 -24
  432. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/CameraViewController.swift +0 -256
  433. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Info.plist +0 -25
  434. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/SceneDelegate.swift +0 -57
  435. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/SettingsViewController.swift +0 -234
  436. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/ViewController.swift +0 -111
  437. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug.xcodeproj/project.pbxproj +0 -387
  438. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/AppDelegate.swift +0 -35
  439. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  440. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -35
  441. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/Contents.json +0 -6
  442. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/bigGallery.imageset/Contents.json +0 -23
  443. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/bigTakePhoto.imageset/Contents.json +0 -23
  444. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/gallery.imageset/Contents.json +0 -23
  445. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/takePhoto.imageset/Contents.json +0 -23
  446. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Contents.json +0 -6
  447. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  448. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Base.lproj/LaunchScreen.storyboard +0 -25
  449. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Base.lproj/Main.storyboard +0 -52
  450. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Info.plist +0 -25
  451. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Resource/ReadFromAnImage.json +0 -118
  452. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/SceneDelegate.swift +0 -51
  453. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/ViewController.swift +0 -457
  454. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage.xcodeproj/project.pbxproj +0 -389
  455. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/AppDelegate.swift +0 -33
  456. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  457. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  458. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/Contents.json +0 -6
  459. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  460. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Base.lproj/LaunchScreen.storyboard +0 -25
  461. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Base.lproj/Main.storyboard +0 -24
  462. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/CaptureEnhancer.swift +0 -102
  463. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/CaptureViewController.swift +0 -191
  464. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Info.plist +0 -25
  465. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/SceneDelegate.swift +0 -57
  466. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/ViewController.swift +0 -111
  467. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession.xcodeproj/project.pbxproj +0 -423
  468. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/AppDelegate.swift +0 -33
  469. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  470. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  471. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/Contents.json +0 -6
  472. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  473. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Base.lproj/LaunchScreen.storyboard +0 -25
  474. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Base.lproj/Main.storyboard +0 -32
  475. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/CameraViewController.swift +0 -170
  476. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Info.plist +0 -25
  477. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/SceneDelegate.swift +0 -57
  478. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/ViewController.swift +0 -111
  479. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer.xcodeproj/project.pbxproj +0 -419
  480. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/AppDelegate.swift +0 -29
  481. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  482. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  483. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/Contents.json +0 -6
  484. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  485. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Base.lproj/LaunchScreen.storyboard +0 -25
  486. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Base.lproj/Main.storyboard +0 -52
  487. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/CameraViewController.swift +0 -231
  488. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Category/UIDevice+Addition.swift +0 -59
  489. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Category/UIView+Frame.swift +0 -80
  490. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/DriverLicenseResultViewController.swift +0 -168
  491. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Info.plist +0 -8
  492. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Utils/Dynamsoft.swift +0 -27
  493. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/ViewController.swift +0 -111
  494. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner.xcodeproj/project.pbxproj +0 -447
  495. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/AppDelegate.swift +0 -35
  496. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  497. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  498. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/Contents.json +0 -6
  499. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/arrow-circle/Contents.json +0 -6
  500. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/arrow-circle/arrow-circle-down.imageset/Contents.json +0 -23
  501. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/arrow-circle/arrow-circle-up.imageset/Contents.json +0 -23
  502. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  503. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/BarcodeFormatViewController.swift +0 -249
  504. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Base.lproj/LaunchScreen.storyboard +0 -25
  505. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Base.lproj/Main.storyboard +0 -24
  506. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/CameraViewController.swift +0 -305
  507. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/CustomTableViewCell.swift +0 -234
  508. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/Mode+Extension.swift +0 -129
  509. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/PickerPopupView.swift +0 -145
  510. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/SettingRow.swift +0 -332
  511. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/UIColor+Extension.swift +0 -19
  512. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Info.plist +0 -25
  513. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/SceneDelegate.swift +0 -57
  514. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/SettingsViewController.swift +0 -589
  515. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/SimplifiedSettingsViewController.swift +0 -532
  516. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/ViewController.swift +0 -111
  517. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings.xcodeproj/project.pbxproj +0 -387
  518. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/AppDelegate.swift +0 -45
  519. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  520. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  521. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/Contents.json +0 -6
  522. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  523. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/scan.imageset/Contents.json +0 -23
  524. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Base.lproj/LaunchScreen.storyboard +0 -25
  525. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Base.lproj/Main.storyboard +0 -145
  526. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/CameraViewController.swift +0 -187
  527. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Info.plist +0 -25
  528. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/ReadMultipleBarcodes.json +0 -116
  529. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/SceneDelegate.swift +0 -51
  530. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/ViewController.swift +0 -55
  531. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode.xcodeproj/project.pbxproj +0 -429
  532. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/AppDelegate.swift +0 -35
  533. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  534. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  535. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/Contents.json +0 -6
  536. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  537. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Base.lproj/LaunchScreen.storyboard +0 -25
  538. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Base.lproj/Main.storyboard +0 -24
  539. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/CameraViewController.swift +0 -114
  540. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/DynamsoftResources.bundle/Root.plist +0 -61
  541. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/DynamsoftResources.bundle/Templates/ReadGS1AI.json +0 -135
  542. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/DynamsoftResources.bundle/en.lproj/Root.strings +0 -0
  543. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Info.plist +0 -25
  544. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/SceneDelegate.swift +0 -57
  545. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/ViewController.swift +0 -111
  546. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI.xcodeproj/project.pbxproj +0 -389
  547. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/AppDelegate.swift +0 -20
  548. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  549. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  550. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/Contents.json +0 -6
  551. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  552. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/icon_arrow_camera_zoom_close.imageset/Contents.json +0 -22
  553. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Base.lproj/LaunchScreen.storyboard +0 -25
  554. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Base.lproj/Main.storyboard +0 -52
  555. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/CameraViewController.swift +0 -231
  556. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Category/UIDevice+Addition.swift +0 -58
  557. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Category/UIView+Frame.swift +0 -60
  558. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Info.plist +0 -8
  559. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/TinyBarcodeDecoding-Bridging-Header.h +0 -4
  560. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Utils/Dynamsoft.swift +0 -53
  561. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/ViewController.swift +0 -111
  562. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Views/CameraSettingView.swift +0 -71
  563. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Views/CameraZoomFloatingButton.swift +0 -56
  564. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Views/CameraZoomSlider.swift +0 -104
  565. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding.xcodeproj/project.pbxproj +0 -473
  566. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadAztec.json +0 -99
  567. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBarcodes_Default.json +0 -113
  568. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBarcodes_ReadRateFirst.json +0 -144
  569. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBarcodes_SpeedFirst.json +0 -151
  570. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBlurry1DBarcode.json +0 -149
  571. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadDPM.json +0 -83
  572. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadDenseQRCode.json +0 -105
  573. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadDotcode.json +0 -125
  574. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadInvertedBarcode.json +0 -57
  575. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadMultipleBarcode.json +0 -103
  576. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadOneDIndustrial.json +0 -133
  577. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadOneDRetail.json +0 -137
  578. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadSingleBarcode.json +0 -174
  579. package/code-snippet/dynamsoft-barcode-reader/python/README.md +0 -82
  580. package/code-snippet/dynamsoft-barcode-reader/python/Samples/ReadDPM.json +0 -83
  581. package/code-snippet/dynamsoft-barcode-reader/python/Samples/camera.py +0 -96
  582. package/code-snippet/dynamsoft-barcode-reader/python/Samples/file.py +0 -82
  583. package/code-snippet/dynamsoft-barcode-reader/python/Samples/general_settings.py +0 -80
  584. package/code-snippet/dynamsoft-barcode-reader/python/Samples/multi_format_image_processing.py +0 -79
  585. package/code-snippet/dynamsoft-barcode-reader/python/Samples/parameter_tuner.py +0 -166
  586. package/code-snippet/dynamsoft-barcode-reader/python/Samples/read_an_image.py +0 -45
  587. package/code-snippet/dynamsoft-barcode-reader/python/Samples/read_dpm_barcode.py +0 -53
  588. package/code-snippet/dynamsoft-barcode-reader/python/Samples/read_multiple_images.py +0 -55
  589. package/code-snippet/dynamsoft-barcode-reader/python/Samples/server_side_barcode_decoder.py +0 -108
  590. package/code-snippet/dynamsoft-barcode-reader/python/Samples/show_localized_vs_decoded_barcodes.py +0 -145
  591. package/code-snippet/dynamsoft-barcode-reader/python/Samples/utils.py +0 -60
  592. package/code-snippet/dynamsoft-barcode-reader/python/Samples/video_decoding.py +0 -147
  593. package/code-snippet/dynamsoft-barcode-reader/web/README.md +0 -81
  594. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/README.md +0 -42
  595. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/README.md +0 -23
  596. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/.editorconfig +0 -16
  597. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/README.md +0 -422
  598. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/angular.json +0 -99
  599. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/package.json +0 -39
  600. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/app.component.css +0 -42
  601. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/app.component.html +0 -14
  602. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/app.component.ts +0 -22
  603. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/dynamsoft.config.ts +0 -22
  604. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/image-capture/image-capture.component.css +0 -20
  605. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/image-capture/image-capture.component.html +0 -11
  606. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/image-capture/image-capture.component.ts +0 -66
  607. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/video-capture/video-capture.component.css +0 -6
  608. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/video-capture/video-capture.component.html +0 -8
  609. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/video-capture/video-capture.component.ts +0 -109
  610. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/assets/.gitkeep +0 -0
  611. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/index.html +0 -19
  612. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/main.ts +0 -5
  613. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/styles.css +0 -11
  614. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/tsconfig.app.json +0 -14
  615. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/tsconfig.json +0 -32
  616. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/tsconfig.spec.json +0 -14
  617. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/.editorconfig +0 -17
  618. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/README.md +0 -33
  619. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/angular.json +0 -100
  620. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/package.json +0 -37
  621. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.component.css +0 -24
  622. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.component.html +0 -7
  623. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.component.ts +0 -53
  624. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.config.ts +0 -8
  625. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.routes.ts +0 -3
  626. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/index.html +0 -12
  627. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/main.ts +0 -6
  628. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/styles.css +0 -16
  629. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/tsconfig.app.json +0 -15
  630. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/tsconfig.json +0 -27
  631. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/tsconfig.spec.json +0 -15
  632. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/README.md +0 -23
  633. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/README.md +0 -372
  634. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/App.razor +0 -12
  635. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/BlazorApp.csproj +0 -18
  636. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/MainLayout.razor +0 -16
  637. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/MainLayout.razor.css +0 -77
  638. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/NavMenu.razor +0 -39
  639. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/NavMenu.razor.css +0 -91
  640. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Pages/DecodeImage.razor +0 -26
  641. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Pages/DecodeVideo.razor +0 -48
  642. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Pages/Home.razor +0 -13
  643. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Program.cs +0 -11
  644. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Properties/launchSettings.json +0 -41
  645. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/_Imports.razor +0 -10
  646. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/BlazorApp.csproj.nuget.dgspec.json +0 -108
  647. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/BlazorApp.csproj.nuget.g.props +0 -26
  648. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/BlazorApp.csproj.nuget.g.targets +0 -12
  649. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +0 -4
  650. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/Debug/net8.0/BlazorApp.AssemblyInfo.cs +0 -22
  651. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/Debug/net8.0/BlazorApp.GeneratedMSBuildEditorConfig.editorconfig +0 -53
  652. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/Debug/net8.0/BlazorApp.GlobalUsings.g.cs +0 -11
  653. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/project.assets.json +0 -2137
  654. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/wwwroot/decodeImage.js +0 -34
  655. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/wwwroot/decodeVideo.js +0 -70
  656. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/wwwroot/index.html +0 -72
  657. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/App.razor +0 -12
  658. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/BlazorApp.csproj +0 -18
  659. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Layout/MainLayout.razor +0 -4
  660. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Pages/Home.razor +0 -25
  661. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Program.cs +0 -11
  662. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Properties/launchSettings.json +0 -41
  663. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/README.md +0 -17
  664. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/_Imports.razor +0 -10
  665. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/BlazorApp.csproj.nuget.dgspec.json +0 -108
  666. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/BlazorApp.csproj.nuget.g.props +0 -26
  667. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/BlazorApp.csproj.nuget.g.targets +0 -12
  668. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs +0 -4
  669. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/BlazorApp.AssemblyInfo.cs +0 -22
  670. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/BlazorApp.GeneratedMSBuildEditorConfig.editorconfig +0 -41
  671. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/BlazorApp.GlobalUsings.g.cs +0 -11
  672. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/project.assets.json +0 -2137
  673. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/wwwroot/index.html +0 -63
  674. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/README.md +0 -22
  675. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/README.md +0 -43
  676. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/build.gradle +0 -54
  677. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/capacitor.build.gradle +0 -19
  678. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/proguard-rules.pro +0 -21
  679. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/androidTest/java/com/getcapacitor/myapp/ExampleInstrumentedTest.java +0 -26
  680. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/AndroidManifest.xml +0 -42
  681. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/java/com/dynamsoft/dbrjs/MainActivity.java +0 -5
  682. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  683. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -34
  684. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/layout/activity_main.xml +0 -12
  685. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  686. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
  687. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/values/ic_launcher_background.xml +0 -4
  688. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/values/strings.xml +0 -7
  689. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/values/styles.xml +0 -22
  690. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/xml/file_paths.xml +0 -5
  691. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/test/java/com/getcapacitor/myapp/ExampleUnitTest.java +0 -18
  692. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/build.gradle +0 -29
  693. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/capacitor.settings.gradle +0 -3
  694. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  695. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradle.properties +0 -22
  696. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradlew +0 -252
  697. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradlew.bat +0 -94
  698. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/settings.gradle +0 -5
  699. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/variables.gradle +0 -16
  700. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/capacitor.config.json +0 -6
  701. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/index.ts +0 -35
  702. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/AppDelegate.swift +0 -49
  703. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  704. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Assets.xcassets/Contents.json +0 -6
  705. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +0 -23
  706. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Base.lproj/LaunchScreen.storyboard +0 -32
  707. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Base.lproj/Main.storyboard +0 -19
  708. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Info.plist +0 -51
  709. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App.xcodeproj/project.pbxproj +0 -408
  710. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  711. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/Podfile +0 -24
  712. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/package.json +0 -24
  713. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/public/index.html +0 -21
  714. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/rollup.config.mjs +0 -28
  715. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/tsconfig.json +0 -21
  716. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/README.md +0 -23
  717. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/README.md +0 -241
  718. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/action.js +0 -70
  719. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/index.html +0 -22
  720. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/main.js +0 -29
  721. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/package.json +0 -26
  722. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/style.css +0 -6
  723. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/README.md +0 -31
  724. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/action.js +0 -22
  725. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/index.html +0 -61
  726. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/main.js +0 -29
  727. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/package.json +0 -26
  728. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/style.css +0 -6
  729. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/es6/README.md +0 -18
  730. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/es6/scan-using-foundational-api/es6.html +0 -94
  731. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/es6/scan-using-rtu-api/es6.html +0 -88
  732. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/README.md +0 -23
  733. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/index.html +0 -21
  734. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/index.ts +0 -68
  735. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/package.json +0 -23
  736. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/rollup.config.mjs +0 -27
  737. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/tsconfig.json +0 -21
  738. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/README.md +0 -26
  739. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/index.ts +0 -35
  740. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/package.json +0 -20
  741. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/public/index.html +0 -17
  742. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/rollup.config.mjs +0 -28
  743. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/tsconfig.json +0 -21
  744. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/README.md +0 -23
  745. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/.eslintrc.json +0 -3
  746. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/README.md +0 -434
  747. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/globals.css +0 -10
  748. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/layout.tsx +0 -23
  749. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/page.css +0 -33
  750. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/page.tsx +0 -51
  751. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/ImageCapture/ImageCapture.css +0 -21
  752. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/ImageCapture/ImageCapture.tsx +0 -76
  753. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/VideoCapture/VideoCapture.css +0 -6
  754. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/VideoCapture/VideoCapture.tsx +0 -122
  755. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/dynamsoft.config.ts +0 -22
  756. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/next.config.mjs +0 -4
  757. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/package.json +0 -25
  758. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/tsconfig.json +0 -26
  759. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/README.md +0 -22
  760. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/README.md +0 -383
  761. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/app.vue +0 -74
  762. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/assets/main.css +0 -7
  763. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/components/ImageCapture.client.vue +0 -88
  764. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/components/VideoCapture.client.vue +0 -107
  765. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/dynamsoft.config.ts +0 -20
  766. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/nuxt.config.ts +0 -4
  767. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/package.json +0 -18
  768. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/tsconfig.json +0 -4
  769. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/README.md +0 -23
  770. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/README.md +0 -307
  771. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/helloworld-pwa.html +0 -103
  772. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/helloworld-pwa.json +0 -22
  773. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/service-worker.js +0 -92
  774. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/README.md +0 -17
  775. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/helloworld-pwa.html +0 -99
  776. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/helloworld-pwa.json +0 -22
  777. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/service-worker.js +0 -92
  778. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/README.md +0 -23
  779. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/README.md +0 -396
  780. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/package.json +0 -45
  781. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/public/index.html +0 -45
  782. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/public/manifest.json +0 -25
  783. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/App.css +0 -50
  784. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/App.tsx +0 -48
  785. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/ImageCapture/ImageCapture.css +0 -21
  786. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/ImageCapture/ImageCapture.tsx +0 -76
  787. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/VideoCapture/VideoCapture.css +0 -6
  788. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/VideoCapture/VideoCapture.tsx +0 -114
  789. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/dynamsoft.config.ts +0 -20
  790. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/index.css +0 -11
  791. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/index.tsx +0 -11
  792. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/react-app-env.d.ts +0 -1
  793. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/tsconfig.json +0 -26
  794. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/README.md +0 -33
  795. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/index.html +0 -12
  796. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/package.json +0 -29
  797. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/src/App.tsx +0 -59
  798. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/src/main.tsx +0 -9
  799. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/tsconfig.app.json +0 -27
  800. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/tsconfig.json +0 -7
  801. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/tsconfig.node.json +0 -25
  802. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/vite.config.ts +0 -7
  803. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/requirejs/README.md +0 -18
  804. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/requirejs/scan-using-foundational-api/requirejs.html +0 -98
  805. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/requirejs/scan-using-rtu-api/requirejs.html +0 -94
  806. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/README.md +0 -23
  807. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/README.md +0 -351
  808. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/index.html +0 -18
  809. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/package.json +0 -24
  810. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/App.svelte +0 -88
  811. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/components/ImageCapture.svelte +0 -95
  812. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/components/VideoCapture.svelte +0 -119
  813. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/dynamsoft.config.ts +0 -21
  814. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/main.ts +0 -7
  815. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/vite-env.d.ts +0 -2
  816. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/svelte.config.js +0 -7
  817. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/tsconfig.json +0 -20
  818. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/tsconfig.node.json +0 -10
  819. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/vite.config.ts +0 -8
  820. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/README.md +0 -33
  821. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/index.html +0 -12
  822. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/package.json +0 -24
  823. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/src/App.svelte +0 -55
  824. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/src/main.ts +0 -7
  825. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/src/vite-env.d.ts +0 -2
  826. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/svelte.config.js +0 -7
  827. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/tsconfig.json +0 -20
  828. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/tsconfig.node.json +0 -10
  829. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/vite.config.ts +0 -8
  830. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/README.md +0 -30
  831. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/README.md +0 -379
  832. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/env.d.ts +0 -1
  833. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/index.html +0 -19
  834. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/package.json +0 -26
  835. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/App.vue +0 -72
  836. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/assets/main.css +0 -6
  837. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/components/ImageCapture.vue +0 -87
  838. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/components/VideoCapture.vue +0 -106
  839. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/dynamsoft.config.ts +0 -20
  840. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/main.ts +0 -6
  841. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/tsconfig.config.json +0 -9
  842. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/tsconfig.json +0 -17
  843. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/vite.config.ts +0 -15
  844. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/README.md +0 -33
  845. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/index.html +0 -12
  846. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/package.json +0 -22
  847. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/src/App.vue +0 -52
  848. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/src/main.ts +0 -4
  849. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/src/vite-env.d.ts +0 -1
  850. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/tsconfig.app.json +0 -15
  851. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/tsconfig.json +0 -7
  852. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/tsconfig.node.json +0 -25
  853. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/vite.config.ts +0 -7
  854. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/README.md +0 -23
  855. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/README.md +0 -13
  856. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/build.gradle +0 -45
  857. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/proguard-rules.pro +0 -21
  858. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/AndroidManifest.xml +0 -28
  859. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/assets/decodeBarcodeInVideo.html +0 -83
  860. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/java/com/dynamsoft/dbrjswebview/MainActivity.kt +0 -105
  861. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  862. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -30
  863. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/layout/activity_main.xml +0 -15
  864. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  865. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
  866. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml +0 -6
  867. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values/colors.xml +0 -10
  868. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values/strings.xml +0 -3
  869. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values/themes.xml +0 -16
  870. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values-night/themes.xml +0 -16
  871. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/xml/backup_rules.xml +0 -13
  872. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/xml/data_extraction_rules.xml +0 -19
  873. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/build.gradle +0 -6
  874. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  875. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradle.properties +0 -23
  876. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradlew +0 -185
  877. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradlew.bat +0 -89
  878. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/settings.gradle +0 -16
  879. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/README.md +0 -13
  880. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/AppDelegate.swift +0 -36
  881. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  882. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -13
  883. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Assets.xcassets/Contents.json +0 -6
  884. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Base.lproj/LaunchScreen.storyboard +0 -25
  885. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Base.lproj/Main.storyboard +0 -33
  886. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Info.plist +0 -27
  887. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/SceneDelegate.swift +0 -52
  888. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/ViewController.swift +0 -116
  889. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/html/decodeFileInVideo.html +0 -83
  890. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview.xcodeproj/project.pbxproj +0 -373
  891. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  892. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  893. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/README.md +0 -24
  894. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/build.gradle +0 -45
  895. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/proguard-rules.pro +0 -21
  896. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/AndroidManifest.xml +0 -28
  897. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/assets/decodeBarcodeInVideo.html +0 -85
  898. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/java/com/dynamsoft/dbrjswebview/MainActivity.kt +0 -105
  899. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -170
  900. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +0 -30
  901. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/layout/activity_main.xml +0 -15
  902. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
  903. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
  904. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml +0 -6
  905. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values/colors.xml +0 -10
  906. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values/strings.xml +0 -3
  907. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values/themes.xml +0 -16
  908. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values-night/themes.xml +0 -16
  909. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/xml/backup_rules.xml +0 -13
  910. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/xml/data_extraction_rules.xml +0 -19
  911. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/build.gradle +0 -6
  912. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  913. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradle.properties +0 -23
  914. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradlew +0 -185
  915. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradlew.bat +0 -89
  916. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/settings.gradle +0 -16
  917. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/README.md +0 -25
  918. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/AppDelegate.swift +0 -36
  919. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  920. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -13
  921. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Assets.xcassets/Contents.json +0 -6
  922. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Base.lproj/LaunchScreen.storyboard +0 -25
  923. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Base.lproj/Main.storyboard +0 -33
  924. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Info.plist +0 -27
  925. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/SceneDelegate.swift +0 -52
  926. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/ViewController.swift +0 -116
  927. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/html/decodeFileInVideo.html +0 -85
  928. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview.xcodeproj/project.pbxproj +0 -373
  929. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  930. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  931. package/code-snippet/dynamsoft-barcode-reader/web/hello-world.html +0 -87
  932. package/code-snippet/dynamsoft-barcode-reader/web/index.html +0 -1271
  933. package/code-snippet/dynamsoft-barcode-reader/web/read-an-image.html +0 -72
  934. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/README.md +0 -30
  935. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/batch-inventory/README.md +0 -41
  936. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/batch-inventory/index.css +0 -160
  937. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/batch-inventory/index.html +0 -157
  938. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/cart-builder/README.md +0 -43
  939. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/cart-builder/cart-builder.html +0 -272
  940. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/README.md +0 -57
  941. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/app.js +0 -43
  942. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/package.json +0 -16
  943. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/pem/ryans-cert.pem +0 -13
  944. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/pem/ryans-csr.pem +0 -11
  945. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/pem/ryans-key.pem +0 -15
  946. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/public/index.html +0 -198
  947. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/locate-an-item-with-barcode/README.md +0 -38
  948. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/locate-an-item-with-barcode/index.html +0 -735
  949. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/pick-one-to-fill/README.md +0 -35
  950. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/pick-one-to-fill/index.css +0 -112
  951. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/pick-one-to-fill/index.html +0 -113
  952. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/README.md +0 -39
  953. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/index.html +0 -170
  954. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/read_dl.json +0 -124
  955. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/style.css +0 -154
  956. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/README.md +0 -49
  957. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/index.css +0 -180
  958. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/index.html +0 -297
  959. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/read_and_parse_gs1.json +0 -159
  960. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/convert-GS1AI-title.js +0 -386
  961. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/index.html +0 -285
  962. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/rtu_gs1.json +0 -163
  963. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/style.css +0 -200
  964. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/README.md +0 -40
  965. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/index.html +0 -146
  966. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/read_vin.json +0 -139
  967. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/style.css +0 -155
  968. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Industrial/README.md +0 -40
  969. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Industrial/ReadOneDIndustrial.json +0 -155
  970. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Industrial/index.html +0 -103
  971. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Retail/README.md +0 -37
  972. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Retail/ReadOneDRetail.json +0 -148
  973. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Retail/index.html +0 -103
  974. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-and-search/README.md +0 -39
  975. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-and-search/scan-and-search.html +0 -266
  976. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-1D-and-2D/README.md +0 -31
  977. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-1D-and-2D/ReadCommon1DAnd2D.json +0 -205
  978. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-1D-and-2D/index.html +0 -103
  979. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-2D-codes/README.md +0 -37
  980. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-2D-codes/ReadCommon2D.json +0 -188
  981. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-2D-codes/index.html +0 -103
  982. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-datamatrix-code/README.md +0 -29
  983. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-datamatrix-code/ReadDataMatrix.json +0 -184
  984. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-datamatrix-code/index.html +0 -103
  985. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-from-distance/README.md +0 -36
  986. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-from-distance/ReadDistantBarcodes.json +0 -155
  987. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-from-distance/index.html +0 -103
  988. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-qr-code/README.md +0 -37
  989. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-qr-code/ReadQR.json +0 -156
  990. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-qr-code/index.html +0 -103
  991. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/show-result-texts-on-the-video/README.md +0 -32
  992. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/show-result-texts-on-the-video/show-result-texts-on-the-video.html +0 -179
  993. package/code-snippet/dynamsoft-document-viewer/angular/.editorconfig +0 -16
  994. package/code-snippet/dynamsoft-document-viewer/angular/README.md +0 -42
  995. package/code-snippet/dynamsoft-document-viewer/angular/angular.json +0 -104
  996. package/code-snippet/dynamsoft-document-viewer/angular/package-lock.json +0 -12264
  997. package/code-snippet/dynamsoft-document-viewer/angular/package.json +0 -39
  998. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.css +0 -6
  999. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.html +0 -7
  1000. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.spec.ts +0 -10
  1001. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.ts +0 -19
  1002. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.config.ts +0 -8
  1003. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.routes.ts +0 -3
  1004. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.css +0 -4
  1005. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.html +0 -1
  1006. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.spec.ts +0 -22
  1007. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.ts +0 -30
  1008. package/code-snippet/dynamsoft-document-viewer/angular/src/assets/.gitkeep +0 -0
  1009. package/code-snippet/dynamsoft-document-viewer/angular/src/favicon.ico +0 -0
  1010. package/code-snippet/dynamsoft-document-viewer/angular/src/index.html +0 -13
  1011. package/code-snippet/dynamsoft-document-viewer/angular/src/main.ts +0 -6
  1012. package/code-snippet/dynamsoft-document-viewer/angular/src/styles.css +0 -13
  1013. package/code-snippet/dynamsoft-document-viewer/angular/tsconfig.app.json +0 -14
  1014. package/code-snippet/dynamsoft-document-viewer/angular/tsconfig.json +0 -34
  1015. package/code-snippet/dynamsoft-document-viewer/angular/tsconfig.spec.json +0 -14
  1016. package/code-snippet/dynamsoft-document-viewer/hello-world.html +0 -49
  1017. package/code-snippet/dynamsoft-document-viewer/next/README.md +0 -42
  1018. package/code-snippet/dynamsoft-document-viewer/next/next.config.ts +0 -27
  1019. package/code-snippet/dynamsoft-document-viewer/next/package-lock.json +0 -1919
  1020. package/code-snippet/dynamsoft-document-viewer/next/package.json +0 -24
  1021. package/code-snippet/dynamsoft-document-viewer/next/public/next.svg +0 -1
  1022. package/code-snippet/dynamsoft-document-viewer/next/public/vercel.svg +0 -1
  1023. package/code-snippet/dynamsoft-document-viewer/next/src/app/components/Viewer.css +0 -4
  1024. package/code-snippet/dynamsoft-document-viewer/next/src/app/components/Viewer.tsx +0 -40
  1025. package/code-snippet/dynamsoft-document-viewer/next/src/app/favicon.ico +0 -0
  1026. package/code-snippet/dynamsoft-document-viewer/next/src/app/globals.css +0 -18
  1027. package/code-snippet/dynamsoft-document-viewer/next/src/app/layout.tsx +0 -32
  1028. package/code-snippet/dynamsoft-document-viewer/next/src/app/page.tsx +0 -19
  1029. package/code-snippet/dynamsoft-document-viewer/next/tsconfig.json +0 -27
  1030. package/code-snippet/dynamsoft-document-viewer/react-vite/README.md +0 -42
  1031. package/code-snippet/dynamsoft-document-viewer/react-vite/eslint.config.js +0 -38
  1032. package/code-snippet/dynamsoft-document-viewer/react-vite/index.html +0 -13
  1033. package/code-snippet/dynamsoft-document-viewer/react-vite/package-lock.json +0 -4880
  1034. package/code-snippet/dynamsoft-document-viewer/react-vite/package.json +0 -30
  1035. package/code-snippet/dynamsoft-document-viewer/react-vite/src/App.css +0 -18
  1036. package/code-snippet/dynamsoft-document-viewer/react-vite/src/App.jsx +0 -13
  1037. package/code-snippet/dynamsoft-document-viewer/react-vite/src/assets/react.svg +0 -1
  1038. package/code-snippet/dynamsoft-document-viewer/react-vite/src/components/Viewer.css +0 -4
  1039. package/code-snippet/dynamsoft-document-viewer/react-vite/src/components/Viewer.jsx +0 -31
  1040. package/code-snippet/dynamsoft-document-viewer/react-vite/src/index.css +0 -13
  1041. package/code-snippet/dynamsoft-document-viewer/react-vite/src/main.jsx +0 -7
  1042. package/code-snippet/dynamsoft-document-viewer/react-vite/vite.config.js +0 -19
  1043. package/code-snippet/dynamsoft-document-viewer/vue/.eslintrc.cjs +0 -15
  1044. package/code-snippet/dynamsoft-document-viewer/vue/.prettierrc.json +0 -8
  1045. package/code-snippet/dynamsoft-document-viewer/vue/README.md +0 -42
  1046. package/code-snippet/dynamsoft-document-viewer/vue/env.d.ts +0 -1
  1047. package/code-snippet/dynamsoft-document-viewer/vue/index.html +0 -13
  1048. package/code-snippet/dynamsoft-document-viewer/vue/package-lock.json +0 -3340
  1049. package/code-snippet/dynamsoft-document-viewer/vue/package.json +0 -36
  1050. package/code-snippet/dynamsoft-document-viewer/vue/public/favicon.ico +0 -0
  1051. package/code-snippet/dynamsoft-document-viewer/vue/src/App.vue +0 -29
  1052. package/code-snippet/dynamsoft-document-viewer/vue/src/Component/Viewer.vue +0 -35
  1053. package/code-snippet/dynamsoft-document-viewer/vue/src/index.html +0 -13
  1054. package/code-snippet/dynamsoft-document-viewer/vue/src/main.ts +0 -5
  1055. package/code-snippet/dynamsoft-document-viewer/vue/tsconfig.app.json +0 -13
  1056. package/code-snippet/dynamsoft-document-viewer/vue/tsconfig.json +0 -11
  1057. package/code-snippet/dynamsoft-document-viewer/vue/tsconfig.node.json +0 -17
  1058. package/code-snippet/dynamsoft-document-viewer/vue/vite.config.ts +0 -29
  1059. package/data/ddv-api-docs.json +0 -1279
  1060. package/data/dynamsoft_sdks.json +0 -243
  1061. package/data/web-twain-api-docs.json +0 -1881
package/src/rag.js CHANGED
@@ -1,589 +1,1203 @@
1
- import { readFileSync, existsSync, writeFileSync, mkdirSync } from "node:fs";
2
- import { join, dirname } from "node:path";
3
- import { createHash } from "node:crypto";
4
- import { fileURLToPath } from "node:url";
5
- import "dotenv/config";
6
- import Fuse from "fuse.js";
7
- import {
8
- resourceIndex,
9
- resourceIndexByUri,
10
- getSampleEntries,
11
- editionMatches,
12
- platformMatches,
13
- normalizeProduct,
14
- normalizePlatform,
15
- normalizeEdition,
16
- getRagSignatureData
17
- } from "./resource-index.js";
18
-
19
- const __dirname = dirname(fileURLToPath(import.meta.url));
20
- const projectRoot = join(__dirname, "..");
21
-
22
- const pkgUrl = new URL("../package.json", import.meta.url);
23
- const pkg = JSON.parse(readFileSync(pkgUrl, "utf8"));
24
-
25
- // ============================================================================
26
- // RAG configuration
27
- // ============================================================================
28
-
29
- function readEnvValue(key, fallback) {
30
- const value = process.env[key];
31
- if (value === undefined || value === "") return fallback;
32
- return value;
33
- }
34
-
35
- function readBoolEnv(key, fallback) {
36
- const value = readEnvValue(key, "");
37
- if (!value) return fallback;
38
- return ["1", "true", "yes", "on"].includes(String(value).toLowerCase());
39
- }
40
-
41
- function readIntEnv(key, fallback) {
42
- const raw = readEnvValue(key, "");
43
- if (!raw) return fallback;
44
- const value = Number.parseInt(raw, 10);
45
- return Number.isNaN(value) ? fallback : value;
46
- }
47
-
48
- function readFloatEnv(key, fallback) {
49
- const raw = readEnvValue(key, "");
50
- if (!raw) return fallback;
51
- const value = Number.parseFloat(raw);
52
- return Number.isNaN(value) ? fallback : value;
53
- }
54
-
55
- function normalizeGeminiModel(model) {
56
- if (!model) return "models/embedding-001";
57
- if (model.startsWith("models/")) return model;
58
- return `models/${model}`;
59
- }
60
-
61
- const ragConfig = {
62
- provider: readEnvValue("RAG_PROVIDER", "auto").toLowerCase(),
63
- fallback: readEnvValue("RAG_FALLBACK", "fuse").toLowerCase(),
64
- cacheDir: readEnvValue("RAG_CACHE_DIR", join(projectRoot, "data", ".rag-cache")),
65
- modelCacheDir: readEnvValue("RAG_MODEL_CACHE_DIR", join(projectRoot, "data", ".rag-cache", "models")),
66
- localModel: readEnvValue("RAG_LOCAL_MODEL", "Xenova/all-MiniLM-L6-v2"),
67
- localQuantized: readBoolEnv("RAG_LOCAL_QUANTIZED", true),
68
- chunkSize: readIntEnv("RAG_CHUNK_SIZE", 1200),
69
- chunkOverlap: readIntEnv("RAG_CHUNK_OVERLAP", 200),
70
- maxChunksPerDoc: readIntEnv("RAG_MAX_CHUNKS_PER_DOC", 6),
71
- maxTextChars: readIntEnv("RAG_MAX_TEXT_CHARS", 4000),
72
- minScore: readFloatEnv("RAG_MIN_SCORE", 0.2),
73
- includeScore: readBoolEnv("RAG_INCLUDE_SCORE", false),
74
- rebuild: readBoolEnv("RAG_REBUILD", false),
75
- prewarm: readBoolEnv("RAG_PREWARM", false),
76
- prewarmBlock: readBoolEnv("RAG_PREWARM_BLOCK", false),
77
- geminiApiKey: readEnvValue("GEMINI_API_KEY", ""),
78
- geminiModel: normalizeGeminiModel(readEnvValue("GEMINI_EMBED_MODEL", "models/gemini-embedding-001")),
79
- geminiBaseUrl: readEnvValue("GEMINI_API_BASE_URL", "https://generativelanguage.googleapis.com"),
80
- geminiBatchSize: readIntEnv("GEMINI_EMBED_BATCH_SIZE", 16)
81
- };
82
-
83
- // ============================================================================
84
- // RAG search implementation
85
- // ============================================================================
86
-
87
- const fuseSearch = new Fuse(resourceIndex, {
88
- keys: ["title", "summary", "tags", "uri"],
89
- threshold: 0.35,
90
- ignoreLocation: true,
91
- includeScore: true
92
- });
93
-
94
- function attachScore(entry, score) {
95
- if (!ragConfig.includeScore || !Number.isFinite(score)) return entry;
96
- return { ...entry, score };
97
- }
98
-
99
- function normalizeSearchFilters({ product, edition, platform, type }) {
100
- const normalizedProduct = normalizeProduct(product);
101
- const normalizedPlatform = normalizePlatform(platform);
102
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
103
- return {
104
- product: normalizedProduct,
105
- edition: normalizedEdition,
106
- platform: normalizedPlatform,
107
- type: type || "any"
108
- };
109
- }
110
-
111
- function entryMatchesScope(entry, filters) {
112
- if (filters.product && entry.product !== filters.product) return false;
113
- if (filters.edition && !editionMatches(filters.edition, entry.edition)) return false;
114
- if (filters.platform && !platformMatches(filters.platform, entry)) return false;
115
- if (filters.type && filters.type !== "any" && entry.type !== filters.type) return false;
116
- return true;
117
- }
118
-
119
- function normalizeText(text) {
120
- return String(text || "").replace(/\s+/g, " ").trim();
121
- }
122
-
123
- function truncateText(text, maxChars) {
124
- if (!maxChars || maxChars <= 0) return text;
125
- if (text.length <= maxChars) return text;
126
- return text.slice(0, Math.max(0, maxChars));
127
- }
128
-
129
- function chunkText(text, chunkSize, chunkOverlap, maxChunks) {
130
- const cleaned = normalizeText(text);
131
- if (!cleaned) return [];
132
- if (!chunkSize || chunkSize <= 0) return [cleaned];
133
- const overlap = Math.min(Math.max(0, chunkOverlap), Math.max(0, chunkSize - 1));
134
- const chunks = [];
135
- let start = 0;
136
- while (start < cleaned.length) {
137
- const end = Math.min(start + chunkSize, cleaned.length);
138
- const chunk = cleaned.slice(start, end).trim();
139
- if (chunk) chunks.push(chunk);
140
- if (end >= cleaned.length) break;
141
- start = Math.max(0, end - overlap);
142
- if (maxChunks && chunks.length >= maxChunks) break;
143
- }
144
- return chunks;
145
- }
146
-
147
- function buildEntryBaseText(entry) {
148
- const parts = [entry.title, entry.summary];
149
- if (Array.isArray(entry.tags) && entry.tags.length > 0) {
150
- parts.push(entry.tags.join(", "));
151
- }
152
- return normalizeText(parts.filter(Boolean).join("\n"));
153
- }
154
-
155
- function buildEmbeddingItems() {
156
- const items = [];
157
- for (const entry of resourceIndex) {
158
- const baseText = buildEntryBaseText(entry);
159
- if (!baseText) continue;
160
- if (entry.type === "doc" && entry.embedText) {
161
- const chunks = chunkText(entry.embedText, ragConfig.chunkSize, ragConfig.chunkOverlap, ragConfig.maxChunksPerDoc);
162
- if (chunks.length === 0) {
163
- items.push({
164
- id: entry.id,
165
- uri: entry.uri,
166
- text: truncateText(baseText, ragConfig.maxTextChars)
167
- });
168
- continue;
169
- }
170
- chunks.forEach((chunk, index) => {
171
- const combined = [baseText, chunk].filter(Boolean).join("\n\n");
172
- items.push({
173
- id: `${entry.id}#${index}`,
174
- uri: entry.uri,
175
- text: truncateText(combined, ragConfig.maxTextChars)
176
- });
177
- });
178
- continue;
179
- }
180
- items.push({
181
- id: entry.id,
182
- uri: entry.uri,
183
- text: truncateText(baseText, ragConfig.maxTextChars)
184
- });
185
- }
186
- return items;
187
- }
188
-
189
- function buildIndexSignature() {
190
- const signatureData = getRagSignatureData();
191
- return JSON.stringify({
192
- packageVersion: pkg.version,
193
- resourceCount: signatureData.resourceCount,
194
- dwtDocCount: signatureData.dwtDocCount,
195
- ddvDocCount: signatureData.ddvDocCount,
196
- versions: signatureData.versions,
197
- chunkSize: ragConfig.chunkSize,
198
- chunkOverlap: ragConfig.chunkOverlap,
199
- maxChunksPerDoc: ragConfig.maxChunksPerDoc,
200
- maxTextChars: ragConfig.maxTextChars
201
- });
202
- }
203
-
204
- function ensureDirectory(path) {
205
- if (!existsSync(path)) {
206
- mkdirSync(path, { recursive: true });
207
- }
208
- }
209
-
210
- function makeCacheFileName(provider, model, cacheKey) {
211
- const safeModel = String(model || "default").replace(/[^a-zA-Z0-9._-]+/g, "_").slice(0, 32);
212
- return `rag-${provider}-${safeModel}-${cacheKey.slice(0, 12)}.json`;
213
- }
214
-
215
- function loadVectorIndexCache(cacheFile, expectedKey) {
216
- if (!existsSync(cacheFile)) return null;
217
- try {
218
- const parsed = JSON.parse(readFileSync(cacheFile, "utf8"));
219
- if (!parsed || parsed.cacheKey !== expectedKey) return null;
220
- if (!Array.isArray(parsed.items) || !Array.isArray(parsed.vectors)) return null;
221
- return parsed;
222
- } catch {
223
- return null;
224
- }
225
- }
226
-
227
- function saveVectorIndexCache(cacheFile, payload) {
228
- ensureDirectory(ragConfig.cacheDir);
229
- writeFileSync(cacheFile, JSON.stringify(payload));
230
- }
231
-
232
- function normalizeVector(vector) {
233
- let sum = 0;
234
- for (const value of vector) {
235
- sum += value * value;
236
- }
237
- const norm = Math.sqrt(sum);
238
- if (!norm) return vector.map(() => 0);
239
- return vector.map((value) => value / norm);
240
- }
241
-
242
- function dotProduct(a, b) {
243
- const len = Math.min(a.length, b.length);
244
- let sum = 0;
245
- for (let i = 0; i < len; i++) {
246
- sum += a[i] * b[i];
247
- }
248
- return sum;
249
- }
250
-
251
- async function embedTexts(texts, embedder, batchSize = 1) {
252
- const results = [];
253
- if (embedder.embedBatch && batchSize > 1) {
254
- try {
255
- for (let i = 0; i < texts.length; i += batchSize) {
256
- const batch = texts.slice(i, i + batchSize);
257
- const vectors = await embedder.embedBatch(batch);
258
- results.push(...vectors);
259
- }
260
- return results;
261
- } catch (error) {
262
- console.error(`[rag] batch embedding failed, falling back to single requests: ${error.message}`);
263
- results.length = 0;
264
- }
265
- }
266
- for (const text of texts) {
267
- results.push(await embedder.embed(text));
268
- }
269
- return results;
270
- }
271
-
272
- let localEmbedderPromise = null;
273
- async function getLocalEmbedder() {
274
- if (localEmbedderPromise) return localEmbedderPromise;
275
- localEmbedderPromise = (async () => {
276
- const { pipeline, env } = await import("@xenova/transformers");
277
- ensureDirectory(ragConfig.modelCacheDir);
278
- env.cacheDir = ragConfig.modelCacheDir;
279
- env.allowLocalModels = true;
280
- const extractor = await pipeline("feature-extraction", ragConfig.localModel, {
281
- quantized: ragConfig.localQuantized
282
- });
283
- return {
284
- embed: async (text) => {
285
- const output = await extractor(text, { pooling: "mean", normalize: true });
286
- return Array.from(output.data);
287
- }
288
- };
289
- })();
290
- return localEmbedderPromise;
291
- }
292
-
293
- let geminiEmbedderPromise = null;
294
- async function getGeminiEmbedder() {
295
- if (!ragConfig.geminiApiKey) {
296
- throw new Error("GEMINI_API_KEY is required for gemini embeddings.");
297
- }
298
- if (geminiEmbedderPromise) return geminiEmbedderPromise;
299
- geminiEmbedderPromise = Promise.resolve({
300
- embed: async (text) => {
301
- const response = await fetch(
302
- `${ragConfig.geminiBaseUrl}/v1beta/${ragConfig.geminiModel}:embedContent?key=${ragConfig.geminiApiKey}`,
303
- {
304
- method: "POST",
305
- headers: { "Content-Type": "application/json" },
306
- body: JSON.stringify({
307
- content: {
308
- parts: [{ text }]
309
- }
310
- })
311
- }
312
- );
313
- if (!response.ok) {
314
- const detail = await response.text();
315
- throw new Error(`Gemini embedContent failed (${response.status}): ${detail}`);
316
- }
317
- const payload = await response.json();
318
- const embedding = payload.embedding?.values || payload.embedding || payload.embeddings?.[0]?.values;
319
- if (!embedding) {
320
- throw new Error("Gemini embedding response missing embedding values.");
321
- }
322
- return embedding;
323
- },
324
- embedBatch: async (texts) => {
325
- const response = await fetch(
326
- `${ragConfig.geminiBaseUrl}/v1beta/${ragConfig.geminiModel}:batchEmbedContents?key=${ragConfig.geminiApiKey}`,
327
- {
328
- method: "POST",
329
- headers: { "Content-Type": "application/json" },
330
- body: JSON.stringify({
331
- requests: texts.map((text) => ({
332
- model: ragConfig.geminiModel,
333
- content: {
334
- parts: [{ text }]
335
- }
336
- }))
337
- })
338
- }
339
- );
340
- if (!response.ok) {
341
- const detail = await response.text();
342
- throw new Error(`Gemini batchEmbedContents failed (${response.status}): ${detail}`);
343
- }
344
- const payload = await response.json();
345
- const embeddings = payload.embeddings || payload.responses;
346
- if (!Array.isArray(embeddings)) {
347
- throw new Error("Gemini batch response missing embeddings.");
348
- }
349
- return embeddings.map((item) => item.values || item.embedding?.values || item.embedding);
350
- }
351
- });
352
- return geminiEmbedderPromise;
353
- }
354
-
355
- async function createVectorProvider({ name, model, embedder, batchSize }) {
356
- const signature = buildIndexSignature();
357
- const cacheMeta = {
358
- provider: name,
359
- model,
360
- signature
361
- };
362
- const cacheKey = createHash("sha256").update(JSON.stringify(cacheMeta)).digest("hex");
363
- const cacheFile = join(ragConfig.cacheDir, makeCacheFileName(name, model, cacheKey));
364
-
365
- let indexPromise = null;
366
- const loadIndex = async () => {
367
- if (indexPromise) return indexPromise;
368
- indexPromise = (async () => {
369
- if (!ragConfig.rebuild) {
370
- const cached = loadVectorIndexCache(cacheFile, cacheKey);
371
- if (cached) {
372
- return {
373
- items: cached.items,
374
- vectors: cached.vectors
375
- };
376
- }
377
- }
378
-
379
- const items = buildEmbeddingItems();
380
- const texts = items.map((item) => item.text);
381
- const vectors = await embedTexts(texts, embedder, batchSize);
382
- const normalized = vectors.map(normalizeVector);
383
-
384
- const payload = {
385
- cacheKey,
386
- meta: cacheMeta,
387
- items: items.map((item) => ({ id: item.id, uri: item.uri })),
388
- vectors: normalized
389
- };
390
- saveVectorIndexCache(cacheFile, payload);
391
- return {
392
- items: payload.items,
393
- vectors: payload.vectors
394
- };
395
- })();
396
- return indexPromise;
397
- };
398
-
399
- return {
400
- name,
401
- search: async (query, filters, limit) => {
402
- const prepared = truncateText(normalizeText(query), ragConfig.maxTextChars);
403
- if (!prepared) return [];
404
- const index = await loadIndex();
405
- const queryVector = normalizeVector(await embedder.embed(prepared));
406
- const bestByUri = new Map();
407
-
408
- for (let i = 0; i < index.vectors.length; i++) {
409
- const score = dotProduct(queryVector, index.vectors[i]);
410
- if (ragConfig.minScore && score < ragConfig.minScore) continue;
411
- const item = index.items[i];
412
- const entry = resourceIndexByUri.get(item.uri);
413
- if (!entry || !entryMatchesScope(entry, filters)) continue;
414
- const existing = bestByUri.get(item.uri);
415
- if (!existing || score > existing.score) {
416
- bestByUri.set(item.uri, { entry, score });
417
- }
418
- }
419
-
420
- const results = Array.from(bestByUri.values())
421
- .sort((a, b) => b.score - a.score)
422
- .map((item) => attachScore(item.entry, item.score));
423
-
424
- if (limit) return results.slice(0, limit);
425
- return results;
426
- },
427
- warm: async () => {
428
- await loadIndex();
429
- }
430
- };
431
- }
432
-
433
- function createFuseProvider() {
434
- return {
435
- name: "fuse",
436
- search: async (query, filters, limit) => {
437
- const results = [];
438
- for (const result of fuseSearch.search(query)) {
439
- const entry = result.item;
440
- if (!entryMatchesScope(entry, filters)) continue;
441
- const score = Number.isFinite(result.score) ? Math.max(0, 1 - result.score) : undefined;
442
- results.push(attachScore(entry, score));
443
- }
444
- if (limit) return results.slice(0, limit);
445
- return results;
446
- },
447
- warm: async () => {}
448
- };
449
- }
450
-
451
- function resolveProviderChain() {
452
- let primary = ragConfig.provider;
453
- if (primary === "auto") {
454
- primary = ragConfig.geminiApiKey ? "gemini" : "local";
455
- }
456
- const chain = [primary];
457
- if (ragConfig.fallback && ragConfig.fallback !== "none" && ragConfig.fallback !== primary) {
458
- chain.push(ragConfig.fallback);
459
- }
460
- return Array.from(new Set(chain));
461
- }
462
-
463
- const providerCache = new Map();
464
-
465
- async function loadSearchProvider(name) {
466
- if (providerCache.has(name)) return providerCache.get(name);
467
- let providerPromise;
468
- if (name === "fuse") {
469
- providerPromise = Promise.resolve(createFuseProvider());
470
- } else if (name === "local") {
471
- providerPromise = (async () => {
472
- const embedder = await getLocalEmbedder();
473
- return createVectorProvider({
474
- name: "local",
475
- model: ragConfig.localModel,
476
- embedder,
477
- batchSize: 1
478
- });
479
- })();
480
- } else if (name === "gemini") {
481
- providerPromise = (async () => {
482
- const embedder = await getGeminiEmbedder();
483
- return createVectorProvider({
484
- name: "gemini",
485
- model: ragConfig.geminiModel,
486
- embedder,
487
- batchSize: Math.max(1, ragConfig.geminiBatchSize)
488
- });
489
- })();
490
- } else {
491
- providerPromise = Promise.reject(new Error(`Unknown search provider: ${name}`));
492
- }
493
- providerCache.set(name, providerPromise);
494
- return providerPromise;
495
- }
496
-
497
- async function searchResources({ query, product, edition, platform, type, limit }) {
498
- const filters = normalizeSearchFilters({ product, edition, platform, type });
499
- const searchQuery = query ? String(query).trim() : "";
500
- const maxResults = limit ? Math.min(limit, 50) : undefined;
501
-
502
- if (!searchQuery) {
503
- const results = resourceIndex.filter((entry) => entryMatchesScope(entry, filters));
504
- return maxResults ? results.slice(0, maxResults) : results;
505
- }
506
-
507
- const providers = resolveProviderChain();
508
- let lastError = null;
509
- for (const name of providers) {
510
- try {
511
- const provider = await loadSearchProvider(name);
512
- const results = await provider.search(searchQuery, filters, maxResults);
513
- return results;
514
- } catch (error) {
515
- lastError = error;
516
- console.error(`[rag] provider "${name}" failed: ${error.message}`);
517
- }
518
- }
519
-
520
- if (lastError) {
521
- console.error(`[rag] all providers failed: ${lastError.message}`);
522
- }
523
- return [];
524
- }
525
-
526
- async function prewarmRagIndex() {
527
- if (!ragConfig.prewarm) return;
528
- const providers = resolveProviderChain();
529
- const primary = providers[0];
530
- if (!primary || primary === "fuse") return;
531
- try {
532
- const provider = await loadSearchProvider(primary);
533
- if (provider.warm) {
534
- await provider.warm();
535
- }
536
- } catch (error) {
537
- console.error(`[rag] prewarm failed: ${error.message}`);
538
- }
539
- }
540
-
541
- async function getSampleSuggestions({ query, product, edition, platform, limit = 5 }) {
542
- const normalizedProduct = normalizeProduct(product);
543
- const normalizedPlatform = normalizePlatform(platform);
544
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
545
- const searchQuery = query ? String(query).trim() : "";
546
- const maxResults = Math.min(limit || 5, 10);
547
-
548
- if (searchQuery) {
549
- const results = await searchResources({
550
- query: searchQuery,
551
- product: normalizedProduct,
552
- edition: normalizedEdition,
553
- platform: normalizedPlatform,
554
- type: "sample",
555
- limit: maxResults
556
- });
557
- if (results.length) return results;
558
- }
559
-
560
- const matchesScope = (entry) => {
561
- if (normalizedProduct && entry.product !== normalizedProduct) return false;
562
- if (!editionMatches(normalizedEdition, entry.edition)) return false;
563
- if (!platformMatches(normalizedPlatform, entry)) return false;
564
- return entry.type === "sample";
565
- };
566
-
567
- let candidates = resourceIndex.filter(matchesScope);
568
- if (candidates.length === 0 && normalizedProduct) {
569
- candidates = resourceIndex.filter((entry) => entry.type === "sample" && entry.product === normalizedProduct);
570
- }
571
-
572
- const seen = new Set();
573
- const results = [];
574
- for (const entry of candidates) {
575
- if (seen.has(entry.uri)) continue;
576
- seen.add(entry.uri);
577
- results.push(entry);
578
- if (results.length >= maxResults) break;
579
- }
580
-
581
- return results;
582
- }
583
-
584
- export {
585
- ragConfig,
586
- searchResources,
587
- getSampleSuggestions,
588
- prewarmRagIndex
589
- };
1
+ import { readFileSync, existsSync, writeFileSync, mkdirSync, readdirSync, copyFileSync, rmSync, statSync } from "node:fs";
2
+ import { join, dirname, basename, resolve } from "node:path";
3
+ import { createHash } from "node:crypto";
4
+ import { fileURLToPath } from "node:url";
5
+ import { tmpdir } from "node:os";
6
+ import "dotenv/config";
7
+ import Fuse from "fuse.js";
8
+ import * as tar from "tar";
9
+ import { getResolvedDataRoot } from "./data-root.js";
10
+ import {
11
+ resourceIndex,
12
+ resourceIndexByUri,
13
+ getSampleEntries,
14
+ editionMatches,
15
+ platformMatches,
16
+ normalizeProduct,
17
+ normalizePlatform,
18
+ normalizeEdition,
19
+ getRagSignatureData
20
+ } from "./resource-index.js";
21
+ import {
22
+ sleepMs,
23
+ parseRetryAfterMs,
24
+ normalizeGeminiRetryConfig,
25
+ isRateLimitGeminiStatus,
26
+ GeminiHttpError,
27
+ executeWithGeminiRetry
28
+ } from "./gemini-retry.js";
29
+
30
+ const __dirname = dirname(fileURLToPath(import.meta.url));
31
+ const dataRoot = getResolvedDataRoot();
32
+
33
+ const pkgUrl = new URL("../package.json", import.meta.url);
34
+ const pkg = JSON.parse(readFileSync(pkgUrl, "utf8"));
35
+ const defaultPrebuiltIndexUrl =
36
+ `https://github.com/yushulx/simple-dynamsoft-mcp/releases/download/v${pkg.version}/prebuilt-rag-index-${pkg.version}.tar.gz`;
37
+
38
+ // ============================================================================
39
+ // RAG configuration
40
+ // ============================================================================
41
+
42
+ function readEnvValue(key, fallback) {
43
+ const value = process.env[key];
44
+ if (value === undefined || value === "") return fallback;
45
+ return value;
46
+ }
47
+
48
+ function readBoolEnv(key, fallback) {
49
+ const value = readEnvValue(key, "");
50
+ if (!value) return fallback;
51
+ return ["1", "true", "yes", "on"].includes(String(value).toLowerCase());
52
+ }
53
+
54
+ function readIntEnv(key, fallback) {
55
+ const raw = readEnvValue(key, "");
56
+ if (!raw) return fallback;
57
+ const value = Number.parseInt(raw, 10);
58
+ return Number.isNaN(value) ? fallback : value;
59
+ }
60
+
61
+ function readFloatEnv(key, fallback) {
62
+ const raw = readEnvValue(key, "");
63
+ if (!raw) return fallback;
64
+ const value = Number.parseFloat(raw);
65
+ return Number.isNaN(value) ? fallback : value;
66
+ }
67
+
68
+ function normalizeGeminiModel(model) {
69
+ if (!model) return "models/embedding-001";
70
+ if (model.startsWith("models/")) return model;
71
+ return `models/${model}`;
72
+ }
73
+
74
+ const ragConfig = {
75
+ provider: readEnvValue("RAG_PROVIDER", "auto").toLowerCase(),
76
+ fallback: readEnvValue("RAG_FALLBACK", "fuse").toLowerCase(),
77
+ cacheDir: readEnvValue("RAG_CACHE_DIR", join(dataRoot, ".rag-cache")),
78
+ modelCacheDir: readEnvValue("RAG_MODEL_CACHE_DIR", join(dataRoot, ".rag-cache", "models")),
79
+ localModel: readEnvValue("RAG_LOCAL_MODEL", "Xenova/all-MiniLM-L6-v2"),
80
+ localQuantized: readBoolEnv("RAG_LOCAL_QUANTIZED", true),
81
+ chunkSize: readIntEnv("RAG_CHUNK_SIZE", 1200),
82
+ chunkOverlap: readIntEnv("RAG_CHUNK_OVERLAP", 200),
83
+ maxChunksPerDoc: readIntEnv("RAG_MAX_CHUNKS_PER_DOC", 6),
84
+ maxTextChars: readIntEnv("RAG_MAX_TEXT_CHARS", 4000),
85
+ minScore: readFloatEnv("RAG_MIN_SCORE", 0.2),
86
+ includeScore: readBoolEnv("RAG_INCLUDE_SCORE", false),
87
+ rebuild: readBoolEnv("RAG_REBUILD", false),
88
+ prewarm: readBoolEnv("RAG_PREWARM", false),
89
+ prewarmBlock: readBoolEnv("RAG_PREWARM_BLOCK", false),
90
+ prebuiltIndexAutoDownload: readBoolEnv("RAG_PREBUILT_INDEX_AUTO_DOWNLOAD", true),
91
+ prebuiltIndexUrl: readEnvValue("RAG_PREBUILT_INDEX_URL", defaultPrebuiltIndexUrl),
92
+ prebuiltIndexTimeoutMs: readIntEnv("RAG_PREBUILT_INDEX_TIMEOUT_MS", 180000),
93
+ geminiApiKey: readEnvValue("GEMINI_API_KEY", ""),
94
+ geminiModel: normalizeGeminiModel(readEnvValue("GEMINI_EMBED_MODEL", "models/gemini-embedding-001")),
95
+ geminiBaseUrl: readEnvValue("GEMINI_API_BASE_URL", "https://generativelanguage.googleapis.com"),
96
+ geminiBatchSize: readIntEnv("GEMINI_EMBED_BATCH_SIZE", 16),
97
+ geminiRetryMaxAttempts: readIntEnv("GEMINI_RETRY_MAX_ATTEMPTS", 5),
98
+ geminiRetryBaseDelayMs: readIntEnv("GEMINI_RETRY_BASE_DELAY_MS", 500),
99
+ geminiRetryMaxDelayMs: readIntEnv("GEMINI_RETRY_MAX_DELAY_MS", 10000),
100
+ geminiRequestThrottleMs: readIntEnv("GEMINI_REQUEST_THROTTLE_MS", 0)
101
+ };
102
+
103
+ const ragLogState = {
104
+ config: false,
105
+ providerChain: false,
106
+ localEmbedderInit: false,
107
+ providerReady: new Set(),
108
+ providerFirstUse: new Set(),
109
+ fallbackUse: new Set()
110
+ };
111
+
112
+ const prebuiltDownloadAttempts = new Map();
113
+
114
+ function logRag(message) {
115
+ console.error(`[rag] ${message}`);
116
+ }
117
+
118
+ // ============================================================================
119
+ // RAG search implementation
120
+ // ============================================================================
121
+
122
+ const fuseSearch = new Fuse(resourceIndex, {
123
+ keys: ["title", "summary", "tags", "uri"],
124
+ threshold: 0.35,
125
+ ignoreLocation: true,
126
+ includeScore: true
127
+ });
128
+
129
+ function attachScore(entry, score) {
130
+ if (!ragConfig.includeScore || !Number.isFinite(score)) return entry;
131
+ return { ...entry, score };
132
+ }
133
+
134
+ function normalizeSearchFilters({ product, edition, platform, type }) {
135
+ const normalizedProduct = normalizeProduct(product);
136
+ const normalizedPlatform = normalizePlatform(platform);
137
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
138
+ return {
139
+ product: normalizedProduct,
140
+ edition: normalizedEdition,
141
+ platform: normalizedPlatform,
142
+ type: type || "any"
143
+ };
144
+ }
145
+
146
+ function entryMatchesScope(entry, filters) {
147
+ if (filters.product && entry.product !== filters.product) return false;
148
+ if (filters.edition && !editionMatches(filters.edition, entry.edition)) return false;
149
+ if (filters.platform && !platformMatches(filters.platform, entry)) return false;
150
+ if (filters.type && filters.type !== "any" && entry.type !== filters.type) return false;
151
+ return true;
152
+ }
153
+
154
+ function normalizeText(text) {
155
+ return String(text || "").replace(/\s+/g, " ").trim();
156
+ }
157
+
158
+ function truncateText(text, maxChars) {
159
+ if (!maxChars || maxChars <= 0) return text;
160
+ if (text.length <= maxChars) return text;
161
+ return text.slice(0, Math.max(0, maxChars));
162
+ }
163
+
164
+ function chunkText(text, chunkSize, chunkOverlap, maxChunks) {
165
+ const cleaned = normalizeText(text);
166
+ if (!cleaned) return [];
167
+ if (!chunkSize || chunkSize <= 0) return [cleaned];
168
+ const overlap = Math.min(Math.max(0, chunkOverlap), Math.max(0, chunkSize - 1));
169
+ const chunks = [];
170
+ let start = 0;
171
+ while (start < cleaned.length) {
172
+ const end = Math.min(start + chunkSize, cleaned.length);
173
+ const chunk = cleaned.slice(start, end).trim();
174
+ if (chunk) chunks.push(chunk);
175
+ if (end >= cleaned.length) break;
176
+ start = Math.max(0, end - overlap);
177
+ if (maxChunks && chunks.length >= maxChunks) break;
178
+ }
179
+ return chunks;
180
+ }
181
+
182
+ function buildEntryBaseText(entry) {
183
+ const parts = [entry.title, entry.summary];
184
+ if (Array.isArray(entry.tags) && entry.tags.length > 0) {
185
+ parts.push(entry.tags.join(", "));
186
+ }
187
+ return normalizeText(parts.filter(Boolean).join("\n"));
188
+ }
189
+
190
+ function buildEmbeddingItems() {
191
+ const items = [];
192
+ for (const entry of resourceIndex) {
193
+ const baseText = buildEntryBaseText(entry);
194
+ if (!baseText) continue;
195
+ if (entry.type === "doc" && entry.embedText) {
196
+ const chunks = chunkText(entry.embedText, ragConfig.chunkSize, ragConfig.chunkOverlap, ragConfig.maxChunksPerDoc);
197
+ if (chunks.length === 0) {
198
+ items.push({
199
+ id: entry.id,
200
+ uri: entry.uri,
201
+ text: truncateText(baseText, ragConfig.maxTextChars)
202
+ });
203
+ continue;
204
+ }
205
+ chunks.forEach((chunk, index) => {
206
+ const combined = [baseText, chunk].filter(Boolean).join("\n\n");
207
+ items.push({
208
+ id: `${entry.id}#${index}`,
209
+ uri: entry.uri,
210
+ text: truncateText(combined, ragConfig.maxTextChars)
211
+ });
212
+ });
213
+ continue;
214
+ }
215
+ items.push({
216
+ id: entry.id,
217
+ uri: entry.uri,
218
+ text: truncateText(baseText, ragConfig.maxTextChars)
219
+ });
220
+ }
221
+ return items;
222
+ }
223
+
224
+ function buildIndexSignature() {
225
+ const signatureData = getRagSignatureData();
226
+ return JSON.stringify({
227
+ packageVersion: pkg.version,
228
+ resourceCount: signatureData.resourceCount,
229
+ dcvCoreDocCount: signatureData.dcvCoreDocCount,
230
+ dcvWebDocCount: signatureData.dcvWebDocCount,
231
+ dcvMobileDocCount: signatureData.dcvMobileDocCount,
232
+ dcvServerDocCount: signatureData.dcvServerDocCount,
233
+ dbrWebDocCount: signatureData.dbrWebDocCount,
234
+ dbrMobileDocCount: signatureData.dbrMobileDocCount,
235
+ dbrServerDocCount: signatureData.dbrServerDocCount,
236
+ dwtDocCount: signatureData.dwtDocCount,
237
+ ddvDocCount: signatureData.ddvDocCount,
238
+ versions: signatureData.versions,
239
+ dataSources: signatureData.dataSources,
240
+ chunkSize: ragConfig.chunkSize,
241
+ chunkOverlap: ragConfig.chunkOverlap,
242
+ maxChunksPerDoc: ragConfig.maxChunksPerDoc,
243
+ maxTextChars: ragConfig.maxTextChars
244
+ });
245
+ }
246
+
247
+ function ensureDirectory(path) {
248
+ if (!existsSync(path)) {
249
+ mkdirSync(path, { recursive: true });
250
+ }
251
+ }
252
+
253
+ function makeCacheFileName(provider, model, cacheKey) {
254
+ const safeModel = String(model || "default").replace(/[^a-zA-Z0-9._-]+/g, "_").slice(0, 32);
255
+ return `rag-${provider}-${safeModel}-${cacheKey.slice(0, 12)}.json`;
256
+ }
257
+
258
+ function makeCheckpointFileName(provider, model, cacheKey) {
259
+ const safeModel = String(model || "default").replace(/[^a-zA-Z0-9._-]+/g, "_").slice(0, 32);
260
+ return `rag-${provider}-${safeModel}-${cacheKey.slice(0, 12)}.checkpoint.json`;
261
+ }
262
+
263
+ function loadVectorIndexCache(
264
+ cacheFile,
265
+ { cacheKey, signature, provider, model, requireSignature = false } = {}
266
+ ) {
267
+ if (!existsSync(cacheFile)) {
268
+ return { hit: false, reason: "missing", payload: null };
269
+ }
270
+ try {
271
+ const parsed = JSON.parse(readFileSync(cacheFile, "utf8"));
272
+ if (!parsed || (cacheKey && parsed.cacheKey !== cacheKey)) {
273
+ return { hit: false, reason: "cache_key_mismatch", payload: null };
274
+ }
275
+ if (!Array.isArray(parsed.items) || !Array.isArray(parsed.vectors)) {
276
+ return { hit: false, reason: "invalid_payload", payload: null };
277
+ }
278
+ const meta = parsed.meta || {};
279
+ if (provider && meta.provider && meta.provider !== provider) {
280
+ return { hit: false, reason: "provider_mismatch", payload: null };
281
+ }
282
+ if (model && meta.model && meta.model !== model) {
283
+ return { hit: false, reason: "model_mismatch", payload: null };
284
+ }
285
+ if (signature) {
286
+ if (!meta.signature) {
287
+ if (requireSignature) {
288
+ return { hit: false, reason: "missing_signature", payload: null };
289
+ }
290
+ } else if (meta.signature !== signature) {
291
+ return { hit: false, reason: "signature_mismatch", payload: null };
292
+ }
293
+ }
294
+ return { hit: true, reason: "ok", payload: parsed };
295
+ } catch {
296
+ return { hit: false, reason: "parse_error", payload: null };
297
+ }
298
+ }
299
+
300
+ function listFilesRecursive(rootDir) {
301
+ const files = [];
302
+ const stack = [rootDir];
303
+ while (stack.length > 0) {
304
+ const current = stack.pop();
305
+ const entries = readdirSync(current, { withFileTypes: true });
306
+ for (const entry of entries) {
307
+ const fullPath = join(current, entry.name);
308
+ if (entry.isDirectory()) {
309
+ stack.push(fullPath);
310
+ } else if (entry.isFile()) {
311
+ files.push(fullPath);
312
+ }
313
+ }
314
+ }
315
+ return files;
316
+ }
317
+
318
+ function readSignaturePackageVersion(signatureRaw) {
319
+ if (!signatureRaw) return "";
320
+ try {
321
+ const parsed = JSON.parse(signatureRaw);
322
+ return String(parsed?.packageVersion || "");
323
+ } catch {
324
+ return "";
325
+ }
326
+ }
327
+
328
+ function listDownloadedCacheCandidates(extractRoot, expectedCacheFileName, cacheKey) {
329
+ const allFiles = listFilesRecursive(extractRoot).filter((path) => path.toLowerCase().endsWith(".json")).sort();
330
+ const expectedPath = allFiles.find((path) => basename(path) === expectedCacheFileName);
331
+
332
+ const cachePrefix = cacheKey.slice(0, 12);
333
+ const prefixPath = allFiles.find((path) => {
334
+ const name = basename(path);
335
+ return name.startsWith("rag-local-") && name.endsWith(`-${cachePrefix}.json`);
336
+ });
337
+
338
+ const ragLocalFiles = allFiles.filter((path) => basename(path).startsWith("rag-local-"));
339
+ const unique = [];
340
+ for (const path of [expectedPath, prefixPath, ...ragLocalFiles]) {
341
+ if (!path) continue;
342
+ if (!unique.includes(path)) unique.push(path);
343
+ }
344
+ return unique;
345
+ }
346
+
347
+ async function downloadPrebuiltArchive(url, outputPath, timeoutMs) {
348
+ const source = String(url || "").trim();
349
+ if (!source) {
350
+ throw new Error("prebuilt URL is empty");
351
+ }
352
+
353
+ if (source.startsWith("file://")) {
354
+ copyFileSync(fileURLToPath(source), outputPath);
355
+ return { sourceType: "file", size: statSync(outputPath).size };
356
+ }
357
+
358
+ if (!/^https?:\/\//i.test(source)) {
359
+ copyFileSync(resolve(source), outputPath);
360
+ return { sourceType: "file", size: statSync(outputPath).size };
361
+ }
362
+
363
+ const controller = new AbortController();
364
+ const timer = setTimeout(() => controller.abort(), Math.max(1000, timeoutMs));
365
+ try {
366
+ const response = await fetch(source, { signal: controller.signal });
367
+ if (!response.ok) {
368
+ throw new Error(`HTTP ${response.status}`);
369
+ }
370
+ const arrayBuffer = await response.arrayBuffer();
371
+ writeFileSync(outputPath, Buffer.from(arrayBuffer));
372
+ return { sourceType: "http", size: arrayBuffer.byteLength };
373
+ } finally {
374
+ clearTimeout(timer);
375
+ }
376
+ }
377
+
378
+ async function maybeDownloadPrebuiltVectorIndex({ provider, model, cacheKey, signature, cacheFile }) {
379
+ if (provider !== "local") {
380
+ return { downloaded: false, reason: "provider_not_local" };
381
+ }
382
+ if (!ragConfig.prebuiltIndexAutoDownload) {
383
+ return { downloaded: false, reason: "auto_download_disabled" };
384
+ }
385
+
386
+ const sourceUrl = String(ragConfig.prebuiltIndexUrl || "").trim();
387
+ if (!sourceUrl) {
388
+ return { downloaded: false, reason: "url_not_set" };
389
+ }
390
+
391
+ const attemptKey = `${provider}:${cacheKey}:${sourceUrl}`;
392
+ if (prebuiltDownloadAttempts.has(attemptKey)) {
393
+ return prebuiltDownloadAttempts.get(attemptKey);
394
+ }
395
+
396
+ const expectedCacheFileName = makeCacheFileName(provider, model, cacheKey);
397
+ const attempt = (async () => {
398
+ const tempRoot = join(tmpdir(), `simple-dynamsoft-mcp-rag-prebuilt-${Date.now()}-${Math.random().toString(16).slice(2)}`);
399
+ const archivePath = join(tempRoot, "prebuilt-rag-index.tar.gz");
400
+ const extractRoot = join(tempRoot, "extract");
401
+
402
+ ensureDirectory(extractRoot);
403
+ try {
404
+ logRag(`prebuilt index download start provider=${provider} url=${sourceUrl} timeout_ms=${ragConfig.prebuiltIndexTimeoutMs}`);
405
+ const downloaded = await downloadPrebuiltArchive(sourceUrl, archivePath, ragConfig.prebuiltIndexTimeoutMs);
406
+ logRag(
407
+ `prebuilt index downloaded provider=${provider} source=${downloaded.sourceType} size=${downloaded.size}B`
408
+ );
409
+
410
+ await tar.x({
411
+ file: archivePath,
412
+ cwd: extractRoot,
413
+ strict: true
414
+ });
415
+
416
+ const candidateFiles = listDownloadedCacheCandidates(extractRoot, expectedCacheFileName, cacheKey);
417
+ if (candidateFiles.length === 0) {
418
+ throw new Error(`cache_file_not_found expected=${expectedCacheFileName}`);
419
+ }
420
+
421
+ for (const sourceCacheFile of candidateFiles) {
422
+ const candidateCache = loadVectorIndexCache(sourceCacheFile, {
423
+ provider,
424
+ model
425
+ });
426
+ if (!candidateCache.hit) {
427
+ continue;
428
+ }
429
+
430
+ const cachePackageVersion = readSignaturePackageVersion(candidateCache.payload?.meta?.signature);
431
+ if (!cachePackageVersion || cachePackageVersion !== pkg.version) {
432
+ continue;
433
+ }
434
+
435
+ const migratedPayload = {
436
+ ...candidateCache.payload,
437
+ cacheKey,
438
+ meta: {
439
+ ...(candidateCache.payload.meta || {}),
440
+ provider,
441
+ model,
442
+ signature
443
+ }
444
+ };
445
+ saveVectorIndexCache(cacheFile, migratedPayload);
446
+ logRag(
447
+ `prebuilt index installed provider=${provider} cache_file=${cacheFile} source=${basename(sourceCacheFile)} mode=version_only_compat version=${cachePackageVersion}`
448
+ );
449
+ return { downloaded: true, reason: "installed_version_only_compat" };
450
+ }
451
+
452
+ throw new Error(
453
+ `no_compatible_cache expected=${expectedCacheFileName} found=${candidateFiles.map((path) => basename(path)).join(",")}`
454
+ );
455
+ } catch (error) {
456
+ logRag(`prebuilt index unavailable provider=${provider} reason=${error.message}`);
457
+ return { downloaded: false, reason: error.message };
458
+ } finally {
459
+ rmSync(tempRoot, { recursive: true, force: true });
460
+ }
461
+ })();
462
+
463
+ prebuiltDownloadAttempts.set(attemptKey, attempt);
464
+ return attempt;
465
+ }
466
+
467
+ function saveVectorIndexCache(cacheFile, payload) {
468
+ ensureDirectory(ragConfig.cacheDir);
469
+ writeFileSync(cacheFile, JSON.stringify(payload));
470
+ }
471
+
472
+ function loadVectorIndexCheckpoint(checkpointFile, expectedKey, expectedItems) {
473
+ if (!existsSync(checkpointFile)) {
474
+ return { hit: false, reason: "missing", payload: null };
475
+ }
476
+ try {
477
+ const parsed = JSON.parse(readFileSync(checkpointFile, "utf8"));
478
+ if (!parsed || parsed.cacheKey !== expectedKey) {
479
+ return { hit: false, reason: "cache_key_mismatch", payload: null };
480
+ }
481
+ if (!Array.isArray(parsed.items) || !Array.isArray(parsed.vectors)) {
482
+ return { hit: false, reason: "invalid_payload", payload: null };
483
+ }
484
+ if (parsed.items.length !== expectedItems.length) {
485
+ return { hit: false, reason: "items_length_mismatch", payload: null };
486
+ }
487
+ for (let i = 0; i < expectedItems.length; i += 1) {
488
+ if (parsed.items[i]?.id !== expectedItems[i]?.id || parsed.items[i]?.uri !== expectedItems[i]?.uri) {
489
+ return { hit: false, reason: "items_mismatch", payload: null };
490
+ }
491
+ }
492
+ if (parsed.vectors.length > expectedItems.length) {
493
+ return { hit: false, reason: "vectors_overflow", payload: null };
494
+ }
495
+ return { hit: true, reason: "ok", payload: parsed };
496
+ } catch {
497
+ return { hit: false, reason: "parse_error", payload: null };
498
+ }
499
+ }
500
+
501
+ function saveVectorIndexCheckpoint(checkpointFile, payload) {
502
+ ensureDirectory(ragConfig.cacheDir);
503
+ writeFileSync(checkpointFile, JSON.stringify(payload));
504
+ }
505
+
506
+ function clearVectorIndexCheckpoint(checkpointFile) {
507
+ if (existsSync(checkpointFile)) {
508
+ rmSync(checkpointFile, { force: true });
509
+ }
510
+ }
511
+
512
+ function normalizeVector(vector) {
513
+ let sum = 0;
514
+ for (const value of vector) {
515
+ sum += value * value;
516
+ }
517
+ const norm = Math.sqrt(sum);
518
+ if (!norm) return vector.map(() => 0);
519
+ return vector.map((value) => value / norm);
520
+ }
521
+
522
+ function dotProduct(a, b) {
523
+ const len = Math.min(a.length, b.length);
524
+ let sum = 0;
525
+ for (let i = 0; i < len; i++) {
526
+ sum += a[i] * b[i];
527
+ }
528
+ return sum;
529
+ }
530
+
531
+ function isRateLimitError(error) {
532
+ if (error?.rateLimited) return true;
533
+ const status = Number(error?.status);
534
+ return isRateLimitGeminiStatus(status);
535
+ }
536
+
537
+ async function embedTextsWithProgress(
538
+ texts,
539
+ embedder,
540
+ batchSize = 1,
541
+ {
542
+ offset = 0,
543
+ total = texts.length,
544
+ onChunk = null,
545
+ providerName = ""
546
+ } = {}
547
+ ) {
548
+ const results = [];
549
+ const normalizedBatchSize = Math.max(1, batchSize);
550
+ let completed = offset;
551
+ let currentBatchSize = normalizedBatchSize;
552
+ let rateLimitFailures = 0;
553
+ let batchDowngrades = 0;
554
+ let singleFallbackBatches = 0;
555
+
556
+ const reportChunk = async (vectors, mode, sourceBatchSize) => {
557
+ if (!Array.isArray(vectors) || vectors.length === 0) return;
558
+ completed += vectors.length;
559
+ if (onChunk) {
560
+ await onChunk({
561
+ vectors,
562
+ mode,
563
+ sourceBatchSize,
564
+ completed,
565
+ total
566
+ });
567
+ }
568
+ };
569
+
570
+ if (embedder.embedBatch && normalizedBatchSize > 1) {
571
+ let index = 0;
572
+ while (index < texts.length) {
573
+ const batch = texts.slice(index, index + currentBatchSize);
574
+ try {
575
+ const vectors = await embedder.embedBatch(batch);
576
+ if (!Array.isArray(vectors) || vectors.length !== batch.length) {
577
+ throw new Error(`Gemini batch response size mismatch expected=${batch.length} actual=${vectors?.length || 0}`);
578
+ }
579
+ results.push(...vectors);
580
+ index += batch.length;
581
+ rateLimitFailures = 0;
582
+ await reportChunk(vectors, "batch", batch.length);
583
+ } catch (error) {
584
+ if (isRateLimitError(error)) {
585
+ rateLimitFailures += 1;
586
+ const nextBatchSize = Math.max(1, Math.floor(currentBatchSize / 2));
587
+ if (nextBatchSize < currentBatchSize) {
588
+ batchDowngrades += 1;
589
+ logRag(
590
+ `gemini batch downgrade provider=${providerName || "unknown"} from=${currentBatchSize} to=${nextBatchSize} ` +
591
+ `rate_limit_failures=${rateLimitFailures}`
592
+ );
593
+ currentBatchSize = nextBatchSize;
594
+ continue;
595
+ }
596
+ }
597
+
598
+ singleFallbackBatches += 1;
599
+ logRag(
600
+ `batch embedding fallback provider=${providerName || "unknown"} batch_size=${batch.length} reason=${error.message}`
601
+ );
602
+ for (const text of batch) {
603
+ const vector = await embedder.embed(text);
604
+ results.push(vector);
605
+ await reportChunk([vector], "single_fallback", 1);
606
+ }
607
+ index += batch.length;
608
+ rateLimitFailures = 0;
609
+ }
610
+ }
611
+
612
+ return {
613
+ vectors: results,
614
+ stats: {
615
+ batchDowngrades,
616
+ singleFallbackBatches,
617
+ finalBatchSize: currentBatchSize
618
+ }
619
+ };
620
+ }
621
+
622
+ for (const text of texts) {
623
+ const vector = await embedder.embed(text);
624
+ results.push(vector);
625
+ await reportChunk([vector], "single", 1);
626
+ }
627
+
628
+ return {
629
+ vectors: results,
630
+ stats: {
631
+ batchDowngrades,
632
+ singleFallbackBatches,
633
+ finalBatchSize: 1
634
+ }
635
+ };
636
+ }
637
+
638
+ let localEmbedderPromise = null;
639
+ async function getLocalEmbedder() {
640
+ if (localEmbedderPromise) return localEmbedderPromise;
641
+ localEmbedderPromise = (async () => {
642
+ const { pipeline, env } = await import("@xenova/transformers");
643
+ ensureDirectory(ragConfig.modelCacheDir);
644
+ if (!ragLogState.localEmbedderInit) {
645
+ ragLogState.localEmbedderInit = true;
646
+ logRag(
647
+ `init local embedder model=${ragConfig.localModel} quantized=${ragConfig.localQuantized} model_cache_dir=${ragConfig.modelCacheDir}`
648
+ );
649
+ }
650
+ env.cacheDir = ragConfig.modelCacheDir;
651
+ env.allowLocalModels = true;
652
+ const extractor = await pipeline("feature-extraction", ragConfig.localModel, {
653
+ quantized: ragConfig.localQuantized
654
+ });
655
+ return {
656
+ embed: async (text) => {
657
+ const output = await extractor(text, { pooling: "mean", normalize: true });
658
+ return Array.from(output.data);
659
+ }
660
+ };
661
+ })();
662
+ return localEmbedderPromise;
663
+ }
664
+
665
+ let geminiEmbedderPromise = null;
666
+ async function getGeminiEmbedder() {
667
+ if (!ragConfig.geminiApiKey) {
668
+ throw new Error("GEMINI_API_KEY is required for gemini embeddings.");
669
+ }
670
+ if (geminiEmbedderPromise) return geminiEmbedderPromise;
671
+ const retryConfig = normalizeGeminiRetryConfig({
672
+ maxAttempts: ragConfig.geminiRetryMaxAttempts,
673
+ baseDelayMs: ragConfig.geminiRetryBaseDelayMs,
674
+ maxDelayMs: ragConfig.geminiRetryMaxDelayMs,
675
+ requestThrottleMs: ragConfig.geminiRequestThrottleMs
676
+ });
677
+
678
+ geminiEmbedderPromise = Promise.resolve((() => {
679
+ const metrics = {
680
+ requests: 0,
681
+ retries: 0,
682
+ retryDelayMs: 0,
683
+ throttleEvents: 0,
684
+ throttleDelayMs: 0,
685
+ rateLimitRetries: 0
686
+ };
687
+
688
+ let nextAllowedAt = 0;
689
+
690
+ const throttleRequest = async (operation) => {
691
+ if (retryConfig.requestThrottleMs <= 0) return;
692
+ const now = Date.now();
693
+ const waitMs = Math.max(0, nextAllowedAt - now);
694
+ if (waitMs > 0) {
695
+ metrics.throttleEvents += 1;
696
+ metrics.throttleDelayMs += waitMs;
697
+ logRag(`gemini throttle op=${operation} wait_ms=${waitMs}`);
698
+ await sleepMs(waitMs);
699
+ }
700
+ nextAllowedAt = Date.now() + retryConfig.requestThrottleMs;
701
+ };
702
+
703
+ const requestJson = async (operation, endpoint, body) => executeWithGeminiRetry({
704
+ operation,
705
+ retryConfig,
706
+ logger: (message) => logRag(message),
707
+ onRetry: ({ delayMs, rateLimited }) => {
708
+ metrics.retries += 1;
709
+ metrics.retryDelayMs += delayMs;
710
+ if (rateLimited) {
711
+ metrics.rateLimitRetries += 1;
712
+ }
713
+ },
714
+ requestFn: async () => {
715
+ await throttleRequest(operation);
716
+ metrics.requests += 1;
717
+ const response = await fetch(
718
+ `${ragConfig.geminiBaseUrl}/v1beta/${endpoint}?key=${ragConfig.geminiApiKey}`,
719
+ {
720
+ method: "POST",
721
+ headers: { "Content-Type": "application/json" },
722
+ body: JSON.stringify(body)
723
+ }
724
+ );
725
+ if (!response.ok) {
726
+ const detail = await response.text();
727
+ throw new GeminiHttpError(`Gemini ${operation} failed (${response.status}): ${detail}`, {
728
+ status: response.status,
729
+ detail,
730
+ retryAfterMs: parseRetryAfterMs(response.headers.get("retry-after"))
731
+ });
732
+ }
733
+ return response.json();
734
+ }
735
+ });
736
+
737
+ return {
738
+ embed: async (text) => {
739
+ const payload = await requestJson(
740
+ "embedContent",
741
+ `${ragConfig.geminiModel}:embedContent`,
742
+ {
743
+ content: {
744
+ parts: [{ text }]
745
+ }
746
+ }
747
+ );
748
+ const embedding = payload.embedding?.values || payload.embedding || payload.embeddings?.[0]?.values;
749
+ if (!embedding) {
750
+ throw new Error("Gemini embedding response missing embedding values.");
751
+ }
752
+ return embedding;
753
+ },
754
+ embedBatch: async (texts) => {
755
+ const payload = await requestJson(
756
+ "batchEmbedContents",
757
+ `${ragConfig.geminiModel}:batchEmbedContents`,
758
+ {
759
+ requests: texts.map((text) => ({
760
+ model: ragConfig.geminiModel,
761
+ content: {
762
+ parts: [{ text }]
763
+ }
764
+ }))
765
+ }
766
+ );
767
+ const embeddings = payload.embeddings || payload.responses;
768
+ if (!Array.isArray(embeddings)) {
769
+ throw new Error("Gemini batch response missing embeddings.");
770
+ }
771
+ return embeddings.map((item) => item.values || item.embedding?.values || item.embedding);
772
+ },
773
+ getMetrics: () => ({ ...metrics }),
774
+ resetMetrics: () => {
775
+ metrics.requests = 0;
776
+ metrics.retries = 0;
777
+ metrics.retryDelayMs = 0;
778
+ metrics.throttleEvents = 0;
779
+ metrics.throttleDelayMs = 0;
780
+ metrics.rateLimitRetries = 0;
781
+ }
782
+ };
783
+ })());
784
+ return geminiEmbedderPromise;
785
+ }
786
+
787
+ async function createVectorProvider({ name, model, embedder, batchSize }) {
788
+ const signature = buildIndexSignature();
789
+ const cacheMeta = {
790
+ provider: name,
791
+ model,
792
+ signature
793
+ };
794
+ const cacheKey = createHash("sha256").update(JSON.stringify(cacheMeta)).digest("hex");
795
+ const cacheFile = join(ragConfig.cacheDir, makeCacheFileName(name, model, cacheKey));
796
+ const checkpointFile = join(ragConfig.cacheDir, makeCheckpointFileName(name, model, cacheKey));
797
+ const expectedCacheState = {
798
+ cacheKey,
799
+ signature,
800
+ provider: name,
801
+ model
802
+ };
803
+ logRag(
804
+ `provider=${name} cache_file=${cacheFile} rebuild=${ragConfig.rebuild} cache_key=${cacheKey.slice(0, 12)}`
805
+ );
806
+
807
+ let indexPromise = null;
808
+ const loadIndex = async () => {
809
+ if (indexPromise) return indexPromise;
810
+ indexPromise = (async () => {
811
+ if (!ragConfig.rebuild) {
812
+ let cacheState = loadVectorIndexCache(cacheFile, expectedCacheState);
813
+ if (cacheState.hit) {
814
+ const cached = cacheState.payload;
815
+ logRag(
816
+ `cache hit provider=${name} file=${cacheFile} items=${cached.items.length} vectors=${cached.vectors.length}`
817
+ );
818
+ return {
819
+ items: cached.items,
820
+ vectors: cached.vectors
821
+ };
822
+ }
823
+ logRag(`cache miss provider=${name} file=${cacheFile} reason=${cacheState.reason}`);
824
+
825
+ if (name === "local") {
826
+ const downloadResult = await maybeDownloadPrebuiltVectorIndex({
827
+ provider: name,
828
+ model,
829
+ cacheKey,
830
+ signature,
831
+ cacheFile
832
+ });
833
+ if (downloadResult.downloaded) {
834
+ cacheState = loadVectorIndexCache(cacheFile, expectedCacheState);
835
+ if (cacheState.hit) {
836
+ const cached = cacheState.payload;
837
+ logRag(
838
+ `cache hit provider=${name} file=${cacheFile} source=prebuilt_download items=${cached.items.length} vectors=${cached.vectors.length}`
839
+ );
840
+ return {
841
+ items: cached.items,
842
+ vectors: cached.vectors
843
+ };
844
+ }
845
+ logRag(`cache miss provider=${name} file=${cacheFile} source=prebuilt_download reason=${cacheState.reason}`);
846
+ }
847
+ }
848
+ } else {
849
+ logRag(`cache bypass provider=${name} file=${cacheFile} reason=rebuild_true`);
850
+ clearVectorIndexCheckpoint(checkpointFile);
851
+ }
852
+
853
+ const items = buildEmbeddingItems();
854
+ const texts = items.map((item) => item.text);
855
+ const indexedItems = items.map((item) => ({ id: item.id, uri: item.uri }));
856
+ let normalized = [];
857
+ let resumeFrom = 0;
858
+ if (!ragConfig.rebuild) {
859
+ const checkpointState = loadVectorIndexCheckpoint(checkpointFile, cacheKey, indexedItems);
860
+ if (checkpointState.hit) {
861
+ normalized = checkpointState.payload.vectors;
862
+ resumeFrom = normalized.length;
863
+ logRag(
864
+ `checkpoint resume provider=${name} file=${checkpointFile} completed=${resumeFrom}/${texts.length}`
865
+ );
866
+ } else if (checkpointState.reason !== "missing") {
867
+ logRag(`checkpoint ignored provider=${name} file=${checkpointFile} reason=${checkpointState.reason}`);
868
+ }
869
+ }
870
+
871
+ if (name === "gemini" && embedder.resetMetrics) {
872
+ embedder.resetMetrics();
873
+ }
874
+
875
+ const checkpointIntervalMs = 5000;
876
+ let lastCheckpointAt = 0;
877
+ const persistCheckpoint = (force = false) => {
878
+ const now = Date.now();
879
+ if (!force && now - lastCheckpointAt < checkpointIntervalMs) return;
880
+ const payload = {
881
+ cacheKey,
882
+ meta: cacheMeta,
883
+ items: indexedItems,
884
+ vectors: normalized,
885
+ completed: normalized.length,
886
+ total: texts.length,
887
+ updatedAt: new Date().toISOString()
888
+ };
889
+ saveVectorIndexCheckpoint(checkpointFile, payload);
890
+ lastCheckpointAt = now;
891
+ };
892
+
893
+ if (resumeFrom < texts.length) {
894
+ logRag(
895
+ `building index provider=${name} embed_items=${texts.length} remaining=${texts.length - resumeFrom} batch_size=${batchSize}`
896
+ );
897
+ try {
898
+ const embeddingResult = await embedTextsWithProgress(
899
+ texts.slice(resumeFrom),
900
+ embedder,
901
+ batchSize,
902
+ {
903
+ offset: resumeFrom,
904
+ total: texts.length,
905
+ providerName: name,
906
+ onChunk: ({ vectors, completed, total }) => {
907
+ normalized.push(...vectors.map(normalizeVector));
908
+ persistCheckpoint(completed >= total);
909
+ }
910
+ }
911
+ );
912
+
913
+ if (name === "gemini") {
914
+ const metrics = embedder.getMetrics ? embedder.getMetrics() : {};
915
+ logRag(
916
+ `gemini build metrics provider=${name} requests=${metrics.requests || 0} retries=${metrics.retries || 0} ` +
917
+ `retry_delay_ms=${metrics.retryDelayMs || 0} throttle_events=${metrics.throttleEvents || 0} ` +
918
+ `throttle_delay_ms=${metrics.throttleDelayMs || 0} rate_limit_retries=${metrics.rateLimitRetries || 0} ` +
919
+ `batch_downgrades=${embeddingResult.stats.batchDowngrades} single_fallback_batches=${embeddingResult.stats.singleFallbackBatches} ` +
920
+ `final_batch_size=${embeddingResult.stats.finalBatchSize}`
921
+ );
922
+ }
923
+ } catch (error) {
924
+ persistCheckpoint(true);
925
+ if (name === "gemini") {
926
+ const metrics = embedder.getMetrics ? embedder.getMetrics() : {};
927
+ logRag(
928
+ `gemini build failed provider=${name} requests=${metrics.requests || 0} retries=${metrics.retries || 0} ` +
929
+ `retry_delay_ms=${metrics.retryDelayMs || 0} throttle_events=${metrics.throttleEvents || 0} ` +
930
+ `throttle_delay_ms=${metrics.throttleDelayMs || 0} rate_limit_retries=${metrics.rateLimitRetries || 0} ` +
931
+ `checkpoint_completed=${normalized.length}/${texts.length} error=${error.message}`
932
+ );
933
+ }
934
+ throw error;
935
+ }
936
+ } else {
937
+ logRag(`checkpoint already complete provider=${name} completed=${resumeFrom}/${texts.length}`);
938
+ }
939
+
940
+ const payload = {
941
+ cacheKey,
942
+ meta: cacheMeta,
943
+ items: indexedItems,
944
+ vectors: normalized
945
+ };
946
+ saveVectorIndexCache(cacheFile, payload);
947
+ clearVectorIndexCheckpoint(checkpointFile);
948
+ logRag(`cache saved provider=${name} file=${cacheFile} items=${payload.items.length} vectors=${payload.vectors.length}`);
949
+ return {
950
+ items: payload.items,
951
+ vectors: payload.vectors
952
+ };
953
+ })();
954
+ return indexPromise;
955
+ };
956
+
957
+ return {
958
+ name,
959
+ search: async (query, filters, limit) => {
960
+ const prepared = truncateText(normalizeText(query), ragConfig.maxTextChars);
961
+ if (!prepared) return [];
962
+ const index = await loadIndex();
963
+ const queryVector = normalizeVector(await embedder.embed(prepared));
964
+ const bestByUri = new Map();
965
+
966
+ for (let i = 0; i < index.vectors.length; i++) {
967
+ const score = dotProduct(queryVector, index.vectors[i]);
968
+ if (ragConfig.minScore && score < ragConfig.minScore) continue;
969
+ const item = index.items[i];
970
+ const entry = resourceIndexByUri.get(item.uri);
971
+ if (!entry || !entryMatchesScope(entry, filters)) continue;
972
+ const existing = bestByUri.get(item.uri);
973
+ if (!existing || score > existing.score) {
974
+ bestByUri.set(item.uri, { entry, score });
975
+ }
976
+ }
977
+
978
+ const results = Array.from(bestByUri.values())
979
+ .sort((a, b) => b.score - a.score)
980
+ .map((item) => attachScore(item.entry, item.score));
981
+
982
+ if (limit) return results.slice(0, limit);
983
+ return results;
984
+ },
985
+ warm: async () => {
986
+ await loadIndex();
987
+ }
988
+ };
989
+ }
990
+
991
+ function createFuseProvider() {
992
+ return {
993
+ name: "fuse",
994
+ search: async (query, filters, limit) => {
995
+ const results = [];
996
+ for (const result of fuseSearch.search(query)) {
997
+ const entry = result.item;
998
+ if (!entryMatchesScope(entry, filters)) continue;
999
+ const score = Number.isFinite(result.score) ? Math.max(0, 1 - result.score) : undefined;
1000
+ results.push(attachScore(entry, score));
1001
+ }
1002
+ if (limit) return results.slice(0, limit);
1003
+ return results;
1004
+ },
1005
+ warm: async () => {}
1006
+ };
1007
+ }
1008
+
1009
+ function resolveProviderChain() {
1010
+ let primary = ragConfig.provider;
1011
+ if (primary === "auto") {
1012
+ primary = ragConfig.geminiApiKey ? "gemini" : "local";
1013
+ }
1014
+ const chain = [primary];
1015
+ if (ragConfig.fallback && ragConfig.fallback !== "none" && ragConfig.fallback !== primary) {
1016
+ chain.push(ragConfig.fallback);
1017
+ }
1018
+ return Array.from(new Set(chain));
1019
+ }
1020
+
1021
+ function logRagConfigOnce() {
1022
+ if (ragLogState.config) return;
1023
+ ragLogState.config = true;
1024
+ logRag(
1025
+ `config provider=${ragConfig.provider} fallback=${ragConfig.fallback} prewarm=${ragConfig.prewarm} rebuild=${ragConfig.rebuild} ` +
1026
+ `cache_dir=${ragConfig.cacheDir} prebuilt_auto_download=${ragConfig.prebuiltIndexAutoDownload} ` +
1027
+ `prebuilt_timeout_ms=${ragConfig.prebuiltIndexTimeoutMs} gemini_retry_max_attempts=${ragConfig.geminiRetryMaxAttempts} ` +
1028
+ `gemini_retry_base_delay_ms=${ragConfig.geminiRetryBaseDelayMs} gemini_retry_max_delay_ms=${ragConfig.geminiRetryMaxDelayMs} ` +
1029
+ `gemini_request_throttle_ms=${ragConfig.geminiRequestThrottleMs}`
1030
+ );
1031
+ }
1032
+
1033
+ const providerCache = new Map();
1034
+
1035
+ async function loadSearchProvider(name) {
1036
+ if (providerCache.has(name)) return providerCache.get(name);
1037
+ let providerPromise;
1038
+ if (name === "fuse") {
1039
+ providerPromise = Promise.resolve(createFuseProvider());
1040
+ } else if (name === "local") {
1041
+ providerPromise = (async () => {
1042
+ const embedder = await getLocalEmbedder();
1043
+ return createVectorProvider({
1044
+ name: "local",
1045
+ model: ragConfig.localModel,
1046
+ embedder,
1047
+ batchSize: 1
1048
+ });
1049
+ })();
1050
+ } else if (name === "gemini") {
1051
+ providerPromise = (async () => {
1052
+ const embedder = await getGeminiEmbedder();
1053
+ return createVectorProvider({
1054
+ name: "gemini",
1055
+ model: ragConfig.geminiModel,
1056
+ embedder,
1057
+ batchSize: Math.max(1, ragConfig.geminiBatchSize)
1058
+ });
1059
+ })();
1060
+ } else {
1061
+ providerPromise = Promise.reject(new Error(`Unknown search provider: ${name}`));
1062
+ }
1063
+ if (!ragLogState.providerReady.has(name)) {
1064
+ ragLogState.providerReady.add(name);
1065
+ logRag(`provider ready name=${name}`);
1066
+ }
1067
+ providerCache.set(name, providerPromise);
1068
+ return providerPromise;
1069
+ }
1070
+
1071
+ async function searchResources({ query, product, edition, platform, type, limit }) {
1072
+ const filters = normalizeSearchFilters({ product, edition, platform, type });
1073
+ const searchQuery = query ? String(query).trim() : "";
1074
+ const maxResults = limit ? Math.min(limit, 50) : undefined;
1075
+
1076
+ if (!searchQuery) {
1077
+ const results = resourceIndex.filter((entry) => entryMatchesScope(entry, filters));
1078
+ return maxResults ? results.slice(0, maxResults) : results;
1079
+ }
1080
+
1081
+ logRagConfigOnce();
1082
+ const providers = resolveProviderChain();
1083
+ if (!ragLogState.providerChain) {
1084
+ ragLogState.providerChain = true;
1085
+ logRag(`provider chain=${providers.join(" -> ")}`);
1086
+ }
1087
+ let lastError = null;
1088
+ for (const name of providers) {
1089
+ try {
1090
+ const provider = await loadSearchProvider(name);
1091
+ const results = await provider.search(searchQuery, filters, maxResults);
1092
+ if (!ragLogState.providerFirstUse.has(name)) {
1093
+ ragLogState.providerFirstUse.add(name);
1094
+ logRag(`provider selected name=${name}`);
1095
+ }
1096
+ if (name !== providers[0] && !ragLogState.fallbackUse.has(name)) {
1097
+ ragLogState.fallbackUse.add(name);
1098
+ logRag(`fallback engaged selected=${name} primary=${providers[0]}`);
1099
+ }
1100
+ return results;
1101
+ } catch (error) {
1102
+ lastError = error;
1103
+ console.error(`[rag] provider "${name}" failed: ${error.message}`);
1104
+ }
1105
+ }
1106
+
1107
+ if (lastError) {
1108
+ console.error(`[rag] all providers failed: ${lastError.message}`);
1109
+ }
1110
+ return [];
1111
+ }
1112
+
1113
+ async function prewarmRagIndex() {
1114
+ if (!ragConfig.prewarm) return;
1115
+ logRagConfigOnce();
1116
+ const providers = resolveProviderChain();
1117
+ const primary = providers[0];
1118
+ if (!primary || primary === "fuse") return;
1119
+ try {
1120
+ logRag(`prewarm start provider=${primary}`);
1121
+ const provider = await loadSearchProvider(primary);
1122
+ if (provider.warm) {
1123
+ await provider.warm();
1124
+ }
1125
+ logRag(`prewarm done provider=${primary}`);
1126
+ } catch (error) {
1127
+ console.error(`[rag] prewarm failed: ${error.message}`);
1128
+ }
1129
+ }
1130
+
1131
+ async function getSampleSuggestions({ query, product, edition, platform, limit = 5 }) {
1132
+ const normalizedProduct = normalizeProduct(product);
1133
+ const normalizedPlatform = normalizePlatform(platform);
1134
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
1135
+ const searchQuery = query ? String(query).trim() : "";
1136
+ const maxResults = Math.min(limit || 5, 10);
1137
+
1138
+ if (searchQuery) {
1139
+ const results = await searchResources({
1140
+ query: searchQuery,
1141
+ product: normalizedProduct,
1142
+ edition: normalizedEdition,
1143
+ platform: normalizedPlatform,
1144
+ type: "sample",
1145
+ limit: maxResults
1146
+ });
1147
+ if (results.length) return results;
1148
+ }
1149
+
1150
+ const matchesScope = (entry) => {
1151
+ if (normalizedProduct && entry.product !== normalizedProduct) return false;
1152
+ if (!editionMatches(normalizedEdition, entry.edition)) return false;
1153
+ if (!platformMatches(normalizedPlatform, entry)) return false;
1154
+ return entry.type === "sample";
1155
+ };
1156
+
1157
+ let candidates = resourceIndex.filter(matchesScope);
1158
+ if (candidates.length === 0 && normalizedProduct) {
1159
+ candidates = resourceIndex.filter((entry) => entry.type === "sample" && entry.product === normalizedProduct);
1160
+ }
1161
+
1162
+ if (searchQuery && candidates.length > 1) {
1163
+ const terms = normalizeText(searchQuery.toLowerCase()).split(/\s+/).filter(Boolean);
1164
+ const scoreEntry = (entry) => {
1165
+ const tags = Array.isArray(entry.tags) ? entry.tags.map((tag) => String(tag).toLowerCase()) : [];
1166
+ const haystack = [
1167
+ String(entry.title || "").toLowerCase(),
1168
+ String(entry.summary || "").toLowerCase(),
1169
+ tags.join(" ")
1170
+ ].join(" ");
1171
+ let score = 0;
1172
+ for (const term of terms) {
1173
+ if (!term) continue;
1174
+ if (tags.some((tag) => tag === term || tag.includes(term))) score += 3;
1175
+ if (haystack.includes(term)) score += 1;
1176
+ }
1177
+ return score;
1178
+ };
1179
+ candidates = [...candidates].sort((a, b) => {
1180
+ const delta = scoreEntry(b) - scoreEntry(a);
1181
+ if (delta !== 0) return delta;
1182
+ return String(a.title || "").localeCompare(String(b.title || ""));
1183
+ });
1184
+ }
1185
+
1186
+ const seen = new Set();
1187
+ const results = [];
1188
+ for (const entry of candidates) {
1189
+ if (seen.has(entry.uri)) continue;
1190
+ seen.add(entry.uri);
1191
+ results.push(entry);
1192
+ if (results.length >= maxResults) break;
1193
+ }
1194
+
1195
+ return results;
1196
+ }
1197
+
1198
+ export {
1199
+ ragConfig,
1200
+ searchResources,
1201
+ getSampleSuggestions,
1202
+ prewarmRagIndex
1203
+ };