@translateimage/mcp-server 1.0.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.
- package/LICENSE +23 -0
- package/README.md +533 -0
- package/dist/bin/http.d.ts +3 -0
- package/dist/bin/http.d.ts.map +1 -0
- package/dist/bin/http.js +51 -0
- package/dist/bin/stdio.d.ts +3 -0
- package/dist/bin/stdio.d.ts.map +1 -0
- package/dist/bin/stdio.js +14 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +3 -0
- package/dist/src/schemas/common.d.ts +40 -0
- package/dist/src/schemas/common.d.ts.map +1 -0
- package/dist/src/schemas/common.js +31 -0
- package/dist/src/schemas/image-to-text.d.ts +69 -0
- package/dist/src/schemas/image-to-text.d.ts.map +1 -0
- package/dist/src/schemas/image-to-text.js +26 -0
- package/dist/src/schemas/index.d.ts +7 -0
- package/dist/src/schemas/index.d.ts.map +1 -0
- package/dist/src/schemas/index.js +6 -0
- package/dist/src/schemas/ocr.d.ts +333 -0
- package/dist/src/schemas/ocr.d.ts.map +1 -0
- package/dist/src/schemas/ocr.js +46 -0
- package/dist/src/schemas/shopify.d.ts +860 -0
- package/dist/src/schemas/shopify.d.ts.map +1 -0
- package/dist/src/schemas/shopify.js +183 -0
- package/dist/src/schemas/text-removal.d.ts +60 -0
- package/dist/src/schemas/text-removal.d.ts.map +1 -0
- package/dist/src/schemas/text-removal.js +16 -0
- package/dist/src/schemas/translate.d.ts +197 -0
- package/dist/src/schemas/translate.d.ts.map +1 -0
- package/dist/src/schemas/translate.js +70 -0
- package/dist/src/server.d.ts +4 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +7 -0
- package/dist/src/tools/image-to-text.d.ts +4 -0
- package/dist/src/tools/image-to-text.d.ts.map +1 -0
- package/dist/src/tools/image-to-text.js +12 -0
- package/dist/src/tools/index.d.ts +8 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +202 -0
- package/dist/src/tools/ocr.d.ts +4 -0
- package/dist/src/tools/ocr.d.ts.map +1 -0
- package/dist/src/tools/ocr.js +28 -0
- package/dist/src/tools/shopify/batch-translate.d.ts +26 -0
- package/dist/src/tools/shopify/batch-translate.d.ts.map +1 -0
- package/dist/src/tools/shopify/batch-translate.js +143 -0
- package/dist/src/tools/shopify/index.d.ts +19 -0
- package/dist/src/tools/shopify/index.d.ts.map +1 -0
- package/dist/src/tools/shopify/index.js +28 -0
- package/dist/src/tools/shopify/scan-products.d.ts +38 -0
- package/dist/src/tools/shopify/scan-products.d.ts.map +1 -0
- package/dist/src/tools/shopify/scan-products.js +178 -0
- package/dist/src/tools/shopify/shop-stats.d.ts +12 -0
- package/dist/src/tools/shopify/shop-stats.d.ts.map +1 -0
- package/dist/src/tools/shopify/shop-stats.js +89 -0
- package/dist/src/tools/shopify/translate-product.d.ts +19 -0
- package/dist/src/tools/shopify/translate-product.d.ts.map +1 -0
- package/dist/src/tools/shopify/translate-product.js +121 -0
- package/dist/src/tools/text-removal.d.ts +4 -0
- package/dist/src/tools/text-removal.d.ts.map +1 -0
- package/dist/src/tools/text-removal.js +10 -0
- package/dist/src/tools/translate.d.ts +4 -0
- package/dist/src/tools/translate.d.ts.map +1 -0
- package/dist/src/tools/translate.js +16 -0
- package/dist/src/utils/api-client.d.ts +46 -0
- package/dist/src/utils/api-client.d.ts.map +1 -0
- package/dist/src/utils/api-client.js +124 -0
- package/dist/src/utils/config.d.ts +7 -0
- package/dist/src/utils/config.d.ts.map +1 -0
- package/dist/src/utils/config.js +11 -0
- package/dist/src/utils/errors.d.ts +17 -0
- package/dist/src/utils/errors.d.ts.map +1 -0
- package/dist/src/utils/errors.js +35 -0
- package/dist/src/utils/image.d.ts +34 -0
- package/dist/src/utils/image.d.ts.map +1 -0
- package/dist/src/utils/image.js +105 -0
- package/dist/src/utils/index.d.ts +5 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +4 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/schemas/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB,aAE6B,CAAC;AAE7D;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BmC,CAAC;AAEjE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const LanguageCodeSchema = z
|
|
3
|
+
.string()
|
|
4
|
+
.describe("Language code (e.g., 'en', 'ja', 'zh', 'es').");
|
|
5
|
+
/**
|
|
6
|
+
* Image input schema - handles URL, base64, or data URLs
|
|
7
|
+
* Refinements:
|
|
8
|
+
* - Requires either url OR base64 (at least one)
|
|
9
|
+
* - If base64 is raw (not starting with "data:"), mimeType is required
|
|
10
|
+
* - If base64 starts with "data:", mimeType is extracted automatically
|
|
11
|
+
*/
|
|
12
|
+
export const ImageInputSchema = z
|
|
13
|
+
.object({
|
|
14
|
+
url: z.string().url().optional().describe("Image URL (HTTP/HTTPS)"),
|
|
15
|
+
base64: z
|
|
16
|
+
.string()
|
|
17
|
+
.optional()
|
|
18
|
+
.describe("Base64-encoded image data. Can be raw base64 or data URL (data:image/png;base64,...)"),
|
|
19
|
+
mimeType: z
|
|
20
|
+
.enum(["image/jpeg", "image/png", "image/webp", "image/gif"])
|
|
21
|
+
.optional()
|
|
22
|
+
.describe("MIME type of the image. Required if base64 is raw (not a data URL). Ignored if base64 is a data URL."),
|
|
23
|
+
})
|
|
24
|
+
.refine((data) => data.url || data.base64, "Either 'url' or 'base64' must be provided")
|
|
25
|
+
.refine((data) => {
|
|
26
|
+
// If base64 is provided and is NOT a data URL, mimeType is required
|
|
27
|
+
if (data.base64 && !data.base64.startsWith("data:")) {
|
|
28
|
+
return !!data.mimeType;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}, "mimeType is required when base64 is raw (not a data URL)");
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* Image to text input schema
|
|
4
|
+
*/
|
|
5
|
+
export declare const ImageToTextInputSchema: z.ZodObject<{
|
|
6
|
+
image: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
7
|
+
url: z.ZodOptional<z.ZodString>;
|
|
8
|
+
base64: z.ZodOptional<z.ZodString>;
|
|
9
|
+
mimeType: z.ZodOptional<z.ZodEnum<["image/jpeg", "image/png", "image/webp", "image/gif"]>>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
url?: string | undefined;
|
|
12
|
+
base64?: string | undefined;
|
|
13
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
url?: string | undefined;
|
|
16
|
+
base64?: string | undefined;
|
|
17
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
18
|
+
}>, {
|
|
19
|
+
url?: string | undefined;
|
|
20
|
+
base64?: string | undefined;
|
|
21
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
url?: string | undefined;
|
|
24
|
+
base64?: string | undefined;
|
|
25
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
26
|
+
}>, {
|
|
27
|
+
url?: string | undefined;
|
|
28
|
+
base64?: string | undefined;
|
|
29
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
30
|
+
}, {
|
|
31
|
+
url?: string | undefined;
|
|
32
|
+
base64?: string | undefined;
|
|
33
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
34
|
+
}>;
|
|
35
|
+
targetLanguages: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
36
|
+
}, "strip", z.ZodTypeAny, {
|
|
37
|
+
image: {
|
|
38
|
+
url?: string | undefined;
|
|
39
|
+
base64?: string | undefined;
|
|
40
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
41
|
+
};
|
|
42
|
+
targetLanguages?: string[] | undefined;
|
|
43
|
+
}, {
|
|
44
|
+
image: {
|
|
45
|
+
url?: string | undefined;
|
|
46
|
+
base64?: string | undefined;
|
|
47
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
48
|
+
};
|
|
49
|
+
targetLanguages?: string[] | undefined;
|
|
50
|
+
}>;
|
|
51
|
+
export type ImageToTextInput = z.infer<typeof ImageToTextInputSchema>;
|
|
52
|
+
/**
|
|
53
|
+
* Image to text output schema
|
|
54
|
+
*/
|
|
55
|
+
export declare const ImageToTextOutputSchema: z.ZodObject<{
|
|
56
|
+
extractedText: z.ZodString;
|
|
57
|
+
detectedLanguage: z.ZodOptional<z.ZodString>;
|
|
58
|
+
translations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
59
|
+
}, "strip", z.ZodTypeAny, {
|
|
60
|
+
extractedText: string;
|
|
61
|
+
detectedLanguage?: string | undefined;
|
|
62
|
+
translations?: Record<string, string> | undefined;
|
|
63
|
+
}, {
|
|
64
|
+
extractedText: string;
|
|
65
|
+
detectedLanguage?: string | undefined;
|
|
66
|
+
translations?: Record<string, string> | undefined;
|
|
67
|
+
}>;
|
|
68
|
+
export type ImageToTextOutput = z.infer<typeof ImageToTextOutputSchema>;
|
|
69
|
+
//# sourceMappingURL=image-to-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-to-text.d.ts","sourceRoot":"","sources":["../../../src/schemas/image-to-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;EAYlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ImageInputSchema, LanguageCodeSchema } from "./common.js";
|
|
3
|
+
/**
|
|
4
|
+
* Image to text input schema
|
|
5
|
+
*/
|
|
6
|
+
export const ImageToTextInputSchema = z.object({
|
|
7
|
+
image: ImageInputSchema.describe("Image to extract text from (URL or base64)"),
|
|
8
|
+
targetLanguages: z
|
|
9
|
+
.array(LanguageCodeSchema)
|
|
10
|
+
.optional()
|
|
11
|
+
.describe("Target languages for translation. If provided, extracted text will be translated to these languages."),
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* Image to text output schema
|
|
15
|
+
*/
|
|
16
|
+
export const ImageToTextOutputSchema = z.object({
|
|
17
|
+
extractedText: z.string().describe("Text extracted from the image"),
|
|
18
|
+
detectedLanguage: z
|
|
19
|
+
.string()
|
|
20
|
+
.optional()
|
|
21
|
+
.describe("Detected language of the extracted text"),
|
|
22
|
+
translations: z
|
|
23
|
+
.record(z.string())
|
|
24
|
+
.optional()
|
|
25
|
+
.describe("Translations of extracted text. Keys are language codes, values are translated text."),
|
|
26
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const OcrWordSchema: z.ZodObject<{
|
|
3
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
4
|
+
text: z.ZodString;
|
|
5
|
+
confidence: z.ZodNumber;
|
|
6
|
+
}, "strip", z.ZodTypeAny, {
|
|
7
|
+
text: string;
|
|
8
|
+
boundingBox: number[];
|
|
9
|
+
confidence: number;
|
|
10
|
+
}, {
|
|
11
|
+
text: string;
|
|
12
|
+
boundingBox: number[];
|
|
13
|
+
confidence: number;
|
|
14
|
+
}>;
|
|
15
|
+
export type OcrWord = z.infer<typeof OcrWordSchema>;
|
|
16
|
+
export declare const OcrLineSchema: z.ZodObject<{
|
|
17
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
18
|
+
text: z.ZodString;
|
|
19
|
+
words: z.ZodArray<z.ZodObject<{
|
|
20
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
21
|
+
text: z.ZodString;
|
|
22
|
+
confidence: z.ZodNumber;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
text: string;
|
|
25
|
+
boundingBox: number[];
|
|
26
|
+
confidence: number;
|
|
27
|
+
}, {
|
|
28
|
+
text: string;
|
|
29
|
+
boundingBox: number[];
|
|
30
|
+
confidence: number;
|
|
31
|
+
}>, "many">;
|
|
32
|
+
}, "strip", z.ZodTypeAny, {
|
|
33
|
+
text: string;
|
|
34
|
+
boundingBox: number[];
|
|
35
|
+
words: {
|
|
36
|
+
text: string;
|
|
37
|
+
boundingBox: number[];
|
|
38
|
+
confidence: number;
|
|
39
|
+
}[];
|
|
40
|
+
}, {
|
|
41
|
+
text: string;
|
|
42
|
+
boundingBox: number[];
|
|
43
|
+
words: {
|
|
44
|
+
text: string;
|
|
45
|
+
boundingBox: number[];
|
|
46
|
+
confidence: number;
|
|
47
|
+
}[];
|
|
48
|
+
}>;
|
|
49
|
+
export type OcrLine = z.infer<typeof OcrLineSchema>;
|
|
50
|
+
export declare const OcrDetectedLanguageSchema: z.ZodObject<{
|
|
51
|
+
language: z.ZodString;
|
|
52
|
+
code: z.ZodString;
|
|
53
|
+
confidence: z.ZodNumber;
|
|
54
|
+
}, "strip", z.ZodTypeAny, {
|
|
55
|
+
code: string;
|
|
56
|
+
confidence: number;
|
|
57
|
+
language: string;
|
|
58
|
+
}, {
|
|
59
|
+
code: string;
|
|
60
|
+
confidence: number;
|
|
61
|
+
language: string;
|
|
62
|
+
}>;
|
|
63
|
+
export type OcrDetectedLanguage = z.infer<typeof OcrDetectedLanguageSchema>;
|
|
64
|
+
export declare const OcrParagraphSchema: z.ZodObject<{
|
|
65
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
66
|
+
text: z.ZodString;
|
|
67
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
68
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
69
|
+
text: z.ZodString;
|
|
70
|
+
words: z.ZodArray<z.ZodObject<{
|
|
71
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
72
|
+
text: z.ZodString;
|
|
73
|
+
confidence: z.ZodNumber;
|
|
74
|
+
}, "strip", z.ZodTypeAny, {
|
|
75
|
+
text: string;
|
|
76
|
+
boundingBox: number[];
|
|
77
|
+
confidence: number;
|
|
78
|
+
}, {
|
|
79
|
+
text: string;
|
|
80
|
+
boundingBox: number[];
|
|
81
|
+
confidence: number;
|
|
82
|
+
}>, "many">;
|
|
83
|
+
}, "strip", z.ZodTypeAny, {
|
|
84
|
+
text: string;
|
|
85
|
+
boundingBox: number[];
|
|
86
|
+
words: {
|
|
87
|
+
text: string;
|
|
88
|
+
boundingBox: number[];
|
|
89
|
+
confidence: number;
|
|
90
|
+
}[];
|
|
91
|
+
}, {
|
|
92
|
+
text: string;
|
|
93
|
+
boundingBox: number[];
|
|
94
|
+
words: {
|
|
95
|
+
text: string;
|
|
96
|
+
boundingBox: number[];
|
|
97
|
+
confidence: number;
|
|
98
|
+
}[];
|
|
99
|
+
}>, "many">;
|
|
100
|
+
detectedLanguage: z.ZodObject<{
|
|
101
|
+
language: z.ZodString;
|
|
102
|
+
code: z.ZodString;
|
|
103
|
+
confidence: z.ZodNumber;
|
|
104
|
+
}, "strip", z.ZodTypeAny, {
|
|
105
|
+
code: string;
|
|
106
|
+
confidence: number;
|
|
107
|
+
language: string;
|
|
108
|
+
}, {
|
|
109
|
+
code: string;
|
|
110
|
+
confidence: number;
|
|
111
|
+
language: string;
|
|
112
|
+
}>;
|
|
113
|
+
}, "strip", z.ZodTypeAny, {
|
|
114
|
+
text: string;
|
|
115
|
+
boundingBox: number[];
|
|
116
|
+
lines: {
|
|
117
|
+
text: string;
|
|
118
|
+
boundingBox: number[];
|
|
119
|
+
words: {
|
|
120
|
+
text: string;
|
|
121
|
+
boundingBox: number[];
|
|
122
|
+
confidence: number;
|
|
123
|
+
}[];
|
|
124
|
+
}[];
|
|
125
|
+
detectedLanguage: {
|
|
126
|
+
code: string;
|
|
127
|
+
confidence: number;
|
|
128
|
+
language: string;
|
|
129
|
+
};
|
|
130
|
+
}, {
|
|
131
|
+
text: string;
|
|
132
|
+
boundingBox: number[];
|
|
133
|
+
lines: {
|
|
134
|
+
text: string;
|
|
135
|
+
boundingBox: number[];
|
|
136
|
+
words: {
|
|
137
|
+
text: string;
|
|
138
|
+
boundingBox: number[];
|
|
139
|
+
confidence: number;
|
|
140
|
+
}[];
|
|
141
|
+
}[];
|
|
142
|
+
detectedLanguage: {
|
|
143
|
+
code: string;
|
|
144
|
+
confidence: number;
|
|
145
|
+
language: string;
|
|
146
|
+
};
|
|
147
|
+
}>;
|
|
148
|
+
export type OcrParagraph = z.infer<typeof OcrParagraphSchema>;
|
|
149
|
+
/**
|
|
150
|
+
* OCR input schema
|
|
151
|
+
*/
|
|
152
|
+
export declare const OcrInputSchema: z.ZodObject<{
|
|
153
|
+
image: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
154
|
+
url: z.ZodOptional<z.ZodString>;
|
|
155
|
+
base64: z.ZodOptional<z.ZodString>;
|
|
156
|
+
mimeType: z.ZodOptional<z.ZodEnum<["image/jpeg", "image/png", "image/webp", "image/gif"]>>;
|
|
157
|
+
}, "strip", z.ZodTypeAny, {
|
|
158
|
+
url?: string | undefined;
|
|
159
|
+
base64?: string | undefined;
|
|
160
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
161
|
+
}, {
|
|
162
|
+
url?: string | undefined;
|
|
163
|
+
base64?: string | undefined;
|
|
164
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
165
|
+
}>, {
|
|
166
|
+
url?: string | undefined;
|
|
167
|
+
base64?: string | undefined;
|
|
168
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
169
|
+
}, {
|
|
170
|
+
url?: string | undefined;
|
|
171
|
+
base64?: string | undefined;
|
|
172
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
173
|
+
}>, {
|
|
174
|
+
url?: string | undefined;
|
|
175
|
+
base64?: string | undefined;
|
|
176
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
177
|
+
}, {
|
|
178
|
+
url?: string | undefined;
|
|
179
|
+
base64?: string | undefined;
|
|
180
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
181
|
+
}>;
|
|
182
|
+
}, "strip", z.ZodTypeAny, {
|
|
183
|
+
image: {
|
|
184
|
+
url?: string | undefined;
|
|
185
|
+
base64?: string | undefined;
|
|
186
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
187
|
+
};
|
|
188
|
+
}, {
|
|
189
|
+
image: {
|
|
190
|
+
url?: string | undefined;
|
|
191
|
+
base64?: string | undefined;
|
|
192
|
+
mimeType?: "image/jpeg" | "image/png" | "image/webp" | "image/gif" | undefined;
|
|
193
|
+
};
|
|
194
|
+
}>;
|
|
195
|
+
export type OcrInput = z.infer<typeof OcrInputSchema>;
|
|
196
|
+
/**
|
|
197
|
+
* OCR output schema
|
|
198
|
+
*/
|
|
199
|
+
export declare const OcrOutputSchema: z.ZodObject<{
|
|
200
|
+
paragraphs: z.ZodArray<z.ZodObject<{
|
|
201
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
202
|
+
text: z.ZodString;
|
|
203
|
+
lines: z.ZodArray<z.ZodObject<{
|
|
204
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
205
|
+
text: z.ZodString;
|
|
206
|
+
words: z.ZodArray<z.ZodObject<{
|
|
207
|
+
boundingBox: z.ZodArray<z.ZodNumber, "many">;
|
|
208
|
+
text: z.ZodString;
|
|
209
|
+
confidence: z.ZodNumber;
|
|
210
|
+
}, "strip", z.ZodTypeAny, {
|
|
211
|
+
text: string;
|
|
212
|
+
boundingBox: number[];
|
|
213
|
+
confidence: number;
|
|
214
|
+
}, {
|
|
215
|
+
text: string;
|
|
216
|
+
boundingBox: number[];
|
|
217
|
+
confidence: number;
|
|
218
|
+
}>, "many">;
|
|
219
|
+
}, "strip", z.ZodTypeAny, {
|
|
220
|
+
text: string;
|
|
221
|
+
boundingBox: number[];
|
|
222
|
+
words: {
|
|
223
|
+
text: string;
|
|
224
|
+
boundingBox: number[];
|
|
225
|
+
confidence: number;
|
|
226
|
+
}[];
|
|
227
|
+
}, {
|
|
228
|
+
text: string;
|
|
229
|
+
boundingBox: number[];
|
|
230
|
+
words: {
|
|
231
|
+
text: string;
|
|
232
|
+
boundingBox: number[];
|
|
233
|
+
confidence: number;
|
|
234
|
+
}[];
|
|
235
|
+
}>, "many">;
|
|
236
|
+
detectedLanguage: z.ZodObject<{
|
|
237
|
+
language: z.ZodString;
|
|
238
|
+
code: z.ZodString;
|
|
239
|
+
confidence: z.ZodNumber;
|
|
240
|
+
}, "strip", z.ZodTypeAny, {
|
|
241
|
+
code: string;
|
|
242
|
+
confidence: number;
|
|
243
|
+
language: string;
|
|
244
|
+
}, {
|
|
245
|
+
code: string;
|
|
246
|
+
confidence: number;
|
|
247
|
+
language: string;
|
|
248
|
+
}>;
|
|
249
|
+
}, "strip", z.ZodTypeAny, {
|
|
250
|
+
text: string;
|
|
251
|
+
boundingBox: number[];
|
|
252
|
+
lines: {
|
|
253
|
+
text: string;
|
|
254
|
+
boundingBox: number[];
|
|
255
|
+
words: {
|
|
256
|
+
text: string;
|
|
257
|
+
boundingBox: number[];
|
|
258
|
+
confidence: number;
|
|
259
|
+
}[];
|
|
260
|
+
}[];
|
|
261
|
+
detectedLanguage: {
|
|
262
|
+
code: string;
|
|
263
|
+
confidence: number;
|
|
264
|
+
language: string;
|
|
265
|
+
};
|
|
266
|
+
}, {
|
|
267
|
+
text: string;
|
|
268
|
+
boundingBox: number[];
|
|
269
|
+
lines: {
|
|
270
|
+
text: string;
|
|
271
|
+
boundingBox: number[];
|
|
272
|
+
words: {
|
|
273
|
+
text: string;
|
|
274
|
+
boundingBox: number[];
|
|
275
|
+
confidence: number;
|
|
276
|
+
}[];
|
|
277
|
+
}[];
|
|
278
|
+
detectedLanguage: {
|
|
279
|
+
code: string;
|
|
280
|
+
confidence: number;
|
|
281
|
+
language: string;
|
|
282
|
+
};
|
|
283
|
+
}>, "many">;
|
|
284
|
+
width: z.ZodNumber;
|
|
285
|
+
height: z.ZodNumber;
|
|
286
|
+
angle: z.ZodNumber;
|
|
287
|
+
}, "strip", z.ZodTypeAny, {
|
|
288
|
+
width: number;
|
|
289
|
+
height: number;
|
|
290
|
+
paragraphs: {
|
|
291
|
+
text: string;
|
|
292
|
+
boundingBox: number[];
|
|
293
|
+
lines: {
|
|
294
|
+
text: string;
|
|
295
|
+
boundingBox: number[];
|
|
296
|
+
words: {
|
|
297
|
+
text: string;
|
|
298
|
+
boundingBox: number[];
|
|
299
|
+
confidence: number;
|
|
300
|
+
}[];
|
|
301
|
+
}[];
|
|
302
|
+
detectedLanguage: {
|
|
303
|
+
code: string;
|
|
304
|
+
confidence: number;
|
|
305
|
+
language: string;
|
|
306
|
+
};
|
|
307
|
+
}[];
|
|
308
|
+
angle: number;
|
|
309
|
+
}, {
|
|
310
|
+
width: number;
|
|
311
|
+
height: number;
|
|
312
|
+
paragraphs: {
|
|
313
|
+
text: string;
|
|
314
|
+
boundingBox: number[];
|
|
315
|
+
lines: {
|
|
316
|
+
text: string;
|
|
317
|
+
boundingBox: number[];
|
|
318
|
+
words: {
|
|
319
|
+
text: string;
|
|
320
|
+
boundingBox: number[];
|
|
321
|
+
confidence: number;
|
|
322
|
+
}[];
|
|
323
|
+
}[];
|
|
324
|
+
detectedLanguage: {
|
|
325
|
+
code: string;
|
|
326
|
+
confidence: number;
|
|
327
|
+
language: string;
|
|
328
|
+
};
|
|
329
|
+
}[];
|
|
330
|
+
angle: number;
|
|
331
|
+
}>;
|
|
332
|
+
export type OcrOutput = z.infer<typeof OcrOutputSchema>;
|
|
333
|
+
//# sourceMappingURL=ocr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ocr.d.ts","sourceRoot":"","sources":["../../../src/schemas/ocr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,aAAa;;;;;;;;;;;;EAMxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAMxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEpD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;EAIpC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { ImageInputSchema } from "./common.js";
|
|
3
|
+
export const OcrWordSchema = z.object({
|
|
4
|
+
boundingBox: z
|
|
5
|
+
.array(z.number())
|
|
6
|
+
.describe("Bounding box coordinates [x1, y1, x2, y2]"),
|
|
7
|
+
text: z.string().describe("Word text"),
|
|
8
|
+
confidence: z.number().describe("Confidence score (0-1)"),
|
|
9
|
+
});
|
|
10
|
+
export const OcrLineSchema = z.object({
|
|
11
|
+
boundingBox: z
|
|
12
|
+
.array(z.number())
|
|
13
|
+
.describe("Bounding box coordinates [x1, y1, x2, y2]"),
|
|
14
|
+
text: z.string().describe("Line text"),
|
|
15
|
+
words: z.array(OcrWordSchema).describe("Array of words in the line"),
|
|
16
|
+
});
|
|
17
|
+
export const OcrDetectedLanguageSchema = z.object({
|
|
18
|
+
language: z.string().describe("Language name"),
|
|
19
|
+
code: z.string().describe("Language code"),
|
|
20
|
+
confidence: z.number().describe("Confidence score (0-1)"),
|
|
21
|
+
});
|
|
22
|
+
export const OcrParagraphSchema = z.object({
|
|
23
|
+
boundingBox: z
|
|
24
|
+
.array(z.number())
|
|
25
|
+
.describe("Bounding box coordinates [x1, y1, x2, y2]"),
|
|
26
|
+
text: z.string().describe("Paragraph text"),
|
|
27
|
+
lines: z.array(OcrLineSchema).describe("Array of lines in the paragraph"),
|
|
28
|
+
detectedLanguage: OcrDetectedLanguageSchema.describe("Detected language information"),
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* OCR input schema
|
|
32
|
+
*/
|
|
33
|
+
export const OcrInputSchema = z.object({
|
|
34
|
+
image: ImageInputSchema.describe("Image to extract text from (URL or base64)"),
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* OCR output schema
|
|
38
|
+
*/
|
|
39
|
+
export const OcrOutputSchema = z.object({
|
|
40
|
+
paragraphs: z
|
|
41
|
+
.array(OcrParagraphSchema)
|
|
42
|
+
.describe("Array of detected paragraphs with text and bounding boxes"),
|
|
43
|
+
width: z.number().describe("Image width in pixels"),
|
|
44
|
+
height: z.number().describe("Image height in pixels"),
|
|
45
|
+
angle: z.number().describe("Detected text angle/rotation in degrees"),
|
|
46
|
+
});
|