simple-dynamsoft-mcp 7.3.15 → 7.3.17
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.
- package/data/metadata/data-manifest.json +42 -52
- package/data/metadata/dynamsoft_sdks.json +4 -7
- package/package.json +1 -1
- package/src/data/repo-map.js +1 -2
- package/src/server/normalizers.js +0 -4
- package/src/server/resource-index/builders.js +0 -4
- package/src/server/resource-index/config.js +1 -2
- package/src/server/resource-index/paths.js +0 -1
- package/src/server/resource-index/samples.js +2 -25
- package/src/server/resource-index.js +0 -1
- package/src/server/tools/register-quickstart-tools.js +5 -9
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"branch": "main",
|
|
9
9
|
"owner": "dynamsoft-docs",
|
|
10
10
|
"repo": "barcode-reader-docs-js",
|
|
11
|
-
"commit": "
|
|
12
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/barcode-reader-docs-js/zip/
|
|
11
|
+
"commit": "b5103a2349e3c956ce09b6553eafab662f0a3960",
|
|
12
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/barcode-reader-docs-js/zip/b5103a2349e3c956ce09b6553eafab662f0a3960"
|
|
13
13
|
},
|
|
14
14
|
{
|
|
15
15
|
"name": "data/documentation/barcode-reader-docs-mobile",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"branch": "main",
|
|
19
19
|
"owner": "dynamsoft-docs",
|
|
20
20
|
"repo": "barcode-reader-docs-mobile",
|
|
21
|
-
"commit": "
|
|
22
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/barcode-reader-docs-mobile/zip/
|
|
21
|
+
"commit": "9180d56b5a75c09d8655870c7135c72eb9e8083c",
|
|
22
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/barcode-reader-docs-mobile/zip/9180d56b5a75c09d8655870c7135c72eb9e8083c"
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
"name": "data/documentation/barcode-reader-docs-server",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"branch": "main",
|
|
29
29
|
"owner": "dynamsoft-docs",
|
|
30
30
|
"repo": "barcode-reader-docs-server",
|
|
31
|
-
"commit": "
|
|
32
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/barcode-reader-docs-server/zip/
|
|
31
|
+
"commit": "64c9dd5f5181a1d5a2a19bf355f9e7b460e07456",
|
|
32
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/barcode-reader-docs-server/zip/64c9dd5f5181a1d5a2a19bf355f9e7b460e07456"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"name": "data/documentation/capture-vision-docs",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"branch": "main",
|
|
39
39
|
"owner": "dynamsoft-docs",
|
|
40
40
|
"repo": "capture-vision-docs",
|
|
41
|
-
"commit": "
|
|
42
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs/zip/
|
|
41
|
+
"commit": "2160a60f3a49a2303d97821f34fc9b073949f56b",
|
|
42
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs/zip/2160a60f3a49a2303d97821f34fc9b073949f56b"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
"name": "data/documentation/capture-vision-docs-js",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"branch": "main",
|
|
49
49
|
"owner": "dynamsoft-docs",
|
|
50
50
|
"repo": "capture-vision-docs-js",
|
|
51
|
-
"commit": "
|
|
52
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs-js/zip/
|
|
51
|
+
"commit": "581215abd3b2545f19a4fe2becbe14391807aa19",
|
|
52
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs-js/zip/581215abd3b2545f19a4fe2becbe14391807aa19"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"name": "data/documentation/capture-vision-docs-mobile",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"branch": "main",
|
|
59
59
|
"owner": "dynamsoft-docs",
|
|
60
60
|
"repo": "capture-vision-docs-mobile",
|
|
61
|
-
"commit": "
|
|
62
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs-mobile/zip/
|
|
61
|
+
"commit": "c489558ee74b0a6c6f88ccf9a1759e73af4cbc19",
|
|
62
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs-mobile/zip/c489558ee74b0a6c6f88ccf9a1759e73af4cbc19"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"name": "data/documentation/capture-vision-docs-server",
|
|
@@ -68,8 +68,8 @@
|
|
|
68
68
|
"branch": "main",
|
|
69
69
|
"owner": "dynamsoft-docs",
|
|
70
70
|
"repo": "capture-vision-docs-server",
|
|
71
|
-
"commit": "
|
|
72
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs-server/zip/
|
|
71
|
+
"commit": "e58e718a1d1e9ec7aab2252e66002da454b65497",
|
|
72
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/capture-vision-docs-server/zip/e58e718a1d1e9ec7aab2252e66002da454b65497"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"name": "data/documentation/document-viewer-docs",
|
|
@@ -78,8 +78,8 @@
|
|
|
78
78
|
"branch": "main",
|
|
79
79
|
"owner": "dynamsoft-docs",
|
|
80
80
|
"repo": "document-viewer-docs",
|
|
81
|
-
"commit": "
|
|
82
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/document-viewer-docs/zip/
|
|
81
|
+
"commit": "1b54f576ce68d1d53137bb42bfe4a9b9e23c0c7f",
|
|
82
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/document-viewer-docs/zip/1b54f576ce68d1d53137bb42bfe4a9b9e23c0c7f"
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
85
|
"name": "data/documentation/mobile-document-scanner-docs-js",
|
|
@@ -88,8 +88,8 @@
|
|
|
88
88
|
"branch": "main",
|
|
89
89
|
"owner": "dynamsoft-docs",
|
|
90
90
|
"repo": "mobile-document-scanner-docs-js",
|
|
91
|
-
"commit": "
|
|
92
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/mobile-document-scanner-docs-js/zip/
|
|
91
|
+
"commit": "36ee95f72fd5ec7f4f5949ceaec9795e7209b3f5",
|
|
92
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/mobile-document-scanner-docs-js/zip/36ee95f72fd5ec7f4f5949ceaec9795e7209b3f5"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
95
95
|
"name": "data/documentation/mrz-scanner-docs-js",
|
|
@@ -98,8 +98,8 @@
|
|
|
98
98
|
"branch": "main",
|
|
99
99
|
"owner": "dynamsoft-docs",
|
|
100
100
|
"repo": "mrz-scanner-docs-js",
|
|
101
|
-
"commit": "
|
|
102
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/mrz-scanner-docs-js/zip/
|
|
101
|
+
"commit": "62af9a01fb37fba17a45ce7d5a85eb26d61d0e6d",
|
|
102
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/mrz-scanner-docs-js/zip/62af9a01fb37fba17a45ce7d5a85eb26d61d0e6d"
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
105
|
"name": "data/documentation/web-twain-docs",
|
|
@@ -108,8 +108,8 @@
|
|
|
108
108
|
"branch": "master",
|
|
109
109
|
"owner": "dynamsoft-docs",
|
|
110
110
|
"repo": "web-twain-docs",
|
|
111
|
-
"commit": "
|
|
112
|
-
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/web-twain-docs/zip/
|
|
111
|
+
"commit": "749745bcb64a03db1389e2f22dfe8e8717d98bc6",
|
|
112
|
+
"archiveUrl": "https://codeload.github.com/dynamsoft-docs/web-twain-docs/zip/749745bcb64a03db1389e2f22dfe8e8717d98bc6"
|
|
113
113
|
},
|
|
114
114
|
{
|
|
115
115
|
"name": "data/samples/document-scanner-javascript",
|
|
@@ -138,8 +138,8 @@
|
|
|
138
138
|
"branch": "main",
|
|
139
139
|
"owner": "Dynamsoft",
|
|
140
140
|
"repo": "barcode-reader-javascript-samples",
|
|
141
|
-
"commit": "
|
|
142
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-javascript-samples/zip/
|
|
141
|
+
"commit": "054fdcb341d5373844e7e6e415138b6dad245eca",
|
|
142
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-javascript-samples/zip/054fdcb341d5373844e7e6e415138b6dad245eca"
|
|
143
143
|
},
|
|
144
144
|
{
|
|
145
145
|
"name": "data/samples/dynamsoft-barcode-reader-c-cpp",
|
|
@@ -148,8 +148,8 @@
|
|
|
148
148
|
"branch": "main",
|
|
149
149
|
"owner": "Dynamsoft",
|
|
150
150
|
"repo": "barcode-reader-c-cpp-samples",
|
|
151
|
-
"commit": "
|
|
152
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-c-cpp-samples/zip/
|
|
151
|
+
"commit": "97a8353cd99060789c0ca84e14983f900e85a098",
|
|
152
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-c-cpp-samples/zip/97a8353cd99060789c0ca84e14983f900e85a098"
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"name": "data/samples/dynamsoft-barcode-reader-dotnet",
|
|
@@ -158,8 +158,8 @@
|
|
|
158
158
|
"branch": "main",
|
|
159
159
|
"owner": "Dynamsoft",
|
|
160
160
|
"repo": "barcode-reader-dotnet-samples",
|
|
161
|
-
"commit": "
|
|
162
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-dotnet-samples/zip/
|
|
161
|
+
"commit": "bb3f248e589038c8d35549fe476caf714d711d41",
|
|
162
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-dotnet-samples/zip/bb3f248e589038c8d35549fe476caf714d711d41"
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
165
|
"name": "data/samples/dynamsoft-barcode-reader-flutter",
|
|
@@ -178,8 +178,8 @@
|
|
|
178
178
|
"branch": "main",
|
|
179
179
|
"owner": "Dynamsoft",
|
|
180
180
|
"repo": "barcode-reader-java-samples",
|
|
181
|
-
"commit": "
|
|
182
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-java-samples/zip/
|
|
181
|
+
"commit": "3ae362e2393e293d97e04eab1cd74888907f7077",
|
|
182
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-java-samples/zip/3ae362e2393e293d97e04eab1cd74888907f7077"
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
"name": "data/samples/dynamsoft-barcode-reader-maui",
|
|
@@ -208,8 +208,8 @@
|
|
|
208
208
|
"branch": "master",
|
|
209
209
|
"owner": "Dynamsoft",
|
|
210
210
|
"repo": "barcode-reader-python-samples",
|
|
211
|
-
"commit": "
|
|
212
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-python-samples/zip/
|
|
211
|
+
"commit": "607e8dbe7f91397ffc64d5a6a39e254fcafa8156",
|
|
212
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/barcode-reader-python-samples/zip/607e8dbe7f91397ffc64d5a6a39e254fcafa8156"
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"name": "data/samples/dynamsoft-barcode-reader-react-native",
|
|
@@ -228,8 +228,8 @@
|
|
|
228
228
|
"branch": "main",
|
|
229
229
|
"owner": "Dynamsoft",
|
|
230
230
|
"repo": "capture-vision-cpp-samples",
|
|
231
|
-
"commit": "
|
|
232
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-cpp-samples/zip/
|
|
231
|
+
"commit": "a6ad252510f82a7613e1b5282956d245f803e25f",
|
|
232
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-cpp-samples/zip/a6ad252510f82a7613e1b5282956d245f803e25f"
|
|
233
233
|
},
|
|
234
234
|
{
|
|
235
235
|
"name": "data/samples/dynamsoft-capture-vision-dotnet",
|
|
@@ -238,8 +238,8 @@
|
|
|
238
238
|
"branch": "main",
|
|
239
239
|
"owner": "Dynamsoft",
|
|
240
240
|
"repo": "capture-vision-dotnet-samples",
|
|
241
|
-
"commit": "
|
|
242
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-dotnet-samples/zip/
|
|
241
|
+
"commit": "9d7aab6c9f4e49a94a90bbd7023fa2e0ea64ae27",
|
|
242
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-dotnet-samples/zip/9d7aab6c9f4e49a94a90bbd7023fa2e0ea64ae27"
|
|
243
243
|
},
|
|
244
244
|
{
|
|
245
245
|
"name": "data/samples/dynamsoft-capture-vision-flutter",
|
|
@@ -258,18 +258,8 @@
|
|
|
258
258
|
"branch": "main",
|
|
259
259
|
"owner": "Dynamsoft",
|
|
260
260
|
"repo": "capture-vision-java-samples",
|
|
261
|
-
"commit": "
|
|
262
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-java-samples/zip/
|
|
263
|
-
},
|
|
264
|
-
{
|
|
265
|
-
"name": "data/samples/dynamsoft-capture-vision-javascript",
|
|
266
|
-
"path": "samples/dynamsoft-capture-vision-javascript",
|
|
267
|
-
"url": "https://github.com/Dynamsoft/capture-vision-javascript-samples.git",
|
|
268
|
-
"branch": "main",
|
|
269
|
-
"owner": "Dynamsoft",
|
|
270
|
-
"repo": "capture-vision-javascript-samples",
|
|
271
|
-
"commit": "2cf1e432d9bf9bd8380a2875aefd6dd6f91daf90",
|
|
272
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-javascript-samples/zip/2cf1e432d9bf9bd8380a2875aefd6dd6f91daf90"
|
|
261
|
+
"commit": "06caf6f25a809337cb6aa952493c1e62fd568d85",
|
|
262
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-java-samples/zip/06caf6f25a809337cb6aa952493c1e62fd568d85"
|
|
273
263
|
},
|
|
274
264
|
{
|
|
275
265
|
"name": "data/samples/dynamsoft-capture-vision-maui",
|
|
@@ -308,8 +298,8 @@
|
|
|
308
298
|
"branch": "main",
|
|
309
299
|
"owner": "Dynamsoft",
|
|
310
300
|
"repo": "capture-vision-python-samples",
|
|
311
|
-
"commit": "
|
|
312
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-python-samples/zip/
|
|
301
|
+
"commit": "7f157b0aa16b8e6e3d4f4e7566b6615850cdec6b",
|
|
302
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-python-samples/zip/7f157b0aa16b8e6e3d4f4e7566b6615850cdec6b"
|
|
313
303
|
},
|
|
314
304
|
{
|
|
315
305
|
"name": "data/samples/dynamsoft-capture-vision-react-native",
|
|
@@ -318,8 +308,8 @@
|
|
|
318
308
|
"branch": "main",
|
|
319
309
|
"owner": "Dynamsoft",
|
|
320
310
|
"repo": "capture-vision-react-native-samples",
|
|
321
|
-
"commit": "
|
|
322
|
-
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-react-native-samples/zip/
|
|
311
|
+
"commit": "2b8d0384f41ced564f65cc2e791fc5758fe8a16c",
|
|
312
|
+
"archiveUrl": "https://codeload.github.com/Dynamsoft/capture-vision-react-native-samples/zip/2b8d0384f41ced564f65cc2e791fc5758fe8a16c"
|
|
323
313
|
},
|
|
324
314
|
{
|
|
325
315
|
"name": "data/samples/dynamsoft-capture-vision-spm",
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
"dbr-web": {
|
|
229
229
|
"name": "Dynamsoft Barcode Reader JavaScript SDK",
|
|
230
230
|
"description": "Barcode scanning for web applications using JavaScript/TypeScript.",
|
|
231
|
-
"version": "11.4.
|
|
231
|
+
"version": "11.4.2001",
|
|
232
232
|
"default_platform": "web",
|
|
233
233
|
"snippet_path": "dynamsoft-barcode-reader/web",
|
|
234
234
|
"platforms": {
|
|
@@ -269,7 +269,7 @@
|
|
|
269
269
|
},
|
|
270
270
|
"dcv-server": {
|
|
271
271
|
"name": "Dynamsoft Capture Vision Server/Desktop SDK",
|
|
272
|
-
"description": "Capture Vision workflows for Python, .NET, Java, C++, and Node.js, including
|
|
272
|
+
"description": "Capture Vision workflows for Python, .NET, Java, C++, and Node.js, including MRZ, document normalization, and driver license scenarios.",
|
|
273
273
|
"version": "3.4.2001",
|
|
274
274
|
"default_platform": "python",
|
|
275
275
|
"snippet_path": "dynamsoft-capture-vision/server",
|
|
@@ -346,8 +346,8 @@
|
|
|
346
346
|
},
|
|
347
347
|
"dcv-web": {
|
|
348
348
|
"name": "Dynamsoft Capture Vision JavaScript SDK",
|
|
349
|
-
"description": "Capture Vision workflows for JavaScript web apps, including
|
|
350
|
-
"version": "3.4.
|
|
349
|
+
"description": "Capture Vision workflows for JavaScript web apps, including MRZ processing scenarios.",
|
|
350
|
+
"version": "3.4.2001",
|
|
351
351
|
"default_platform": "web",
|
|
352
352
|
"snippet_path": "dynamsoft-capture-vision/web",
|
|
353
353
|
"platforms": {
|
|
@@ -360,9 +360,6 @@
|
|
|
360
360
|
"user-guide": "https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/user-guide/",
|
|
361
361
|
"api-reference": "https://www.dynamsoft.com/capture-vision/docs/web/programming/javascript/api-reference/"
|
|
362
362
|
},
|
|
363
|
-
"samples": {
|
|
364
|
-
"repo": "https://github.com/Dynamsoft/capture-vision-javascript-samples"
|
|
365
|
-
},
|
|
366
363
|
"installation": {
|
|
367
364
|
"npm": "npm install dynamsoft-capture-vision-bundle"
|
|
368
365
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simple-dynamsoft-mcp",
|
|
3
|
-
"version": "7.3.
|
|
3
|
+
"version": "7.3.17",
|
|
4
4
|
"description": "MCP server for Dynamsoft SDKs - Capture Vision, Barcode Reader (Mobile/Python/Web), Dynamic Web TWAIN, and Document Viewer. Provides documentation, code snippets, and API guidance.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
package/src/data/repo-map.js
CHANGED
|
@@ -56,7 +56,7 @@ const REPO_MAP = {
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
samples: {
|
|
59
|
-
web: [
|
|
59
|
+
web: [],
|
|
60
60
|
mobile: [
|
|
61
61
|
"samples/dynamsoft-capture-vision-mobile",
|
|
62
62
|
"samples/dynamsoft-capture-vision-maui",
|
|
@@ -72,7 +72,6 @@ const REPO_MAP = {
|
|
|
72
72
|
"samples/dynamsoft-capture-vision-nodejs"
|
|
73
73
|
],
|
|
74
74
|
any: [
|
|
75
|
-
"samples/dynamsoft-capture-vision-javascript",
|
|
76
75
|
"samples/dynamsoft-capture-vision-mobile",
|
|
77
76
|
"samples/dynamsoft-capture-vision-python",
|
|
78
77
|
"samples/dynamsoft-capture-vision-dotnet",
|
|
@@ -10,7 +10,6 @@ const sdkAliases = {
|
|
|
10
10
|
"capture-vision": "dcv-mobile",
|
|
11
11
|
"dynamsoft capture vision": "dcv-mobile",
|
|
12
12
|
"mrz scanner": "dcv-mobile",
|
|
13
|
-
"vin scanner": "dcv-mobile",
|
|
14
13
|
"driver license scanner": "dcv-mobile",
|
|
15
14
|
"document normalization": "dcv-mobile",
|
|
16
15
|
"document normalizer": "dcv-mobile",
|
|
@@ -167,8 +166,6 @@ const dcvFeatureTerms = [
|
|
|
167
166
|
"capture vision",
|
|
168
167
|
"mrz",
|
|
169
168
|
"machine readable zone",
|
|
170
|
-
"vin",
|
|
171
|
-
"vehicle identification",
|
|
172
169
|
"driver license",
|
|
173
170
|
"drivers license",
|
|
174
171
|
"id card",
|
|
@@ -267,7 +264,6 @@ function normalizeProduct(product) {
|
|
|
267
264
|
"dynamsoft capture vision",
|
|
268
265
|
"dynamsoft capture vision sdk",
|
|
269
266
|
"capture vision bundle",
|
|
270
|
-
"vin scanner",
|
|
271
267
|
"driver license scanner"
|
|
272
268
|
].includes(normalized)
|
|
273
269
|
) {
|
|
@@ -39,9 +39,6 @@ function getDcvScenarioTags(sampleName) {
|
|
|
39
39
|
if (normalized.includes("mrz")) {
|
|
40
40
|
tags.push("mrz", "passport", "id-card", "machine-readable-zone");
|
|
41
41
|
}
|
|
42
|
-
if (normalized.includes("vin")) {
|
|
43
|
-
tags.push("vin", "vehicle-identification-number", "vehicle", "automotive");
|
|
44
|
-
}
|
|
45
42
|
if (normalized.includes("driver") || normalized.includes("license")) {
|
|
46
43
|
tags.push("driver-license", "id-card", "dl", "aamva");
|
|
47
44
|
}
|
|
@@ -430,7 +427,6 @@ function buildIndexData({
|
|
|
430
427
|
"Barcode-only workflows where DCV-specific workflows are not required."
|
|
431
428
|
],
|
|
432
429
|
useDcvWhen: [
|
|
433
|
-
"VIN scanning",
|
|
434
430
|
"MRZ/passport/ID scanning",
|
|
435
431
|
"Driver license parsing",
|
|
436
432
|
"Document normalization/auto-capture/cropping",
|
|
@@ -9,7 +9,6 @@ const SAMPLE_DIRS = {
|
|
|
9
9
|
dbrReactNative: "dynamsoft-barcode-reader-react-native",
|
|
10
10
|
dbrFlutter: "dynamsoft-barcode-reader-flutter",
|
|
11
11
|
dbrNodejs: "dynamsoft-capture-vision-nodejs",
|
|
12
|
-
dcvWeb: "dynamsoft-capture-vision-javascript",
|
|
13
12
|
mrzWeb: "mrz-scanner-javascript",
|
|
14
13
|
mdsWeb: "document-scanner-javascript",
|
|
15
14
|
dcvMobile: "dynamsoft-capture-vision-mobile",
|
|
@@ -171,7 +170,7 @@ const DCV_SERVER_PREFERRED_FILES = {
|
|
|
171
170
|
java: ["Main.java", "App.java"],
|
|
172
171
|
cpp: ["main.cpp", "Main.cpp"],
|
|
173
172
|
nodejs: ["index.js", "index.mjs", "app.js", "app.mjs", "server.js", "server.mjs"],
|
|
174
|
-
python: ["document_scanner.py", "mrz_scanner.py", "
|
|
173
|
+
python: ["document_scanner.py", "mrz_scanner.py", "driver_license_scanner.py", "gs1_ai_scanner.py"]
|
|
175
174
|
};
|
|
176
175
|
|
|
177
176
|
const DCV_SERVER_PREFERRED_EXTS = {
|
|
@@ -28,7 +28,6 @@ const SAMPLE_ROOTS = {
|
|
|
28
28
|
dbrReactNative: join(samplesRoot, SAMPLE_DIRS.dbrReactNative),
|
|
29
29
|
dbrFlutter: join(samplesRoot, SAMPLE_DIRS.dbrFlutter),
|
|
30
30
|
dbrNodejs: join(samplesRoot, SAMPLE_DIRS.dbrNodejs),
|
|
31
|
-
dcvWeb: join(samplesRoot, SAMPLE_DIRS.dcvWeb),
|
|
32
31
|
mrzWeb: join(samplesRoot, SAMPLE_DIRS.mrzWeb),
|
|
33
32
|
mdsWeb: join(samplesRoot, SAMPLE_DIRS.mdsWeb),
|
|
34
33
|
dcvMobile: join(samplesRoot, SAMPLE_DIRS.dcvMobile),
|
|
@@ -156,7 +156,7 @@ function discoverDirectoryNamesWithFilter(path, matcher) {
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
function isDcvScenarioSampleName(sampleName) {
|
|
159
|
-
return /scan|scanner|mrz|
|
|
159
|
+
return /scan|scanner|mrz|driver|license|document|gs1/i.test(sampleName || "");
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
function discoverDbrServerSamples(platform) {
|
|
@@ -254,15 +254,7 @@ function getDcvServerPlatforms() {
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
function discoverDcvWebSamples() {
|
|
257
|
-
|
|
258
|
-
if (!existsSync(SAMPLE_ROOTS.dcvWeb)) return [];
|
|
259
|
-
|
|
260
|
-
for (const entry of readdirSync(SAMPLE_ROOTS.dcvWeb, { withFileTypes: true })) {
|
|
261
|
-
if (entry.name.startsWith(".")) continue;
|
|
262
|
-
if (entry.isDirectory()) sampleSet.add(entry.name);
|
|
263
|
-
if (entry.isFile() && entry.name.endsWith(".html")) sampleSet.add(entry.name.replace(".html", ""));
|
|
264
|
-
}
|
|
265
|
-
return Array.from(sampleSet).sort();
|
|
257
|
+
return [];
|
|
266
258
|
}
|
|
267
259
|
|
|
268
260
|
function getDcvWebFrameworkPlatforms() {
|
|
@@ -690,21 +682,6 @@ function getDcvServerSamplePath(platform, sampleName) {
|
|
|
690
682
|
}
|
|
691
683
|
|
|
692
684
|
function getDcvWebSamplePath(sampleName) {
|
|
693
|
-
if (!existsSync(SAMPLE_ROOTS.dcvWeb)) return null;
|
|
694
|
-
const directDir = join(SAMPLE_ROOTS.dcvWeb, sampleName);
|
|
695
|
-
if (existsSync(directDir) && statSync(directDir).isDirectory()) {
|
|
696
|
-
const indexPath = join(directDir, "index.html");
|
|
697
|
-
if (existsSync(indexPath)) return indexPath;
|
|
698
|
-
const readmePath = join(directDir, "README.md");
|
|
699
|
-
if (existsSync(readmePath)) return readmePath;
|
|
700
|
-
for (const entry of readdirSync(directDir, { withFileTypes: true })) {
|
|
701
|
-
if (entry.isFile() && entry.name.endsWith(".html")) return join(directDir, entry.name);
|
|
702
|
-
}
|
|
703
|
-
return directDir;
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
const htmlPath = join(SAMPLE_ROOTS.dcvWeb, `${sampleName}.html`);
|
|
707
|
-
if (existsSync(htmlPath)) return htmlPath;
|
|
708
685
|
return null;
|
|
709
686
|
}
|
|
710
687
|
|
|
@@ -576,7 +576,6 @@ function getRagSignatureData() {
|
|
|
576
576
|
dbrReactNativeSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.dbrReactNative),
|
|
577
577
|
dbrFlutterSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.dbrFlutter),
|
|
578
578
|
dbrNodejsSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.dbrNodejs),
|
|
579
|
-
dcvWebSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.dcvWeb),
|
|
580
579
|
mrzWebSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.mrzWeb),
|
|
581
580
|
mdsWebSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.mdsWeb),
|
|
582
581
|
dcvMobileSamplesHead: readManifestRepoCommit(SAMPLE_ROOTS.dcvMobile),
|
|
@@ -112,7 +112,7 @@ export function registerQuickstartTools({
|
|
|
112
112
|
language: z.string().optional().describe("Language hint: kotlin, java, swift, js, ts, python, cpp, csharp, react, vue, angular"),
|
|
113
113
|
version: z.string().optional().describe("Version constraint"),
|
|
114
114
|
api_level: z.string().optional().describe("API level: high-level or low-level (mobile only)"),
|
|
115
|
-
scenario: z.string().optional().describe("Scenario: camera, image, single, multiple, MRZ,
|
|
115
|
+
scenario: z.string().optional().describe("Scenario: camera, image, single, multiple, MRZ, document scan/normalization, driver license, react, etc.")
|
|
116
116
|
},
|
|
117
117
|
annotations: {
|
|
118
118
|
readOnlyHint: true,
|
|
@@ -166,7 +166,6 @@ export function registerQuickstartTools({
|
|
|
166
166
|
const platformName = normalizePlatform(platformHint) || "python";
|
|
167
167
|
if (platformName === "python") {
|
|
168
168
|
if (hint.includes("mrz")) return "mrz_scanner";
|
|
169
|
-
if (hint.includes("vin")) return "vin_scanner";
|
|
170
169
|
if (hint.includes("driver") || hint.includes("license")) return "driver_license_scanner";
|
|
171
170
|
if (hint.includes("gs1")) return "gs1_ai_scanner";
|
|
172
171
|
return "document_scanner";
|
|
@@ -178,7 +177,6 @@ export function registerQuickstartTools({
|
|
|
178
177
|
return "express";
|
|
179
178
|
}
|
|
180
179
|
if (hint.includes("mrz")) return "MRZScanner";
|
|
181
|
-
if (hint.includes("vin")) return "VINScanner";
|
|
182
180
|
if (hint.includes("driver") || hint.includes("license")) return "DriverLicenseScanner";
|
|
183
181
|
if (hint.includes("gs1")) return "GS1AIScanner";
|
|
184
182
|
return "DocumentScanner";
|
|
@@ -188,11 +186,9 @@ export function registerQuickstartTools({
|
|
|
188
186
|
const lowerToName = new Map(sampleNames.map((name) => [String(name).toLowerCase(), name]));
|
|
189
187
|
const candidates = hint.includes("mrz")
|
|
190
188
|
? ["scanmrz", "mrzscanner"]
|
|
191
|
-
: hint.includes("
|
|
192
|
-
? ["
|
|
193
|
-
:
|
|
194
|
-
? ["driverlicensescanner"]
|
|
195
|
-
: ["scandocument", "documentscanner"];
|
|
189
|
+
: (hint.includes("driver") || hint.includes("license"))
|
|
190
|
+
? ["driverlicensescanner"]
|
|
191
|
+
: ["scandocument", "documentscanner"];
|
|
196
192
|
for (const candidate of candidates) {
|
|
197
193
|
if (lowerToName.has(candidate)) return lowerToName.get(candidate);
|
|
198
194
|
}
|
|
@@ -297,7 +293,7 @@ export function registerQuickstartTools({
|
|
|
297
293
|
const available = discoverDcvWebSamples();
|
|
298
294
|
const sampleName = isPublicDcvProduct
|
|
299
295
|
? (normalizedProduct === "mrz" ? "MRZScanner" : "DocumentScanner")
|
|
300
|
-
: (
|
|
296
|
+
: (available[0] || "DocumentScanner");
|
|
301
297
|
const samplePath = getDcvWebSamplePath(sampleName);
|
|
302
298
|
if (!samplePath || !existsSync(samplePath)) {
|
|
303
299
|
return { isError: true, content: [{ type: "text", text: `Sample not found: ${sampleName}.` }] };
|