amcjt-mcp-server 0.0.3 → 0.0.4
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/README.md +34 -4
- package/dist/tools/lottery/index.js +6 -6
- package/dist/tools/lottery/index.js.map +1 -1
- package/dist/tools/lottery/ocr.d.ts +30 -2
- package/dist/tools/lottery/ocr.d.ts.map +1 -1
- package/dist/tools/lottery/ocr.js +129 -2
- package/dist/tools/lottery/ocr.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
- **TypeScript**: 强类型 JavaScript,提供更好的开发体验和代码质量
|
|
18
18
|
- **MCP SDK**: Model Context Protocol 官方 SDK,用于构建 MCP 服务器
|
|
19
19
|
- **Zod**: 类型安全的模式验证库,用于参数验证
|
|
20
|
+
- **dotenv**: 环境变量管理
|
|
20
21
|
- **Node.js**: 运行时环境(要求 >= 18.0.0)
|
|
21
22
|
|
|
22
23
|
## 快速开始
|
|
@@ -139,22 +140,43 @@ npx amcjt-mcp-server
|
|
|
139
140
|
|
|
140
141
|
#### 4.2 ocr_lottery_ticket - 彩票图片OCR识别
|
|
141
142
|
|
|
142
|
-
|
|
143
|
+
识别彩票图片中的号码信息,支持双色球等彩票类型。支持多种图片输入方式:本地文件路径、图片URL或Base64编码数据。使用 Moonshot API (Kimi k2.5) 进行图像识别
|
|
143
144
|
|
|
144
145
|
**参数:**
|
|
145
146
|
|
|
146
|
-
- `
|
|
147
|
+
- `image` (string, 必需): 图片输入,支持三种格式:
|
|
148
|
+
1. 本地文件路径(如:`C:/Users/xxx/lottery.jpg`)
|
|
149
|
+
2. 图片URL(以 `http://` 或 `https://` 开头)
|
|
150
|
+
3. Base64编码(以 `data:image` 开头)
|
|
147
151
|
- `lottoType` (string, 可选): 彩票类型代码,101表示双色球(默认)
|
|
148
152
|
|
|
149
153
|
**环境变量:**
|
|
150
154
|
|
|
151
155
|
- `MOONSHOT_API_KEY`: Moonshot AI API 密钥(必需)
|
|
152
156
|
|
|
153
|
-
|
|
157
|
+
**示例(本地文件路径 - 推荐):**
|
|
158
|
+
|
|
159
|
+
```json
|
|
160
|
+
{
|
|
161
|
+
"image": "C:/Users/xxx/Desktop/lottery.jpg",
|
|
162
|
+
"lottoType": "101"
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**示例(图片URL):**
|
|
154
167
|
|
|
155
168
|
```json
|
|
156
169
|
{
|
|
157
|
-
"
|
|
170
|
+
"image": "https://example.com/lottery.jpg",
|
|
171
|
+
"lottoType": "101"
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**示例(Base64编码):**
|
|
176
|
+
|
|
177
|
+
```json
|
|
178
|
+
{
|
|
179
|
+
"image": "data:image/jpeg;base64,/9j/4AAQ...",
|
|
158
180
|
"lottoType": "101"
|
|
159
181
|
}
|
|
160
182
|
```
|
|
@@ -225,6 +247,13 @@ export MOONSHOT_API_KEY="your-moonshot-api-key"
|
|
|
225
247
|
export WECHAT_WEBHOOK_KEY="your-wechat-webhook-key"
|
|
226
248
|
```
|
|
227
249
|
|
|
250
|
+
或在项目根目录创建 `.env` 文件:
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
MOONSHOT_API_KEY=your-moonshot-api-key
|
|
254
|
+
WECHAT_WEBHOOK_KEY=your-wechat-webhook-key
|
|
255
|
+
```
|
|
256
|
+
|
|
228
257
|
## 开发指南
|
|
229
258
|
|
|
230
259
|
### 安装依赖
|
|
@@ -306,6 +335,7 @@ src/
|
|
|
306
335
|
3. **错误处理**: 所有工具都有完善的错误处理,但实际使用中仍需注意异常情况
|
|
307
336
|
4. **国际化**: 目前主要支持中文界面和错误信息
|
|
308
337
|
5. **彩票数据**: 彩票开奖数据来源于第三方API,可能存在延迟或不准确的情况
|
|
338
|
+
6. **OCR图片输入**: 推荐使用本地文件路径方式,避免命令行长度限制问题
|
|
309
339
|
|
|
310
340
|
## 许可证
|
|
311
341
|
|
|
@@ -64,27 +64,27 @@ function registerLotteryTools(server) {
|
|
|
64
64
|
// ==================== 2. 彩票图片 OCR 识别工具 ====================
|
|
65
65
|
server.registerTool('ocr_lottery_ticket', {
|
|
66
66
|
title: '彩票图片OCR识别',
|
|
67
|
-
description: '
|
|
67
|
+
description: '识别彩票图片中的号码信息,支持双色球等彩票类型。支持本地文件路径、URL 或 Base64 编码的图片数据',
|
|
68
68
|
inputSchema: zod_1.z.object({
|
|
69
|
-
|
|
69
|
+
image: zod_1.z.string().describe('图片输入,支持三种格式:1) 本地文件路径(如:C:/Users/xxx/lottery.jpg)2) 图片URL(以 http:// 或 https:// 开头)3) Base64编码(以 data:image 开头)'),
|
|
70
70
|
lottoType: zod_1.z.string().optional().default('101').describe('彩票类型代码,101表示双色球')
|
|
71
71
|
})
|
|
72
72
|
}, async (args) => {
|
|
73
73
|
try {
|
|
74
|
-
const {
|
|
75
|
-
if (!
|
|
74
|
+
const { image, lottoType = '101' } = args;
|
|
75
|
+
if (!image) {
|
|
76
76
|
return {
|
|
77
77
|
content: [
|
|
78
78
|
{
|
|
79
79
|
type: 'text',
|
|
80
|
-
text: '
|
|
80
|
+
text: '错误:请提供图片数据(本地路径、URL 或 Base64)'
|
|
81
81
|
}
|
|
82
82
|
],
|
|
83
83
|
isError: true
|
|
84
84
|
};
|
|
85
85
|
}
|
|
86
86
|
// 执行OCR识别
|
|
87
|
-
const ticket = await (0, ocr_1.recognizeLotteryTicket)(
|
|
87
|
+
const ticket = await (0, ocr_1.recognizeLotteryTicket)(image);
|
|
88
88
|
// 验证号码格式
|
|
89
89
|
const validation = (0, ocr_1.validateLotteryNumbers)(ticket.redNumbers, ticket.blueNumbers);
|
|
90
90
|
if (!validation.valid) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/lottery/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAaH,oDAoUC;AA9UD,6BAAwB;AACxB,+BAAgE;AAChE,+BAAuE;AACvE,uCAA2D;AAC3D,yCAA2F;AAE3F;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,MAAiB;IAClD,wDAAwD;IACxD,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,mCAAmC;QAChD,WAAW,EAAE,OAAC,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YAC/C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SAC9E,CAAC;KACL,EACD,KAAK,EAAE,IAAS,EAAE,EAAE;QAChB,IAAI,CAAC;YACD,MAAM,EAAC,OAAO,EAAE,SAAS,GAAG,KAAK,EAAC,GAAG,IAAI,CAAC;YAE1C,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvC,OAAO;oBACH,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,8BAA8B;yBACvC;qBACJ;oBACD,OAAO,EAAE,IAAI;iBAChB,CAAC;YACN,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAkB,EAAC,OAAO,CAAC,CAAC;YACjD,MAAM,aAAa,GAAG,IAAA,yBAAmB,EAAC,MAAM,CAAC,CAAC;YAElD,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,aAAa;qBACtB;iBACJ;aACJ,CAAC;QACN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC;YACzE,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,OAAO,YAAY,EAAE;qBAC9B;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;IACL,CAAC,CACJ,CAAC;IAEF,6DAA6D;IAC7D,MAAM,CAAC,YAAY,CACf,oBAAoB,EACpB;QACI,KAAK,EAAE,WAAW;QAClB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/lottery/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,13 +3,41 @@
|
|
|
3
3
|
* 使用 Moonshot API (Kimi) 进行彩票图片识别
|
|
4
4
|
*/
|
|
5
5
|
import type { OcrLotteryTicket } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* 图片输入类型
|
|
8
|
+
*/
|
|
9
|
+
export type ImageInputType = 'base64' | 'url' | 'file';
|
|
10
|
+
/**
|
|
11
|
+
* 检测图片输入类型
|
|
12
|
+
* @param imageInput - 图片输入(Base64、URL 或文件路径)
|
|
13
|
+
* @returns 输入类型
|
|
14
|
+
*/
|
|
15
|
+
export declare function detectImageInputType(imageInput: string): ImageInputType;
|
|
16
|
+
/**
|
|
17
|
+
* 从 URL 加载图片并转换为 Base64
|
|
18
|
+
* @param imageUrl - 图片 URL
|
|
19
|
+
* @returns Base64 编码的图片数据
|
|
20
|
+
*/
|
|
21
|
+
export declare function loadImageFromUrl(imageUrl: string): Promise<string>;
|
|
22
|
+
/**
|
|
23
|
+
* 从本地文件加载图片并转换为 Base64
|
|
24
|
+
* @param filePath - 本地文件路径
|
|
25
|
+
* @returns Base64 编码的图片数据
|
|
26
|
+
*/
|
|
27
|
+
export declare function loadImageFromFile(filePath: string): string;
|
|
28
|
+
/**
|
|
29
|
+
* 将各种格式的图片输入转换为 Base64
|
|
30
|
+
* @param imageInput - 图片输入(Base64、URL 或文件路径)
|
|
31
|
+
* @returns Base64 编码的图片数据
|
|
32
|
+
*/
|
|
33
|
+
export declare function convertImageToBase64(imageInput: string): Promise<string>;
|
|
6
34
|
/**
|
|
7
35
|
* 从图片数据中提取彩票信息
|
|
8
36
|
* 使用 Moonshot API (Kimi k2.5) 进行 OCR 识别
|
|
9
|
-
* @param
|
|
37
|
+
* @param imageInput - 图片输入(Base64、URL 或本地文件路径)
|
|
10
38
|
* @returns 识别的彩票信息
|
|
11
39
|
*/
|
|
12
|
-
export declare function recognizeLotteryTicket(
|
|
40
|
+
export declare function recognizeLotteryTicket(imageInput: string): Promise<OcrLotteryTicket>;
|
|
13
41
|
/**
|
|
14
42
|
* 验证彩票号码格式
|
|
15
43
|
* @param redNumbers - 红球号码
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../../../src/tools/lottery/ocr.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../../../src/tools/lottery/ocr.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAc,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAK5D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,CAWvE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAaxE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsB1D;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB9E;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkB1F;AAsMD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAClC,UAAU,EAAE,MAAM,EAAE,EACpB,WAAW,EAAE,MAAM,EAAE,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CA6BtC"}
|
|
@@ -3,21 +3,148 @@
|
|
|
3
3
|
* 彩票图片 OCR 识别
|
|
4
4
|
* 使用 Moonshot API (Kimi) 进行彩票图片识别
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
6
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.detectImageInputType = detectImageInputType;
|
|
41
|
+
exports.loadImageFromUrl = loadImageFromUrl;
|
|
42
|
+
exports.loadImageFromFile = loadImageFromFile;
|
|
43
|
+
exports.convertImageToBase64 = convertImageToBase64;
|
|
7
44
|
exports.recognizeLotteryTicket = recognizeLotteryTicket;
|
|
8
45
|
exports.validateLotteryNumbers = validateLotteryNumbers;
|
|
46
|
+
const fs = __importStar(require("fs"));
|
|
9
47
|
const MOONSHOT_API_URL = 'https://api.moonshot.cn/v1/chat/completions';
|
|
10
48
|
const MOONSHOT_API_KEY = process.env.MOONSHOT_API_KEY || '';
|
|
49
|
+
/**
|
|
50
|
+
* 检测图片输入类型
|
|
51
|
+
* @param imageInput - 图片输入(Base64、URL 或文件路径)
|
|
52
|
+
* @returns 输入类型
|
|
53
|
+
*/
|
|
54
|
+
function detectImageInputType(imageInput) {
|
|
55
|
+
// 如果以 data:image 开头,认为是 Base64
|
|
56
|
+
if (imageInput.startsWith('data:image')) {
|
|
57
|
+
return 'base64';
|
|
58
|
+
}
|
|
59
|
+
// 如果以 http:// 或 https:// 开头,认为是 URL
|
|
60
|
+
if (imageInput.startsWith('http://') || imageInput.startsWith('https://')) {
|
|
61
|
+
return 'url';
|
|
62
|
+
}
|
|
63
|
+
// 否则认为是本地文件路径
|
|
64
|
+
return 'file';
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 从 URL 加载图片并转换为 Base64
|
|
68
|
+
* @param imageUrl - 图片 URL
|
|
69
|
+
* @returns Base64 编码的图片数据
|
|
70
|
+
*/
|
|
71
|
+
async function loadImageFromUrl(imageUrl) {
|
|
72
|
+
try {
|
|
73
|
+
const response = await fetch(imageUrl);
|
|
74
|
+
if (!response.ok) {
|
|
75
|
+
throw new Error(`下载图片失败: ${response.status} - ${response.statusText}`);
|
|
76
|
+
}
|
|
77
|
+
const contentType = response.headers.get('content-type') || 'image/jpeg';
|
|
78
|
+
const arrayBuffer = await response.arrayBuffer();
|
|
79
|
+
const base64 = Buffer.from(arrayBuffer).toString('base64');
|
|
80
|
+
return `data:${contentType};base64,${base64}`;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
throw new Error(`加载图片 URL 失败: ${error instanceof Error ? error.message : '未知错误'}`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 从本地文件加载图片并转换为 Base64
|
|
88
|
+
* @param filePath - 本地文件路径
|
|
89
|
+
* @returns Base64 编码的图片数据
|
|
90
|
+
*/
|
|
91
|
+
function loadImageFromFile(filePath) {
|
|
92
|
+
try {
|
|
93
|
+
if (!fs.existsSync(filePath)) {
|
|
94
|
+
throw new Error(`文件不存在: ${filePath}`);
|
|
95
|
+
}
|
|
96
|
+
const fileBuffer = fs.readFileSync(filePath);
|
|
97
|
+
const base64 = fileBuffer.toString('base64');
|
|
98
|
+
// 根据文件扩展名推断 MIME 类型
|
|
99
|
+
const ext = filePath.split('.').pop()?.toLowerCase() || 'jpg';
|
|
100
|
+
const mimeTypeMap = {
|
|
101
|
+
'jpg': 'image/jpeg',
|
|
102
|
+
'jpeg': 'image/jpeg',
|
|
103
|
+
'png': 'image/png',
|
|
104
|
+
'gif': 'image/gif',
|
|
105
|
+
'webp': 'image/webp',
|
|
106
|
+
'bmp': 'image/bmp'
|
|
107
|
+
};
|
|
108
|
+
const mimeType = mimeTypeMap[ext] || 'image/jpeg';
|
|
109
|
+
return `data:${mimeType};base64,${base64}`;
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
throw new Error(`读取本地图片失败: ${error instanceof Error ? error.message : '未知错误'}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 将各种格式的图片输入转换为 Base64
|
|
117
|
+
* @param imageInput - 图片输入(Base64、URL 或文件路径)
|
|
118
|
+
* @returns Base64 编码的图片数据
|
|
119
|
+
*/
|
|
120
|
+
async function convertImageToBase64(imageInput) {
|
|
121
|
+
const inputType = detectImageInputType(imageInput);
|
|
122
|
+
switch (inputType) {
|
|
123
|
+
case 'base64':
|
|
124
|
+
// 已经是 Base64,直接返回
|
|
125
|
+
return imageInput;
|
|
126
|
+
case 'url':
|
|
127
|
+
// 从 URL 下载并转换
|
|
128
|
+
return await loadImageFromUrl(imageInput);
|
|
129
|
+
case 'file':
|
|
130
|
+
// 从本地文件读取并转换
|
|
131
|
+
return loadImageFromFile(imageInput);
|
|
132
|
+
default:
|
|
133
|
+
throw new Error('不支持的图片输入类型');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
11
136
|
/**
|
|
12
137
|
* 从图片数据中提取彩票信息
|
|
13
138
|
* 使用 Moonshot API (Kimi k2.5) 进行 OCR 识别
|
|
14
|
-
* @param
|
|
139
|
+
* @param imageInput - 图片输入(Base64、URL 或本地文件路径)
|
|
15
140
|
* @returns 识别的彩票信息
|
|
16
141
|
*/
|
|
17
|
-
async function recognizeLotteryTicket(
|
|
142
|
+
async function recognizeLotteryTicket(imageInput) {
|
|
18
143
|
if (!MOONSHOT_API_KEY) {
|
|
19
144
|
throw new Error('未设置 MOONSHOT_API_KEY 环境变量');
|
|
20
145
|
}
|
|
146
|
+
// 将图片输入转换为 Base64
|
|
147
|
+
const imageBase64 = await convertImageToBase64(imageInput);
|
|
21
148
|
// 调用 Moonshot API 进行 OCR 识别
|
|
22
149
|
const recognizedText = await callMoonshotOcr(imageBase64);
|
|
23
150
|
// 从识别的文本中提取彩票号码
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ocr.js","sourceRoot":"","sources":["../../../src/tools/lottery/ocr.ts"],"names":[],"mappings":";AAAA;;;GAGG
|
|
1
|
+
{"version":3,"file":"ocr.js","sourceRoot":"","sources":["../../../src/tools/lottery/ocr.ts"],"names":[],"mappings":"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"}
|