simple-dynamsoft-mcp 5.0.0 → 6.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1057) hide show
  1. package/.env.example +75 -57
  2. package/LICENSE +21 -21
  3. package/README.md +521 -331
  4. package/data/metadata/data-manifest.json +175 -0
  5. package/data/{dynamsoft_sdks.json → metadata/dynamsoft_sdks.json} +87 -5
  6. package/package.json +66 -53
  7. package/scripts/prebuild-rag-index.mjs +67 -0
  8. package/scripts/sync-submodules.mjs +6 -0
  9. package/scripts/update-data-lock.mjs +124 -0
  10. package/scripts/verify-data-lock.mjs +122 -0
  11. package/src/data-bootstrap.js +255 -0
  12. package/src/data-root.js +22 -0
  13. package/src/index.js +1250 -1230
  14. package/src/normalizers.js +279 -274
  15. package/src/rag.js +659 -589
  16. package/src/resource-index/builders.js +450 -0
  17. package/src/resource-index/config.js +169 -0
  18. package/src/resource-index/docs-loader.js +117 -0
  19. package/src/resource-index/paths.js +83 -0
  20. package/src/resource-index/samples.js +481 -0
  21. package/src/resource-index/uri.js +86 -0
  22. package/src/resource-index/version-policy.js +154 -0
  23. package/src/resource-index.js +395 -1220
  24. package/src/submodule-sync.js +139 -0
  25. package/code-snippet/dynamic-web-twain/UI-customization/image-editor.html +0 -1052
  26. package/code-snippet/dynamic-web-twain/UI-customization/loading-bar.html +0 -213
  27. package/code-snippet/dynamic-web-twain/UI-customization/progress-bar.html +0 -93
  28. package/code-snippet/dynamic-web-twain/UI-customization/thumbnail.html +0 -352
  29. package/code-snippet/dynamic-web-twain/UI-customization/without-UI.html +0 -111
  30. package/code-snippet/dynamic-web-twain/classification/document/SaveToFile.aspx +0 -24
  31. package/code-snippet/dynamic-web-twain/classification/document/document.html +0 -1142
  32. package/code-snippet/dynamic-web-twain/classification/tag/SaveToFile.aspx +0 -24
  33. package/code-snippet/dynamic-web-twain/classification/tag/tag.html +0 -930
  34. package/code-snippet/dynamic-web-twain/edit-image.html +0 -456
  35. package/code-snippet/dynamic-web-twain/gen-tree.py +0 -80
  36. package/code-snippet/dynamic-web-twain/input-options/download.html +0 -73
  37. package/code-snippet/dynamic-web-twain/input-options/load-from-local-drive.html +0 -60
  38. package/code-snippet/dynamic-web-twain/input-options/load-images-by-file-type.html +0 -112
  39. package/code-snippet/dynamic-web-twain/localstorage.html +0 -208
  40. package/code-snippet/dynamic-web-twain/output-options/convertToBase64.html +0 -161
  41. package/code-snippet/dynamic-web-twain/output-options/convertToBlob.html +0 -216
  42. package/code-snippet/dynamic-web-twain/output-options/save.html +0 -188
  43. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/DeleteFile.aspx +0 -33
  44. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/Download.aspx +0 -92
  45. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/SaveToFileEx.aspx +0 -37
  46. package/code-snippet/dynamic-web-twain/output-options/simultaneous-scan-upload/simultaneous-scan-upload.html +0 -351
  47. package/code-snippet/dynamic-web-twain/output-options/upload/DeleteFile.aspx +0 -33
  48. package/code-snippet/dynamic-web-twain/output-options/upload/Download.aspx +0 -92
  49. package/code-snippet/dynamic-web-twain/output-options/upload/SaveToFileEx.aspx +0 -37
  50. package/code-snippet/dynamic-web-twain/output-options/upload/upload.html +0 -365
  51. package/code-snippet/dynamic-web-twain/readme.md +0 -54
  52. package/code-snippet/dynamic-web-twain/scan/auto-remove-blank-page.html +0 -71
  53. package/code-snippet/dynamic-web-twain/scan/basic-scan.html +0 -227
  54. package/code-snippet/dynamic-web-twain/scan/capabilities/capabilities.html +0 -296
  55. package/code-snippet/dynamic-web-twain/scan/custom-data.html +0 -81
  56. package/code-snippet/dynamic-web-twain/scan/focus-scanUI-always-on-top.html +0 -59
  57. package/code-snippet/dynamic-web-twain/scan/get-custom-data.html +0 -122
  58. package/code-snippet/dynamic-web-twain/scan/image-layout.html +0 -224
  59. package/code-snippet/dynamic-web-twain/scan/mag-data.html +0 -76
  60. package/code-snippet/dynamic-web-twain/scan/read-barcode.html +0 -87
  61. package/code-snippet/dynamic-web-twain/scan/scan-one-side.html +0 -181
  62. package/code-snippet/dynamic-web-twain/scan/transfer-mode.html +0 -215
  63. package/code-snippet/dynamic-web-twain/scan/xfer-count.html +0 -83
  64. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/build.gradle +0 -36
  65. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/proguard-rules.pro +0 -21
  66. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/AndroidManifest.xml +0 -23
  67. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/java/com/dynamsoft/scanmultiplebarcodes/MainActivity.java +0 -70
  68. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/drawable/dbr_icon.xml +0 -21
  69. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/layout/activity_main.xml +0 -27
  70. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/values/colors.xml +0 -5
  71. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/values/strings.xml +0 -3
  72. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanMultipleBarcodes/src/main/res/values/themes.xml +0 -5
  73. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/build.gradle +0 -36
  74. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/proguard-rules.pro +0 -21
  75. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/AndroidManifest.xml +0 -24
  76. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/java/com/dynamsoft/scansinglebarcode/MainActivity.java +0 -87
  77. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/drawable/dbr_icon.xml +0 -21
  78. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/layout/activity_main.xml +0 -27
  79. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/values/colors.xml +0 -5
  80. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/values/strings.xml +0 -3
  81. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcode/src/main/res/values/themes.xml +0 -5
  82. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/build.gradle +0 -43
  83. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/proguard-rules.pro +0 -21
  84. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/AndroidManifest.xml +0 -22
  85. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/java/com/dynamsoft/scansinglebarcodekt/MainActivity.kt +0 -73
  86. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/drawable/dbr_icon.xml +0 -21
  87. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/layout/activity_main.xml +0 -27
  88. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/values/colors.xml +0 -5
  89. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/values/strings.xml +0 -3
  90. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScanSingleBarcodeKt/src/main/res/values/themes.xml +0 -5
  91. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/build.gradle +0 -37
  92. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/proguard-rules.pro +0 -21
  93. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/AndroidManifest.xml +0 -27
  94. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadAztec.json +0 -91
  95. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadCommon2D.json +0 -185
  96. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDPM.json +0 -138
  97. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDataMatrix.json +0 -178
  98. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDenseBarcodes.json +0 -138
  99. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDotCode.json +0 -130
  100. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDIndustrial.json +0 -155
  101. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDRetail.json +0 -148
  102. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadQR.json +0 -150
  103. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/HomeActivity.java +0 -98
  104. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ResultActivity.java +0 -45
  105. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ui/HomeItemAdapter.java +0 -77
  106. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ui/HomeItemsRecyclerView.java +0 -75
  107. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/java/com/dynamsoft/scenarioorientedsamples/ui/ModeInfo.java +0 -41
  108. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/drawable/dbr_icon.xml +0 -21
  109. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/drawable/shape_home_item1.xml +0 -7
  110. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/drawable/shape_home_item2.xml +0 -7
  111. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/layout/activity_home.xml +0 -96
  112. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/layout/activity_result.xml +0 -17
  113. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/layout/layout_home_item.xml +0 -55
  114. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/attr_HomeItemsRecyclerView.xml +0 -9
  115. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/colors.xml +0 -16
  116. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/dimens.xml +0 -8
  117. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/strings.xml +0 -23
  118. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/res/values/themes.xml +0 -5
  119. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/build.gradle +0 -45
  120. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradle/wrapper/gradle-wrapper.properties +0 -6
  121. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradle.properties +0 -21
  122. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradlew +0 -185
  123. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/gradlew.bat +0 -89
  124. package/code-snippet/dynamsoft-barcode-reader/android/BarcodeScannerAPISamples/settings.gradle +0 -19
  125. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/build.gradle +0 -38
  126. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/proguard-rules.pro +0 -21
  127. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/AndroidManifest.xml +0 -32
  128. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/CaptureActivity.java +0 -256
  129. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/HomeActivity.java +0 -31
  130. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/settings/PreferencesConstants.java +0 -12
  131. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/java/com/dynamsoft/debug/settings/SettingsActivity.java +0 -47
  132. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/drawable/arrow_back_24.xml +0 -5
  133. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/drawable/dbr_icon.xml +0 -21
  134. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/activity_capture.xml +0 -54
  135. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/activity_home.xml +0 -84
  136. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/activity_settings.xml +0 -17
  137. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/layout/layout_appbar.xml +0 -19
  138. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/menu/main_menu.xml +0 -11
  139. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/arrays.xml +0 -20
  140. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/colors.xml +0 -11
  141. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/strings.xml +0 -17
  142. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/values/themes.xml +0 -19
  143. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/Debug/src/main/res/xml/root_preferences.xml +0 -28
  144. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/build.gradle +0 -41
  145. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/proguard-rules.pro +0 -21
  146. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/AndroidManifest.xml +0 -38
  147. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/assets/Templates/ReadFromAnImage.json +0 -118
  148. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/MainActivity.java +0 -211
  149. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/ui/ThumbnailsRecyclerView.java +0 -219
  150. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/ui/resultsview/CustomizedResultsDisplayView.java +0 -142
  151. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/ui/resultsview/ResultsRecyclerView.java +0 -91
  152. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/utils/BitmapUtils.java +0 -74
  153. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/java/com/dynamsoft/dbr/decodefromanimage/utils/UriUtils.java +0 -116
  154. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/boundary.xml +0 -7
  155. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/dashed_border.xml +0 -10
  156. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/dbr_icon.xml +0 -21
  157. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/drawable/image_button_state.xml +0 -19
  158. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/activity_main.xml +0 -155
  159. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/item_result.xml +0 -41
  160. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/item_thumbnail.xml +0 -23
  161. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/layout/results_view.xml +0 -60
  162. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/attr_customized.xml +0 -7
  163. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/colors.xml +0 -11
  164. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/strings.xml +0 -19
  165. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/values/themes.xml +0 -12
  166. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeFromAnImage/src/main/res/xml/dynamsoft_file_paths.xml +0 -6
  167. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/build.gradle +0 -38
  168. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/proguard-rules.pro +0 -21
  169. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/AndroidManifest.xml +0 -29
  170. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/HomeActivity.java +0 -17
  171. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/MainActivity.java +0 -121
  172. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/ui/resultsview/CustomizedResultsDisplayView.java +0 -80
  173. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/java/com/dynamsoft/dbr/decodewithcameraenhancer/ui/resultsview/ResultsRecyclerView.java +0 -91
  174. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/drawable/dbr_icon.xml +0 -21
  175. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/activity_home.xml +0 -84
  176. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/activity_main.xml +0 -22
  177. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/item_result.xml +0 -41
  178. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/layout/results_view.xml +0 -48
  179. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/attr_customized.xml +0 -7
  180. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/colors.xml +0 -8
  181. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/strings.xml +0 -11
  182. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/values/themes.xml +0 -18
  183. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/xml/backup_rules.xml +0 -13
  184. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraEnhancer/src/main/res/xml/data_extraction_rules.xml +0 -19
  185. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/build.gradle +0 -44
  186. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/proguard-rules.pro +0 -21
  187. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/AndroidManifest.xml +0 -31
  188. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/CameraXImageSourceAdapter.java +0 -64
  189. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/HomeActivity.java +0 -16
  190. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/MainActivity.java +0 -146
  191. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/ui/PreviewWithDrawingQuads.java +0 -94
  192. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/ui/resultsview/CustomizedResultsDisplayView.java +0 -80
  193. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/java/com/dynamsoft/dbr/decodewithcamerax/ui/resultsview/ResultsRecyclerView.java +0 -91
  194. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/drawable/dbr_icon.xml +0 -21
  195. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/activity_home.xml +0 -84
  196. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/activity_main.xml +0 -23
  197. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/item_result.xml +0 -41
  198. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/layout/results_view.xml +0 -48
  199. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/attr_customized.xml +0 -7
  200. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/colors.xml +0 -8
  201. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/strings.xml +0 -10
  202. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DecodeWithCameraX/src/main/res/values/themes.xml +0 -18
  203. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/build.gradle +0 -35
  204. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/proguard-rules.pro +0 -21
  205. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/AndroidManifest.xml +0 -30
  206. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/HomeActivity.java +0 -17
  207. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/MainActivity.java +0 -138
  208. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/ParseUtil.java +0 -107
  209. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/java/com/dynamsoft/dcv/driverslicensescanner/ResultActivity.java +0 -46
  210. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/drawable/dbr_icon.xml +0 -21
  211. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/layout/activity_home.xml +0 -84
  212. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/layout/activity_main.xml +0 -32
  213. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/layout/activity_result.xml +0 -15
  214. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/values/colors.xml +0 -8
  215. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/values/strings.xml +0 -7
  216. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/DriversLicenseScanner/src/main/res/values/themes.xml +0 -12
  217. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/build.gradle +0 -47
  218. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/proguard-rules.pro +0 -21
  219. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/AndroidManifest.xml +0 -37
  220. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/home/HomeActivity.java +0 -42
  221. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/CameraSettings.java +0 -45
  222. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/DecodeSettings.java +0 -279
  223. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/MultiFrameCrossFilterSettings.java +0 -59
  224. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/ResultFeedbackSettings.java +0 -31
  225. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/models/SettingsCache.java +0 -49
  226. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/scanner/ScannerActivity.java +0 -225
  227. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/scanner/ScannerViewModel.java +0 -67
  228. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/OnItemClickListener.java +0 -5
  229. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/SettingsActivity.java +0 -37
  230. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/SettingsFragment.java +0 -160
  231. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/SettingsViewModel.java +0 -49
  232. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/barcodeformat/BarcodeFormatsFragment.java +0 -65
  233. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/barcodeformat/BarcodeFormatsViewModel.java +0 -61
  234. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/simplifiedsettings/SimplifiedSettingsFragment.java +0 -60
  235. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/settings/simplifiedsettings/SimplifiedSettingsViewModel.java +0 -24
  236. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/CustomResultDisplayView.java +0 -56
  237. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/ExpandLinearLayout.java +0 -220
  238. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/Extension.java +0 -27
  239. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/RadioGroupWithTitle.java +0 -145
  240. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/ResultsRecyclerView.java +0 -91
  241. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/SingleLineLayout.java +0 -302
  242. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/formatselection/BarcodeFormatConstants.java +0 -80
  243. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/formatselection/FormatSelectionAdapter.java +0 -122
  244. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/formatselection/FormatSelectionView.java +0 -98
  245. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ItemTouchHelperInter.java +0 -7
  246. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ModeSelectionAdapter.java +0 -174
  247. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ModeSelectionView.java +0 -98
  248. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/ModesMapConstant.java +0 -55
  249. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/java/com/dynamsoft/dbr/generalsettings/ui/modeselection/MyTouchHelperCallBack.java +0 -45
  250. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/enter_pop_slide.xml +0 -12
  251. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/enter_slide.xml +0 -12
  252. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/exit_pop_slide.xml +0 -12
  253. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/anim/exit_slide.xml +0 -12
  254. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/arrow_back_24.xml +0 -5
  255. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/dbr_icon.xml +0 -21
  256. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/icon_right_transparent.xml +0 -4
  257. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_checkbox.xml +0 -6
  258. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_checkbox2.xml +0 -5
  259. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_checktext_textcolor.xml +0 -5
  260. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_radiobutton_selected.xml +0 -13
  261. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_radiobutton_textcolor.xml +0 -5
  262. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/selector_switch_track.xml +0 -20
  263. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/shape_circle_conner_dialog.xml +0 -8
  264. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/drawable/shape_radio_group.xml +0 -8
  265. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/activity_home.xml +0 -84
  266. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/activity_main.xml +0 -41
  267. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/activity_settings.xml +0 -20
  268. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/dialog_import_template.xml +0 -44
  269. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/format_selection.xml +0 -8
  270. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/fragment_barcode_format.xml +0 -101
  271. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/fragment_settings.xml +0 -305
  272. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/fragment_simplified_settings.xml +0 -149
  273. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/item_result.xml +0 -42
  274. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_appbar.xml +0 -19
  275. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_expand_arrow_and_switch.xml +0 -58
  276. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_expand_arrow_only.xml +0 -45
  277. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_expand_switch_only.xml +0 -44
  278. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_radio_group_with_title.xml +0 -46
  279. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/layout_single_line.xml +0 -33
  280. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/modes_selection_spinner_item.xml +0 -17
  281. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/modes_selection_spinner_text.xml +0 -13
  282. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/layout/results_view.xml +0 -48
  283. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/menu/menu_main.xml +0 -11
  284. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/array.xml +0 -14
  285. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/attrs_customized.xml +0 -65
  286. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/colors.xml +0 -23
  287. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/dimens.xml +0 -20
  288. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/spinner_items.xml +0 -10
  289. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/strings.xml +0 -112
  290. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/values/themes.xml +0 -29
  291. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/xml/backup_rules.xml +0 -13
  292. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/GeneralSettings/src/main/res/xml/data_extraction_rules.xml +0 -19
  293. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/build.gradle +0 -39
  294. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/proguard-rules.pro +0 -21
  295. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/AndroidManifest.xml +0 -28
  296. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/assets/Templates/ReadMultipleBarcodes.json +0 -116
  297. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/java/com/dynamsoft/dbr/locateanitemwithbarcode/LocateGrabCodeActivity.java +0 -87
  298. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/java/com/dynamsoft/dbr/locateanitemwithbarcode/LocateScanActivity.java +0 -162
  299. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/java/com/dynamsoft/dbr/locateanitemwithbarcode/LocateStartActivity.java +0 -58
  300. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/drawable/arrow_back_24.xml +0 -5
  301. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/drawable/dbr_icon.xml +0 -21
  302. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/drawable/ic_launcher_background.xml +0 -170
  303. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/layout/activity_grab_code.xml +0 -23
  304. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/layout/activity_locate_start.xml +0 -94
  305. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/layout/activity_scanner.xml +0 -34
  306. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/values/colors.xml +0 -35
  307. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/values/strings.xml +0 -10
  308. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/LocateAnItemWithBarcode/src/main/res/values/themes.xml +0 -8
  309. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/build.gradle +0 -34
  310. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/proguard-rules.pro +0 -21
  311. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/AndroidManifest.xml +0 -27
  312. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/assets/Templates/ReadGS1AIBarcode.json +0 -135
  313. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/java/com/dynamsoft/readgs1ai/HomeActivity.java +0 -17
  314. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/java/com/dynamsoft/readgs1ai/MainActivity.java +0 -182
  315. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/drawable/dbr_icon.xml +0 -21
  316. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/layout/activity_home.xml +0 -84
  317. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/layout/activity_main.xml +0 -19
  318. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/values/colors.xml +0 -8
  319. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/values/strings.xml +0 -7
  320. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/ReadGS1AI/src/main/res/values/themes.xml +0 -11
  321. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/build.gradle +0 -39
  322. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/proguard-rules.pro +0 -21
  323. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/AndroidManifest.xml +0 -32
  324. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/HomeActivity.java +0 -17
  325. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/MainActivity.java +0 -272
  326. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/UIHandler.java +0 -14
  327. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/java/com/dynamsoft/dbr/tinybarcodedecoding/ZoomSeekbarView.java +0 -191
  328. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/drawable/dbr_icon.xml +0 -21
  329. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/drawable/ic_baseline_shape.xml +0 -5
  330. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/drawable/shape_circle_bg.xml +0 -16
  331. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/layout/activity_home.xml +0 -84
  332. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/layout/activity_main.xml +0 -77
  333. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/values/colors.xml +0 -8
  334. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/values/strings.xml +0 -10
  335. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/values/themes.xml +0 -12
  336. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/xml/backup_rules.xml +0 -13
  337. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/TinyBarcodeDecoding/src/main/res/xml/data_extraction_rules.xml +0 -19
  338. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/build.gradle +0 -42
  339. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradle/wrapper/gradle-wrapper.properties +0 -6
  340. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradle.properties +0 -21
  341. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradlew +0 -185
  342. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/gradlew.bat +0 -89
  343. package/code-snippet/dynamsoft-barcode-reader/android/FoundationalAPISamples/settings.gradle +0 -18
  344. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/AppDelegate.swift +0 -35
  345. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  346. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -36
  347. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Assets.xcassets/Contents.json +0 -6
  348. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Base.lproj/LaunchScreen.storyboard +0 -25
  349. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Base.lproj/Main.storyboard +0 -52
  350. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/DynamsoftResources.bundle/Templates/ReadMultipleBarcodes.json +0 -139
  351. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/Info.plist +0 -25
  352. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/SceneDelegate.swift +0 -51
  353. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes/ViewController.swift +0 -161
  354. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanMultipleBarcodes/ScanMultipleBarcodes.xcodeproj/project.pbxproj +0 -422
  355. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/AppDelegate.swift +0 -35
  356. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  357. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -36
  358. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Assets.xcassets/Contents.json +0 -6
  359. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Base.lproj/LaunchScreen.storyboard +0 -25
  360. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Base.lproj/Main.storyboard +0 -52
  361. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/DynamsoftResources.bundle/Templates/ReadSingleBarcode.json +0 -105
  362. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/Info.plist +0 -25
  363. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/SceneDelegate.swift +0 -51
  364. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode/ViewController.swift +0 -115
  365. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcode/ScanSingleBarcode.xcodeproj/project.pbxproj +0 -422
  366. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/AppDelegate.h +0 -13
  367. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/AppDelegate.m +0 -39
  368. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  369. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -36
  370. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Assets.xcassets/Contents.json +0 -6
  371. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Base.lproj/LaunchScreen.storyboard +0 -25
  372. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Base.lproj/Main.storyboard +0 -52
  373. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/DynamsoftResources.bundle/Templates/ReadSingleBarcode.json +0 -105
  374. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/Info.plist +0 -25
  375. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/SceneDelegate.h +0 -14
  376. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/SceneDelegate.m +0 -56
  377. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/ViewController.h +0 -13
  378. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/ViewController.m +0 -127
  379. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc/main.m +0 -17
  380. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeObjc/ScanSingleBarcodeObjc.xcodeproj/project.pbxproj +0 -426
  381. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  382. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  383. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Assets.xcassets/Contents.json +0 -6
  384. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/BarcodeScannerView.swift +0 -66
  385. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/ContentView.swift +0 -47
  386. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/Preview Content/Preview Assets.xcassets/Contents.json +0 -6
  387. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUIApp.swift +0 -16
  388. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScanSingleBarcodeSwiftUI/ScanSingleBarcodeSwiftUI.xcodeproj/project.pbxproj +0 -377
  389. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/AppDelegate.swift +0 -35
  390. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  391. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  392. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/Contents.json +0 -6
  393. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/dynamsoft-logo.imageset/Contents.json +0 -23
  394. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/1d_industrial.imageset/Contents.json +0 -23
  395. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/1d_retail.imageset/Contents.json +0 -23
  396. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/Contents.json +0 -6
  397. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/any_codes.imageset/Contents.json +0 -23
  398. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/aztec_code.imageset/Contents.json +0 -23
  399. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/common_2d.imageset/Contents.json +0 -23
  400. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/data_matrix.imageset/Contents.json +0 -23
  401. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/dot_code.imageset/Contents.json +0 -23
  402. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/dpm_code.imageset/Contents.json +0 -23
  403. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/high_density.imageset/Contents.json +0 -23
  404. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Assets.xcassets/icons/qr_code.imageset/Contents.json +0 -23
  405. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Base.lproj/LaunchScreen.storyboard +0 -25
  406. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Base.lproj/Main.storyboard +0 -24
  407. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadAztec.json +0 -91
  408. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadCommon1DAnd2D.json +0 -272
  409. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadCommon2D.json +0 -185
  410. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDPM.json +0 -138
  411. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDataMatrix.json +0 -178
  412. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDenseBarcodes.json +0 -138
  413. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadDotCode.json +0 -130
  414. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadOneDIndustrial.json +0 -155
  415. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadOneDRetail.json +0 -148
  416. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/DynamsoftResources.bundle/Templates/ReadQR.json +0 -150
  417. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/Info.plist +0 -25
  418. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/ResultViewController.swift +0 -43
  419. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/SceneDelegate.swift +0 -57
  420. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples/ViewController.swift +0 -271
  421. package/code-snippet/dynamsoft-barcode-reader/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/ScenarioOrientedSamples.xcodeproj/project.pbxproj +0 -426
  422. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/AppDelegate.swift +0 -35
  423. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  424. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  425. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/Contents.json +0 -6
  426. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  427. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Base.lproj/LaunchScreen.storyboard +0 -25
  428. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Base.lproj/Main.storyboard +0 -24
  429. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/CameraViewController.swift +0 -256
  430. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/Info.plist +0 -25
  431. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/SceneDelegate.swift +0 -57
  432. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/SettingsViewController.swift +0 -234
  433. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug/ViewController.swift +0 -111
  434. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/Debug/Debug.xcodeproj/project.pbxproj +0 -387
  435. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/AppDelegate.swift +0 -35
  436. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  437. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -35
  438. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/Contents.json +0 -6
  439. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/bigGallery.imageset/Contents.json +0 -23
  440. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/bigTakePhoto.imageset/Contents.json +0 -23
  441. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/gallery.imageset/Contents.json +0 -23
  442. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Buttons/takePhoto.imageset/Contents.json +0 -23
  443. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/Contents.json +0 -6
  444. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  445. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Base.lproj/LaunchScreen.storyboard +0 -25
  446. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Base.lproj/Main.storyboard +0 -52
  447. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Info.plist +0 -25
  448. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/Resource/ReadFromAnImage.json +0 -118
  449. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/SceneDelegate.swift +0 -51
  450. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage/ViewController.swift +0 -457
  451. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeFromAnImage/DecodeFromAnImage.xcodeproj/project.pbxproj +0 -389
  452. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/AppDelegate.swift +0 -33
  453. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  454. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  455. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/Contents.json +0 -6
  456. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  457. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Base.lproj/LaunchScreen.storyboard +0 -25
  458. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Base.lproj/Main.storyboard +0 -24
  459. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/CaptureEnhancer.swift +0 -102
  460. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/CaptureViewController.swift +0 -191
  461. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/Info.plist +0 -25
  462. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/SceneDelegate.swift +0 -57
  463. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession/ViewController.swift +0 -111
  464. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithAVCaptureSession/DecodeWithAVCaptureSession.xcodeproj/project.pbxproj +0 -423
  465. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/AppDelegate.swift +0 -33
  466. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  467. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  468. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/Contents.json +0 -6
  469. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  470. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Base.lproj/LaunchScreen.storyboard +0 -25
  471. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Base.lproj/Main.storyboard +0 -32
  472. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/CameraViewController.swift +0 -170
  473. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/Info.plist +0 -25
  474. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/SceneDelegate.swift +0 -57
  475. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer/ViewController.swift +0 -111
  476. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DecodeWithCameraEnhancer/DecodeWithCameraEnhancer.xcodeproj/project.pbxproj +0 -419
  477. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/AppDelegate.swift +0 -29
  478. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  479. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  480. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/Contents.json +0 -6
  481. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  482. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Base.lproj/LaunchScreen.storyboard +0 -25
  483. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Base.lproj/Main.storyboard +0 -52
  484. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/CameraViewController.swift +0 -231
  485. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Category/UIDevice+Addition.swift +0 -59
  486. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Category/UIView+Frame.swift +0 -80
  487. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/DriverLicenseResultViewController.swift +0 -168
  488. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Info.plist +0 -8
  489. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/Utils/Dynamsoft.swift +0 -27
  490. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner/ViewController.swift +0 -111
  491. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/DriversLicenseScanner/DriversLicenseScanner.xcodeproj/project.pbxproj +0 -447
  492. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/AppDelegate.swift +0 -35
  493. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  494. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  495. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/Contents.json +0 -6
  496. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/arrow-circle/Contents.json +0 -6
  497. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/arrow-circle/arrow-circle-down.imageset/Contents.json +0 -23
  498. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/arrow-circle/arrow-circle-up.imageset/Contents.json +0 -23
  499. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  500. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/BarcodeFormatViewController.swift +0 -249
  501. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Base.lproj/LaunchScreen.storyboard +0 -25
  502. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Base.lproj/Main.storyboard +0 -24
  503. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/CameraViewController.swift +0 -305
  504. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/CustomTableViewCell.swift +0 -234
  505. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/Mode+Extension.swift +0 -129
  506. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/PickerPopupView.swift +0 -145
  507. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/SettingRow.swift +0 -332
  508. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/DataModel/UIColor+Extension.swift +0 -19
  509. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/Info.plist +0 -25
  510. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/SceneDelegate.swift +0 -57
  511. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/SettingsViewController.swift +0 -589
  512. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/SimplifiedSettingsViewController.swift +0 -532
  513. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings/ViewController.swift +0 -111
  514. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/GeneralSettings/GeneralSettings.xcodeproj/project.pbxproj +0 -387
  515. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/AppDelegate.swift +0 -45
  516. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  517. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  518. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/Contents.json +0 -6
  519. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  520. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Assets.xcassets/scan.imageset/Contents.json +0 -23
  521. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Base.lproj/LaunchScreen.storyboard +0 -25
  522. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Base.lproj/Main.storyboard +0 -145
  523. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/CameraViewController.swift +0 -187
  524. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/Info.plist +0 -25
  525. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/ReadMultipleBarcodes.json +0 -116
  526. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/SceneDelegate.swift +0 -51
  527. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode/ViewController.swift +0 -55
  528. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/LocateAnItemWithBarcode/LocateAnItemWithBarcode.xcodeproj/project.pbxproj +0 -429
  529. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/AppDelegate.swift +0 -35
  530. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  531. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  532. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/Contents.json +0 -6
  533. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  534. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Base.lproj/LaunchScreen.storyboard +0 -25
  535. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Base.lproj/Main.storyboard +0 -24
  536. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/CameraViewController.swift +0 -114
  537. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/DynamsoftResources.bundle/Root.plist +0 -61
  538. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/DynamsoftResources.bundle/Templates/ReadGS1AI.json +0 -135
  539. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/DynamsoftResources.bundle/en.lproj/Root.strings +0 -0
  540. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/Info.plist +0 -25
  541. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/SceneDelegate.swift +0 -57
  542. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI/ViewController.swift +0 -111
  543. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/ReadGS1AI/ReadGS1AI.xcodeproj/project.pbxproj +0 -389
  544. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/AppDelegate.swift +0 -20
  545. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  546. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  547. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/Contents.json +0 -6
  548. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/dynamsoft.imageset/Contents.json +0 -23
  549. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Assets.xcassets/icon_arrow_camera_zoom_close.imageset/Contents.json +0 -22
  550. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Base.lproj/LaunchScreen.storyboard +0 -25
  551. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Base.lproj/Main.storyboard +0 -52
  552. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/CameraViewController.swift +0 -231
  553. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Category/UIDevice+Addition.swift +0 -58
  554. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Category/UIView+Frame.swift +0 -60
  555. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Info.plist +0 -8
  556. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/TinyBarcodeDecoding-Bridging-Header.h +0 -4
  557. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Utils/Dynamsoft.swift +0 -53
  558. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/ViewController.swift +0 -111
  559. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Views/CameraSettingView.swift +0 -71
  560. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Views/CameraZoomFloatingButton.swift +0 -56
  561. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding/Views/CameraZoomSlider.swift +0 -104
  562. package/code-snippet/dynamsoft-barcode-reader/ios/FoundationalAPISamples/TinyBarcodeDecoding/TinyBarcodeDecoding.xcodeproj/project.pbxproj +0 -473
  563. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadAztec.json +0 -99
  564. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBarcodes_Default.json +0 -113
  565. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBarcodes_ReadRateFirst.json +0 -144
  566. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBarcodes_SpeedFirst.json +0 -151
  567. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadBlurry1DBarcode.json +0 -149
  568. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadDPM.json +0 -83
  569. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadDenseQRCode.json +0 -105
  570. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadDotcode.json +0 -125
  571. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadInvertedBarcode.json +0 -57
  572. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadMultipleBarcode.json +0 -103
  573. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadOneDIndustrial.json +0 -133
  574. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadOneDRetail.json +0 -137
  575. package/code-snippet/dynamsoft-barcode-reader/python/CustomTemplates/ReadSingleBarcode.json +0 -174
  576. package/code-snippet/dynamsoft-barcode-reader/python/README.md +0 -82
  577. package/code-snippet/dynamsoft-barcode-reader/python/Samples/ReadDPM.json +0 -83
  578. package/code-snippet/dynamsoft-barcode-reader/python/Samples/camera.py +0 -96
  579. package/code-snippet/dynamsoft-barcode-reader/python/Samples/file.py +0 -82
  580. package/code-snippet/dynamsoft-barcode-reader/python/Samples/general_settings.py +0 -80
  581. package/code-snippet/dynamsoft-barcode-reader/python/Samples/multi_format_image_processing.py +0 -79
  582. package/code-snippet/dynamsoft-barcode-reader/python/Samples/parameter_tuner.py +0 -166
  583. package/code-snippet/dynamsoft-barcode-reader/python/Samples/read_an_image.py +0 -45
  584. package/code-snippet/dynamsoft-barcode-reader/python/Samples/read_dpm_barcode.py +0 -53
  585. package/code-snippet/dynamsoft-barcode-reader/python/Samples/read_multiple_images.py +0 -55
  586. package/code-snippet/dynamsoft-barcode-reader/python/Samples/server_side_barcode_decoder.py +0 -108
  587. package/code-snippet/dynamsoft-barcode-reader/python/Samples/show_localized_vs_decoded_barcodes.py +0 -145
  588. package/code-snippet/dynamsoft-barcode-reader/python/Samples/utils.py +0 -60
  589. package/code-snippet/dynamsoft-barcode-reader/python/Samples/video_decoding.py +0 -147
  590. package/code-snippet/dynamsoft-barcode-reader/web/README.md +0 -81
  591. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/README.md +0 -42
  592. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/README.md +0 -23
  593. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/.editorconfig +0 -16
  594. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/README.md +0 -422
  595. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/angular.json +0 -99
  596. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/package.json +0 -39
  597. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/app.component.css +0 -42
  598. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/app.component.html +0 -14
  599. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/app.component.ts +0 -22
  600. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/dynamsoft.config.ts +0 -22
  601. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/image-capture/image-capture.component.css +0 -20
  602. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/image-capture/image-capture.component.html +0 -11
  603. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/image-capture/image-capture.component.ts +0 -66
  604. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/video-capture/video-capture.component.css +0 -6
  605. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/video-capture/video-capture.component.html +0 -8
  606. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/app/video-capture/video-capture.component.ts +0 -109
  607. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/assets/.gitkeep +0 -0
  608. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/index.html +0 -19
  609. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/main.ts +0 -5
  610. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/src/styles.css +0 -11
  611. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/tsconfig.app.json +0 -14
  612. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/tsconfig.json +0 -32
  613. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-foundational-api/tsconfig.spec.json +0 -14
  614. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/.editorconfig +0 -17
  615. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/README.md +0 -33
  616. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/angular.json +0 -100
  617. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/package.json +0 -37
  618. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.component.css +0 -24
  619. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.component.html +0 -7
  620. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.component.ts +0 -53
  621. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.config.ts +0 -8
  622. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/app/app.routes.ts +0 -3
  623. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/index.html +0 -12
  624. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/main.ts +0 -6
  625. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/src/styles.css +0 -16
  626. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/tsconfig.app.json +0 -15
  627. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/tsconfig.json +0 -27
  628. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/angular/scan-using-rtu-api/tsconfig.spec.json +0 -15
  629. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/README.md +0 -23
  630. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/README.md +0 -372
  631. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/App.razor +0 -12
  632. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/BlazorApp.csproj +0 -18
  633. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/MainLayout.razor +0 -16
  634. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/MainLayout.razor.css +0 -77
  635. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/NavMenu.razor +0 -39
  636. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Layout/NavMenu.razor.css +0 -91
  637. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Pages/DecodeImage.razor +0 -26
  638. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Pages/DecodeVideo.razor +0 -48
  639. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Pages/Home.razor +0 -13
  640. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Program.cs +0 -11
  641. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/Properties/launchSettings.json +0 -41
  642. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/_Imports.razor +0 -10
  643. 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
  644. 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
  645. 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
  646. 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
  647. 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
  648. 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
  649. 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
  650. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/obj/project.assets.json +0 -2137
  651. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/wwwroot/decodeImage.js +0 -34
  652. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/wwwroot/decodeVideo.js +0 -70
  653. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-foundational-api/hello-world-blazor/BlazorApp/wwwroot/index.html +0 -72
  654. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/App.razor +0 -12
  655. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/BlazorApp.csproj +0 -18
  656. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Layout/MainLayout.razor +0 -4
  657. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Pages/Home.razor +0 -25
  658. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Program.cs +0 -11
  659. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/Properties/launchSettings.json +0 -41
  660. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/README.md +0 -17
  661. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/_Imports.razor +0 -10
  662. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/BlazorApp.csproj.nuget.dgspec.json +0 -108
  663. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/BlazorApp.csproj.nuget.g.props +0 -26
  664. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/BlazorApp.csproj.nuget.g.targets +0 -12
  665. 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
  666. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/BlazorApp.AssemblyInfo.cs +0 -22
  667. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/BlazorApp.GeneratedMSBuildEditorConfig.editorconfig +0 -41
  668. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/Debug/net8.0/BlazorApp.GlobalUsings.g.cs +0 -11
  669. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/obj/project.assets.json +0 -2137
  670. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/blazor/scan-using-rtu-api/wwwroot/index.html +0 -63
  671. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/README.md +0 -22
  672. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/README.md +0 -43
  673. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/build.gradle +0 -54
  674. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/capacitor.build.gradle +0 -19
  675. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/proguard-rules.pro +0 -21
  676. 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
  677. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/AndroidManifest.xml +0 -42
  678. 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
  679. 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
  680. 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
  681. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/layout/activity_main.xml +0 -12
  682. 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
  683. 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
  684. 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
  685. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/values/strings.xml +0 -7
  686. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/values/styles.xml +0 -22
  687. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/app/src/main/res/xml/file_paths.xml +0 -5
  688. 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
  689. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/build.gradle +0 -29
  690. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/capacitor.settings.gradle +0 -3
  691. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradle/wrapper/gradle-wrapper.properties +0 -7
  692. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradle.properties +0 -22
  693. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradlew +0 -252
  694. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/gradlew.bat +0 -94
  695. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/settings.gradle +0 -5
  696. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/android/variables.gradle +0 -16
  697. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/capacitor.config.json +0 -6
  698. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/index.ts +0 -35
  699. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/AppDelegate.swift +0 -49
  700. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -14
  701. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Assets.xcassets/Contents.json +0 -6
  702. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Assets.xcassets/Splash.imageset/Contents.json +0 -23
  703. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Base.lproj/LaunchScreen.storyboard +0 -32
  704. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Base.lproj/Main.storyboard +0 -19
  705. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App/Info.plist +0 -51
  706. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App.xcodeproj/project.pbxproj +0 -408
  707. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/App.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  708. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/ios/App/Podfile +0 -24
  709. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/package.json +0 -24
  710. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/public/index.html +0 -21
  711. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/rollup.config.mjs +0 -28
  712. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/capacitor/scan-using-rtu-api/tsconfig.json +0 -21
  713. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/README.md +0 -23
  714. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/README.md +0 -241
  715. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/action.js +0 -70
  716. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/index.html +0 -22
  717. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/main.js +0 -29
  718. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/package.json +0 -26
  719. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-foundational-api/style.css +0 -6
  720. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/README.md +0 -31
  721. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/action.js +0 -22
  722. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/index.html +0 -61
  723. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/main.js +0 -29
  724. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/package.json +0 -26
  725. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/electron/scan-using-rtu-api/style.css +0 -6
  726. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/es6/README.md +0 -18
  727. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/es6/scan-using-foundational-api/es6.html +0 -94
  728. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/es6/scan-using-rtu-api/es6.html +0 -88
  729. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/README.md +0 -23
  730. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/index.html +0 -21
  731. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/index.ts +0 -68
  732. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/package.json +0 -23
  733. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/rollup.config.mjs +0 -27
  734. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-foundational-api/tsconfig.json +0 -21
  735. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/README.md +0 -26
  736. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/index.ts +0 -35
  737. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/package.json +0 -20
  738. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/public/index.html +0 -17
  739. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/rollup.config.mjs +0 -28
  740. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/native-ts/scan-using-rtu-api/tsconfig.json +0 -21
  741. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/README.md +0 -23
  742. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/.eslintrc.json +0 -3
  743. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/README.md +0 -434
  744. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/globals.css +0 -10
  745. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/layout.tsx +0 -23
  746. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/page.css +0 -33
  747. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/app/page.tsx +0 -51
  748. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/ImageCapture/ImageCapture.css +0 -21
  749. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/ImageCapture/ImageCapture.tsx +0 -76
  750. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/VideoCapture/VideoCapture.css +0 -6
  751. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/components/VideoCapture/VideoCapture.tsx +0 -122
  752. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/dynamsoft.config.ts +0 -22
  753. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/next.config.mjs +0 -4
  754. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/package.json +0 -25
  755. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/next/scan-using-foundational-api/tsconfig.json +0 -26
  756. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/README.md +0 -22
  757. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/README.md +0 -383
  758. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/app.vue +0 -74
  759. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/assets/main.css +0 -7
  760. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/components/ImageCapture.client.vue +0 -88
  761. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/components/VideoCapture.client.vue +0 -107
  762. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/dynamsoft.config.ts +0 -20
  763. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/nuxt.config.ts +0 -4
  764. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/package.json +0 -18
  765. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/nuxt/scan-using-foundational-api/tsconfig.json +0 -4
  766. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/README.md +0 -23
  767. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/README.md +0 -307
  768. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/helloworld-pwa.html +0 -103
  769. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/helloworld-pwa.json +0 -22
  770. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-foundational-api/service-worker.js +0 -92
  771. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/README.md +0 -17
  772. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/helloworld-pwa.html +0 -99
  773. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/helloworld-pwa.json +0 -22
  774. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/pwa/scan-using-rtu-api/service-worker.js +0 -92
  775. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/README.md +0 -23
  776. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/README.md +0 -396
  777. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/package.json +0 -45
  778. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/public/index.html +0 -45
  779. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/public/manifest.json +0 -25
  780. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/App.css +0 -50
  781. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/App.tsx +0 -48
  782. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/ImageCapture/ImageCapture.css +0 -21
  783. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/ImageCapture/ImageCapture.tsx +0 -76
  784. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/VideoCapture/VideoCapture.css +0 -6
  785. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/components/VideoCapture/VideoCapture.tsx +0 -114
  786. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/dynamsoft.config.ts +0 -20
  787. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/index.css +0 -11
  788. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/index.tsx +0 -11
  789. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/src/react-app-env.d.ts +0 -1
  790. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-foundational-api/tsconfig.json +0 -26
  791. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/README.md +0 -33
  792. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/index.html +0 -12
  793. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/package.json +0 -29
  794. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/src/App.tsx +0 -59
  795. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/src/main.tsx +0 -9
  796. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/tsconfig.app.json +0 -27
  797. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/tsconfig.json +0 -7
  798. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/tsconfig.node.json +0 -25
  799. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/react/scan-using-rtu-api/vite.config.ts +0 -7
  800. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/requirejs/README.md +0 -18
  801. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/requirejs/scan-using-foundational-api/requirejs.html +0 -98
  802. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/requirejs/scan-using-rtu-api/requirejs.html +0 -94
  803. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/README.md +0 -23
  804. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/README.md +0 -351
  805. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/index.html +0 -18
  806. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/package.json +0 -24
  807. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/App.svelte +0 -88
  808. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/components/ImageCapture.svelte +0 -95
  809. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/components/VideoCapture.svelte +0 -119
  810. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/dynamsoft.config.ts +0 -21
  811. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/main.ts +0 -7
  812. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/src/vite-env.d.ts +0 -2
  813. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/svelte.config.js +0 -7
  814. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/tsconfig.json +0 -20
  815. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/tsconfig.node.json +0 -10
  816. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-foundational-api/vite.config.ts +0 -8
  817. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/README.md +0 -33
  818. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/index.html +0 -12
  819. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/package.json +0 -24
  820. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/src/App.svelte +0 -55
  821. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/src/main.ts +0 -7
  822. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/src/vite-env.d.ts +0 -2
  823. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/svelte.config.js +0 -7
  824. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/tsconfig.json +0 -20
  825. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/tsconfig.node.json +0 -10
  826. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/svelte/scan-using-rtu-api/vite.config.ts +0 -8
  827. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/README.md +0 -30
  828. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/README.md +0 -379
  829. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/env.d.ts +0 -1
  830. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/index.html +0 -19
  831. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/package.json +0 -26
  832. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/App.vue +0 -72
  833. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/assets/main.css +0 -6
  834. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/components/ImageCapture.vue +0 -87
  835. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/components/VideoCapture.vue +0 -106
  836. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/dynamsoft.config.ts +0 -20
  837. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/src/main.ts +0 -6
  838. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/tsconfig.config.json +0 -9
  839. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/tsconfig.json +0 -17
  840. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-foundational-api/vite.config.ts +0 -15
  841. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/README.md +0 -33
  842. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/index.html +0 -12
  843. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/package.json +0 -22
  844. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/src/App.vue +0 -52
  845. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/src/main.ts +0 -4
  846. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/src/vite-env.d.ts +0 -1
  847. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/tsconfig.app.json +0 -15
  848. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/tsconfig.json +0 -7
  849. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/tsconfig.node.json +0 -25
  850. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/vue/scan-using-rtu-api/vite.config.ts +0 -7
  851. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/README.md +0 -23
  852. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/README.md +0 -13
  853. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/build.gradle +0 -45
  854. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/proguard-rules.pro +0 -21
  855. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/AndroidManifest.xml +0 -28
  856. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/assets/decodeBarcodeInVideo.html +0 -83
  857. 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
  858. 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
  859. 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
  860. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/layout/activity_main.xml +0 -15
  861. 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
  862. 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
  863. 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
  864. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values/colors.xml +0 -10
  865. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values/strings.xml +0 -3
  866. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values/themes.xml +0 -16
  867. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/values-night/themes.xml +0 -16
  868. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/app/src/main/res/xml/backup_rules.xml +0 -13
  869. 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
  870. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/build.gradle +0 -6
  871. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  872. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradle.properties +0 -23
  873. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradlew +0 -185
  874. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/gradlew.bat +0 -89
  875. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/android/settings.gradle +0 -16
  876. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/README.md +0 -13
  877. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/AppDelegate.swift +0 -36
  878. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  879. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -13
  880. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Assets.xcassets/Contents.json +0 -6
  881. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Base.lproj/LaunchScreen.storyboard +0 -25
  882. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Base.lproj/Main.storyboard +0 -33
  883. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/Info.plist +0 -27
  884. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/SceneDelegate.swift +0 -52
  885. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/ViewController.swift +0 -116
  886. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview/html/decodeFileInVideo.html +0 -83
  887. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview.xcodeproj/project.pbxproj +0 -373
  888. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  889. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-foundational-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  890. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/README.md +0 -24
  891. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/build.gradle +0 -45
  892. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/proguard-rules.pro +0 -21
  893. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/AndroidManifest.xml +0 -28
  894. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/assets/decodeBarcodeInVideo.html +0 -85
  895. 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
  896. 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
  897. 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
  898. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/layout/activity_main.xml +0 -15
  899. 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
  900. 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
  901. 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
  902. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values/colors.xml +0 -10
  903. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values/strings.xml +0 -3
  904. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values/themes.xml +0 -16
  905. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/values-night/themes.xml +0 -16
  906. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/app/src/main/res/xml/backup_rules.xml +0 -13
  907. 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
  908. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/build.gradle +0 -6
  909. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradle/wrapper/gradle-wrapper.properties +0 -6
  910. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradle.properties +0 -23
  911. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradlew +0 -185
  912. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/gradlew.bat +0 -89
  913. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/android/settings.gradle +0 -16
  914. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/README.md +0 -25
  915. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/AppDelegate.swift +0 -36
  916. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
  917. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -13
  918. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Assets.xcassets/Contents.json +0 -6
  919. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Base.lproj/LaunchScreen.storyboard +0 -25
  920. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Base.lproj/Main.storyboard +0 -33
  921. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/Info.plist +0 -27
  922. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/SceneDelegate.swift +0 -52
  923. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/ViewController.swift +0 -116
  924. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview/html/decodeFileInVideo.html +0 -85
  925. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview.xcodeproj/project.pbxproj +0 -373
  926. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  927. package/code-snippet/dynamsoft-barcode-reader/web/frameworks/webview/scan-using-rtu-api/ios/dbrjswebview.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  928. package/code-snippet/dynamsoft-barcode-reader/web/hello-world.html +0 -87
  929. package/code-snippet/dynamsoft-barcode-reader/web/index.html +0 -1271
  930. package/code-snippet/dynamsoft-barcode-reader/web/read-an-image.html +0 -72
  931. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/README.md +0 -30
  932. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/batch-inventory/README.md +0 -41
  933. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/batch-inventory/index.css +0 -160
  934. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/batch-inventory/index.html +0 -157
  935. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/cart-builder/README.md +0 -43
  936. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/cart-builder/cart-builder.html +0 -272
  937. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/README.md +0 -57
  938. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/app.js +0 -43
  939. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/package.json +0 -16
  940. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/pem/ryans-cert.pem +0 -13
  941. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/pem/ryans-csr.pem +0 -11
  942. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/pem/ryans-key.pem +0 -15
  943. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/debug/public/index.html +0 -198
  944. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/locate-an-item-with-barcode/README.md +0 -38
  945. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/locate-an-item-with-barcode/index.html +0 -735
  946. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/pick-one-to-fill/README.md +0 -35
  947. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/pick-one-to-fill/index.css +0 -112
  948. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/pick-one-to-fill/index.html +0 -113
  949. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/README.md +0 -39
  950. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/index.html +0 -170
  951. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/read_dl.json +0 -124
  952. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-a-drivers-license/style.css +0 -154
  953. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/README.md +0 -49
  954. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/index.css +0 -180
  955. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/index.html +0 -297
  956. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-foundational-api/read_and_parse_gs1.json +0 -159
  957. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/convert-GS1AI-title.js +0 -386
  958. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/index.html +0 -285
  959. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/rtu_gs1.json +0 -163
  960. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-and-parse-GS1-AI/scan-using-rtu-api/style.css +0 -200
  961. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/README.md +0 -40
  962. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/index.html +0 -146
  963. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/read_vin.json +0 -139
  964. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/read-vin/style.css +0 -155
  965. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Industrial/README.md +0 -40
  966. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Industrial/ReadOneDIndustrial.json +0 -155
  967. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Industrial/index.html +0 -103
  968. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Retail/README.md +0 -37
  969. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Retail/ReadOneDRetail.json +0 -148
  970. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-1D-Retail/index.html +0 -103
  971. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-and-search/README.md +0 -39
  972. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-and-search/scan-and-search.html +0 -266
  973. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-1D-and-2D/README.md +0 -31
  974. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-1D-and-2D/ReadCommon1DAnd2D.json +0 -205
  975. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-1D-and-2D/index.html +0 -103
  976. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-2D-codes/README.md +0 -37
  977. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-2D-codes/ReadCommon2D.json +0 -188
  978. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-common-2D-codes/index.html +0 -103
  979. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-datamatrix-code/README.md +0 -29
  980. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-datamatrix-code/ReadDataMatrix.json +0 -184
  981. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-datamatrix-code/index.html +0 -103
  982. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-from-distance/README.md +0 -36
  983. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-from-distance/ReadDistantBarcodes.json +0 -155
  984. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-from-distance/index.html +0 -103
  985. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-qr-code/README.md +0 -37
  986. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-qr-code/ReadQR.json +0 -156
  987. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/scan-qr-code/index.html +0 -103
  988. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/show-result-texts-on-the-video/README.md +0 -32
  989. package/code-snippet/dynamsoft-barcode-reader/web/scenarios/show-result-texts-on-the-video/show-result-texts-on-the-video.html +0 -179
  990. package/code-snippet/dynamsoft-document-viewer/angular/.editorconfig +0 -16
  991. package/code-snippet/dynamsoft-document-viewer/angular/README.md +0 -42
  992. package/code-snippet/dynamsoft-document-viewer/angular/angular.json +0 -104
  993. package/code-snippet/dynamsoft-document-viewer/angular/package-lock.json +0 -12264
  994. package/code-snippet/dynamsoft-document-viewer/angular/package.json +0 -39
  995. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.css +0 -6
  996. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.html +0 -7
  997. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.spec.ts +0 -10
  998. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.component.ts +0 -19
  999. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.config.ts +0 -8
  1000. package/code-snippet/dynamsoft-document-viewer/angular/src/app/app.routes.ts +0 -3
  1001. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.css +0 -4
  1002. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.html +0 -1
  1003. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.spec.ts +0 -22
  1004. package/code-snippet/dynamsoft-document-viewer/angular/src/app/components/viewer/viewer.component.ts +0 -30
  1005. package/code-snippet/dynamsoft-document-viewer/angular/src/assets/.gitkeep +0 -0
  1006. package/code-snippet/dynamsoft-document-viewer/angular/src/favicon.ico +0 -0
  1007. package/code-snippet/dynamsoft-document-viewer/angular/src/index.html +0 -13
  1008. package/code-snippet/dynamsoft-document-viewer/angular/src/main.ts +0 -6
  1009. package/code-snippet/dynamsoft-document-viewer/angular/src/styles.css +0 -13
  1010. package/code-snippet/dynamsoft-document-viewer/angular/tsconfig.app.json +0 -14
  1011. package/code-snippet/dynamsoft-document-viewer/angular/tsconfig.json +0 -34
  1012. package/code-snippet/dynamsoft-document-viewer/angular/tsconfig.spec.json +0 -14
  1013. package/code-snippet/dynamsoft-document-viewer/hello-world.html +0 -49
  1014. package/code-snippet/dynamsoft-document-viewer/next/README.md +0 -42
  1015. package/code-snippet/dynamsoft-document-viewer/next/next.config.ts +0 -27
  1016. package/code-snippet/dynamsoft-document-viewer/next/package-lock.json +0 -1919
  1017. package/code-snippet/dynamsoft-document-viewer/next/package.json +0 -24
  1018. package/code-snippet/dynamsoft-document-viewer/next/public/next.svg +0 -1
  1019. package/code-snippet/dynamsoft-document-viewer/next/public/vercel.svg +0 -1
  1020. package/code-snippet/dynamsoft-document-viewer/next/src/app/components/Viewer.css +0 -4
  1021. package/code-snippet/dynamsoft-document-viewer/next/src/app/components/Viewer.tsx +0 -40
  1022. package/code-snippet/dynamsoft-document-viewer/next/src/app/favicon.ico +0 -0
  1023. package/code-snippet/dynamsoft-document-viewer/next/src/app/globals.css +0 -18
  1024. package/code-snippet/dynamsoft-document-viewer/next/src/app/layout.tsx +0 -32
  1025. package/code-snippet/dynamsoft-document-viewer/next/src/app/page.tsx +0 -19
  1026. package/code-snippet/dynamsoft-document-viewer/next/tsconfig.json +0 -27
  1027. package/code-snippet/dynamsoft-document-viewer/react-vite/README.md +0 -42
  1028. package/code-snippet/dynamsoft-document-viewer/react-vite/eslint.config.js +0 -38
  1029. package/code-snippet/dynamsoft-document-viewer/react-vite/index.html +0 -13
  1030. package/code-snippet/dynamsoft-document-viewer/react-vite/package-lock.json +0 -4880
  1031. package/code-snippet/dynamsoft-document-viewer/react-vite/package.json +0 -30
  1032. package/code-snippet/dynamsoft-document-viewer/react-vite/src/App.css +0 -18
  1033. package/code-snippet/dynamsoft-document-viewer/react-vite/src/App.jsx +0 -13
  1034. package/code-snippet/dynamsoft-document-viewer/react-vite/src/assets/react.svg +0 -1
  1035. package/code-snippet/dynamsoft-document-viewer/react-vite/src/components/Viewer.css +0 -4
  1036. package/code-snippet/dynamsoft-document-viewer/react-vite/src/components/Viewer.jsx +0 -31
  1037. package/code-snippet/dynamsoft-document-viewer/react-vite/src/index.css +0 -13
  1038. package/code-snippet/dynamsoft-document-viewer/react-vite/src/main.jsx +0 -7
  1039. package/code-snippet/dynamsoft-document-viewer/react-vite/vite.config.js +0 -19
  1040. package/code-snippet/dynamsoft-document-viewer/vue/.eslintrc.cjs +0 -15
  1041. package/code-snippet/dynamsoft-document-viewer/vue/.prettierrc.json +0 -8
  1042. package/code-snippet/dynamsoft-document-viewer/vue/README.md +0 -42
  1043. package/code-snippet/dynamsoft-document-viewer/vue/env.d.ts +0 -1
  1044. package/code-snippet/dynamsoft-document-viewer/vue/index.html +0 -13
  1045. package/code-snippet/dynamsoft-document-viewer/vue/package-lock.json +0 -3340
  1046. package/code-snippet/dynamsoft-document-viewer/vue/package.json +0 -36
  1047. package/code-snippet/dynamsoft-document-viewer/vue/public/favicon.ico +0 -0
  1048. package/code-snippet/dynamsoft-document-viewer/vue/src/App.vue +0 -29
  1049. package/code-snippet/dynamsoft-document-viewer/vue/src/Component/Viewer.vue +0 -35
  1050. package/code-snippet/dynamsoft-document-viewer/vue/src/index.html +0 -13
  1051. package/code-snippet/dynamsoft-document-viewer/vue/src/main.ts +0 -5
  1052. package/code-snippet/dynamsoft-document-viewer/vue/tsconfig.app.json +0 -13
  1053. package/code-snippet/dynamsoft-document-viewer/vue/tsconfig.json +0 -11
  1054. package/code-snippet/dynamsoft-document-viewer/vue/tsconfig.node.json +0 -17
  1055. package/code-snippet/dynamsoft-document-viewer/vue/vite.config.ts +0 -29
  1056. package/data/ddv-api-docs.json +0 -1279
  1057. package/data/web-twain-api-docs.json +0 -1881
