├── .gitignore ├── README.md ├── index.ts ├── package-lock.json ├── package.json └── tsconfig.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.traineddata 3 | *.traineddata.gz 4 | index.js 5 | index.js.map -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Tesseract.js Typescript 2 | ======================= 3 | 4 | Please check tsconfig.json for configurations. 5 | 6 | Install 7 | 8 | ``` 9 | $ npm install 10 | ``` 11 | 12 | Build 13 | 14 | ``` 15 | $ npm run build 16 | ``` 17 | 18 | Run 19 | ``` 20 | $ npm run start 21 | ``` 22 | -------------------------------------------------------------------------------- /index.ts: -------------------------------------------------------------------------------- 1 | import { createWorker } from 'tesseract.js'; 2 | 3 | (async () => { 4 | const worker = await createWorker('eng', 1, { 5 | logger: (m) => console.log(m), 6 | }); 7 | const ret = await worker.recognize('https://tesseract.projectnaptha.com/img/eng_bw.png'); 8 | console.log(ret.data.text); 9 | await worker.terminate(); 10 | })(); 11 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tesseract.js-typescript", 3 | "version": "2.0.0", 4 | "lockfileVersion": 2, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "tesseract.js-typescript", 9 | "version": "2.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@types/node": "^20.8.7", 13 | "tesseract.js": "^5.0.2", 14 | "typescript": "^5.2.2" 15 | } 16 | }, 17 | "node_modules/@types/node": { 18 | "version": "20.8.7", 19 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", 20 | "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", 21 | "dependencies": { 22 | "undici-types": "~5.25.1" 23 | } 24 | }, 25 | "node_modules/bmp-js": { 26 | "version": "0.1.0", 27 | "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", 28 | "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" 29 | }, 30 | "node_modules/idb-keyval": { 31 | "version": "6.2.1", 32 | "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", 33 | "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" 34 | }, 35 | "node_modules/is-electron": { 36 | "version": "2.2.2", 37 | "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", 38 | "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" 39 | }, 40 | "node_modules/is-url": { 41 | "version": "1.2.4", 42 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", 43 | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" 44 | }, 45 | "node_modules/node-fetch": { 46 | "version": "2.7.0", 47 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 48 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 49 | "dependencies": { 50 | "whatwg-url": "^5.0.0" 51 | }, 52 | "engines": { 53 | "node": "4.x || >=6.0.0" 54 | }, 55 | "peerDependencies": { 56 | "encoding": "^0.1.0" 57 | }, 58 | "peerDependenciesMeta": { 59 | "encoding": { 60 | "optional": true 61 | } 62 | } 63 | }, 64 | "node_modules/opencollective-postinstall": { 65 | "version": "2.0.3", 66 | "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", 67 | "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", 68 | "bin": { 69 | "opencollective-postinstall": "index.js" 70 | } 71 | }, 72 | "node_modules/regenerator-runtime": { 73 | "version": "0.13.3", 74 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", 75 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" 76 | }, 77 | "node_modules/tesseract.js": { 78 | "version": "5.0.2", 79 | "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-5.0.2.tgz", 80 | "integrity": "sha512-BbiaC3W7C23tjQfepPaXWiQFgEW9HFacpEFpZpuGsLfp1J7NPTLFj7II1Q2ukdPXNwh9z/KR0cikS2avpdEP0A==", 81 | "hasInstallScript": true, 82 | "dependencies": { 83 | "bmp-js": "^0.1.0", 84 | "idb-keyval": "^6.2.0", 85 | "is-electron": "^2.2.2", 86 | "is-url": "^1.2.4", 87 | "node-fetch": "^2.6.9", 88 | "opencollective-postinstall": "^2.0.3", 89 | "regenerator-runtime": "^0.13.3", 90 | "tesseract.js-core": "^5.0.0", 91 | "wasm-feature-detect": "^1.2.11", 92 | "zlibjs": "^0.3.1" 93 | } 94 | }, 95 | "node_modules/tesseract.js-core": { 96 | "version": "5.0.0", 97 | "resolved": "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-5.0.0.tgz", 98 | "integrity": "sha512-lJur5LzjinW5VYMKlVNnBU2JPLpO+A9VqAYBeuV+ZgH0hKvsnm+536Yyp+/zRTBdLe7D6Kok0FN9g+TE4J8qGA==" 99 | }, 100 | "node_modules/tr46": { 101 | "version": "0.0.3", 102 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 103 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 104 | }, 105 | "node_modules/typescript": { 106 | "version": "5.2.2", 107 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", 108 | "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", 109 | "bin": { 110 | "tsc": "bin/tsc", 111 | "tsserver": "bin/tsserver" 112 | }, 113 | "engines": { 114 | "node": ">=14.17" 115 | } 116 | }, 117 | "node_modules/undici-types": { 118 | "version": "5.25.3", 119 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", 120 | "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" 121 | }, 122 | "node_modules/wasm-feature-detect": { 123 | "version": "1.5.1", 124 | "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.5.1.tgz", 125 | "integrity": "sha512-GHr23qmuehNXHY4902/hJ6EV5sUANIJC3R/yMfQ7hWDg3nfhlcJfnIL96R2ohpIwa62araN6aN4bLzzzq5GXkg==" 126 | }, 127 | "node_modules/webidl-conversions": { 128 | "version": "3.0.1", 129 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 130 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 131 | }, 132 | "node_modules/whatwg-url": { 133 | "version": "5.0.0", 134 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 135 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 136 | "dependencies": { 137 | "tr46": "~0.0.3", 138 | "webidl-conversions": "^3.0.0" 139 | } 140 | }, 141 | "node_modules/zlibjs": { 142 | "version": "0.3.1", 143 | "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz", 144 | "integrity": "sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ=", 145 | "engines": { 146 | "node": "*" 147 | } 148 | } 149 | }, 150 | "dependencies": { 151 | "@types/node": { 152 | "version": "20.8.7", 153 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.7.tgz", 154 | "integrity": "sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==", 155 | "requires": { 156 | "undici-types": "~5.25.1" 157 | } 158 | }, 159 | "bmp-js": { 160 | "version": "0.1.0", 161 | "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", 162 | "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" 163 | }, 164 | "idb-keyval": { 165 | "version": "6.2.1", 166 | "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.1.tgz", 167 | "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==" 168 | }, 169 | "is-electron": { 170 | "version": "2.2.2", 171 | "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", 172 | "integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==" 173 | }, 174 | "is-url": { 175 | "version": "1.2.4", 176 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", 177 | "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" 178 | }, 179 | "node-fetch": { 180 | "version": "2.7.0", 181 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 182 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 183 | "requires": { 184 | "whatwg-url": "^5.0.0" 185 | } 186 | }, 187 | "opencollective-postinstall": { 188 | "version": "2.0.3", 189 | "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz", 190 | "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==" 191 | }, 192 | "regenerator-runtime": { 193 | "version": "0.13.3", 194 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", 195 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" 196 | }, 197 | "tesseract.js": { 198 | "version": "5.0.2", 199 | "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-5.0.2.tgz", 200 | "integrity": "sha512-BbiaC3W7C23tjQfepPaXWiQFgEW9HFacpEFpZpuGsLfp1J7NPTLFj7II1Q2ukdPXNwh9z/KR0cikS2avpdEP0A==", 201 | "requires": { 202 | "bmp-js": "^0.1.0", 203 | "idb-keyval": "^6.2.0", 204 | "is-electron": "^2.2.2", 205 | "is-url": "^1.2.4", 206 | "node-fetch": "^2.6.9", 207 | "opencollective-postinstall": "^2.0.3", 208 | "regenerator-runtime": "^0.13.3", 209 | "tesseract.js-core": "^5.0.0", 210 | "wasm-feature-detect": "^1.2.11", 211 | "zlibjs": "^0.3.1" 212 | } 213 | }, 214 | "tesseract.js-core": { 215 | "version": "5.0.0", 216 | "resolved": "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-5.0.0.tgz", 217 | "integrity": "sha512-lJur5LzjinW5VYMKlVNnBU2JPLpO+A9VqAYBeuV+ZgH0hKvsnm+536Yyp+/zRTBdLe7D6Kok0FN9g+TE4J8qGA==" 218 | }, 219 | "tr46": { 220 | "version": "0.0.3", 221 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 222 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" 223 | }, 224 | "typescript": { 225 | "version": "5.2.2", 226 | "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", 227 | "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==" 228 | }, 229 | "undici-types": { 230 | "version": "5.25.3", 231 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", 232 | "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" 233 | }, 234 | "wasm-feature-detect": { 235 | "version": "1.5.1", 236 | "resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.5.1.tgz", 237 | "integrity": "sha512-GHr23qmuehNXHY4902/hJ6EV5sUANIJC3R/yMfQ7hWDg3nfhlcJfnIL96R2ohpIwa62araN6aN4bLzzzq5GXkg==" 238 | }, 239 | "webidl-conversions": { 240 | "version": "3.0.1", 241 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 242 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" 243 | }, 244 | "whatwg-url": { 245 | "version": "5.0.0", 246 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 247 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 248 | "requires": { 249 | "tr46": "~0.0.3", 250 | "webidl-conversions": "^3.0.0" 251 | } 252 | }, 253 | "zlibjs": { 254 | "version": "0.3.1", 255 | "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz", 256 | "integrity": "sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ=" 257 | } 258 | } 259 | } 260 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tesseract.js-typescript", 3 | "version": "2.0.0", 4 | "description": "", 5 | "main": "index.ts", 6 | "scripts": { 7 | "build": "tsc", 8 | "start": "node index" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "@types/node": "^20.8.7", 14 | "tesseract.js": "^5.0.2", 15 | "typescript": "^5.2.2" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "sourceMap": true 6 | }, 7 | "files": [ 8 | "./node_modules/tesseract.js/src/index.d.ts" 9 | ], 10 | "include": [ 11 | "index.ts" 12 | ], 13 | "exclude": [ 14 | "node_modules" 15 | ] 16 | } 17 | --------------------------------------------------------------------------------