├── .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 |
--------------------------------------------------------------------------------