package/src/index.js CHANGED
@@ -1,1230 +1,1250 @@
1
- #!/usr/bin/env node
2
- import { readFileSync, readdirSync, existsSync, statSync } from "node:fs";
3
- import { join, relative, dirname, extname } from "node:path";
4
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
- import {
7
- ListResourcesRequestSchema,
8
- ReadResourceRequestSchema,
9
- SubscribeRequestSchema,
10
- UnsubscribeRequestSchema
11
- } from "@modelcontextprotocol/sdk/types.js";
12
- import { z } from "zod";
13
- import {
14
- registry,
15
- LATEST_VERSIONS,
16
- LATEST_MAJOR,
17
- discoverDwtSamples,
18
- findCodeFilesInSample,
19
- getMobileSamplePath,
20
- getPythonSamplePath,
21
- getDwtSamplePath,
22
- getDdvSamplePath,
23
- readCodeFile,
24
- getMainCodeFile,
25
- ensureLatestMajor,
26
- parseResourceUri,
27
- parseSampleUri,
28
- getSampleIdFromUri,
29
- getSampleEntries,
30
- buildIndexData,
31
- getDisplayEdition,
32
- getDisplayPlatform,
33
- formatScopeLabel,
34
- getPinnedResources,
35
- readResourceContent,
36
- normalizePlatform,
37
- normalizeApiLevel,
38
- normalizeSampleName,
39
- normalizeProduct,
40
- normalizeEdition,
41
- resourceIndex,
42
- getWebSamplePath
43
- } from "./resource-index.js";
44
- import { searchResources, getSampleSuggestions, prewarmRagIndex, ragConfig } from "./rag.js";
45
-
46
- const pkgUrl = new URL("../package.json", import.meta.url);
47
- const pkg = JSON.parse(readFileSync(pkgUrl, "utf8"));
48
-
49
- // ============================================================================
50
- // MCP Server
51
- // ============================================================================
52
-
53
- const server = new McpServer({
54
- name: "simple-dynamsoft-mcp",
55
- version: pkg.version,
56
- description: "MCP server for latest major versions of Dynamsoft SDKs: Barcode Reader (Mobile/Server/Web), Dynamic Web TWAIN, and Document Viewer"
57
- });
58
-
59
- function formatScoreLabel(entry) {
60
- if (!Number.isFinite(entry?.score)) return "";
61
- return ` | score: ${entry.score.toFixed(3)}`;
62
- }
63
-
64
- function formatScoreNote(entry) {
65
- if (!Number.isFinite(entry?.score)) return "";
66
- return ` score=${entry.score.toFixed(3)}`;
67
- }
68
-
69
- // ============================================================================
70
- // TOOL: get_index
71
- // ============================================================================
72
-
73
- server.registerTool(
74
- "get_index",
75
- {
76
- title: "Get Index",
77
- description: "Get a compact index of products, editions, versions, and available samples/docs.",
78
- inputSchema: {}
79
- },
80
- async () => ({
81
- content: [{ type: "text", text: JSON.stringify(buildIndexData(), null, 2) }]
82
- })
83
- );
84
-
85
- // ============================================================================
86
- // TOOL: search
87
- // ============================================================================
88
-
89
- server.registerTool(
90
- "search",
91
- {
92
- title: "Search",
93
- description: "Semantic (RAG) search across docs and samples with fuzzy fallback; returns resource links for lazy loading.",
94
- inputSchema: {
95
- query: z.string().describe("Keywords to search across docs and samples."),
96
- product: z.string().optional().describe("Product: dbr, dwt, ddv"),
97
- edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
98
- platform: z.string().optional().describe("Platform: android, ios, js, python, cpp, java, dotnet, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
99
- version: z.string().optional().describe("Version constraint (major or full version)"),
100
- type: z.enum(["doc", "sample", "index", "policy", "any"]).optional(),
101
- limit: z.number().int().min(1).max(10).optional().describe("Max results (default 5)")
102
- }
103
- },
104
- async ({ query, product, edition, platform, version, type, limit }) => {
105
- if (!query || !query.trim()) {
106
- return { isError: true, content: [{ type: "text", text: "Query is required." }] };
107
- }
108
- const normalizedProduct = normalizeProduct(product);
109
- const normalizedPlatform = normalizePlatform(platform);
110
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
111
-
112
- const policy = ensureLatestMajor({
113
- product: normalizedProduct,
114
- version,
115
- query,
116
- edition: normalizedEdition,
117
- platform: normalizedPlatform
118
- });
119
-
120
- if (!policy.ok) {
121
- return { isError: true, content: [{ type: "text", text: policy.message }] };
122
- }
123
-
124
- const maxResults = Math.min(limit || 5, 10);
125
- const topResults = await searchResources({
126
- query,
127
- product: normalizedProduct,
128
- edition: normalizedEdition,
129
- platform: normalizedPlatform,
130
- type: type || "any",
131
- limit: maxResults
132
- });
133
-
134
- if (topResults.length === 0) {
135
- return {
136
- content: [{
137
- type: "text",
138
- text: `No results for "${query}". Try get_index for available products or adjust filters.`
139
- }]
140
- };
141
- }
142
-
143
- const content = [
144
- {
145
- type: "text",
146
- text: `Found ${topResults.length} result(s) for "${query}". Read the links you need with resources/read.`
147
- }
148
- ];
149
-
150
- for (const entry of topResults) {
151
- const versionLabel = entry.version ? `v${entry.version}` : "n/a";
152
- const scopeLabel = formatScopeLabel(entry);
153
- const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
154
- const sampleHint = sampleId ? ` | sample_id: ${sampleId}` : "";
155
- const scoreLabel = formatScoreLabel(entry);
156
- content.push({
157
- type: "resource_link",
158
- uri: entry.uri,
159
- name: entry.title,
160
- description: `${entry.type.toUpperCase()} | ${scopeLabel} | ${versionLabel}${scoreLabel} - ${entry.summary}${sampleHint}`,
161
- mimeType: entry.mimeType,
162
- annotations: {
163
- audience: ["assistant"],
164
- priority: 0.8
165
- }
166
- });
167
- }
168
-
169
- const plainLines = topResults.map((entry, index) => {
170
- const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
171
- const action = entry.type === "sample" ? "generate_project resource_uri" : "resources/read uri";
172
- const sampleNote = sampleId ? ` sample_id=${sampleId}` : "";
173
- const scoreNote = formatScoreNote(entry);
174
- return `- ${index + 1}. ${entry.uri}${sampleNote}${scoreNote} (${action})`;
175
- });
176
- content.push({
177
- type: "text",
178
- text: ["Plain URIs (copy/paste):", ...plainLines].join("\n")
179
- });
180
-
181
- return { content };
182
- }
183
- );
184
-
185
- // ============================================================================
186
- // TOOL: list_samples
187
- // ============================================================================
188
-
189
- server.registerTool(
190
- "list_samples",
191
- {
192
- title: "List Samples",
193
- description: "List available sample IDs and URIs for a given scope.",
194
- inputSchema: {
195
- product: z.string().optional().describe("Product: dbr, dwt, ddv"),
196
- edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
197
- platform: z.string().optional().describe("Platform: android, ios, js, python, cpp, java, dotnet, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
198
- limit: z.number().int().min(1).max(200).optional().describe("Max results (default 50)")
199
- }
200
- },
201
- async ({ product, edition, platform, limit }) => {
202
- const normalizedProduct = normalizeProduct(product);
203
- const normalizedPlatform = normalizePlatform(platform);
204
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
205
-
206
- const policy = ensureLatestMajor({
207
- product: normalizedProduct,
208
- version: undefined,
209
- query: "",
210
- edition: normalizedEdition,
211
- platform: normalizedPlatform
212
- });
213
-
214
- if (!policy.ok) {
215
- return { isError: true, content: [{ type: "text", text: policy.message }] };
216
- }
217
-
218
- const samples = getSampleEntries({
219
- product: normalizedProduct,
220
- edition: normalizedEdition,
221
- platform: normalizedPlatform
222
- });
223
-
224
- const maxResults = Math.min(limit || 50, 200);
225
- const selected = samples.slice(0, maxResults);
226
-
227
- const payload = selected.map((entry) => ({
228
- sample_id: getSampleIdFromUri(entry.uri),
229
- uri: entry.uri,
230
- product: entry.product,
231
- edition: getDisplayEdition(entry.edition),
232
- platform: getDisplayPlatform(entry.platform),
233
- version: entry.version,
234
- title: entry.title,
235
- summary: entry.summary
236
- }));
237
-
238
- const lines = [
239
- `Total matches: ${samples.length}`,
240
- `Returned: ${payload.length}`,
241
- "",
242
- "Plain URIs (copy/paste):",
243
- ...payload.map((item, index) => {
244
- const sampleNote = item.sample_id ? ` (sample_id: ${item.sample_id})` : "";
245
- return `- ${index + 1}. ${item.uri}${sampleNote}`;
246
- })
247
- ];
248
-
249
- const output = {
250
- total: samples.length,
251
- returned: payload.length,
252
- samples: payload
253
- };
254
-
255
- return {
256
- content: [{
257
- type: "text",
258
- text: `${lines.join("\n")}\n\nJSON:\n${JSON.stringify(output, null, 2)}`
259
- }]
260
- };
261
- }
262
- );
263
-
264
- // ============================================================================
265
- // TOOL: resolve_sample
266
- // ============================================================================
267
-
268
- server.registerTool(
269
- "resolve_sample",
270
- {
271
- title: "Resolve Sample",
272
- description: "Resolve a sample_id (or sample URI) to matching sample URIs.",
273
- inputSchema: {
274
- sample_id: z.string().describe("Sample identifier or sample:// URI"),
275
- product: z.string().optional().describe("Product: dbr, dwt, ddv"),
276
- edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
277
- platform: z.string().optional().describe("Platform: android, ios, js, python, cpp, java, dotnet, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
278
- limit: z.number().int().min(1).max(10).optional().describe("Max results (default 5)")
279
- }
280
- },
281
- async ({ sample_id, product, edition, platform, limit }) => {
282
- if (!sample_id || !sample_id.trim()) {
283
- return { isError: true, content: [{ type: "text", text: "sample_id is required." }] };
284
- }
285
-
286
- const normalizedProduct = normalizeProduct(product);
287
- const normalizedPlatform = normalizePlatform(platform);
288
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
289
-
290
- const policy = ensureLatestMajor({
291
- product: normalizedProduct,
292
- version: undefined,
293
- query: sample_id,
294
- edition: normalizedEdition,
295
- platform: normalizedPlatform
296
- });
297
-
298
- if (!policy.ok) {
299
- return { isError: true, content: [{ type: "text", text: policy.message }] };
300
- }
301
-
302
- if (sample_id.includes("://")) {
303
- const parsed = parseSampleUri(sample_id);
304
- if (!parsed) {
305
- return {
306
- isError: true,
307
- content: [{
308
- type: "text",
309
- text: "sample_id looks like a URI but is not a valid sample:// URI. For doc:// URIs, use resources/read."
310
- }]
311
- };
312
- }
313
- const entry = resourceIndex.find((item) => item.uri === sample_id && item.type === "sample");
314
- if (!entry) {
315
- return {
316
- isError: true,
317
- content: [{
318
- type: "text",
319
- text: `Sample URI not found in index: ${sample_id}. Use list_samples or search.`
320
- }]
321
- };
322
- }
323
-
324
- const payload = [{
325
- sample_id: getSampleIdFromUri(entry.uri),
326
- uri: entry.uri,
327
- product: entry.product,
328
- edition: getDisplayEdition(entry.edition),
329
- platform: getDisplayPlatform(entry.platform),
330
- version: entry.version,
331
- title: entry.title,
332
- summary: entry.summary
333
- }];
334
-
335
- const output = {
336
- query: sample_id,
337
- returned: payload.length,
338
- samples: payload
339
- };
340
-
341
- return {
342
- content: [{
343
- type: "text",
344
- text: [
345
- `Found ${payload.length} match(es) for "${sample_id}".`,
346
- "Plain URIs (copy/paste):",
347
- `- 1. ${entry.uri} (sample_id: ${payload[0].sample_id})`,
348
- "",
349
- "JSON:",
350
- JSON.stringify(output, null, 2)
351
- ].join("\n")
352
- }, {
353
- type: "resource_link",
354
- uri: entry.uri,
355
- name: entry.title,
356
- description: `SAMPLE | ${formatScopeLabel(entry)} | v${entry.version}${formatScoreLabel(entry)} | sample_id: ${payload[0].sample_id}`,
357
- mimeType: entry.mimeType,
358
- annotations: {
359
- audience: ["assistant"],
360
- priority: 0.8
361
- }
362
- }]
363
- };
364
- }
365
-
366
- const sampleQuery = normalizeSampleName(sample_id);
367
- const maxResults = Math.min(limit || 5, 10);
368
-
369
- const scopedSamples = getSampleEntries({
370
- product: normalizedProduct,
371
- edition: normalizedEdition,
372
- platform: normalizedPlatform
373
- });
374
-
375
- let matches = scopedSamples.filter((entry) => {
376
- const entryId = getSampleIdFromUri(entry.uri);
377
- return entryId && entryId.toLowerCase() === sampleQuery.toLowerCase();
378
- });
379
-
380
- if (matches.length === 0) {
381
- matches = await searchResources({
382
- query: sample_id,
383
- product: normalizedProduct,
384
- edition: normalizedEdition,
385
- platform: normalizedPlatform,
386
- type: "sample",
387
- limit: maxResults
388
- });
389
- }
390
-
391
- const selected = matches.slice(0, maxResults);
392
- if (selected.length === 0) {
393
- const suggestions = await getSampleSuggestions({
394
- query: sample_id,
395
- product: normalizedProduct,
396
- edition: normalizedEdition,
397
- platform: normalizedPlatform,
398
- limit: maxResults
399
- });
400
-
401
- const content = [{
402
- type: "text",
403
- text: suggestions.length
404
- ? `No exact sample match for "${sample_id}". Related samples:`
405
- : `No samples found for "${sample_id}". Try list_samples or search.`
406
- }];
407
-
408
- for (const entry of suggestions) {
409
- const sampleId = getSampleIdFromUri(entry.uri);
410
- content.push({
411
- type: "resource_link",
412
- uri: entry.uri,
413
- name: entry.title,
414
- description: `${entry.type.toUpperCase()} | ${formatScopeLabel(entry)} | v${entry.version}${formatScoreLabel(entry)} | sample_id: ${sampleId || "n/a"}`,
415
- mimeType: entry.mimeType,
416
- annotations: {
417
- audience: ["assistant"],
418
- priority: 0.6
419
- }
420
- });
421
- }
422
-
423
- if (suggestions.length) {
424
- const plainLines = suggestions.map((entry, index) => {
425
- const sampleId = getSampleIdFromUri(entry.uri);
426
- const sampleNote = sampleId ? ` (sample_id: ${sampleId})` : "";
427
- const scoreNote = formatScoreNote(entry);
428
- return `- ${index + 1}. ${entry.uri}${sampleNote}${scoreNote}`;
429
- });
430
- content.push({
431
- type: "text",
432
- text: ["Plain URIs (copy/paste):", ...plainLines].join("\n")
433
- });
434
- }
435
-
436
- return { isError: true, content };
437
- }
438
-
439
- const payload = selected.map((entry) => ({
440
- sample_id: getSampleIdFromUri(entry.uri),
441
- uri: entry.uri,
442
- product: entry.product,
443
- edition: getDisplayEdition(entry.edition),
444
- platform: getDisplayPlatform(entry.platform),
445
- version: entry.version,
446
- title: entry.title,
447
- summary: entry.summary
448
- }));
449
-
450
- const lines = [
451
- `Found ${selected.length} match(es) for "${sample_id}".`,
452
- "Plain URIs (copy/paste):",
453
- ...selected.map((entry, index) => {
454
- const sampleId = getSampleIdFromUri(entry.uri);
455
- const sampleNote = sampleId ? ` (sample_id: ${sampleId})` : "";
456
- const scoreNote = formatScoreNote(entry);
457
- return `- ${index + 1}. ${entry.uri}${sampleNote}${scoreNote}`;
458
- })
459
- ];
460
-
461
- const output = {
462
- query: sample_id,
463
- returned: payload.length,
464
- samples: payload
465
- };
466
-
467
- const content = [{
468
- type: "text",
469
- text: `${lines.join("\n")}\n\nJSON:\n${JSON.stringify(output, null, 2)}`
470
- }];
471
-
472
- for (const entry of selected) {
473
- const sampleId = getSampleIdFromUri(entry.uri);
474
- content.push({
475
- type: "resource_link",
476
- uri: entry.uri,
477
- name: entry.title,
478
- description: `${entry.type.toUpperCase()} | ${formatScopeLabel(entry)} | v${entry.version}${formatScoreLabel(entry)} | sample_id: ${sampleId || "n/a"}`,
479
- mimeType: entry.mimeType,
480
- annotations: {
481
- audience: ["assistant"],
482
- priority: 0.8
483
- }
484
- });
485
- }
486
-
487
- return { content };
488
- }
489
- );
490
-
491
- // ============================================================================
492
- // TOOL: resolve_version
493
- // ============================================================================
494
-
495
- server.registerTool(
496
- "resolve_version",
497
- {
498
- title: "Resolve Version",
499
- description: "Resolve a concrete latest-major version for a product/edition/platform.",
500
- inputSchema: {
501
- product: z.string().describe("Product: dbr, dwt, or ddv"),
502
- edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
503
- platform: z.string().optional().describe("Platform: android, ios, js, python, cpp, java, dotnet, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
504
- constraint: z.string().optional().describe("Version constraint, e.g., latest, 11.x, 10"),
505
- feature: z.string().optional().describe("Optional feature hint")
506
- }
507
- },
508
- async ({ product, edition, platform, constraint, feature }) => {
509
- const normalizedProduct = normalizeProduct(product);
510
- const normalizedPlatform = normalizePlatform(platform);
511
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
512
-
513
- if (!["dbr", "dwt", "ddv"].includes(normalizedProduct)) {
514
- return {
515
- isError: true,
516
- content: [{ type: "text", text: `Unknown product "${product}". Use dbr, dwt, or ddv.` }]
517
- };
518
- }
519
-
520
- const policy = ensureLatestMajor({
521
- product: normalizedProduct,
522
- version: constraint,
523
- query: feature,
524
- edition: normalizedEdition,
525
- platform: normalizedPlatform
526
- });
527
-
528
- if (!policy.ok) {
529
- return { isError: true, content: [{ type: "text", text: policy.message }] };
530
- }
531
-
532
- if (normalizedProduct === "dbr") {
533
- if (!normalizedEdition) {
534
- const lines = [
535
- "# DBR Version Resolution",
536
- `- Latest major: v${LATEST_MAJOR.dbr}`,
537
- `- Mobile: ${LATEST_VERSIONS.dbr.mobile}`,
538
- `- Web: ${LATEST_VERSIONS.dbr.web}`,
539
- `- Server/Desktop: ${LATEST_VERSIONS.dbr.server}`,
540
- "",
541
- "Specify edition/platform to resolve a single version."
542
- ];
543
- return { content: [{ type: "text", text: lines.join("\n") }] };
544
- }
545
-
546
- const resolved = LATEST_VERSIONS.dbr[normalizedEdition];
547
- if (!resolved) {
548
- return {
549
- isError: true,
550
- content: [{ type: "text", text: `Edition "${normalizedEdition}" is not hosted by this MCP server.` }]
551
- };
552
- }
553
-
554
- const displayPlatform = normalizedPlatform === "web" ? "js" : normalizedPlatform;
555
- const lines = [
556
- "# DBR Version Resolution",
557
- `- Edition: ${normalizedEdition}`,
558
- displayPlatform ? `- Platform: ${displayPlatform}` : "",
559
- `- Latest major: v${LATEST_MAJOR.dbr}`,
560
- `- Resolved version: ${resolved}`
561
- ].filter(Boolean);
562
-
563
- return { content: [{ type: "text", text: lines.join("\n") }] };
564
- }
565
-
566
- if (normalizedProduct === "dwt") {
567
- const lines = [
568
- "# DWT Version Resolution",
569
- `- Latest major: v${LATEST_MAJOR.dwt}`,
570
- `- Resolved version: ${LATEST_VERSIONS.dwt.web}`
571
- ];
572
- return { content: [{ type: "text", text: lines.join("\n") }] };
573
- }
574
-
575
- const lines = [
576
- "# DDV Version Resolution",
577
- `- Latest major: v${LATEST_MAJOR.ddv}`,
578
- `- Resolved version: ${LATEST_VERSIONS.ddv.web}`
579
- ];
580
-
581
- return { content: [{ type: "text", text: lines.join("\n") }] };
582
- }
583
- );
584
-
585
- // ============================================================================
586
- // TOOL: get_quickstart
587
- // ============================================================================
588
-
589
- server.registerTool(
590
- "get_quickstart",
591
- {
592
- title: "Get Quickstart",
593
- description: "Opinionated quickstart for a target product/edition/platform.",
594
- inputSchema: {
595
- product: z.string().describe("Product: dbr, dwt, or ddv"),
596
- edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
597
- platform: z.string().optional().describe("Platform: android, ios, js, python, cpp, java, dotnet, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
598
- language: z.string().optional().describe("Language hint: kotlin, java, swift, js, ts, python, cpp, csharp, react, vue, angular"),
599
- version: z.string().optional().describe("Version constraint"),
600
- api_level: z.string().optional().describe("API level: high-level or low-level (mobile only)"),
601
- scenario: z.string().optional().describe("Scenario: camera, image, single, multiple, react, etc.")
602
- }
603
- },
604
- async ({ product, edition, platform, language, version, api_level, scenario }) => {
605
- const normalizedProduct = normalizeProduct(product);
606
- const normalizedPlatform = normalizePlatform(platform);
607
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
608
- const policy = ensureLatestMajor({
609
- product: normalizedProduct,
610
- version,
611
- query: scenario,
612
- edition: normalizedEdition,
613
- platform: normalizedPlatform
614
- });
615
-
616
- if (!policy.ok) {
617
- return { isError: true, content: [{ type: "text", text: policy.message }] };
618
- }
619
-
620
- if (normalizedProduct === "dbr" && normalizedEdition === "server") {
621
- const sdkEntry = registry.sdks["dbr-python"];
622
- const scenarioLower = (scenario || "").toLowerCase();
623
- const sampleName = scenarioLower.includes("video") ? "video_decoding" : "read_an_image";
624
- const samplePath = getPythonSamplePath(sampleName);
625
-
626
- if (!existsSync(samplePath)) {
627
- return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
628
- }
629
-
630
- const content = readCodeFile(samplePath);
631
-
632
- return {
633
- content: [{
634
- type: "text",
635
- text: [
636
- "# Quick Start: DBR Python",
637
- "",
638
- `**SDK Version:** ${sdkEntry.version}`,
639
- `**Trial License:** \`${registry.trial_license}\``,
640
- "",
641
- "## Install",
642
- "```bash",
643
- sdkEntry.platforms.python.installation.pip,
644
- "```",
645
- "",
646
- `## ${sampleName}.py`,
647
- "```python",
648
- content,
649
- "```",
650
- "",
651
- `Docs: ${sdkEntry.platforms.python.docs["user-guide"]}`
652
- ].join("\n")
653
- }]
654
- };
655
- }
656
-
657
- if (normalizedProduct === "dbr" && normalizedEdition === "web") {
658
- const sdkEntry = registry.sdks["dbr-web"];
659
- const scenarioLower = (scenario || "").toLowerCase();
660
- const sampleName = scenarioLower.includes("image") ? "read-an-image" : "hello-world";
661
- const samplePath = getWebSamplePath("root", sampleName);
662
-
663
- if (!samplePath || !existsSync(samplePath)) {
664
- return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
665
- }
666
-
667
- const content = readCodeFile(samplePath);
668
-
669
- return {
670
- content: [{
671
- type: "text",
672
- text: [
673
- "# Quick Start: DBR Web",
674
- "",
675
- `**SDK Version:** ${sdkEntry.version}`,
676
- `**Trial License:** \`${registry.trial_license}\``,
677
- "",
678
- "## Option 1: CDN",
679
- "```html",
680
- `<script src="${sdkEntry.platforms.web.installation.cdn}"></script>`,
681
- "```",
682
- "",
683
- "## Option 2: NPM",
684
- "```bash",
685
- sdkEntry.platforms.web.installation.npm,
686
- "```",
687
- "",
688
- `## ${sampleName}.html`,
689
- "```html",
690
- content,
691
- "```",
692
- "",
693
- `Docs: ${sdkEntry.platforms.web.docs["user-guide"]}`
694
- ].join("\n")
695
- }]
696
- };
697
- }
698
-
699
- if (normalizedProduct === "dbr" && normalizedEdition === "mobile") {
700
- const sdkEntry = registry.sdks["dbr-mobile"];
701
- const targetPlatform = normalizedPlatform || "android";
702
- const level = normalizeApiLevel(api_level || scenario);
703
- const scenarioLower = (scenario || "").toLowerCase();
704
-
705
- let sampleName = "ScanSingleBarcode";
706
- if (scenarioLower.includes("multiple") || scenarioLower.includes("batch")) sampleName = "ScanMultipleBarcodes";
707
- else if (scenarioLower.includes("image") || scenarioLower.includes("file")) sampleName = "DecodeFromAnImage";
708
-
709
- if (level === "low-level") {
710
- if (sampleName === "ScanSingleBarcode" || sampleName === "ScanMultipleBarcodes") {
711
- sampleName = "DecodeWithCameraEnhancer";
712
- }
713
- }
714
-
715
- const samplePath = getMobileSamplePath(targetPlatform, level, sampleName);
716
- if (!existsSync(samplePath)) {
717
- return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
718
- }
719
-
720
- const mainFile = getMainCodeFile(targetPlatform, samplePath);
721
- if (!mainFile) {
722
- return { isError: true, content: [{ type: "text", text: "Could not find main code file." }] };
723
- }
724
-
725
- const content = readCodeFile(mainFile.path);
726
- const langExt = mainFile.filename.split(".").pop();
727
-
728
- let deps = "";
729
- if (targetPlatform === "android") {
730
- deps = `
731
- ## Dependencies
732
-
733
- **Project build.gradle**
734
- \`\`\`groovy
735
- allprojects {
736
- repositories {
737
- google()
738
- mavenCentral()
739
- maven { url "${registry.maven_url}" }
740
- }
741
- }
742
- \`\`\`
743
-
744
- **App build.gradle**
745
- \`\`\`groovy
746
- dependencies {
747
- implementation 'com.dynamsoft:barcodereaderbundle:${sdkEntry.version}'
748
- }
749
- \`\`\`
750
-
751
- **AndroidManifest.xml**
752
- \`\`\`xml
753
- <uses-permission android:name="android.permission.CAMERA" />
754
- \`\`\``;
755
- } else {
756
- deps = `
757
- ## Dependencies
758
-
759
- **Podfile**
760
- \`\`\`ruby
761
- platform :ios, '11.0'
762
- use_frameworks!
763
-
764
- target 'YourApp' do
765
- pod 'DynamsoftBarcodeReaderBundle'
766
- end
767
- \`\`\`
768
-
769
- **Info.plist**
770
- \`\`\`xml
771
- <key>NSCameraUsageDescription</key>
772
- <string>Camera access for barcode scanning</string>
773
- \`\`\``;
774
- }
775
-
776
- const output = [
777
- "# Quick Start: DBR Mobile",
778
- "",
779
- `**SDK Version:** ${sdkEntry.version}`,
780
- `**API Level:** ${level}`,
781
- `**Trial License:** \`${registry.trial_license}\``,
782
- "",
783
- deps,
784
- "",
785
- `## ${mainFile.filename}`,
786
- "```" + langExt,
787
- content,
788
- "```",
789
- "",
790
- `Docs: ${sdkEntry.platforms[targetPlatform]?.docs[level]?.["user-guide"] || "N/A"}`
791
- ];
792
-
793
- return { content: [{ type: "text", text: output.join("\n") }] };
794
- }
795
-
796
- if (normalizedProduct === "dwt") {
797
- const sdkEntry = registry.sdks["dwt"];
798
- const samplePath = getDwtSamplePath("scan", "basic-scan");
799
-
800
- if (!samplePath || !existsSync(samplePath)) {
801
- return { isError: true, content: [{ type: "text", text: "Sample not found: basic-scan." }] };
802
- }
803
-
804
- const content = readCodeFile(samplePath);
805
-
806
- return {
807
- content: [{
808
- type: "text",
809
- text: [
810
- "# Quick Start: Dynamic Web TWAIN",
811
- "",
812
- `**SDK Version:** ${sdkEntry.version}`,
813
- `**Trial License:** \`${registry.trial_license}\``,
814
- "",
815
- "## Option 1: CDN",
816
- "```html",
817
- `<script src="${sdkEntry.platforms.web.installation.cdn}"></script>`,
818
- "```",
819
- "",
820
- "## Option 2: NPM",
821
- "```bash",
822
- sdkEntry.platforms.web.installation.npm,
823
- "```",
824
- "",
825
- "## basic-scan.html",
826
- "```html",
827
- content,
828
- "```",
829
- "",
830
- `Docs: ${sdkEntry.platforms.web.docs["user-guide"]}`
831
- ].join("\n")
832
- }]
833
- };
834
- }
835
-
836
- if (normalizedProduct === "ddv") {
837
- const sdkEntry = registry.sdks["ddv"];
838
- const hint = `${scenario || ""} ${language || ""}`.toLowerCase();
839
- let sampleName = "hello-world";
840
-
841
- if (hint.includes("react")) sampleName = "react-vite";
842
- else if (hint.includes("vue")) sampleName = "vue";
843
- else if (hint.includes("angular")) sampleName = "angular";
844
- else if (hint.includes("next")) sampleName = "next";
845
-
846
- const samplePath = getDdvSamplePath(sampleName);
847
- if (!samplePath || !existsSync(samplePath)) {
848
- return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
849
- }
850
-
851
- let sampleContent = "";
852
- let fence = "text";
853
- const stat = statSync(samplePath);
854
- if (stat.isDirectory()) {
855
- const readmePath = join(samplePath, "README.md");
856
- if (existsSync(readmePath)) {
857
- sampleContent = readCodeFile(readmePath);
858
- fence = "markdown";
859
- } else {
860
- const codeFiles = findCodeFilesInSample(samplePath);
861
- if (codeFiles.length > 0) {
862
- const preferredNames = [
863
- "main.tsx",
864
- "main.jsx",
865
- "main.ts",
866
- "main.js",
867
- "App.tsx",
868
- "App.jsx",
869
- "App.vue"
870
- ];
871
- const preferred = codeFiles.find((file) => preferredNames.includes(file.filename)) || codeFiles[0];
872
- sampleContent = readCodeFile(preferred.path);
873
- fence = preferred.extension ? preferred.extension.replace(".", "") : "text";
874
- } else {
875
- sampleContent = "Sample found, but no code files detected.";
876
- }
877
- }
878
- } else {
879
- sampleContent = readCodeFile(samplePath);
880
- fence = extname(samplePath).replace(".", "") || "text";
881
- }
882
-
883
- return {
884
- content: [{
885
- type: "text",
886
- text: [
887
- "# Quick Start: Dynamsoft Document Viewer",
888
- "",
889
- `**SDK Version:** ${sdkEntry.version}`,
890
- `**Trial License:** \`${registry.trial_license}\``,
891
- "",
892
- "## Option 1: CDN",
893
- "```html",
894
- `<script src="${sdkEntry.platforms.web.installation.cdn}"></script>`,
895
- "```",
896
- "",
897
- "## Option 2: NPM",
898
- "```bash",
899
- sdkEntry.platforms.web.installation.npm,
900
- "```",
901
- "",
902
- `## ${sampleName}`,
903
- "```" + fence,
904
- sampleContent,
905
- "```",
906
- "",
907
- `Docs: ${sdkEntry.platforms.web.docs["user-guide"]}`
908
- ].join("\n")
909
- }]
910
- };
911
- }
912
-
913
- return {
914
- isError: true,
915
- content: [{ type: "text", text: "Unsupported product/edition for quickstart." }]
916
- };
917
- }
918
- );
919
-
920
- // ============================================================================
921
- // TOOL: generate_project
922
- // ============================================================================
923
-
924
- server.registerTool(
925
- "generate_project",
926
- {
927
- title: "Generate Project",
928
- description: "Generate a project structure from a sample and return files inline (no zip/download).",
929
- inputSchema: {
930
- product: z.string().describe("Product: dbr, dwt, or ddv"),
931
- edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
932
- platform: z.string().optional().describe("Platform: android, ios, js, python, cpp, java, dotnet, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
933
- version: z.string().optional().describe("Version constraint"),
934
- sample_id: z.string().optional().describe("Sample identifier (name or path)"),
935
- resource_uri: z.string().optional().describe("Resource URI returned by search"),
936
- api_level: z.string().optional().describe("API level: high-level or low-level (mobile only)")
937
- }
938
- },
939
- async ({ product, edition, platform, version, sample_id, resource_uri, api_level }) => {
940
- const normalizedProduct = normalizeProduct(product);
941
- const normalizedPlatform = normalizePlatform(platform);
942
- const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
943
-
944
- const policy = ensureLatestMajor({
945
- product: normalizedProduct,
946
- version,
947
- query: sample_id,
948
- edition: normalizedEdition,
949
- platform: normalizedPlatform
950
- });
951
-
952
- if (!policy.ok) {
953
- return { isError: true, content: [{ type: "text", text: policy.message }] };
954
- }
955
-
956
- let sampleInfo = null;
957
- if (resource_uri) {
958
- const parsed = parseResourceUri(resource_uri);
959
- if (!parsed) {
960
- return {
961
- isError: true,
962
- content: [{
963
- type: "text",
964
- text: "resource_uri must be a sample://... URI. Use search or list_samples to get a valid sample URI."
965
- }]
966
- };
967
- }
968
- if (parsed.scheme !== "sample") {
969
- return {
970
- isError: true,
971
- content: [{
972
- type: "text",
973
- text: "resource_uri must use the sample:// scheme. For doc:// URIs, use resources/read instead."
974
- }]
975
- };
976
- }
977
- sampleInfo = parseSampleUri(resource_uri);
978
- if (!sampleInfo) {
979
- return {
980
- isError: true,
981
- content: [{
982
- type: "text",
983
- text: "Invalid sample URI format. Use search or list_samples to obtain a valid sample:// URI."
984
- }]
985
- };
986
- }
987
- }
988
-
989
- let samplePath = null;
990
- let sampleLabel = "";
991
- let sampleQuery = "";
992
-
993
- if (sampleInfo) {
994
- sampleLabel = sampleInfo.sampleName || resource_uri;
995
- sampleQuery = sampleInfo.sampleName || sample_id || "";
996
- if (sampleInfo.product === "dbr" && sampleInfo.edition === "mobile") {
997
- samplePath = getMobileSamplePath(sampleInfo.platform, sampleInfo.level, sampleInfo.sampleName);
998
- } else if (sampleInfo.product === "dbr" && sampleInfo.edition === "web") {
999
- samplePath = getWebSamplePath(sampleInfo.category, sampleInfo.sampleName);
1000
- } else if (sampleInfo.product === "dbr" && (sampleInfo.edition === "python" || sampleInfo.edition === "server")) {
1001
- samplePath = getPythonSamplePath(sampleInfo.sampleName);
1002
- } else if (sampleInfo.product === "dwt") {
1003
- samplePath = getDwtSamplePath(sampleInfo.category, sampleInfo.sampleName);
1004
- } else if (sampleInfo.product === "ddv") {
1005
- samplePath = getDdvSamplePath(sampleInfo.sampleName);
1006
- }
1007
- } else if (sample_id) {
1008
- if (!normalizedProduct || !normalizedEdition) {
1009
- return {
1010
- isError: true,
1011
- content: [{
1012
- type: "text",
1013
- text: "Specify product/edition or provide resource_uri. Use list_samples or get_index to discover valid scopes."
1014
- }]
1015
- };
1016
- }
1017
-
1018
- const level = normalizeApiLevel(api_level);
1019
- const sampleName = normalizeSampleName(sample_id);
1020
- sampleLabel = sampleName;
1021
- sampleQuery = sampleName;
1022
-
1023
- if (normalizedProduct === "dbr" && normalizedEdition === "mobile") {
1024
- const targetPlatform = normalizedPlatform || "android";
1025
- const primaryPath = getMobileSamplePath(targetPlatform, level, sampleName);
1026
- const altLevel = level === "high-level" ? "low-level" : "high-level";
1027
- const alternatePath = getMobileSamplePath(targetPlatform, altLevel, sampleName);
1028
- samplePath = existsSync(primaryPath) ? primaryPath : (existsSync(alternatePath) ? alternatePath : null);
1029
- } else if (normalizedProduct === "dbr" && normalizedEdition === "web") {
1030
- samplePath = getWebSamplePath(undefined, sampleName);
1031
- } else if (normalizedProduct === "dbr" && normalizedEdition === "server") {
1032
- samplePath = getPythonSamplePath(sampleName);
1033
- } else if (normalizedProduct === "dwt") {
1034
- const categories = discoverDwtSamples();
1035
- let foundCategory = "";
1036
- for (const [category, samples] of Object.entries(categories)) {
1037
- if (samples.includes(sampleName)) {
1038
- foundCategory = category;
1039
- break;
1040
- }
1041
- }
1042
- samplePath = foundCategory ? getDwtSamplePath(foundCategory, sampleName) : null;
1043
- } else if (normalizedProduct === "ddv") {
1044
- samplePath = getDdvSamplePath(sampleName);
1045
- }
1046
- } else {
1047
- return { isError: true, content: [{ type: "text", text: "Provide sample_id or resource_uri." }] };
1048
- }
1049
-
1050
- if (!samplePath || !existsSync(samplePath)) {
1051
- const suggestions = await getSampleSuggestions({
1052
- query: sampleQuery,
1053
- product: normalizedProduct,
1054
- edition: normalizedEdition,
1055
- platform: normalizedPlatform,
1056
- limit: 5
1057
- });
1058
-
1059
- const content = [{
1060
- type: "text",
1061
- text: [
1062
- `Sample not found for "${sampleLabel}".`,
1063
- suggestions.length ? "Related samples:" : "No related samples found. Try search or get_index."
1064
- ].join("\n")
1065
- }];
1066
-
1067
- for (const entry of suggestions) {
1068
- const versionLabel = entry.version ? `v${entry.version}` : "n/a";
1069
- const scopeLabel = formatScopeLabel(entry);
1070
- const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
1071
- const sampleHint = sampleId ? ` | sample_id: ${sampleId}` : "";
1072
- content.push({
1073
- type: "resource_link",
1074
- uri: entry.uri,
1075
- name: entry.title,
1076
- description: `${entry.type.toUpperCase()} | ${scopeLabel} | ${versionLabel} - ${entry.summary}${sampleHint}`,
1077
- mimeType: entry.mimeType,
1078
- annotations: {
1079
- audience: ["assistant"],
1080
- priority: 0.6
1081
- }
1082
- });
1083
- }
1084
-
1085
- if (suggestions.length) {
1086
- const plainLines = suggestions.map((entry, index) => {
1087
- const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
1088
- const sampleNote = sampleId ? ` sample_id=${sampleId}` : "";
1089
- return `- ${index + 1}. ${entry.uri}${sampleNote}`;
1090
- });
1091
- content.push({
1092
- type: "text",
1093
- text: ["Plain URIs (copy/paste):", ...plainLines].join("\n")
1094
- });
1095
- }
1096
-
1097
- return { isError: true, content };
1098
- }
1099
-
1100
- const textExtensions = [
1101
- ".java", ".kt", ".swift", ".m", ".h", ".xml", ".gradle", ".properties",
1102
- ".pro", ".json", ".plist", ".storyboard", ".xib", ".gitignore", ".md",
1103
- ".js", ".jsx", ".ts", ".tsx", ".vue", ".cjs", ".html", ".css"
1104
- ];
1105
-
1106
- const files = [];
1107
- const stat = statSync(samplePath);
1108
- const rootDir = stat.isDirectory() ? samplePath : dirname(samplePath);
1109
-
1110
- function addFile(fullPath) {
1111
- const ext = "." + fullPath.split(".").pop();
1112
- const baseName = fullPath.split(/[\\/]/).pop();
1113
- if (!textExtensions.includes(ext) && !["gradlew", "Podfile"].includes(baseName)) {
1114
- return;
1115
- }
1116
- try {
1117
- const content = readFileSync(fullPath, "utf-8");
1118
- const normalized = content.replace(/\r\n/g, "\n");
1119
- files.push({
1120
- path: relative(rootDir, fullPath),
1121
- content: normalized,
1122
- ext: ext.replace(".", "")
1123
- });
1124
- } catch (e) {
1125
- // Ignore binary or unreadable files
1126
- }
1127
- }
1128
-
1129
- function walk(dir) {
1130
- const entries = readdirSync(dir);
1131
- for (const entry of entries) {
1132
- if (["build", ".gradle", ".idea", ".git", "node_modules", "Pods", "DerivedData", "__pycache__"].includes(entry)) {
1133
- continue;
1134
- }
1135
- const fullPath = join(dir, entry);
1136
- const entryStat = statSync(fullPath);
1137
- if (entryStat.isDirectory()) {
1138
- walk(fullPath);
1139
- } else {
1140
- addFile(fullPath);
1141
- }
1142
- }
1143
- }
1144
-
1145
- if (stat.isDirectory()) {
1146
- walk(samplePath);
1147
- } else {
1148
- addFile(samplePath);
1149
- }
1150
-
1151
- const validFiles = files.filter((f) => f.content.length < 50000);
1152
-
1153
- const output = [
1154
- `# Project Generation: ${sampleLabel}`,
1155
- "",
1156
- "This output contains the file structure for the project.",
1157
- "Note: This tool returns files inline and does not create a downloadable zip.",
1158
- ""
1159
- ];
1160
-
1161
- for (const file of validFiles) {
1162
- output.push(`## ${file.path}`);
1163
- output.push("```" + (file.ext || "text"));
1164
- output.push(file.content);
1165
- output.push("```");
1166
- output.push("");
1167
- }
1168
-
1169
- return { content: [{ type: "text", text: output.join("\n") }] };
1170
- }
1171
- );
1172
- // ============================================================================
1173
- // MCP Resources (tool-discovered, lazy-read)
1174
- // ============================================================================
1175
-
1176
- server.server.registerCapabilities({
1177
- resources: {
1178
- listChanged: false,
1179
- subscribe: true
1180
- }
1181
- });
1182
-
1183
- server.server.setRequestHandler(ListResourcesRequestSchema, async () => {
1184
- // Only surface a small, pinned set to avoid bloating the context window.
1185
- const resources = getPinnedResources().map((r) => ({
1186
- uri: r.uri,
1187
- name: r.title,
1188
- description: r.summary,
1189
- mimeType: r.mimeType
1190
- }));
1191
- return { resources };
1192
- });
1193
-
1194
- server.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1195
- const parsed = parseResourceUri(request.params.uri);
1196
- if (parsed && ["dbr", "dwt", "ddv"].includes(parsed.product)) {
1197
- const policy = ensureLatestMajor({
1198
- product: parsed.product,
1199
- version: parsed.version,
1200
- edition: parsed.edition,
1201
- platform: parsed.platform
1202
- });
1203
- if (!policy.ok) {
1204
- throw new Error(policy.message);
1205
- }
1206
- }
1207
- const resource = await readResourceContent(request.params.uri);
1208
- if (!resource) {
1209
- throw new Error(`Resource not found: ${request.params.uri}`);
1210
- }
1211
- return { contents: [resource] };
1212
- });
1213
-
1214
- server.server.setRequestHandler(SubscribeRequestSchema, async () => ({}));
1215
- server.server.setRequestHandler(UnsubscribeRequestSchema, async () => ({}));
1216
-
1217
- // ============================================================================
1218
- // Start Server
1219
- // ============================================================================
1220
-
1221
- const transport = new StdioServerTransport();
1222
- await server.connect(transport);
1223
-
1224
- if (ragConfig.prewarm) {
1225
- if (ragConfig.prewarmBlock) {
1226
- await prewarmRagIndex();
1227
- } else {
1228
- void prewarmRagIndex();
1229
- }
1230
- }
1
+ #!/usr/bin/env node
2
+ import { readFileSync, readdirSync, existsSync, statSync } from "node:fs";
3
+ import { join, relative, dirname, extname } from "node:path";
4
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
5
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
6
+ import {
7
+ ListResourcesRequestSchema,
8
+ ReadResourceRequestSchema,
9
+ SubscribeRequestSchema,
10
+ UnsubscribeRequestSchema
11
+ } from "@modelcontextprotocol/sdk/types.js";
12
+ import { z } from "zod";
13
+ import { ensureDataReady } from "./data-bootstrap.js";
14
+ import { maybeSyncSubmodulesOnStart } from "./submodule-sync.js";
15
+
16
+ const pkgUrl = new URL("../package.json", import.meta.url);
17
+ const pkg = JSON.parse(readFileSync(pkgUrl, "utf8"));
18
+
19
+ await maybeSyncSubmodulesOnStart();
20
+ const dataStatus = await ensureDataReady();
21
+ if (dataStatus.mode === "downloaded") {
22
+ console.error(
23
+ `[data] mode=downloaded path=${dataStatus.dataRoot} source=${dataStatus.downloaded ? "fresh-download" : "cache"}`
24
+ );
25
+ } else {
26
+ console.error(`[data] mode=${dataStatus.mode} path=${dataStatus.dataRoot}`);
27
+ }
28
+
29
+ const {
30
+ registry,
31
+ LATEST_VERSIONS,
32
+ LATEST_MAJOR,
33
+ discoverDwtSamples,
34
+ findCodeFilesInSample,
35
+ getMobileSamplePath,
36
+ getDbrServerSamplePath,
37
+ getDwtSamplePath,
38
+ getDdvSamplePath,
39
+ readCodeFile,
40
+ getMainCodeFile,
41
+ ensureLatestMajor,
42
+ parseResourceUri,
43
+ parseSampleUri,
44
+ getSampleIdFromUri,
45
+ getSampleEntries,
46
+ buildIndexData,
47
+ getDisplayEdition,
48
+ getDisplayPlatform,
49
+ formatScopeLabel,
50
+ getPinnedResources,
51
+ readResourceContent,
52
+ normalizePlatform,
53
+ normalizeApiLevel,
54
+ normalizeSampleName,
55
+ normalizeProduct,
56
+ normalizeEdition,
57
+ resourceIndex,
58
+ getWebSamplePath
59
+ } = await import("./resource-index.js");
60
+
61
+ const {
62
+ searchResources,
63
+ getSampleSuggestions,
64
+ prewarmRagIndex,
65
+ ragConfig
66
+ } = await import("./rag.js");
67
+
68
+ // ============================================================================
69
+ // MCP Server
70
+ // ============================================================================
71
+
72
+ const server = new McpServer({
73
+ name: "simple-dynamsoft-mcp",
74
+ version: pkg.version,
75
+ description: "MCP server for latest major versions of Dynamsoft SDKs: Barcode Reader (Mobile/Server/Web), Dynamic Web TWAIN, and Document Viewer"
76
+ });
77
+
78
+ function formatScoreLabel(entry) {
79
+ if (!Number.isFinite(entry?.score)) return "";
80
+ return ` | score: ${entry.score.toFixed(3)}`;
81
+ }
82
+
83
+ function formatScoreNote(entry) {
84
+ if (!Number.isFinite(entry?.score)) return "";
85
+ return ` score=${entry.score.toFixed(3)}`;
86
+ }
87
+
88
+ // ============================================================================
89
+ // TOOL: get_index
90
+ // ============================================================================
91
+
92
+ server.registerTool(
93
+ "get_index",
94
+ {
95
+ title: "Get Index",
96
+ description: "Get a compact index of products, editions, versions, and available samples/docs.",
97
+ inputSchema: {}
98
+ },
99
+ async () => ({
100
+ content: [{ type: "text", text: JSON.stringify(buildIndexData(), null, 2) }]
101
+ })
102
+ );
103
+
104
+ // ============================================================================
105
+ // TOOL: search
106
+ // ============================================================================
107
+
108
+ server.registerTool(
109
+ "search",
110
+ {
111
+ title: "Search",
112
+ description: "Semantic (RAG) search across docs and samples with fuzzy fallback; returns resource links for lazy loading.",
113
+ inputSchema: {
114
+ query: z.string().describe("Keywords to search across docs and samples."),
115
+ product: z.string().optional().describe("Product: dbr, dwt, ddv"),
116
+ edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
117
+ platform: z.string().optional().describe("Platform: android, ios, maui, react-native, flutter, js, python, cpp, java, dotnet, nodejs, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
118
+ version: z.string().optional().describe("Version constraint (major or full version)"),
119
+ type: z.enum(["doc", "sample", "index", "policy", "any"]).optional(),
120
+ limit: z.number().int().min(1).max(10).optional().describe("Max results (default 5)")
121
+ }
122
+ },
123
+ async ({ query, product, edition, platform, version, type, limit }) => {
124
+ if (!query || !query.trim()) {
125
+ return { isError: true, content: [{ type: "text", text: "Query is required." }] };
126
+ }
127
+ const normalizedProduct = normalizeProduct(product);
128
+ const normalizedPlatform = normalizePlatform(platform);
129
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
130
+
131
+ const policy = ensureLatestMajor({
132
+ product: normalizedProduct,
133
+ version,
134
+ query,
135
+ edition: normalizedEdition,
136
+ platform: normalizedPlatform
137
+ });
138
+
139
+ if (!policy.ok) {
140
+ return { isError: true, content: [{ type: "text", text: policy.message }] };
141
+ }
142
+
143
+ const maxResults = Math.min(limit || 5, 10);
144
+ const topResults = await searchResources({
145
+ query,
146
+ product: normalizedProduct,
147
+ edition: normalizedEdition,
148
+ platform: normalizedPlatform,
149
+ type: type || "any",
150
+ limit: maxResults
151
+ });
152
+
153
+ if (topResults.length === 0) {
154
+ return {
155
+ content: [{
156
+ type: "text",
157
+ text: `No results for "${query}". Try get_index for available products or adjust filters.`
158
+ }]
159
+ };
160
+ }
161
+
162
+ const content = [
163
+ {
164
+ type: "text",
165
+ text: `Found ${topResults.length} result(s) for "${query}". Read the links you need with resources/read.`
166
+ }
167
+ ];
168
+
169
+ for (const entry of topResults) {
170
+ const versionLabel = entry.version ? `v${entry.version}` : "n/a";
171
+ const scopeLabel = formatScopeLabel(entry);
172
+ const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
173
+ const sampleHint = sampleId ? ` | sample_id: ${sampleId}` : "";
174
+ const scoreLabel = formatScoreLabel(entry);
175
+ content.push({
176
+ type: "resource_link",
177
+ uri: entry.uri,
178
+ name: entry.title,
179
+ description: `${entry.type.toUpperCase()} | ${scopeLabel} | ${versionLabel}${scoreLabel} - ${entry.summary}${sampleHint}`,
180
+ mimeType: entry.mimeType,
181
+ annotations: {
182
+ audience: ["assistant"],
183
+ priority: 0.8
184
+ }
185
+ });
186
+ }
187
+
188
+ const plainLines = topResults.map((entry, index) => {
189
+ const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
190
+ const action = entry.type === "sample" ? "generate_project resource_uri" : "resources/read uri";
191
+ const sampleNote = sampleId ? ` sample_id=${sampleId}` : "";
192
+ const scoreNote = formatScoreNote(entry);
193
+ return `- ${index + 1}. ${entry.uri}${sampleNote}${scoreNote} (${action})`;
194
+ });
195
+ content.push({
196
+ type: "text",
197
+ text: ["Plain URIs (copy/paste):", ...plainLines].join("\n")
198
+ });
199
+
200
+ return { content };
201
+ }
202
+ );
203
+
204
+ // ============================================================================
205
+ // TOOL: list_samples
206
+ // ============================================================================
207
+
208
+ server.registerTool(
209
+ "list_samples",
210
+ {
211
+ title: "List Samples",
212
+ description: "List available sample IDs and URIs for a given scope.",
213
+ inputSchema: {
214
+ product: z.string().optional().describe("Product: dbr, dwt, ddv"),
215
+ edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
216
+ platform: z.string().optional().describe("Platform: android, ios, maui, react-native, flutter, js, python, cpp, java, dotnet, nodejs, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
217
+ limit: z.number().int().min(1).max(200).optional().describe("Max results (default 50)")
218
+ }
219
+ },
220
+ async ({ product, edition, platform, limit }) => {
221
+ const normalizedProduct = normalizeProduct(product);
222
+ const normalizedPlatform = normalizePlatform(platform);
223
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
224
+
225
+ const policy = ensureLatestMajor({
226
+ product: normalizedProduct,
227
+ version: undefined,
228
+ query: "",
229
+ edition: normalizedEdition,
230
+ platform: normalizedPlatform
231
+ });
232
+
233
+ if (!policy.ok) {
234
+ return { isError: true, content: [{ type: "text", text: policy.message }] };
235
+ }
236
+
237
+ const samples = getSampleEntries({
238
+ product: normalizedProduct,
239
+ edition: normalizedEdition,
240
+ platform: normalizedPlatform
241
+ });
242
+
243
+ const maxResults = Math.min(limit || 50, 200);
244
+ const selected = samples.slice(0, maxResults);
245
+
246
+ const payload = selected.map((entry) => ({
247
+ sample_id: getSampleIdFromUri(entry.uri),
248
+ uri: entry.uri,
249
+ product: entry.product,
250
+ edition: getDisplayEdition(entry.edition),
251
+ platform: getDisplayPlatform(entry.platform),
252
+ version: entry.version,
253
+ title: entry.title,
254
+ summary: entry.summary
255
+ }));
256
+
257
+ const lines = [
258
+ `Total matches: ${samples.length}`,
259
+ `Returned: ${payload.length}`,
260
+ "",
261
+ "Plain URIs (copy/paste):",
262
+ ...payload.map((item, index) => {
263
+ const sampleNote = item.sample_id ? ` (sample_id: ${item.sample_id})` : "";
264
+ return `- ${index + 1}. ${item.uri}${sampleNote}`;
265
+ })
266
+ ];
267
+
268
+ const output = {
269
+ total: samples.length,
270
+ returned: payload.length,
271
+ samples: payload
272
+ };
273
+
274
+ return {
275
+ content: [{
276
+ type: "text",
277
+ text: `${lines.join("\n")}\n\nJSON:\n${JSON.stringify(output, null, 2)}`
278
+ }]
279
+ };
280
+ }
281
+ );
282
+
283
+ // ============================================================================
284
+ // TOOL: resolve_sample
285
+ // ============================================================================
286
+
287
+ server.registerTool(
288
+ "resolve_sample",
289
+ {
290
+ title: "Resolve Sample",
291
+ description: "Resolve a sample_id (or sample URI) to matching sample URIs.",
292
+ inputSchema: {
293
+ sample_id: z.string().describe("Sample identifier or sample:// URI"),
294
+ product: z.string().optional().describe("Product: dbr, dwt, ddv"),
295
+ edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
296
+ platform: z.string().optional().describe("Platform: android, ios, maui, react-native, flutter, js, python, cpp, java, dotnet, nodejs, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
297
+ limit: z.number().int().min(1).max(10).optional().describe("Max results (default 5)")
298
+ }
299
+ },
300
+ async ({ sample_id, product, edition, platform, limit }) => {
301
+ if (!sample_id || !sample_id.trim()) {
302
+ return { isError: true, content: [{ type: "text", text: "sample_id is required." }] };
303
+ }
304
+
305
+ const normalizedProduct = normalizeProduct(product);
306
+ const normalizedPlatform = normalizePlatform(platform);
307
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
308
+
309
+ const policy = ensureLatestMajor({
310
+ product: normalizedProduct,
311
+ version: undefined,
312
+ query: sample_id,
313
+ edition: normalizedEdition,
314
+ platform: normalizedPlatform
315
+ });
316
+
317
+ if (!policy.ok) {
318
+ return { isError: true, content: [{ type: "text", text: policy.message }] };
319
+ }
320
+
321
+ if (sample_id.includes("://")) {
322
+ const parsed = parseSampleUri(sample_id);
323
+ if (!parsed) {
324
+ return {
325
+ isError: true,
326
+ content: [{
327
+ type: "text",
328
+ text: "sample_id looks like a URI but is not a valid sample:// URI. For doc:// URIs, use resources/read."
329
+ }]
330
+ };
331
+ }
332
+ const entry = resourceIndex.find((item) => item.uri === sample_id && item.type === "sample");
333
+ if (!entry) {
334
+ return {
335
+ isError: true,
336
+ content: [{
337
+ type: "text",
338
+ text: `Sample URI not found in index: ${sample_id}. Use list_samples or search.`
339
+ }]
340
+ };
341
+ }
342
+
343
+ const payload = [{
344
+ sample_id: getSampleIdFromUri(entry.uri),
345
+ uri: entry.uri,
346
+ product: entry.product,
347
+ edition: getDisplayEdition(entry.edition),
348
+ platform: getDisplayPlatform(entry.platform),
349
+ version: entry.version,
350
+ title: entry.title,
351
+ summary: entry.summary
352
+ }];
353
+
354
+ const output = {
355
+ query: sample_id,
356
+ returned: payload.length,
357
+ samples: payload
358
+ };
359
+
360
+ return {
361
+ content: [{
362
+ type: "text",
363
+ text: [
364
+ `Found ${payload.length} match(es) for "${sample_id}".`,
365
+ "Plain URIs (copy/paste):",
366
+ `- 1. ${entry.uri} (sample_id: ${payload[0].sample_id})`,
367
+ "",
368
+ "JSON:",
369
+ JSON.stringify(output, null, 2)
370
+ ].join("\n")
371
+ }, {
372
+ type: "resource_link",
373
+ uri: entry.uri,
374
+ name: entry.title,
375
+ description: `SAMPLE | ${formatScopeLabel(entry)} | v${entry.version}${formatScoreLabel(entry)} | sample_id: ${payload[0].sample_id}`,
376
+ mimeType: entry.mimeType,
377
+ annotations: {
378
+ audience: ["assistant"],
379
+ priority: 0.8
380
+ }
381
+ }]
382
+ };
383
+ }
384
+
385
+ const sampleQuery = normalizeSampleName(sample_id);
386
+ const maxResults = Math.min(limit || 5, 10);
387
+
388
+ const scopedSamples = getSampleEntries({
389
+ product: normalizedProduct,
390
+ edition: normalizedEdition,
391
+ platform: normalizedPlatform
392
+ });
393
+
394
+ let matches = scopedSamples.filter((entry) => {
395
+ const entryId = getSampleIdFromUri(entry.uri);
396
+ return entryId && entryId.toLowerCase() === sampleQuery.toLowerCase();
397
+ });
398
+
399
+ if (matches.length === 0) {
400
+ matches = await searchResources({
401
+ query: sample_id,
402
+ product: normalizedProduct,
403
+ edition: normalizedEdition,
404
+ platform: normalizedPlatform,
405
+ type: "sample",
406
+ limit: maxResults
407
+ });
408
+ }
409
+
410
+ const selected = matches.slice(0, maxResults);
411
+ if (selected.length === 0) {
412
+ const suggestions = await getSampleSuggestions({
413
+ query: sample_id,
414
+ product: normalizedProduct,
415
+ edition: normalizedEdition,
416
+ platform: normalizedPlatform,
417
+ limit: maxResults
418
+ });
419
+
420
+ const content = [{
421
+ type: "text",
422
+ text: suggestions.length
423
+ ? `No exact sample match for "${sample_id}". Related samples:`
424
+ : `No samples found for "${sample_id}". Try list_samples or search.`
425
+ }];
426
+
427
+ for (const entry of suggestions) {
428
+ const sampleId = getSampleIdFromUri(entry.uri);
429
+ content.push({
430
+ type: "resource_link",
431
+ uri: entry.uri,
432
+ name: entry.title,
433
+ description: `${entry.type.toUpperCase()} | ${formatScopeLabel(entry)} | v${entry.version}${formatScoreLabel(entry)} | sample_id: ${sampleId || "n/a"}`,
434
+ mimeType: entry.mimeType,
435
+ annotations: {
436
+ audience: ["assistant"],
437
+ priority: 0.6
438
+ }
439
+ });
440
+ }
441
+
442
+ if (suggestions.length) {
443
+ const plainLines = suggestions.map((entry, index) => {
444
+ const sampleId = getSampleIdFromUri(entry.uri);
445
+ const sampleNote = sampleId ? ` (sample_id: ${sampleId})` : "";
446
+ const scoreNote = formatScoreNote(entry);
447
+ return `- ${index + 1}. ${entry.uri}${sampleNote}${scoreNote}`;
448
+ });
449
+ content.push({
450
+ type: "text",
451
+ text: ["Plain URIs (copy/paste):", ...plainLines].join("\n")
452
+ });
453
+ }
454
+
455
+ return { isError: true, content };
456
+ }
457
+
458
+ const payload = selected.map((entry) => ({
459
+ sample_id: getSampleIdFromUri(entry.uri),
460
+ uri: entry.uri,
461
+ product: entry.product,
462
+ edition: getDisplayEdition(entry.edition),
463
+ platform: getDisplayPlatform(entry.platform),
464
+ version: entry.version,
465
+ title: entry.title,
466
+ summary: entry.summary
467
+ }));
468
+
469
+ const lines = [
470
+ `Found ${selected.length} match(es) for "${sample_id}".`,
471
+ "Plain URIs (copy/paste):",
472
+ ...selected.map((entry, index) => {
473
+ const sampleId = getSampleIdFromUri(entry.uri);
474
+ const sampleNote = sampleId ? ` (sample_id: ${sampleId})` : "";
475
+ const scoreNote = formatScoreNote(entry);
476
+ return `- ${index + 1}. ${entry.uri}${sampleNote}${scoreNote}`;
477
+ })
478
+ ];
479
+
480
+ const output = {
481
+ query: sample_id,
482
+ returned: payload.length,
483
+ samples: payload
484
+ };
485
+
486
+ const content = [{
487
+ type: "text",
488
+ text: `${lines.join("\n")}\n\nJSON:\n${JSON.stringify(output, null, 2)}`
489
+ }];
490
+
491
+ for (const entry of selected) {
492
+ const sampleId = getSampleIdFromUri(entry.uri);
493
+ content.push({
494
+ type: "resource_link",
495
+ uri: entry.uri,
496
+ name: entry.title,
497
+ description: `${entry.type.toUpperCase()} | ${formatScopeLabel(entry)} | v${entry.version}${formatScoreLabel(entry)} | sample_id: ${sampleId || "n/a"}`,
498
+ mimeType: entry.mimeType,
499
+ annotations: {
500
+ audience: ["assistant"],
501
+ priority: 0.8
502
+ }
503
+ });
504
+ }
505
+
506
+ return { content };
507
+ }
508
+ );
509
+
510
+ // ============================================================================
511
+ // TOOL: resolve_version
512
+ // ============================================================================
513
+
514
+ server.registerTool(
515
+ "resolve_version",
516
+ {
517
+ title: "Resolve Version",
518
+ description: "Resolve a concrete latest-major version for a product/edition/platform.",
519
+ inputSchema: {
520
+ product: z.string().describe("Product: dbr, dwt, or ddv"),
521
+ edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
522
+ platform: z.string().optional().describe("Platform: android, ios, maui, react-native, flutter, js, python, cpp, java, dotnet, nodejs, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
523
+ constraint: z.string().optional().describe("Version constraint, e.g., latest, 11.x, 10"),
524
+ feature: z.string().optional().describe("Optional feature hint")
525
+ }
526
+ },
527
+ async ({ product, edition, platform, constraint, feature }) => {
528
+ const normalizedProduct = normalizeProduct(product);
529
+ const normalizedPlatform = normalizePlatform(platform);
530
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
531
+
532
+ if (!["dbr", "dwt", "ddv"].includes(normalizedProduct)) {
533
+ return {
534
+ isError: true,
535
+ content: [{ type: "text", text: `Unknown product "${product}". Use dbr, dwt, or ddv.` }]
536
+ };
537
+ }
538
+
539
+ const policy = ensureLatestMajor({
540
+ product: normalizedProduct,
541
+ version: constraint,
542
+ query: feature,
543
+ edition: normalizedEdition,
544
+ platform: normalizedPlatform
545
+ });
546
+
547
+ if (!policy.ok) {
548
+ return { isError: true, content: [{ type: "text", text: policy.message }] };
549
+ }
550
+
551
+ if (normalizedProduct === "dbr") {
552
+ if (!normalizedEdition) {
553
+ const lines = [
554
+ "# DBR Version Resolution",
555
+ `- Latest major: v${LATEST_MAJOR.dbr}`,
556
+ `- Mobile: ${LATEST_VERSIONS.dbr.mobile}`,
557
+ `- Web: ${LATEST_VERSIONS.dbr.web}`,
558
+ `- Server/Desktop: ${LATEST_VERSIONS.dbr.server}`,
559
+ "",
560
+ "Specify edition/platform to resolve a single version."
561
+ ];
562
+ return { content: [{ type: "text", text: lines.join("\n") }] };
563
+ }
564
+
565
+ const resolved = LATEST_VERSIONS.dbr[normalizedEdition];
566
+ if (!resolved) {
567
+ return {
568
+ isError: true,
569
+ content: [{ type: "text", text: `Edition "${normalizedEdition}" is not hosted by this MCP server.` }]
570
+ };
571
+ }
572
+
573
+ const displayPlatform = normalizedPlatform === "web" ? "js" : normalizedPlatform;
574
+ const lines = [
575
+ "# DBR Version Resolution",
576
+ `- Edition: ${normalizedEdition}`,
577
+ displayPlatform ? `- Platform: ${displayPlatform}` : "",
578
+ `- Latest major: v${LATEST_MAJOR.dbr}`,
579
+ `- Resolved version: ${resolved}`
580
+ ].filter(Boolean);
581
+
582
+ return { content: [{ type: "text", text: lines.join("\n") }] };
583
+ }
584
+
585
+ if (normalizedProduct === "dwt") {
586
+ const lines = [
587
+ "# DWT Version Resolution",
588
+ `- Latest major: v${LATEST_MAJOR.dwt}`,
589
+ `- Resolved version: ${LATEST_VERSIONS.dwt.web}`
590
+ ];
591
+ return { content: [{ type: "text", text: lines.join("\n") }] };
592
+ }
593
+
594
+ const lines = [
595
+ "# DDV Version Resolution",
596
+ `- Latest major: v${LATEST_MAJOR.ddv}`,
597
+ `- Resolved version: ${LATEST_VERSIONS.ddv.web}`
598
+ ];
599
+
600
+ return { content: [{ type: "text", text: lines.join("\n") }] };
601
+ }
602
+ );
603
+
604
+ // ============================================================================
605
+ // TOOL: get_quickstart
606
+ // ============================================================================
607
+
608
+ server.registerTool(
609
+ "get_quickstart",
610
+ {
611
+ title: "Get Quickstart",
612
+ description: "Opinionated quickstart for a target product/edition/platform.",
613
+ inputSchema: {
614
+ product: z.string().describe("Product: dbr, dwt, or ddv"),
615
+ edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
616
+ platform: z.string().optional().describe("Platform: android, ios, maui, react-native, flutter, js, python, cpp, java, dotnet, nodejs, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
617
+ language: z.string().optional().describe("Language hint: kotlin, java, swift, js, ts, python, cpp, csharp, react, vue, angular"),
618
+ version: z.string().optional().describe("Version constraint"),
619
+ api_level: z.string().optional().describe("API level: high-level or low-level (mobile only)"),
620
+ scenario: z.string().optional().describe("Scenario: camera, image, single, multiple, react, etc.")
621
+ }
622
+ },
623
+ async ({ product, edition, platform, language, version, api_level, scenario }) => {
624
+ const normalizedProduct = normalizeProduct(product);
625
+ const normalizedPlatform = normalizePlatform(platform);
626
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
627
+ const policy = ensureLatestMajor({
628
+ product: normalizedProduct,
629
+ version,
630
+ query: scenario,
631
+ edition: normalizedEdition,
632
+ platform: normalizedPlatform
633
+ });
634
+
635
+ if (!policy.ok) {
636
+ return { isError: true, content: [{ type: "text", text: policy.message }] };
637
+ }
638
+
639
+ if (normalizedProduct === "dbr" && normalizedEdition === "server") {
640
+ const sdkEntry = registry.sdks["dbr-server"];
641
+ const scenarioLower = (scenario || "").toLowerCase();
642
+ const sampleName = scenarioLower.includes("video") ? "video_decoding" : "read_an_image";
643
+ const samplePath = getDbrServerSamplePath("python", sampleName);
644
+
645
+ if (!existsSync(samplePath)) {
646
+ return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
647
+ }
648
+
649
+ const content = readCodeFile(samplePath);
650
+
651
+ return {
652
+ content: [{
653
+ type: "text",
654
+ text: [
655
+ "# Quick Start: DBR Server (Python)",
656
+ "",
657
+ `**SDK Version:** ${sdkEntry.version}`,
658
+ `**Trial License:** \`${registry.trial_license}\``,
659
+ "",
660
+ "## Install",
661
+ "```bash",
662
+ sdkEntry.platforms.python.installation.pip,
663
+ "```",
664
+ "",
665
+ `## ${sampleName}.py`,
666
+ "```python",
667
+ content,
668
+ "```",
669
+ "",
670
+ `Docs: ${sdkEntry.platforms.python.docs["user-guide"]}`
671
+ ].join("\n")
672
+ }]
673
+ };
674
+ }
675
+
676
+ if (normalizedProduct === "dbr" && normalizedEdition === "web") {
677
+ const sdkEntry = registry.sdks["dbr-web"];
678
+ const scenarioLower = (scenario || "").toLowerCase();
679
+ const sampleName = scenarioLower.includes("image") ? "read-an-image" : "hello-world";
680
+ const samplePath = getWebSamplePath("root", sampleName);
681
+
682
+ if (!samplePath || !existsSync(samplePath)) {
683
+ return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
684
+ }
685
+
686
+ const content = readCodeFile(samplePath);
687
+
688
+ return {
689
+ content: [{
690
+ type: "text",
691
+ text: [
692
+ "# Quick Start: DBR Web",
693
+ "",
694
+ `**SDK Version:** ${sdkEntry.version}`,
695
+ `**Trial License:** \`${registry.trial_license}\``,
696
+ "",
697
+ "## Option 1: CDN",
698
+ "```html",
699
+ `<script src="${sdkEntry.platforms.web.installation.cdn}"></script>`,
700
+ "```",
701
+ "",
702
+ "## Option 2: NPM",
703
+ "```bash",
704
+ sdkEntry.platforms.web.installation.npm,
705
+ "```",
706
+ "",
707
+ `## ${sampleName}.html`,
708
+ "```html",
709
+ content,
710
+ "```",
711
+ "",
712
+ `Docs: ${sdkEntry.platforms.web.docs["user-guide"]}`
713
+ ].join("\n")
714
+ }]
715
+ };
716
+ }
717
+
718
+ if (normalizedProduct === "dbr" && normalizedEdition === "mobile") {
719
+ const sdkEntry = registry.sdks["dbr-mobile"];
720
+ const targetPlatform = normalizedPlatform || "android";
721
+ const level = normalizeApiLevel(api_level || scenario);
722
+ const scenarioLower = (scenario || "").toLowerCase();
723
+
724
+ let sampleName = "ScanSingleBarcode";
725
+ if (scenarioLower.includes("multiple") || scenarioLower.includes("batch")) sampleName = "ScanMultipleBarcodes";
726
+ else if (scenarioLower.includes("image") || scenarioLower.includes("file")) sampleName = "DecodeFromAnImage";
727
+
728
+ if (level === "low-level") {
729
+ if (sampleName === "ScanSingleBarcode" || sampleName === "ScanMultipleBarcodes") {
730
+ sampleName = "DecodeWithCameraEnhancer";
731
+ }
732
+ }
733
+
734
+ const samplePath = getMobileSamplePath(targetPlatform, level, sampleName);
735
+ if (!existsSync(samplePath)) {
736
+ return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
737
+ }
738
+
739
+ const mainFile = getMainCodeFile(targetPlatform, samplePath);
740
+ if (!mainFile) {
741
+ return { isError: true, content: [{ type: "text", text: "Could not find main code file." }] };
742
+ }
743
+
744
+ const content = readCodeFile(mainFile.path);
745
+ const langExt = mainFile.filename.split(".").pop();
746
+
747
+ let deps = "";
748
+ if (targetPlatform === "android") {
749
+ deps = `
750
+ ## Dependencies
751
+
752
+ **Project build.gradle**
753
+ \`\`\`groovy
754
+ allprojects {
755
+ repositories {
756
+ google()
757
+ mavenCentral()
758
+ maven { url "${registry.maven_url}" }
759
+ }
760
+ }
761
+ \`\`\`
762
+
763
+ **App build.gradle**
764
+ \`\`\`groovy
765
+ dependencies {
766
+ implementation 'com.dynamsoft:barcodereaderbundle:${sdkEntry.version}'
767
+ }
768
+ \`\`\`
769
+
770
+ **AndroidManifest.xml**
771
+ \`\`\`xml
772
+ <uses-permission android:name="android.permission.CAMERA" />
773
+ \`\`\``;
774
+ } else {
775
+ deps = `
776
+ ## Dependencies
777
+
778
+ **Podfile**
779
+ \`\`\`ruby
780
+ platform :ios, '11.0'
781
+ use_frameworks!
782
+
783
+ target 'YourApp' do
784
+ pod 'DynamsoftBarcodeReaderBundle'
785
+ end
786
+ \`\`\`
787
+
788
+ **Info.plist**
789
+ \`\`\`xml
790
+ <key>NSCameraUsageDescription</key>
791
+ <string>Camera access for barcode scanning</string>
792
+ \`\`\``;
793
+ }
794
+
795
+ const output = [
796
+ "# Quick Start: DBR Mobile",
797
+ "",
798
+ `**SDK Version:** ${sdkEntry.version}`,
799
+ `**API Level:** ${level}`,
800
+ `**Trial License:** \`${registry.trial_license}\``,
801
+ "",
802
+ deps,
803
+ "",
804
+ `## ${mainFile.filename}`,
805
+ "```" + langExt,
806
+ content,
807
+ "```",
808
+ "",
809
+ `Docs: ${sdkEntry.platforms[targetPlatform]?.docs[level]?.["user-guide"] || "N/A"}`
810
+ ];
811
+
812
+ return { content: [{ type: "text", text: output.join("\n") }] };
813
+ }
814
+
815
+ if (normalizedProduct === "dwt") {
816
+ const sdkEntry = registry.sdks["dwt"];
817
+ const samplePath = getDwtSamplePath("scan", "basic-scan");
818
+
819
+ if (!samplePath || !existsSync(samplePath)) {
820
+ return { isError: true, content: [{ type: "text", text: "Sample not found: basic-scan." }] };
821
+ }
822
+
823
+ const content = readCodeFile(samplePath);
824
+
825
+ return {
826
+ content: [{
827
+ type: "text",
828
+ text: [
829
+ "# Quick Start: Dynamic Web TWAIN",
830
+ "",
831
+ `**SDK Version:** ${sdkEntry.version}`,
832
+ `**Trial License:** \`${registry.trial_license}\``,
833
+ "",
834
+ "## Option 1: CDN",
835
+ "```html",
836
+ `<script src="${sdkEntry.platforms.web.installation.cdn}"></script>`,
837
+ "```",
838
+ "",
839
+ "## Option 2: NPM",
840
+ "```bash",
841
+ sdkEntry.platforms.web.installation.npm,
842
+ "```",
843
+ "",
844
+ "## basic-scan.html",
845
+ "```html",
846
+ content,
847
+ "```",
848
+ "",
849
+ `Docs: ${sdkEntry.platforms.web.docs["user-guide"]}`
850
+ ].join("\n")
851
+ }]
852
+ };
853
+ }
854
+
855
+ if (normalizedProduct === "ddv") {
856
+ const sdkEntry = registry.sdks["ddv"];
857
+ const hint = `${scenario || ""} ${language || ""}`.toLowerCase();
858
+ let sampleName = "hello-world";
859
+
860
+ if (hint.includes("react")) sampleName = "react-vite";
861
+ else if (hint.includes("vue")) sampleName = "vue";
862
+ else if (hint.includes("angular")) sampleName = "angular";
863
+ else if (hint.includes("next")) sampleName = "next";
864
+
865
+ const samplePath = getDdvSamplePath(sampleName);
866
+ if (!samplePath || !existsSync(samplePath)) {
867
+ return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
868
+ }
869
+
870
+ let sampleContent = "";
871
+ let fence = "text";
872
+ const stat = statSync(samplePath);
873
+ if (stat.isDirectory()) {
874
+ const readmePath = join(samplePath, "README.md");
875
+ if (existsSync(readmePath)) {
876
+ sampleContent = readCodeFile(readmePath);
877
+ fence = "markdown";
878
+ } else {
879
+ const codeFiles = findCodeFilesInSample(samplePath);
880
+ if (codeFiles.length > 0) {
881
+ const preferredNames = [
882
+ "main.tsx",
883
+ "main.jsx",
884
+ "main.ts",
885
+ "main.js",
886
+ "App.tsx",
887
+ "App.jsx",
888
+ "App.vue"
889
+ ];
890
+ const preferred = codeFiles.find((file) => preferredNames.includes(file.filename)) || codeFiles[0];
891
+ sampleContent = readCodeFile(preferred.path);
892
+ fence = preferred.extension ? preferred.extension.replace(".", "") : "text";
893
+ } else {
894
+ sampleContent = "Sample found, but no code files detected.";
895
+ }
896
+ }
897
+ } else {
898
+ sampleContent = readCodeFile(samplePath);
899
+ fence = extname(samplePath).replace(".", "") || "text";
900
+ }
901
+
902
+ return {
903
+ content: [{
904
+ type: "text",
905
+ text: [
906
+ "# Quick Start: Dynamsoft Document Viewer",
907
+ "",
908
+ `**SDK Version:** ${sdkEntry.version}`,
909
+ `**Trial License:** \`${registry.trial_license}\``,
910
+ "",
911
+ "## Option 1: CDN",
912
+ "```html",
913
+ `<script src="${sdkEntry.platforms.web.installation.cdn}"></script>`,
914
+ "```",
915
+ "",
916
+ "## Option 2: NPM",
917
+ "```bash",
918
+ sdkEntry.platforms.web.installation.npm,
919
+ "```",
920
+ "",
921
+ `## ${sampleName}`,
922
+ "```" + fence,
923
+ sampleContent,
924
+ "```",
925
+ "",
926
+ `Docs: ${sdkEntry.platforms.web.docs["user-guide"]}`
927
+ ].join("\n")
928
+ }]
929
+ };
930
+ }
931
+
932
+ return {
933
+ isError: true,
934
+ content: [{ type: "text", text: "Unsupported product/edition for quickstart." }]
935
+ };
936
+ }
937
+ );
938
+
939
+ // ============================================================================
940
+ // TOOL: generate_project
941
+ // ============================================================================
942
+
943
+ server.registerTool(
944
+ "generate_project",
945
+ {
946
+ title: "Generate Project",
947
+ description: "Generate a project structure from a sample and return files inline (no zip/download).",
948
+ inputSchema: {
949
+ product: z.string().describe("Product: dbr, dwt, or ddv"),
950
+ edition: z.string().optional().describe("Edition: mobile, web, server/desktop"),
951
+ platform: z.string().optional().describe("Platform: android, ios, maui, react-native, flutter, js, python, cpp, java, dotnet, nodejs, angular, blazor, capacitor, electron, es6, native-ts, next, nuxt, pwa, react, requirejs, svelte, vue, webview"),
952
+ version: z.string().optional().describe("Version constraint"),
953
+ sample_id: z.string().optional().describe("Sample identifier (name or path)"),
954
+ resource_uri: z.string().optional().describe("Resource URI returned by search"),
955
+ api_level: z.string().optional().describe("API level: high-level or low-level (mobile only)")
956
+ }
957
+ },
958
+ async ({ product, edition, platform, version, sample_id, resource_uri, api_level }) => {
959
+ const normalizedProduct = normalizeProduct(product);
960
+ const normalizedPlatform = normalizePlatform(platform);
961
+ const normalizedEdition = normalizeEdition(edition, normalizedPlatform, normalizedProduct);
962
+
963
+ const policy = ensureLatestMajor({
964
+ product: normalizedProduct,
965
+ version,
966
+ query: sample_id,
967
+ edition: normalizedEdition,
968
+ platform: normalizedPlatform
969
+ });
970
+
971
+ if (!policy.ok) {
972
+ return { isError: true, content: [{ type: "text", text: policy.message }] };
973
+ }
974
+
975
+ let sampleInfo = null;
976
+ if (resource_uri) {
977
+ const parsed = parseResourceUri(resource_uri);
978
+ if (!parsed) {
979
+ return {
980
+ isError: true,
981
+ content: [{
982
+ type: "text",
983
+ text: "resource_uri must be a sample://... URI. Use search or list_samples to get a valid sample URI."
984
+ }]
985
+ };
986
+ }
987
+ if (parsed.scheme !== "sample") {
988
+ return {
989
+ isError: true,
990
+ content: [{
991
+ type: "text",
992
+ text: "resource_uri must use the sample:// scheme. For doc:// URIs, use resources/read instead."
993
+ }]
994
+ };
995
+ }
996
+ sampleInfo = parseSampleUri(resource_uri);
997
+ if (!sampleInfo) {
998
+ return {
999
+ isError: true,
1000
+ content: [{
1001
+ type: "text",
1002
+ text: "Invalid sample URI format. Use search or list_samples to obtain a valid sample:// URI."
1003
+ }]
1004
+ };
1005
+ }
1006
+ }
1007
+
1008
+ let samplePath = null;
1009
+ let sampleLabel = "";
1010
+ let sampleQuery = "";
1011
+
1012
+ if (sampleInfo) {
1013
+ sampleLabel = sampleInfo.sampleName || resource_uri;
1014
+ sampleQuery = sampleInfo.sampleName || sample_id || "";
1015
+ if (sampleInfo.product === "dbr" && sampleInfo.edition === "mobile") {
1016
+ samplePath = getMobileSamplePath(sampleInfo.platform, sampleInfo.level, sampleInfo.sampleName);
1017
+ } else if (sampleInfo.product === "dbr" && sampleInfo.edition === "web") {
1018
+ samplePath = getWebSamplePath(sampleInfo.category, sampleInfo.sampleName);
1019
+ } else if (sampleInfo.product === "dbr" && (sampleInfo.edition === "python" || sampleInfo.edition === "server")) {
1020
+ samplePath = getDbrServerSamplePath(sampleInfo.platform, sampleInfo.sampleName);
1021
+ } else if (sampleInfo.product === "dwt") {
1022
+ samplePath = getDwtSamplePath(sampleInfo.category, sampleInfo.sampleName);
1023
+ } else if (sampleInfo.product === "ddv") {
1024
+ samplePath = getDdvSamplePath(sampleInfo.sampleName);
1025
+ }
1026
+ } else if (sample_id) {
1027
+ if (!normalizedProduct || !normalizedEdition) {
1028
+ return {
1029
+ isError: true,
1030
+ content: [{
1031
+ type: "text",
1032
+ text: "Specify product/edition or provide resource_uri. Use list_samples or get_index to discover valid scopes."
1033
+ }]
1034
+ };
1035
+ }
1036
+
1037
+ const level = normalizeApiLevel(api_level);
1038
+ const sampleName = normalizeSampleName(sample_id);
1039
+ sampleLabel = sampleName;
1040
+ sampleQuery = sampleName;
1041
+
1042
+ if (normalizedProduct === "dbr" && normalizedEdition === "mobile") {
1043
+ const targetPlatform = normalizedPlatform || "android";
1044
+ const primaryPath = getMobileSamplePath(targetPlatform, level, sampleName);
1045
+ const altLevel = level === "high-level" ? "low-level" : "high-level";
1046
+ const alternatePath = getMobileSamplePath(targetPlatform, altLevel, sampleName);
1047
+ samplePath = existsSync(primaryPath) ? primaryPath : (existsSync(alternatePath) ? alternatePath : null);
1048
+ } else if (normalizedProduct === "dbr" && normalizedEdition === "web") {
1049
+ samplePath = getWebSamplePath(undefined, sampleName);
1050
+ } else if (normalizedProduct === "dbr" && normalizedEdition === "server") {
1051
+ samplePath = getDbrServerSamplePath(normalizedPlatform || "python", sampleName);
1052
+ } else if (normalizedProduct === "dwt") {
1053
+ const categories = discoverDwtSamples();
1054
+ let foundCategory = "";
1055
+ for (const [category, samples] of Object.entries(categories)) {
1056
+ if (samples.includes(sampleName)) {
1057
+ foundCategory = category;
1058
+ break;
1059
+ }
1060
+ }
1061
+ samplePath = foundCategory ? getDwtSamplePath(foundCategory, sampleName) : null;
1062
+ } else if (normalizedProduct === "ddv") {
1063
+ samplePath = getDdvSamplePath(sampleName);
1064
+ }
1065
+ } else {
1066
+ return { isError: true, content: [{ type: "text", text: "Provide sample_id or resource_uri." }] };
1067
+ }
1068
+
1069
+ if (!samplePath || !existsSync(samplePath)) {
1070
+ const suggestions = await getSampleSuggestions({
1071
+ query: sampleQuery,
1072
+ product: normalizedProduct,
1073
+ edition: normalizedEdition,
1074
+ platform: normalizedPlatform,
1075
+ limit: 5
1076
+ });
1077
+
1078
+ const content = [{
1079
+ type: "text",
1080
+ text: [
1081
+ `Sample not found for "${sampleLabel}".`,
1082
+ suggestions.length ? "Related samples:" : "No related samples found. Try search or get_index."
1083
+ ].join("\n")
1084
+ }];
1085
+
1086
+ for (const entry of suggestions) {
1087
+ const versionLabel = entry.version ? `v${entry.version}` : "n/a";
1088
+ const scopeLabel = formatScopeLabel(entry);
1089
+ const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
1090
+ const sampleHint = sampleId ? ` | sample_id: ${sampleId}` : "";
1091
+ content.push({
1092
+ type: "resource_link",
1093
+ uri: entry.uri,
1094
+ name: entry.title,
1095
+ description: `${entry.type.toUpperCase()} | ${scopeLabel} | ${versionLabel} - ${entry.summary}${sampleHint}`,
1096
+ mimeType: entry.mimeType,
1097
+ annotations: {
1098
+ audience: ["assistant"],
1099
+ priority: 0.6
1100
+ }
1101
+ });
1102
+ }
1103
+
1104
+ if (suggestions.length) {
1105
+ const plainLines = suggestions.map((entry, index) => {
1106
+ const sampleId = entry.type === "sample" ? getSampleIdFromUri(entry.uri) : "";
1107
+ const sampleNote = sampleId ? ` sample_id=${sampleId}` : "";
1108
+ return `- ${index + 1}. ${entry.uri}${sampleNote}`;
1109
+ });
1110
+ content.push({
1111
+ type: "text",
1112
+ text: ["Plain URIs (copy/paste):", ...plainLines].join("\n")
1113
+ });
1114
+ }
1115
+
1116
+ return { isError: true, content };
1117
+ }
1118
+
1119
+ const textExtensions = [
1120
+ ".java", ".kt", ".swift", ".m", ".h", ".xml", ".gradle", ".properties",
1121
+ ".pro", ".json", ".plist", ".storyboard", ".xib", ".gitignore", ".md",
1122
+ ".js", ".jsx", ".ts", ".tsx", ".vue", ".cjs", ".html", ".css"
1123
+ ];
1124
+
1125
+ const files = [];
1126
+ const stat = statSync(samplePath);
1127
+ const rootDir = stat.isDirectory() ? samplePath : dirname(samplePath);
1128
+
1129
+ function addFile(fullPath) {
1130
+ const ext = "." + fullPath.split(".").pop();
1131
+ const baseName = fullPath.split(/[\\/]/).pop();
1132
+ if (!textExtensions.includes(ext) && !["gradlew", "Podfile"].includes(baseName)) {
1133
+ return;
1134
+ }
1135
+ try {
1136
+ const content = readFileSync(fullPath, "utf-8");
1137
+ const normalized = content.replace(/\r\n/g, "\n");
1138
+ files.push({
1139
+ path: relative(rootDir, fullPath),
1140
+ content: normalized,
1141
+ ext: ext.replace(".", "")
1142
+ });
1143
+ } catch (e) {
1144
+ // Ignore binary or unreadable files
1145
+ }
1146
+ }
1147
+
1148
+ function walk(dir) {
1149
+ const entries = readdirSync(dir);
1150
+ for (const entry of entries) {
1151
+ if (["build", ".gradle", ".idea", ".git", "node_modules", "Pods", "DerivedData", "__pycache__"].includes(entry)) {
1152
+ continue;
1153
+ }
1154
+ const fullPath = join(dir, entry);
1155
+ const entryStat = statSync(fullPath);
1156
+ if (entryStat.isDirectory()) {
1157
+ walk(fullPath);
1158
+ } else {
1159
+ addFile(fullPath);
1160
+ }
1161
+ }
1162
+ }
1163
+
1164
+ if (stat.isDirectory()) {
1165
+ walk(samplePath);
1166
+ } else {
1167
+ addFile(samplePath);
1168
+ }
1169
+
1170
+ const validFiles = files.filter((f) => f.content.length < 50000);
1171
+
1172
+ const output = [
1173
+ `# Project Generation: ${sampleLabel}`,
1174
+ "",
1175
+ "This output contains the file structure for the project.",
1176
+ "Note: This tool returns files inline and does not create a downloadable zip.",
1177
+ ""
1178
+ ];
1179
+
1180
+ for (const file of validFiles) {
1181
+ output.push(`## ${file.path}`);
1182
+ output.push("```" + (file.ext || "text"));
1183
+ output.push(file.content);
1184
+ output.push("```");
1185
+ output.push("");
1186
+ }
1187
+
1188
+ return { content: [{ type: "text", text: output.join("\n") }] };
1189
+ }
1190
+ );
1191
+ // ============================================================================
1192
+ // MCP Resources (tool-discovered, lazy-read)
1193
+ // ============================================================================
1194
+
1195
+ server.server.registerCapabilities({
1196
+ resources: {
1197
+ listChanged: false,
1198
+ subscribe: true
1199
+ }
1200
+ });
1201
+
1202
+ server.server.setRequestHandler(ListResourcesRequestSchema, async () => {
1203
+ // Only surface a small, pinned set to avoid bloating the context window.
1204
+ const resources = getPinnedResources().map((r) => ({
1205
+ uri: r.uri,
1206
+ name: r.title,
1207
+ description: r.summary,
1208
+ mimeType: r.mimeType
1209
+ }));
1210
+ return { resources };
1211
+ });
1212
+
1213
+ server.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1214
+ const parsed = parseResourceUri(request.params.uri);
1215
+ if (parsed && ["dbr", "dwt", "ddv"].includes(parsed.product)) {
1216
+ const policy = ensureLatestMajor({
1217
+ product: parsed.product,
1218
+ version: parsed.version,
1219
+ edition: parsed.edition,
1220
+ platform: parsed.platform
1221
+ });
1222
+ if (!policy.ok) {
1223
+ throw new Error(policy.message);
1224
+ }
1225
+ }
1226
+ const resource = await readResourceContent(request.params.uri);
1227
+ if (!resource) {
1228
+ throw new Error(`Resource not found: ${request.params.uri}`);
1229
+ }
1230
+ return { contents: [resource] };
1231
+ });
1232
+
1233
+ server.server.setRequestHandler(SubscribeRequestSchema, async () => ({}));
1234
+ server.server.setRequestHandler(UnsubscribeRequestSchema, async () => ({}));
1235
+
1236
+ // ============================================================================
1237
+ // Start Server
1238
+ // ============================================================================
1239
+
1240
+ const transport = new StdioServerTransport();
1241
+ await server.connect(transport);
1242
+
1243
+ if (ragConfig.prewarm) {
1244
+ if (ragConfig.prewarmBlock) {
1245
+ await prewarmRagIndex();
1246
+ } else {
1247
+ void prewarmRagIndex();
1248
+ }
1249
+ }
1250
+