Switch to google cloud vision for OCR
Also separate text recognition code into a function
Showing
4 changed files
with
489 additions
and
43 deletions
... | @@ -17,8 +17,9 @@ const languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs' | ... | @@ -17,8 +17,9 @@ const languagedetect_api_url = 'https://openapi.naver.com/v1/papago/detectLangs' |
17 | const db = require('./db'); | 17 | const db = require('./db'); |
18 | db.init(); | 18 | db.init(); |
19 | 19 | ||
20 | -// Tesseract module for image recognition | 20 | +// Import Google Cloud client library and create a client |
21 | -const tesseract = require('node-tesseract-ocr'); | 21 | +const vision = require('@google-cloud/vision'); |
22 | +const visionClient = new vision.ImageAnnotatorClient(config.gcloud); | ||
22 | 23 | ||
23 | // fs module for saving/removing image file upon/after recognition | 24 | // fs module for saving/removing image file upon/after recognition |
24 | const fs = require('fs'); | 25 | const fs = require('fs'); |
... | @@ -136,6 +137,50 @@ function translate(user, message) { | ... | @@ -136,6 +137,50 @@ function translate(user, message) { |
136 | }); | 137 | }); |
137 | } | 138 | } |
138 | 139 | ||
140 | +/** | ||
141 | + * Detect and read text from an image file using Google Cloud Vision API. | ||
142 | + * | ||
143 | + * @param {*} fileId Telegram-provided file id of image to read text from | ||
144 | + */ | ||
145 | +function detectText(fileId) { | ||
146 | + return new Promise(function (resolve, reject) { | ||
147 | + // Download the image, which will later be deleted to avoid git detection | ||
148 | + bot.downloadFile(fileId, '.').then(function (filePath) { | ||
149 | + console.log('Image downloaded: ', filePath); | ||
150 | + | ||
151 | + visionClient.documentTextDetection(filePath) | ||
152 | + .then(function (result) { | ||
153 | + const fullTextAnnotation = result[0].fullTextAnnotation; | ||
154 | + const text = fullTextAnnotation.text; | ||
155 | + | ||
156 | + console.log('Text detection result: ', text); | ||
157 | + | ||
158 | + resolve(text); | ||
159 | + // Delete the image | ||
160 | + fs.unlink(filePath, function (error) { | ||
161 | + if (error) { | ||
162 | + console.log('Error deleting image: ', error); | ||
163 | + } else { | ||
164 | + console.log('Successfully deleted file ', filePath); | ||
165 | + } | ||
166 | + }); | ||
167 | + }).catch(function (error) { | ||
168 | + console.log(error); | ||
169 | + | ||
170 | + reject(error); | ||
171 | + // Delete the image | ||
172 | + fs.unlink(filePath, function (error) { | ||
173 | + if (error) { | ||
174 | + console.log('Error deleting image: ', error); | ||
175 | + } else { | ||
176 | + console.log('Successfully deleted file ', filePath); | ||
177 | + } | ||
178 | + }); | ||
179 | + }); | ||
180 | + }); | ||
181 | + }); | ||
182 | +} | ||
183 | + | ||
139 | // [Any normal message which is not a command (not starting with '/')] | 184 | // [Any normal message which is not a command (not starting with '/')] |
140 | bot.onText(/^(?!\/)((.|\n)+)/, (msg, match) => { | 185 | bot.onText(/^(?!\/)((.|\n)+)/, (msg, match) => { |
141 | const user = msg.from; | 186 | const user = msg.from; |
... | @@ -199,43 +244,16 @@ bot.on('photo', (msg) => { | ... | @@ -199,43 +244,16 @@ bot.on('photo', (msg) => { |
199 | const photo = msg.photo[msg.photo.length - 1]; // Choose largest image possible | 244 | const photo = msg.photo[msg.photo.length - 1]; // Choose largest image possible |
200 | const photoId = photo.file_id; | 245 | const photoId = photo.file_id; |
201 | 246 | ||
202 | - // Download the image, which will later be deleted to avoid git detection | 247 | + // Detect text from given image |
203 | - bot.downloadFile(photoId, '.').then(function (filePath) { | 248 | + detectText(photoId).then(function (text) { |
204 | - console.log('Image downloaded: ', filePath); | 249 | + // Translate the result |
205 | - | 250 | + translate(user, text).then(function (result) { |
206 | - // Begin tesseract OCR | 251 | + // Send recognized text to user |
207 | - tesseract.recognize(filePath).then(function (text) { | 252 | + bot.sendMessage(chatId, result); |
208 | - console.log('OCR result: ', text); | ||
209 | - | ||
210 | - // Translate the result | ||
211 | - translate(user, text).then(function (result) { | ||
212 | - // Send recognized text to user | ||
213 | - bot.sendMessage(chatId, result); | ||
214 | - // Delete the image | ||
215 | - fs.unlink(filePath, function (error) { | ||
216 | - if (error) { | ||
217 | - console.log('Error deleting image: ', error); | ||
218 | - } else { | ||
219 | - console.log('Successfully deleted file ', filePath); | ||
220 | - } | ||
221 | - }); | ||
222 | - }); | ||
223 | - }).catch(function (error) { | ||
224 | - // OCR failed | ||
225 | - console.log('OCR error: ', error); | ||
226 | - | ||
227 | - // Delete the image | ||
228 | - fs.unlink(filePath, function (error) { | ||
229 | - if (error) { | ||
230 | - console.log('Error deleting image: ', error); | ||
231 | - } else { | ||
232 | - console.log('Successfully deleted file ', filePath); | ||
233 | - } | ||
234 | - }); | ||
235 | }); | 253 | }); |
236 | }).catch(function (error) { | 254 | }).catch(function (error) { |
237 | - // Image download failed | 255 | + // Text detection failed |
238 | - console.log('Image download error: ', error); | 256 | + console.log('Text detection error: ', error); |
239 | }); | 257 | }); |
240 | }); | 258 | }); |
241 | 259 | ... | ... |
... | @@ -10,5 +10,9 @@ module.exports = { | ... | @@ -10,5 +10,9 @@ module.exports = { |
10 | // https://developers.naver.com/apps/#/register | 10 | // https://developers.naver.com/apps/#/register |
11 | client_id: 'XXXXXXXXXXXXXXXXXXXX', | 11 | client_id: 'XXXXXXXXXXXXXXXXXXXX', |
12 | client_secret: 'XXXXXXXXXX' | 12 | client_secret: 'XXXXXXXXXX' |
13 | + }, | ||
14 | + gcloud: { | ||
15 | + projectId: 'your_project_name', | ||
16 | + keyFilename: '/path/to/your/keyfile.json' | ||
13 | } | 17 | } |
14 | } | 18 | } | ... | ... |
... | @@ -4,6 +4,127 @@ | ... | @@ -4,6 +4,127 @@ |
4 | "lockfileVersion": 1, | 4 | "lockfileVersion": 1, |
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
7 | + "@google-cloud/promisify": { | ||
8 | + "version": "1.0.0", | ||
9 | + "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-1.0.0.tgz", | ||
10 | + "integrity": "sha512-B1wYzEqvM71QQgzc47xH3np40dxT17G76gMYew0q/fSwU/iWu7nNfxOU8Ataormee5j/n27G1muKU85LRdecww==" | ||
11 | + }, | ||
12 | + "@google-cloud/vision": { | ||
13 | + "version": "1.0.0", | ||
14 | + "resolved": "https://registry.npmjs.org/@google-cloud/vision/-/vision-1.0.0.tgz", | ||
15 | + "integrity": "sha512-HPlZoBBHShwo8fFFGptKRbNtjI1R0klsbbjEuaRVtYtEtj4c6r9VJ74taeIhFPlvRdhOEVZUcqayAT1x0GfMYw==", | ||
16 | + "requires": { | ||
17 | + "@google-cloud/promisify": "^1.0.0", | ||
18 | + "google-gax": "^1.0.0", | ||
19 | + "is": "^3.2.1", | ||
20 | + "lodash.merge": "^4.6.1", | ||
21 | + "protobufjs": "^6.8.6" | ||
22 | + } | ||
23 | + }, | ||
24 | + "@grpc/grpc-js": { | ||
25 | + "version": "0.4.2", | ||
26 | + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.4.2.tgz", | ||
27 | + "integrity": "sha512-EyYIgvTIpaOjHGu3fNybG86/bNXsRzzo+KvIyGD8JFQaAcXl5h3uqFUzwasyZM+Je8YWa1ggfZine3zPi2nvnQ==", | ||
28 | + "requires": { | ||
29 | + "semver": "^6.0.0" | ||
30 | + }, | ||
31 | + "dependencies": { | ||
32 | + "semver": { | ||
33 | + "version": "6.1.1", | ||
34 | + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", | ||
35 | + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==" | ||
36 | + } | ||
37 | + } | ||
38 | + }, | ||
39 | + "@grpc/proto-loader": { | ||
40 | + "version": "0.5.1", | ||
41 | + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.1.tgz", | ||
42 | + "integrity": "sha512-3y0FhacYAwWvyXshH18eDkUI40wT/uGio7MAegzY8lO5+wVsc19+1A7T0pPptae4kl7bdITL+0cHpnAPmryBjQ==", | ||
43 | + "requires": { | ||
44 | + "lodash.camelcase": "^4.3.0", | ||
45 | + "protobufjs": "^6.8.6" | ||
46 | + } | ||
47 | + }, | ||
48 | + "@protobufjs/aspromise": { | ||
49 | + "version": "1.1.2", | ||
50 | + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", | ||
51 | + "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" | ||
52 | + }, | ||
53 | + "@protobufjs/base64": { | ||
54 | + "version": "1.1.2", | ||
55 | + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", | ||
56 | + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" | ||
57 | + }, | ||
58 | + "@protobufjs/codegen": { | ||
59 | + "version": "2.0.4", | ||
60 | + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", | ||
61 | + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" | ||
62 | + }, | ||
63 | + "@protobufjs/eventemitter": { | ||
64 | + "version": "1.1.0", | ||
65 | + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", | ||
66 | + "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" | ||
67 | + }, | ||
68 | + "@protobufjs/fetch": { | ||
69 | + "version": "1.1.0", | ||
70 | + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", | ||
71 | + "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", | ||
72 | + "requires": { | ||
73 | + "@protobufjs/aspromise": "^1.1.1", | ||
74 | + "@protobufjs/inquire": "^1.1.0" | ||
75 | + } | ||
76 | + }, | ||
77 | + "@protobufjs/float": { | ||
78 | + "version": "1.0.2", | ||
79 | + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", | ||
80 | + "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" | ||
81 | + }, | ||
82 | + "@protobufjs/inquire": { | ||
83 | + "version": "1.1.0", | ||
84 | + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", | ||
85 | + "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" | ||
86 | + }, | ||
87 | + "@protobufjs/path": { | ||
88 | + "version": "1.1.2", | ||
89 | + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", | ||
90 | + "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" | ||
91 | + }, | ||
92 | + "@protobufjs/pool": { | ||
93 | + "version": "1.1.0", | ||
94 | + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", | ||
95 | + "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" | ||
96 | + }, | ||
97 | + "@protobufjs/utf8": { | ||
98 | + "version": "1.1.0", | ||
99 | + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", | ||
100 | + "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" | ||
101 | + }, | ||
102 | + "@types/long": { | ||
103 | + "version": "4.0.0", | ||
104 | + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.0.tgz", | ||
105 | + "integrity": "sha512-1w52Nyx4Gq47uuu0EVcsHBxZFJgurQ+rTKS3qMHxR1GY2T8c2AJYd6vZoZ9q1rupaDjU0yT+Jc2XTyXkjeMA+Q==" | ||
106 | + }, | ||
107 | + "@types/node": { | ||
108 | + "version": "10.14.8", | ||
109 | + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.8.tgz", | ||
110 | + "integrity": "sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==" | ||
111 | + }, | ||
112 | + "abort-controller": { | ||
113 | + "version": "3.0.0", | ||
114 | + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", | ||
115 | + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", | ||
116 | + "requires": { | ||
117 | + "event-target-shim": "^5.0.0" | ||
118 | + } | ||
119 | + }, | ||
120 | + "agent-base": { | ||
121 | + "version": "4.2.1", | ||
122 | + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", | ||
123 | + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", | ||
124 | + "requires": { | ||
125 | + "es6-promisify": "^5.0.0" | ||
126 | + } | ||
127 | + }, | ||
7 | "ajv": { | 128 | "ajv": { |
8 | "version": "6.10.0", | 129 | "version": "6.10.0", |
9 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", | 130 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", |
... | @@ -24,6 +145,11 @@ | ... | @@ -24,6 +145,11 @@ |
24 | "es-abstract": "^1.5.0" | 145 | "es-abstract": "^1.5.0" |
25 | } | 146 | } |
26 | }, | 147 | }, |
148 | + "arrify": { | ||
149 | + "version": "2.0.1", | ||
150 | + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", | ||
151 | + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" | ||
152 | + }, | ||
27 | "asn1": { | 153 | "asn1": { |
28 | "version": "0.2.4", | 154 | "version": "0.2.4", |
29 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", | 155 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", |
... | @@ -52,6 +178,11 @@ | ... | @@ -52,6 +178,11 @@ |
52 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", | 178 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", |
53 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" | 179 | "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" |
54 | }, | 180 | }, |
181 | + "base64-js": { | ||
182 | + "version": "1.3.0", | ||
183 | + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", | ||
184 | + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" | ||
185 | + }, | ||
55 | "bcrypt-pbkdf": { | 186 | "bcrypt-pbkdf": { |
56 | "version": "1.0.2", | 187 | "version": "1.0.2", |
57 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", | 188 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", |
... | @@ -60,6 +191,11 @@ | ... | @@ -60,6 +191,11 @@ |
60 | "tweetnacl": "^0.14.3" | 191 | "tweetnacl": "^0.14.3" |
61 | } | 192 | } |
62 | }, | 193 | }, |
194 | + "bignumber.js": { | ||
195 | + "version": "7.2.1", | ||
196 | + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", | ||
197 | + "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==" | ||
198 | + }, | ||
63 | "bl": { | 199 | "bl": { |
64 | "version": "1.2.2", | 200 | "version": "1.2.2", |
65 | "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", | 201 | "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", |
... | @@ -79,6 +215,11 @@ | ... | @@ -79,6 +215,11 @@ |
79 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz", | 215 | "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz", |
80 | "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" | 216 | "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==" |
81 | }, | 217 | }, |
218 | + "buffer-equal-constant-time": { | ||
219 | + "version": "1.0.1", | ||
220 | + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", | ||
221 | + "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" | ||
222 | + }, | ||
82 | "caseless": { | 223 | "caseless": { |
83 | "version": "0.12.0", | 224 | "version": "0.12.0", |
84 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", | 225 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", |
... | @@ -131,6 +272,17 @@ | ... | @@ -131,6 +272,17 @@ |
131 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", | 272 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", |
132 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" | 273 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" |
133 | }, | 274 | }, |
275 | + "duplexify": { | ||
276 | + "version": "3.7.1", | ||
277 | + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", | ||
278 | + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", | ||
279 | + "requires": { | ||
280 | + "end-of-stream": "^1.0.0", | ||
281 | + "inherits": "^2.0.1", | ||
282 | + "readable-stream": "^2.0.0", | ||
283 | + "stream-shift": "^1.0.0" | ||
284 | + } | ||
285 | + }, | ||
134 | "ecc-jsbn": { | 286 | "ecc-jsbn": { |
135 | "version": "0.1.2", | 287 | "version": "0.1.2", |
136 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", | 288 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", |
... | @@ -140,6 +292,14 @@ | ... | @@ -140,6 +292,14 @@ |
140 | "safer-buffer": "^2.1.0" | 292 | "safer-buffer": "^2.1.0" |
141 | } | 293 | } |
142 | }, | 294 | }, |
295 | + "ecdsa-sig-formatter": { | ||
296 | + "version": "1.0.11", | ||
297 | + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", | ||
298 | + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", | ||
299 | + "requires": { | ||
300 | + "safe-buffer": "^5.0.1" | ||
301 | + } | ||
302 | + }, | ||
143 | "end-of-stream": { | 303 | "end-of-stream": { |
144 | "version": "1.4.1", | 304 | "version": "1.4.1", |
145 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", | 305 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", |
... | @@ -171,6 +331,24 @@ | ... | @@ -171,6 +331,24 @@ |
171 | "is-symbol": "^1.0.2" | 331 | "is-symbol": "^1.0.2" |
172 | } | 332 | } |
173 | }, | 333 | }, |
334 | + "es6-promise": { | ||
335 | + "version": "4.2.6", | ||
336 | + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", | ||
337 | + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==" | ||
338 | + }, | ||
339 | + "es6-promisify": { | ||
340 | + "version": "5.0.0", | ||
341 | + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", | ||
342 | + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", | ||
343 | + "requires": { | ||
344 | + "es6-promise": "^4.0.3" | ||
345 | + } | ||
346 | + }, | ||
347 | + "event-target-shim": { | ||
348 | + "version": "5.0.1", | ||
349 | + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", | ||
350 | + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" | ||
351 | + }, | ||
174 | "eventemitter3": { | 352 | "eventemitter3": { |
175 | "version": "3.1.2", | 353 | "version": "3.1.2", |
176 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", | 354 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", |
... | @@ -196,6 +374,11 @@ | ... | @@ -196,6 +374,11 @@ |
196 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", | 374 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", |
197 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" | 375 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" |
198 | }, | 376 | }, |
377 | + "fast-text-encoding": { | ||
378 | + "version": "1.0.0", | ||
379 | + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.0.tgz", | ||
380 | + "integrity": "sha512-R9bHCvweUxxwkDwhjav5vxpFvdPGlVngtqmx4pIZfSUhM/Q4NiIUHB456BAf+Q1Nwu3HEZYONtu+Rya+af4jiQ==" | ||
381 | + }, | ||
199 | "forever-agent": { | 382 | "forever-agent": { |
200 | "version": "0.6.1", | 383 | "version": "0.6.1", |
201 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", | 384 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", |
... | @@ -216,6 +399,26 @@ | ... | @@ -216,6 +399,26 @@ |
216 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | 399 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", |
217 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" | 400 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" |
218 | }, | 401 | }, |
402 | + "gaxios": { | ||
403 | + "version": "2.0.1", | ||
404 | + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.0.1.tgz", | ||
405 | + "integrity": "sha512-c1NXovTxkgRJTIgB2FrFmOFg4YIV6N/bAa4f/FZ4jIw13Ql9ya/82x69CswvotJhbV3DiGnlTZwoq2NVXk2Irg==", | ||
406 | + "requires": { | ||
407 | + "abort-controller": "^3.0.0", | ||
408 | + "extend": "^3.0.2", | ||
409 | + "https-proxy-agent": "^2.2.1", | ||
410 | + "node-fetch": "^2.3.0" | ||
411 | + } | ||
412 | + }, | ||
413 | + "gcp-metadata": { | ||
414 | + "version": "2.0.0", | ||
415 | + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-2.0.0.tgz", | ||
416 | + "integrity": "sha512-BN6KUUWo6WLkDRst+Y7bqpXq1PYMrKUecNLRdZESp7oYtMjWcZdAM0UYvcip8wb0GXNO/j8Z8HTccK4iYtMvyQ==", | ||
417 | + "requires": { | ||
418 | + "gaxios": "^2.0.0", | ||
419 | + "json-bigint": "^0.3.0" | ||
420 | + } | ||
421 | + }, | ||
219 | "getpass": { | 422 | "getpass": { |
220 | "version": "0.1.7", | 423 | "version": "0.1.7", |
221 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", | 424 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", |
... | @@ -224,6 +427,81 @@ | ... | @@ -224,6 +427,81 @@ |
224 | "assert-plus": "^1.0.0" | 427 | "assert-plus": "^1.0.0" |
225 | } | 428 | } |
226 | }, | 429 | }, |
430 | + "google-auth-library": { | ||
431 | + "version": "4.1.0", | ||
432 | + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-4.1.0.tgz", | ||
433 | + "integrity": "sha512-vzKMvnXV1wNuoKEgGAp++l79j+U0pMYmihEgc8dH35pbdIoiUZqf2vRd9rNUqlwH1i1pYTMGxv6AdDb+4IPR+g==", | ||
434 | + "requires": { | ||
435 | + "arrify": "^2.0.0", | ||
436 | + "base64-js": "^1.3.0", | ||
437 | + "fast-text-encoding": "^1.0.0", | ||
438 | + "gaxios": "^2.0.0", | ||
439 | + "gcp-metadata": "^2.0.0", | ||
440 | + "gtoken": "^3.0.0", | ||
441 | + "jws": "^3.1.5", | ||
442 | + "lru-cache": "^5.0.0", | ||
443 | + "semver": "^6.0.0" | ||
444 | + }, | ||
445 | + "dependencies": { | ||
446 | + "semver": { | ||
447 | + "version": "6.1.1", | ||
448 | + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", | ||
449 | + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==" | ||
450 | + } | ||
451 | + } | ||
452 | + }, | ||
453 | + "google-gax": { | ||
454 | + "version": "1.1.1", | ||
455 | + "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.1.1.tgz", | ||
456 | + "integrity": "sha512-30CLetXzyd9B1Ilqvt4q9ETaeSUgJ54ygwtLRDyPrvl6Wb+s2U7WdwCpfkrbWWmEUxh+FTQq5PMcyW8HQ+BiGA==", | ||
457 | + "requires": { | ||
458 | + "@grpc/grpc-js": "^0.4.0", | ||
459 | + "@grpc/proto-loader": "^0.5.1", | ||
460 | + "duplexify": "^3.6.0", | ||
461 | + "google-auth-library": "^4.0.0", | ||
462 | + "is-stream-ended": "^0.1.4", | ||
463 | + "lodash.at": "^4.6.0", | ||
464 | + "lodash.has": "^4.5.2", | ||
465 | + "protobufjs": "^6.8.8", | ||
466 | + "retry-request": "^4.0.0", | ||
467 | + "semver": "^6.0.0", | ||
468 | + "walkdir": "^0.4.0" | ||
469 | + }, | ||
470 | + "dependencies": { | ||
471 | + "semver": { | ||
472 | + "version": "6.1.1", | ||
473 | + "resolved": "https://registry.npmjs.org/semver/-/semver-6.1.1.tgz", | ||
474 | + "integrity": "sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ==" | ||
475 | + } | ||
476 | + } | ||
477 | + }, | ||
478 | + "google-p12-pem": { | ||
479 | + "version": "2.0.0", | ||
480 | + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.0.tgz", | ||
481 | + "integrity": "sha512-n8eGSKzWOb9/EmSBIh81sPvsQM939QlpHMXahTZDzuRIpCu09x3Oaqz+mXGjL4TeCvSbcnOC0YZRvjkJ9s9lnA==", | ||
482 | + "requires": { | ||
483 | + "node-forge": "^0.8.0" | ||
484 | + } | ||
485 | + }, | ||
486 | + "gtoken": { | ||
487 | + "version": "3.0.0", | ||
488 | + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-3.0.0.tgz", | ||
489 | + "integrity": "sha512-IY9HVi78D4ykVHn+ThI7rlcpdFtKyo9e9YLim9S9T3rp6fEnfeTexcrqzSpExVshPofsdauLKIa8dEnzX7ZLfQ==", | ||
490 | + "requires": { | ||
491 | + "gaxios": "^2.0.0", | ||
492 | + "google-p12-pem": "^2.0.0", | ||
493 | + "jws": "^3.1.5", | ||
494 | + "mime": "^2.2.0", | ||
495 | + "pify": "^4.0.0" | ||
496 | + }, | ||
497 | + "dependencies": { | ||
498 | + "mime": { | ||
499 | + "version": "2.4.3", | ||
500 | + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz", | ||
501 | + "integrity": "sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==" | ||
502 | + } | ||
503 | + } | ||
504 | + }, | ||
227 | "har-schema": { | 505 | "har-schema": { |
228 | "version": "2.0.0", | 506 | "version": "2.0.0", |
229 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", | 507 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", |
... | @@ -261,11 +539,25 @@ | ... | @@ -261,11 +539,25 @@ |
261 | "sshpk": "^1.7.0" | 539 | "sshpk": "^1.7.0" |
262 | } | 540 | } |
263 | }, | 541 | }, |
542 | + "https-proxy-agent": { | ||
543 | + "version": "2.2.1", | ||
544 | + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", | ||
545 | + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", | ||
546 | + "requires": { | ||
547 | + "agent-base": "^4.1.0", | ||
548 | + "debug": "^3.1.0" | ||
549 | + } | ||
550 | + }, | ||
264 | "inherits": { | 551 | "inherits": { |
265 | "version": "2.0.3", | 552 | "version": "2.0.3", |
266 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | 553 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", |
267 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | 554 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" |
268 | }, | 555 | }, |
556 | + "is": { | ||
557 | + "version": "3.3.0", | ||
558 | + "resolved": "https://registry.npmjs.org/is/-/is-3.3.0.tgz", | ||
559 | + "integrity": "sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==" | ||
560 | + }, | ||
269 | "is-callable": { | 561 | "is-callable": { |
270 | "version": "1.1.4", | 562 | "version": "1.1.4", |
271 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", | 563 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", |
... | @@ -284,6 +576,11 @@ | ... | @@ -284,6 +576,11 @@ |
284 | "has": "^1.0.1" | 576 | "has": "^1.0.1" |
285 | } | 577 | } |
286 | }, | 578 | }, |
579 | + "is-stream-ended": { | ||
580 | + "version": "0.1.4", | ||
581 | + "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", | ||
582 | + "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==" | ||
583 | + }, | ||
287 | "is-symbol": { | 584 | "is-symbol": { |
288 | "version": "1.0.2", | 585 | "version": "1.0.2", |
289 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", | 586 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", |
... | @@ -312,6 +609,14 @@ | ... | @@ -312,6 +609,14 @@ |
312 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", | 609 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", |
313 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" | 610 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" |
314 | }, | 611 | }, |
612 | + "json-bigint": { | ||
613 | + "version": "0.3.0", | ||
614 | + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.0.tgz", | ||
615 | + "integrity": "sha1-DM2RLEuCcNBfBW+9E4FLU9OCWx4=", | ||
616 | + "requires": { | ||
617 | + "bignumber.js": "^7.0.0" | ||
618 | + } | ||
619 | + }, | ||
315 | "json-schema": { | 620 | "json-schema": { |
316 | "version": "0.2.3", | 621 | "version": "0.2.3", |
317 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", | 622 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", |
... | @@ -338,11 +643,63 @@ | ... | @@ -338,11 +643,63 @@ |
338 | "verror": "1.10.0" | 643 | "verror": "1.10.0" |
339 | } | 644 | } |
340 | }, | 645 | }, |
646 | + "jwa": { | ||
647 | + "version": "1.4.1", | ||
648 | + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", | ||
649 | + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", | ||
650 | + "requires": { | ||
651 | + "buffer-equal-constant-time": "1.0.1", | ||
652 | + "ecdsa-sig-formatter": "1.0.11", | ||
653 | + "safe-buffer": "^5.0.1" | ||
654 | + } | ||
655 | + }, | ||
656 | + "jws": { | ||
657 | + "version": "3.2.2", | ||
658 | + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", | ||
659 | + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", | ||
660 | + "requires": { | ||
661 | + "jwa": "^1.4.1", | ||
662 | + "safe-buffer": "^5.0.1" | ||
663 | + } | ||
664 | + }, | ||
341 | "lodash": { | 665 | "lodash": { |
342 | "version": "4.17.11", | 666 | "version": "4.17.11", |
343 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", | 667 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", |
344 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" | 668 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" |
345 | }, | 669 | }, |
670 | + "lodash.at": { | ||
671 | + "version": "4.6.0", | ||
672 | + "resolved": "https://registry.npmjs.org/lodash.at/-/lodash.at-4.6.0.tgz", | ||
673 | + "integrity": "sha1-k83OZk8KGZTqM9181A4jr9EbD/g=" | ||
674 | + }, | ||
675 | + "lodash.camelcase": { | ||
676 | + "version": "4.3.0", | ||
677 | + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", | ||
678 | + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" | ||
679 | + }, | ||
680 | + "lodash.has": { | ||
681 | + "version": "4.5.2", | ||
682 | + "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", | ||
683 | + "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=" | ||
684 | + }, | ||
685 | + "lodash.merge": { | ||
686 | + "version": "4.6.1", | ||
687 | + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.1.tgz", | ||
688 | + "integrity": "sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==" | ||
689 | + }, | ||
690 | + "long": { | ||
691 | + "version": "4.0.0", | ||
692 | + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", | ||
693 | + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" | ||
694 | + }, | ||
695 | + "lru-cache": { | ||
696 | + "version": "5.1.1", | ||
697 | + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", | ||
698 | + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", | ||
699 | + "requires": { | ||
700 | + "yallist": "^3.0.2" | ||
701 | + } | ||
702 | + }, | ||
346 | "memory-pager": { | 703 | "memory-pager": { |
347 | "version": "1.5.0", | 704 | "version": "1.5.0", |
348 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", | 705 | "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", |
... | @@ -392,6 +749,16 @@ | ... | @@ -392,6 +749,16 @@ |
392 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", | 749 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", |
393 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" | 750 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" |
394 | }, | 751 | }, |
752 | + "node-fetch": { | ||
753 | + "version": "2.6.0", | ||
754 | + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", | ||
755 | + "integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==" | ||
756 | + }, | ||
757 | + "node-forge": { | ||
758 | + "version": "0.8.4", | ||
759 | + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.8.4.tgz", | ||
760 | + "integrity": "sha512-UOfdpxivIYY4g5tqp5FNRNgROVNxRACUxxJREntJLFaJr1E0UEqFtUIk0F/jYx/E+Y6sVXd0KDi/m5My0yGCVw==" | ||
761 | + }, | ||
395 | "node-telegram-bot-api": { | 762 | "node-telegram-bot-api": { |
396 | "version": "0.30.0", | 763 | "version": "0.30.0", |
397 | "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.30.0.tgz", | 764 | "resolved": "https://registry.npmjs.org/node-telegram-bot-api/-/node-telegram-bot-api-0.30.0.tgz", |
... | @@ -417,11 +784,6 @@ | ... | @@ -417,11 +784,6 @@ |
417 | } | 784 | } |
418 | } | 785 | } |
419 | }, | 786 | }, |
420 | - "node-tesseract-ocr": { | ||
421 | - "version": "0.1.0", | ||
422 | - "resolved": "https://registry.npmjs.org/node-tesseract-ocr/-/node-tesseract-ocr-0.1.0.tgz", | ||
423 | - "integrity": "sha512-gUp+fy8Wiy2ZZQiSe33ApfyaBPOOlTz8nrHjZqWGAX4l06lW01uO6ABA5KWBhO3B1DmWl1Y9T1aLasfXYpm2Dg==" | ||
424 | - }, | ||
425 | "oauth-sign": { | 787 | "oauth-sign": { |
426 | "version": "0.9.0", | 788 | "version": "0.9.0", |
427 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | 789 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", |
... | @@ -445,11 +807,36 @@ | ... | @@ -445,11 +807,36 @@ |
445 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", | 807 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", |
446 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" | 808 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" |
447 | }, | 809 | }, |
810 | + "pify": { | ||
811 | + "version": "4.0.1", | ||
812 | + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", | ||
813 | + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" | ||
814 | + }, | ||
448 | "process-nextick-args": { | 815 | "process-nextick-args": { |
449 | "version": "2.0.0", | 816 | "version": "2.0.0", |
450 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", | 817 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", |
451 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" | 818 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" |
452 | }, | 819 | }, |
820 | + "protobufjs": { | ||
821 | + "version": "6.8.8", | ||
822 | + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.8.8.tgz", | ||
823 | + "integrity": "sha512-AAmHtD5pXgZfi7GMpllpO3q1Xw1OYldr+dMUlAnffGTAhqkg72WdmSY71uKBF/JuyiKs8psYbtKrhi0ASCD8qw==", | ||
824 | + "requires": { | ||
825 | + "@protobufjs/aspromise": "^1.1.2", | ||
826 | + "@protobufjs/base64": "^1.1.2", | ||
827 | + "@protobufjs/codegen": "^2.0.4", | ||
828 | + "@protobufjs/eventemitter": "^1.1.0", | ||
829 | + "@protobufjs/fetch": "^1.1.0", | ||
830 | + "@protobufjs/float": "^1.0.2", | ||
831 | + "@protobufjs/inquire": "^1.1.0", | ||
832 | + "@protobufjs/path": "^1.1.2", | ||
833 | + "@protobufjs/pool": "^1.1.0", | ||
834 | + "@protobufjs/utf8": "^1.1.0", | ||
835 | + "@types/long": "^4.0.0", | ||
836 | + "@types/node": "^10.1.0", | ||
837 | + "long": "^4.0.0" | ||
838 | + } | ||
839 | + }, | ||
453 | "psl": { | 840 | "psl": { |
454 | "version": "1.1.32", | 841 | "version": "1.1.32", |
455 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", | 842 | "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz", |
... | @@ -550,6 +937,14 @@ | ... | @@ -550,6 +937,14 @@ |
550 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", | 937 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", |
551 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" | 938 | "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" |
552 | }, | 939 | }, |
940 | + "retry-request": { | ||
941 | + "version": "4.0.0", | ||
942 | + "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.0.0.tgz", | ||
943 | + "integrity": "sha512-S4HNLaWcMP6r8E4TMH52Y7/pM8uNayOcTDDQNBwsCccL1uI+Ol2TljxRDPzaNfbhOB30+XWP5NnZkB3LiJxi1w==", | ||
944 | + "requires": { | ||
945 | + "through2": "^2.0.0" | ||
946 | + } | ||
947 | + }, | ||
553 | "safe-buffer": { | 948 | "safe-buffer": { |
554 | "version": "5.1.2", | 949 | "version": "5.1.2", |
555 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | 950 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", |
... | @@ -604,6 +999,11 @@ | ... | @@ -604,6 +999,11 @@ |
604 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", | 999 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", |
605 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" | 1000 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" |
606 | }, | 1001 | }, |
1002 | + "stream-shift": { | ||
1003 | + "version": "1.0.0", | ||
1004 | + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", | ||
1005 | + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=" | ||
1006 | + }, | ||
607 | "string_decoder": { | 1007 | "string_decoder": { |
608 | "version": "1.1.1", | 1008 | "version": "1.1.1", |
609 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | 1009 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", |
... | @@ -612,6 +1012,15 @@ | ... | @@ -612,6 +1012,15 @@ |
612 | "safe-buffer": "~5.1.0" | 1012 | "safe-buffer": "~5.1.0" |
613 | } | 1013 | } |
614 | }, | 1014 | }, |
1015 | + "through2": { | ||
1016 | + "version": "2.0.5", | ||
1017 | + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", | ||
1018 | + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", | ||
1019 | + "requires": { | ||
1020 | + "readable-stream": "~2.3.6", | ||
1021 | + "xtend": "~4.0.1" | ||
1022 | + } | ||
1023 | + }, | ||
615 | "tough-cookie": { | 1024 | "tough-cookie": { |
616 | "version": "2.4.3", | 1025 | "version": "2.4.3", |
617 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", | 1026 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", |
... | @@ -669,10 +1078,25 @@ | ... | @@ -669,10 +1078,25 @@ |
669 | "extsprintf": "^1.2.0" | 1078 | "extsprintf": "^1.2.0" |
670 | } | 1079 | } |
671 | }, | 1080 | }, |
1081 | + "walkdir": { | ||
1082 | + "version": "0.4.0", | ||
1083 | + "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.0.tgz", | ||
1084 | + "integrity": "sha512-Ps0LSr9doEPbF4kEQi6sk5RgzIGLz9+OroGj1y2osIVnufjNQWSLEGIbZwW5V+j/jK8lCj/+8HSWs+6Q/rnViA==" | ||
1085 | + }, | ||
672 | "wrappy": { | 1086 | "wrappy": { |
673 | "version": "1.0.2", | 1087 | "version": "1.0.2", |
674 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | 1088 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |
675 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | 1089 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" |
1090 | + }, | ||
1091 | + "xtend": { | ||
1092 | + "version": "4.0.1", | ||
1093 | + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", | ||
1094 | + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" | ||
1095 | + }, | ||
1096 | + "yallist": { | ||
1097 | + "version": "3.0.3", | ||
1098 | + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", | ||
1099 | + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==" | ||
676 | } | 1100 | } |
677 | } | 1101 | } |
678 | } | 1102 | } | ... | ... |
... | @@ -10,9 +10,9 @@ | ... | @@ -10,9 +10,9 @@ |
10 | "author": "강수인", | 10 | "author": "강수인", |
11 | "license": "MIT", | 11 | "license": "MIT", |
12 | "dependencies": { | 12 | "dependencies": { |
13 | + "@google-cloud/vision": "^1.0.0", | ||
13 | "mongodb": "^3.2.6", | 14 | "mongodb": "^3.2.6", |
14 | "node-telegram-bot-api": "^0.30.0", | 15 | "node-telegram-bot-api": "^0.30.0", |
15 | - "node-tesseract-ocr": "^0.1.0", | ||
16 | "request": "^2.88.0" | 16 | "request": "^2.88.0" |
17 | } | 17 | } |
18 | } | 18 | } | ... | ... |
-
Please register or login to post a comment