├── .gitignore ├── README.md ├── images ├── testocr.png └── tha.png ├── index.html ├── lang-data └── eng.traineddata ├── main.js ├── package-lock.json └── package.json /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Tesseract.js Electron 2 | ===================== 3 | 4 | An example to use tesseract.js in electron. 5 | 6 | Please check index.html for details. 7 | 8 | ## Installation 9 | 10 | ```bash 11 | $ npm install 12 | ``` 13 | 14 | ## Run 15 | 16 | ```bash 17 | $ npm start 18 | ``` 19 | -------------------------------------------------------------------------------- /images/testocr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeromewu/tesseract.js-electron/ef421ada5dc4ef02b4efb40cb8f3185555139b93/images/testocr.png -------------------------------------------------------------------------------- /images/tha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeromewu/tesseract.js-electron/ef421ada5dc4ef02b4efb40cb8f3185555139b93/images/tha.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Hello World! 6 | 7 | 8 | 9 | 10 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /lang-data/eng.traineddata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jeromewu/tesseract.js-electron/ef421ada5dc4ef02b4efb40cb8f3185555139b93/lang-data/eng.traineddata -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | const { app, BrowserWindow } = require('electron') 2 | 3 | // Keep a global reference of the window object, if you don't, the window will 4 | // be closed automatically when the JavaScript object is garbage collected. 5 | let win 6 | 7 | function createWindow () { 8 | // Create the browser window. 9 | win = new BrowserWindow({ 10 | width: 800, 11 | height: 600, 12 | webPreferences: { 13 | nodeIntegration: true 14 | } 15 | }) 16 | 17 | // and load the index.html of the app. 18 | win.loadFile('index.html') 19 | 20 | // Open the DevTools. 21 | win.webContents.openDevTools() 22 | 23 | // Emitted when the window is closed. 24 | win.on('closed', () => { 25 | // Dereference the window object, usually you would store windows 26 | // in an array if your app supports multi windows, this is the time 27 | // when you should delete the corresponding element. 28 | win = null 29 | }) 30 | } 31 | 32 | // This method will be called when Electron has finished 33 | // initialization and is ready to create browser windows. 34 | // Some APIs can only be used after this event occurs. 35 | app.on('ready', createWindow) 36 | 37 | // Quit when all windows are closed. 38 | app.on('window-all-closed', () => { 39 | // On macOS it is common for applications and their menu bar 40 | // to stay active until the user quits explicitly with Cmd + Q 41 | if (process.platform !== 'darwin') { 42 | app.quit() 43 | } 44 | }) 45 | 46 | app.on('activate', () => { 47 | // On macOS it's common to re-create a window in the app when the 48 | // dock icon is clicked and there are no other windows open. 49 | if (win === null) { 50 | createWindow() 51 | } 52 | }) 53 | 54 | // In this file you can include the rest of your app's specific main process 55 | // code. You can also put them in separate files and require them here. 56 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tesseract.js-electron", 3 | "version": "0.1.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@electron/get": { 8 | "version": "1.7.2", 9 | "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.2.tgz", 10 | "integrity": "sha512-LSE4LZGMjGS9TloDx0yO44D2UTbaeKRk+QjlhWLiQlikV6J4spgDCjb6z4YIcqmPAwNzlNCnWF4dubytwI+ATA==", 11 | "dev": true, 12 | "requires": { 13 | "debug": "^4.1.1", 14 | "env-paths": "^2.2.0", 15 | "fs-extra": "^8.1.0", 16 | "global-agent": "^2.0.2", 17 | "global-tunnel-ng": "^2.7.1", 18 | "got": "^9.6.0", 19 | "sanitize-filename": "^1.6.2", 20 | "sumchecker": "^3.0.1" 21 | } 22 | }, 23 | "@sindresorhus/is": { 24 | "version": "0.14.0", 25 | "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", 26 | "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", 27 | "dev": true 28 | }, 29 | "@szmarczak/http-timer": { 30 | "version": "1.1.2", 31 | "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", 32 | "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", 33 | "dev": true, 34 | "requires": { 35 | "defer-to-connect": "^1.0.1" 36 | } 37 | }, 38 | "@types/node": { 39 | "version": "12.12.21", 40 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.21.tgz", 41 | "integrity": "sha512-8sRGhbpU+ck1n0PGAUgVrWrWdjSW2aqNeyC15W88GRsMpSwzv6RJGlLhE7s2RhVSOdyDmxbqlWSeThq4/7xqlA==", 42 | "dev": true 43 | }, 44 | "bmp-js": { 45 | "version": "0.1.0", 46 | "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", 47 | "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=" 48 | }, 49 | "boolean": { 50 | "version": "3.0.0", 51 | "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.0.tgz", 52 | "integrity": "sha512-OElxJ1lUSinuoUnkpOgLmxp0DC4ytEhODEL6QJU0NpxE/mI4rUSh8h1P1Wkvfi3xQEBcxXR2gBIPNYNuaFcAbQ==", 53 | "dev": true, 54 | "optional": true 55 | }, 56 | "buffer-from": { 57 | "version": "1.1.1", 58 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 59 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 60 | "dev": true 61 | }, 62 | "cacheable-request": { 63 | "version": "6.1.0", 64 | "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", 65 | "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", 66 | "dev": true, 67 | "requires": { 68 | "clone-response": "^1.0.2", 69 | "get-stream": "^5.1.0", 70 | "http-cache-semantics": "^4.0.0", 71 | "keyv": "^3.0.0", 72 | "lowercase-keys": "^2.0.0", 73 | "normalize-url": "^4.1.0", 74 | "responselike": "^1.0.2" 75 | }, 76 | "dependencies": { 77 | "get-stream": { 78 | "version": "5.1.0", 79 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", 80 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", 81 | "dev": true, 82 | "requires": { 83 | "pump": "^3.0.0" 84 | } 85 | }, 86 | "lowercase-keys": { 87 | "version": "2.0.0", 88 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", 89 | "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", 90 | "dev": true 91 | } 92 | } 93 | }, 94 | "clone-response": { 95 | "version": "1.0.2", 96 | "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", 97 | "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", 98 | "dev": true, 99 | "requires": { 100 | "mimic-response": "^1.0.0" 101 | } 102 | }, 103 | "concat-stream": { 104 | "version": "1.6.2", 105 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 106 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 107 | "dev": true, 108 | "requires": { 109 | "buffer-from": "^1.0.0", 110 | "inherits": "^2.0.3", 111 | "readable-stream": "^2.2.2", 112 | "typedarray": "^0.0.6" 113 | } 114 | }, 115 | "config-chain": { 116 | "version": "1.1.12", 117 | "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", 118 | "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", 119 | "dev": true, 120 | "optional": true, 121 | "requires": { 122 | "ini": "^1.3.4", 123 | "proto-list": "~1.2.1" 124 | } 125 | }, 126 | "core-js": { 127 | "version": "3.6.0", 128 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.0.tgz", 129 | "integrity": "sha512-AHPTNKzyB+YwgDWoSOCaid9PUSEF6781vsfiK8qUz62zRR448/XgK2NtCbpiUGizbep8Lrpt0Du19PpGGZvw3Q==", 130 | "dev": true, 131 | "optional": true 132 | }, 133 | "core-util-is": { 134 | "version": "1.0.2", 135 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 136 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 137 | "dev": true 138 | }, 139 | "debug": { 140 | "version": "4.1.1", 141 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 142 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 143 | "dev": true, 144 | "requires": { 145 | "ms": "^2.1.1" 146 | } 147 | }, 148 | "decompress-response": { 149 | "version": "3.3.0", 150 | "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", 151 | "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", 152 | "dev": true, 153 | "requires": { 154 | "mimic-response": "^1.0.0" 155 | } 156 | }, 157 | "defer-to-connect": { 158 | "version": "1.1.1", 159 | "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.1.tgz", 160 | "integrity": "sha512-J7thop4u3mRTkYRQ+Vpfwy2G5Ehoy82I14+14W4YMDLKdWloI9gSzRbV30s/NckQGVJtPkWNcW4oMAUigTdqiQ==", 161 | "dev": true 162 | }, 163 | "define-properties": { 164 | "version": "1.1.3", 165 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 166 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 167 | "dev": true, 168 | "optional": true, 169 | "requires": { 170 | "object-keys": "^1.0.12" 171 | } 172 | }, 173 | "detect-node": { 174 | "version": "2.0.4", 175 | "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", 176 | "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", 177 | "dev": true, 178 | "optional": true 179 | }, 180 | "duplexer3": { 181 | "version": "0.1.4", 182 | "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", 183 | "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", 184 | "dev": true 185 | }, 186 | "electron": { 187 | "version": "7.1.7", 188 | "resolved": "https://registry.npmjs.org/electron/-/electron-7.1.7.tgz", 189 | "integrity": "sha512-aCLJ4BJwnvOckJgovNul22AYlMFDzm4S4KqKCG2iBlFJyMHBxXAKFKMsgYd40LBZWS3hcY6RHpaYjHSAPLS1pw==", 190 | "dev": true, 191 | "requires": { 192 | "@electron/get": "^1.0.1", 193 | "@types/node": "^12.0.12", 194 | "extract-zip": "^1.0.3" 195 | } 196 | }, 197 | "encodeurl": { 198 | "version": "1.0.2", 199 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 200 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", 201 | "dev": true, 202 | "optional": true 203 | }, 204 | "end-of-stream": { 205 | "version": "1.4.4", 206 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", 207 | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", 208 | "dev": true, 209 | "requires": { 210 | "once": "^1.4.0" 211 | } 212 | }, 213 | "env-paths": { 214 | "version": "2.2.0", 215 | "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", 216 | "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", 217 | "dev": true 218 | }, 219 | "es6-error": { 220 | "version": "4.1.1", 221 | "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", 222 | "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", 223 | "dev": true, 224 | "optional": true 225 | }, 226 | "escape-string-regexp": { 227 | "version": "2.0.0", 228 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", 229 | "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", 230 | "dev": true, 231 | "optional": true 232 | }, 233 | "extract-zip": { 234 | "version": "1.6.7", 235 | "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz", 236 | "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=", 237 | "dev": true, 238 | "requires": { 239 | "concat-stream": "1.6.2", 240 | "debug": "2.6.9", 241 | "mkdirp": "0.5.1", 242 | "yauzl": "2.4.1" 243 | }, 244 | "dependencies": { 245 | "debug": { 246 | "version": "2.6.9", 247 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 248 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 249 | "dev": true, 250 | "requires": { 251 | "ms": "2.0.0" 252 | } 253 | }, 254 | "ms": { 255 | "version": "2.0.0", 256 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 257 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", 258 | "dev": true 259 | } 260 | } 261 | }, 262 | "fd-slicer": { 263 | "version": "1.0.1", 264 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", 265 | "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", 266 | "dev": true, 267 | "requires": { 268 | "pend": "~1.2.0" 269 | } 270 | }, 271 | "file-type": { 272 | "version": "12.4.2", 273 | "resolved": "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz", 274 | "integrity": "sha512-UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg==" 275 | }, 276 | "fs-extra": { 277 | "version": "8.1.0", 278 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", 279 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", 280 | "dev": true, 281 | "requires": { 282 | "graceful-fs": "^4.2.0", 283 | "jsonfile": "^4.0.0", 284 | "universalify": "^0.1.0" 285 | } 286 | }, 287 | "get-stream": { 288 | "version": "4.1.0", 289 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", 290 | "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", 291 | "dev": true, 292 | "requires": { 293 | "pump": "^3.0.0" 294 | } 295 | }, 296 | "global-agent": { 297 | "version": "2.1.7", 298 | "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.7.tgz", 299 | "integrity": "sha512-ooK7eqGYZku+LgnbfH/Iv0RJ74XfhrBZDlke1QSzcBt0bw1PmJcnRADPAQuFE+R45pKKDTynAr25SBasY2kvow==", 300 | "dev": true, 301 | "optional": true, 302 | "requires": { 303 | "boolean": "^3.0.0", 304 | "core-js": "^3.4.1", 305 | "es6-error": "^4.1.1", 306 | "matcher": "^2.0.0", 307 | "roarr": "^2.14.5", 308 | "semver": "^6.3.0", 309 | "serialize-error": "^5.0.0" 310 | } 311 | }, 312 | "global-tunnel-ng": { 313 | "version": "2.7.1", 314 | "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", 315 | "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", 316 | "dev": true, 317 | "optional": true, 318 | "requires": { 319 | "encodeurl": "^1.0.2", 320 | "lodash": "^4.17.10", 321 | "npm-conf": "^1.1.3", 322 | "tunnel": "^0.0.6" 323 | } 324 | }, 325 | "globalthis": { 326 | "version": "1.0.1", 327 | "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", 328 | "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", 329 | "dev": true, 330 | "optional": true, 331 | "requires": { 332 | "define-properties": "^1.1.3" 333 | } 334 | }, 335 | "got": { 336 | "version": "9.6.0", 337 | "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", 338 | "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", 339 | "dev": true, 340 | "requires": { 341 | "@sindresorhus/is": "^0.14.0", 342 | "@szmarczak/http-timer": "^1.1.2", 343 | "cacheable-request": "^6.0.0", 344 | "decompress-response": "^3.3.0", 345 | "duplexer3": "^0.1.4", 346 | "get-stream": "^4.1.0", 347 | "lowercase-keys": "^1.0.1", 348 | "mimic-response": "^1.0.1", 349 | "p-cancelable": "^1.0.0", 350 | "to-readable-stream": "^1.0.0", 351 | "url-parse-lax": "^3.0.0" 352 | } 353 | }, 354 | "graceful-fs": { 355 | "version": "4.2.3", 356 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", 357 | "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", 358 | "dev": true 359 | }, 360 | "http-cache-semantics": { 361 | "version": "4.0.3", 362 | "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.0.3.tgz", 363 | "integrity": "sha512-TcIMG3qeVLgDr1TEd2XvHaTnMPwYQUQMIBLy+5pLSDKYFc7UIqj39w8EGzZkaxoLv/l2K8HaI0t5AVA+YYgUew==", 364 | "dev": true 365 | }, 366 | "idb-keyval": { 367 | "version": "3.2.0", 368 | "resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-3.2.0.tgz", 369 | "integrity": "sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ==" 370 | }, 371 | "inherits": { 372 | "version": "2.0.4", 373 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 374 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 375 | "dev": true 376 | }, 377 | "ini": { 378 | "version": "1.3.5", 379 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", 380 | "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", 381 | "dev": true, 382 | "optional": true 383 | }, 384 | "is-electron": { 385 | "version": "2.2.0", 386 | "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", 387 | "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" 388 | }, 389 | "is-url": { 390 | "version": "1.2.2", 391 | "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.2.tgz", 392 | "integrity": "sha1-SYkFpZO/R8wtnn9zg3K792lsfyY=" 393 | }, 394 | "isarray": { 395 | "version": "1.0.0", 396 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 397 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 398 | "dev": true 399 | }, 400 | "json-buffer": { 401 | "version": "3.0.0", 402 | "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", 403 | "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", 404 | "dev": true 405 | }, 406 | "json-stringify-safe": { 407 | "version": "5.0.1", 408 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 409 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", 410 | "dev": true, 411 | "optional": true 412 | }, 413 | "jsonfile": { 414 | "version": "4.0.0", 415 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", 416 | "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", 417 | "dev": true, 418 | "requires": { 419 | "graceful-fs": "^4.1.6" 420 | } 421 | }, 422 | "keyv": { 423 | "version": "3.1.0", 424 | "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", 425 | "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", 426 | "dev": true, 427 | "requires": { 428 | "json-buffer": "3.0.0" 429 | } 430 | }, 431 | "lodash": { 432 | "version": "4.17.15", 433 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", 434 | "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", 435 | "dev": true, 436 | "optional": true 437 | }, 438 | "lowercase-keys": { 439 | "version": "1.0.1", 440 | "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", 441 | "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", 442 | "dev": true 443 | }, 444 | "matcher": { 445 | "version": "2.1.0", 446 | "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", 447 | "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", 448 | "dev": true, 449 | "optional": true, 450 | "requires": { 451 | "escape-string-regexp": "^2.0.0" 452 | } 453 | }, 454 | "mimic-response": { 455 | "version": "1.0.1", 456 | "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", 457 | "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", 458 | "dev": true 459 | }, 460 | "minimist": { 461 | "version": "0.0.8", 462 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 463 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 464 | "dev": true 465 | }, 466 | "mkdirp": { 467 | "version": "0.5.1", 468 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 469 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 470 | "dev": true, 471 | "requires": { 472 | "minimist": "0.0.8" 473 | } 474 | }, 475 | "ms": { 476 | "version": "2.1.2", 477 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 478 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 479 | "dev": true 480 | }, 481 | "node-fetch": { 482 | "version": "2.6.0", 483 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", 484 | "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" 485 | }, 486 | "normalize-url": { 487 | "version": "4.5.0", 488 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", 489 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", 490 | "dev": true 491 | }, 492 | "npm-conf": { 493 | "version": "1.1.3", 494 | "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", 495 | "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", 496 | "dev": true, 497 | "optional": true, 498 | "requires": { 499 | "config-chain": "^1.1.11", 500 | "pify": "^3.0.0" 501 | } 502 | }, 503 | "object-keys": { 504 | "version": "1.1.1", 505 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 506 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 507 | "dev": true, 508 | "optional": true 509 | }, 510 | "once": { 511 | "version": "1.4.0", 512 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 513 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 514 | "dev": true, 515 | "requires": { 516 | "wrappy": "1" 517 | } 518 | }, 519 | "opencollective-postinstall": { 520 | "version": "2.0.2", 521 | "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz", 522 | "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==" 523 | }, 524 | "p-cancelable": { 525 | "version": "1.1.0", 526 | "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", 527 | "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", 528 | "dev": true 529 | }, 530 | "pend": { 531 | "version": "1.2.0", 532 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 533 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", 534 | "dev": true 535 | }, 536 | "pify": { 537 | "version": "3.0.0", 538 | "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", 539 | "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", 540 | "dev": true, 541 | "optional": true 542 | }, 543 | "prepend-http": { 544 | "version": "2.0.0", 545 | "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", 546 | "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", 547 | "dev": true 548 | }, 549 | "process-nextick-args": { 550 | "version": "2.0.1", 551 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 552 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 553 | "dev": true 554 | }, 555 | "proto-list": { 556 | "version": "1.2.4", 557 | "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", 558 | "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", 559 | "dev": true, 560 | "optional": true 561 | }, 562 | "pump": { 563 | "version": "3.0.0", 564 | "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", 565 | "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", 566 | "dev": true, 567 | "requires": { 568 | "end-of-stream": "^1.1.0", 569 | "once": "^1.3.1" 570 | } 571 | }, 572 | "readable-stream": { 573 | "version": "2.3.6", 574 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 575 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 576 | "dev": true, 577 | "requires": { 578 | "core-util-is": "~1.0.0", 579 | "inherits": "~2.0.3", 580 | "isarray": "~1.0.0", 581 | "process-nextick-args": "~2.0.0", 582 | "safe-buffer": "~5.1.1", 583 | "string_decoder": "~1.1.1", 584 | "util-deprecate": "~1.0.1" 585 | } 586 | }, 587 | "regenerator-runtime": { 588 | "version": "0.13.3", 589 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", 590 | "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==" 591 | }, 592 | "resolve-url": { 593 | "version": "0.2.1", 594 | "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", 595 | "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" 596 | }, 597 | "responselike": { 598 | "version": "1.0.2", 599 | "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", 600 | "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", 601 | "dev": true, 602 | "requires": { 603 | "lowercase-keys": "^1.0.0" 604 | } 605 | }, 606 | "roarr": { 607 | "version": "2.14.6", 608 | "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.14.6.tgz", 609 | "integrity": "sha512-qjbw0BEesKA+3XFBPt+KVe1PC/Z6ShfJ4wPlx2XifqH5h2Lj8/KQT5XJTsy3n1Es5kai+BwKALaECW3F70B1cg==", 610 | "dev": true, 611 | "optional": true, 612 | "requires": { 613 | "boolean": "^3.0.0", 614 | "detect-node": "^2.0.4", 615 | "globalthis": "^1.0.0", 616 | "json-stringify-safe": "^5.0.1", 617 | "semver-compare": "^1.0.0", 618 | "sprintf-js": "^1.1.2" 619 | } 620 | }, 621 | "safe-buffer": { 622 | "version": "5.1.2", 623 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 624 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 625 | "dev": true 626 | }, 627 | "sanitize-filename": { 628 | "version": "1.6.3", 629 | "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", 630 | "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", 631 | "dev": true, 632 | "requires": { 633 | "truncate-utf8-bytes": "^1.0.0" 634 | } 635 | }, 636 | "semver": { 637 | "version": "6.3.0", 638 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 639 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 640 | "dev": true, 641 | "optional": true 642 | }, 643 | "semver-compare": { 644 | "version": "1.0.0", 645 | "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", 646 | "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", 647 | "dev": true, 648 | "optional": true 649 | }, 650 | "serialize-error": { 651 | "version": "5.0.0", 652 | "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", 653 | "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", 654 | "dev": true, 655 | "optional": true, 656 | "requires": { 657 | "type-fest": "^0.8.0" 658 | } 659 | }, 660 | "sprintf-js": { 661 | "version": "1.1.2", 662 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", 663 | "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", 664 | "dev": true, 665 | "optional": true 666 | }, 667 | "string_decoder": { 668 | "version": "1.1.1", 669 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 670 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 671 | "dev": true, 672 | "requires": { 673 | "safe-buffer": "~5.1.0" 674 | } 675 | }, 676 | "sumchecker": { 677 | "version": "3.0.1", 678 | "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", 679 | "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", 680 | "dev": true, 681 | "requires": { 682 | "debug": "^4.1.0" 683 | } 684 | }, 685 | "tesseract.js": { 686 | "version": "2.0.1", 687 | "resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-2.0.1.tgz", 688 | "integrity": "sha512-5YXoYableNW6e/HE9D6G3XCn5tjBiV2lERbRL+HfuZdskfBkpvvG9GBtVdQ7OoOw/sqLh2J9o83NLHQrZJWyFg==", 689 | "requires": { 690 | "bmp-js": "^0.1.0", 691 | "file-type": "^12.4.1", 692 | "idb-keyval": "^3.2.0", 693 | "is-electron": "^2.2.0", 694 | "is-url": "1.2.2", 695 | "node-fetch": "^2.6.0", 696 | "opencollective-postinstall": "^2.0.2", 697 | "regenerator-runtime": "^0.13.3", 698 | "resolve-url": "^0.2.1", 699 | "tesseract.js-core": "^2.0.0", 700 | "zlibjs": "^0.3.1" 701 | } 702 | }, 703 | "tesseract.js-core": { 704 | "version": "2.0.0", 705 | "resolved": "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-2.0.0.tgz", 706 | "integrity": "sha512-Oi+V/0iuDQarM9OaLRso6y8U0lPZy9dDaLBoSWNd9c5FSsvgL6OoIDRS+Pum/noAQw7Q3V8vetlf+SgQNRdorA==" 707 | }, 708 | "to-readable-stream": { 709 | "version": "1.0.0", 710 | "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", 711 | "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", 712 | "dev": true 713 | }, 714 | "truncate-utf8-bytes": { 715 | "version": "1.0.2", 716 | "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", 717 | "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", 718 | "dev": true, 719 | "requires": { 720 | "utf8-byte-length": "^1.0.1" 721 | } 722 | }, 723 | "tunnel": { 724 | "version": "0.0.6", 725 | "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", 726 | "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", 727 | "dev": true, 728 | "optional": true 729 | }, 730 | "type-fest": { 731 | "version": "0.8.1", 732 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", 733 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", 734 | "dev": true, 735 | "optional": true 736 | }, 737 | "typedarray": { 738 | "version": "0.0.6", 739 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 740 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 741 | "dev": true 742 | }, 743 | "universalify": { 744 | "version": "0.1.2", 745 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", 746 | "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", 747 | "dev": true 748 | }, 749 | "url-parse-lax": { 750 | "version": "3.0.0", 751 | "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", 752 | "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", 753 | "dev": true, 754 | "requires": { 755 | "prepend-http": "^2.0.0" 756 | } 757 | }, 758 | "utf8-byte-length": { 759 | "version": "1.0.4", 760 | "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", 761 | "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", 762 | "dev": true 763 | }, 764 | "util-deprecate": { 765 | "version": "1.0.2", 766 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 767 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 768 | "dev": true 769 | }, 770 | "wrappy": { 771 | "version": "1.0.2", 772 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 773 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 774 | "dev": true 775 | }, 776 | "yauzl": { 777 | "version": "2.4.1", 778 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz", 779 | "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", 780 | "dev": true, 781 | "requires": { 782 | "fd-slicer": "~1.0.1" 783 | } 784 | }, 785 | "zlibjs": { 786 | "version": "0.3.1", 787 | "resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz", 788 | "integrity": "sha1-UBl+2yihxCymWcyLTmqd3W1ERVQ=" 789 | } 790 | } 791 | } 792 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tesseract.js-electron", 3 | "version": "0.1.0", 4 | "description": "an example to use tesseract.js in electron", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "electron ." 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/jeromewu/tesseract.js-electron.git" 12 | }, 13 | "author": "jeromewus@gmail.com", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/jeromewu/tesseract.js-electron/issues" 17 | }, 18 | "homepage": "https://github.com/jeromewu/tesseract.js-electron#readme", 19 | "devDependencies": { 20 | "electron": "^7.1.7" 21 | }, 22 | "dependencies": { 23 | "tesseract.js": "^2.0.1" 24 | } 25 | } 26 | --------------------------------------------------------------------------------