feat: ocr

This commit is contained in:
2024-01-27 00:39:02 +01:00
parent 9bb95af268
commit a55fa90753
4 changed files with 325 additions and 141 deletions

View File

@@ -29,10 +29,11 @@
"dependencies": { "dependencies": {
"@octokit/rest": "19.0.7", "@octokit/rest": "19.0.7",
"@sern/handler": "^3.3.2", "@sern/handler": "^3.3.2",
"discord.js": "14.9.0", "discord.js": "^14.14.1",
"dotenv": "16.0.3", "dotenv": "16.0.3",
"jsdoc-parse-plus": "1.3.0", "jsdoc-parse-plus": "1.3.0",
"string-similarity": "4.0.4", "string-similarity": "4.0.4",
"tesseract.js": "^5.0.4",
"trie-search": "1.4.1", "trie-search": "1.4.1",
"undici": "5.22.0", "undici": "5.22.0",
"winston": "3.8.2" "winston": "3.8.2"

60
src/commands/ocr.ts Normal file
View File

@@ -0,0 +1,60 @@
import { publish } from '#plugins';
import { commandModule, CommandType } from '@sern/handler';
import { ActionRowBuilder, codeBlock, ComponentType, inlineCode, StringSelectMenuBuilder } from 'discord.js';
import { createWorker } from 'tesseract.js';
export default commandModule({
type: CommandType.CtxMsg,
plugins: [publish()],
description: '',
execute: async (ctx) => {
const select = new StringSelectMenuBuilder({
customId: 'ocr-lang',
placeholder: 'Select language',
options: [
{ label: 'English', value: 'eng', emoji: '🇺🇸' },
{ label: 'Spanish', value: 'spa', emoji: '🇪🇸' },
{ label: 'Portuguese', value: 'por', emoji: '🇵🇹' },
{ label: 'French', value: 'fra', emoji: '🇫🇷' },
{ label: 'German', value: 'deu', emoji: '🇩🇪' },
{ label: 'Italian', value: 'ita', emoji: '🇮🇹' },
{ label: 'Japanese', value: 'jpn', emoji: '🇯🇵' },
]
})
const row = new ActionRowBuilder<StringSelectMenuBuilder>()
.addComponents(select)
const langMsg = await ctx.reply({
components: [row],
ephemeral: true,
})
const langCollector = langMsg.createMessageComponentCollector({
filter: (i) => i.user.id === ctx.user.id,
componentType: ComponentType.StringSelect,
time: 10000
})
langCollector.on('collect', async (i) => {
const lang = i.values[0]
langMsg.delete()
const readingMessage = await ctx.targetMessage.reply({
content: `Reading image with language ${inlineCode(lang)}...`,
})
const image = ctx.targetMessage.attachments.first()
if (!image) {
await readingMessage.edit({
content: 'No image found',
})
return langCollector.stop('No image found')
}
const worker = await createWorker(lang)
const ocrData = await worker.recognize(image.proxyURL)
await readingMessage.edit({
content: `Here's what I was able to read:\n${codeBlock(ocrData.data.text)}`,
})
await worker.terminate()
})
},
});

View File

@@ -1,4 +1,3 @@
import { readFile } from "fs/promises";
import TrieSearch from "trie-search"; import TrieSearch from "trie-search";
import { createRequire } from "module"; import { createRequire } from "module";
const require = createRequire(import.meta.url); const require = createRequire(import.meta.url);

402
yarn.lock
View File

@@ -23,57 +23,82 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@discordjs/builders@npm:^1.6.0": "@discordjs/builders@npm:^1.7.0":
version: 1.6.1 version: 1.7.0
resolution: "@discordjs/builders@npm:1.6.1" resolution: "@discordjs/builders@npm:1.7.0"
dependencies: dependencies:
"@discordjs/formatters": ^0.3.0 "@discordjs/formatters": ^0.3.3
"@discordjs/util": ^0.2.0 "@discordjs/util": ^1.0.2
"@sapphire/shapeshift": ^3.8.1 "@sapphire/shapeshift": ^3.9.3
discord-api-types: ^0.37.37 discord-api-types: 0.37.61
fast-deep-equal: ^3.1.3 fast-deep-equal: ^3.1.3
ts-mixer: ^6.0.3 ts-mixer: ^6.0.3
tslib: ^2.5.0 tslib: ^2.6.2
checksum: 057b5585d17e6273d99aa4cb356ca845d54785d95c0af05418f30eb933cf0b80043f7941effe7a593142c6817f47b893c5a973dfd95f3db24e0570666781e2d9 checksum: 837e7643fc8396e4914bbbfbbfa1232ab7109c931884e8df45cd7356944633590f710a18513d30a10de1b6686ed5166df702bde0c4511fb0cbcac897edd9e56a
languageName: node languageName: node
linkType: hard linkType: hard
"@discordjs/collection@npm:^1.5.0": "@discordjs/collection@npm:1.5.3":
version: 1.5.0 version: 1.5.3
resolution: "@discordjs/collection@npm:1.5.0" resolution: "@discordjs/collection@npm:1.5.3"
checksum: 072043743c5e5ef99033f1c227fd92f437a0665b8f0a5bfa26bacc6610963d03b54c45da0e0116ce30e4612efc52b2db0a0827f79091a135409237722db5400a checksum: fefed19bea0f69053d195f9d9dc8af07ca5d8c9b1064581e0aa14bda2b70e632b93c164d5ef3e4910f5442369612ff4eec8d52a700aec562510c19b223f67023
languageName: node languageName: node
linkType: hard linkType: hard
"@discordjs/formatters@npm:^0.3.0": "@discordjs/collection@npm:^2.0.0":
version: 0.3.0 version: 2.0.0
resolution: "@discordjs/formatters@npm:0.3.0" resolution: "@discordjs/collection@npm:2.0.0"
checksum: c2d05fa2b9a27bb64e93e2836bbe44c835d21f85e28cd934f6e2a81fef423ab0415968cca9d066b83347539edc8ea9afa8075d80bd62594e39f09eb881052c49
languageName: node
linkType: hard
"@discordjs/formatters@npm:^0.3.3":
version: 0.3.3
resolution: "@discordjs/formatters@npm:0.3.3"
dependencies: dependencies:
discord-api-types: ^0.37.37 discord-api-types: 0.37.61
checksum: cdf0d842f268a1b8c072522f58b0c77853e825964acb1e3b189f53d740d0d4ee4ed3b4be177ce4ab30a665bc1e6953348ab0d29b5fd52a0651e74eb63ad4be6d checksum: a844628094a6effa8ac4e4a4ea9082d5c89e6cae6bbd18e60abd410769e5ea18f64aa2db8623aa3c8c572084368f6c2e27cc2d72af640aff5e4ee7fc42132c60
languageName: node languageName: node
linkType: hard linkType: hard
"@discordjs/rest@npm:^1.7.0": "@discordjs/rest@npm:^2.1.0":
version: 1.7.0 version: 2.2.0
resolution: "@discordjs/rest@npm:1.7.0" resolution: "@discordjs/rest@npm:2.2.0"
dependencies: dependencies:
"@discordjs/collection": ^1.5.0 "@discordjs/collection": ^2.0.0
"@discordjs/util": ^0.2.0 "@discordjs/util": ^1.0.2
"@sapphire/async-queue": ^1.5.0 "@sapphire/async-queue": ^1.5.0
"@sapphire/snowflake": ^3.4.0 "@sapphire/snowflake": ^3.5.1
discord-api-types: ^0.37.37 "@vladfrangu/async_event_emitter": ^2.2.2
file-type: ^18.2.1 discord-api-types: 0.37.61
tslib: ^2.5.0 magic-bytes.js: ^1.5.0
undici: ^5.21.0 tslib: ^2.6.2
checksum: 5d52ae02b77abafbcd70c650a9760625a7afab37875a7fc85404e1053e12745aeca819747ad4dbbaab78b1df0a33a050b980b1e91ba356c496bb0ea93d32e10f undici: 5.27.2
checksum: 29a14ecf3282ae3306883f1f6c870693d0ecacd080c5b66a72e31487a8070655807a80a8bf09bebea4f73e631439abc5121dfa38016ca0ccbe3f68c0f7ffc80e
languageName: node languageName: node
linkType: hard linkType: hard
"@discordjs/util@npm:^0.2.0": "@discordjs/util@npm:^1.0.2":
version: 0.2.0 version: 1.0.2
resolution: "@discordjs/util@npm:0.2.0" resolution: "@discordjs/util@npm:1.0.2"
checksum: 1e6c02a2881c98ccee2ffd34f487b751e1f16bce007e0a3e9fa538170c1ddb3d68e2b1d88c84b3406191ba9dfec3a999a828603a142c359703fc53482269e7fa checksum: 320d7e125981001160d413ae56e76e60447dce102010b80e3b1b16d885be765df5ae2551aa79fdc4d435a82361ed72246b44251f0c1f7a8fef7056a4481d5609
languageName: node
linkType: hard
"@discordjs/ws@npm:^1.0.2":
version: 1.0.2
resolution: "@discordjs/ws@npm:1.0.2"
dependencies:
"@discordjs/collection": ^2.0.0
"@discordjs/rest": ^2.1.0
"@discordjs/util": ^1.0.2
"@sapphire/async-queue": ^1.5.0
"@types/ws": ^8.5.9
"@vladfrangu/async_event_emitter": ^2.2.2
discord-api-types: 0.37.61
tslib: ^2.6.2
ws: ^8.14.2
checksum: 2564d3ff00d04d7638955c8c9a9f6234c50168fbe8243140bc458dc9ffa39ad5063e7d5762cdce71bb8bcf70b6353c28b8531e40f54568706898e92bc8748590
languageName: node languageName: node
linkType: hard linkType: hard
@@ -231,6 +256,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@fastify/busboy@npm:^2.0.0":
version: 2.1.0
resolution: "@fastify/busboy@npm:2.1.0"
checksum: 3233abd10f73e50668cb4bb278a79b7b3fadd30215ac6458299b0e5a09a29c3586ec07597aae6bd93f5cbedfcef43a8aeea51829cd28fc13850cdbcd324c28d5
languageName: node
linkType: hard
"@gar/promisify@npm:^1.1.3": "@gar/promisify@npm:^1.1.3":
version: 1.1.3 version: 1.1.3
resolution: "@gar/promisify@npm:1.1.3" resolution: "@gar/promisify@npm:1.1.3"
@@ -423,20 +455,27 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@sapphire/shapeshift@npm:^3.8.1": "@sapphire/shapeshift@npm:^3.9.3":
version: 3.8.1 version: 3.9.6
resolution: "@sapphire/shapeshift@npm:3.8.1" resolution: "@sapphire/shapeshift@npm:3.9.6"
dependencies: dependencies:
fast-deep-equal: ^3.1.3 fast-deep-equal: ^3.1.3
lodash: ^4.17.21 lodash: ^4.17.21
checksum: 2a5954c76ee9a91506ae269141ffd2d71e05891c7f1618d0acbf3670312f0b473e356f9c3dafe484d8dc89282d7554f1fd7d720a2a3b0e921fb4e969d09513ee checksum: d94a30e65fabc9f8a3ab0181c1de3710cc17d6c57bba40e02120adbe97bd6dde061a4b07b6424d58d07022fabe508034c712837f28829817783522304048fc58
languageName: node languageName: node
linkType: hard linkType: hard
"@sapphire/snowflake@npm:^3.4.0": "@sapphire/snowflake@npm:3.5.1":
version: 3.4.0 version: 3.5.1
resolution: "@sapphire/snowflake@npm:3.4.0" resolution: "@sapphire/snowflake@npm:3.5.1"
checksum: 556b7001f33d6edbbbcbca46f6abfa56c732a29e78b693161e358688e688edcb012d2c1bc944e7ffb41bd6c9950d261bc73f95656dc01643361a218b4f5ab985 checksum: 8fc025020adab1a7a1a5d2cf07704d598cc1977b50e5fcd3a5dd239f00934dc936d3a4d5ae336e71d8bf1d88ec27aa814b34de79e38ff097b7b9ba5a7977a683
languageName: node
linkType: hard
"@sapphire/snowflake@npm:^3.5.1":
version: 3.5.3
resolution: "@sapphire/snowflake@npm:3.5.3"
checksum: 821add76877e2786ddb1b5cd3ee5de130610b82014972d91a99b4b7ce5475839b9a26f94de322f48a66f9ba2e2c578ffe46a60d06cbb9a36fd8fb96ef78be248
languageName: node languageName: node
linkType: hard linkType: hard
@@ -452,13 +491,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@tokenizer/token@npm:^0.3.0":
version: 0.3.0
resolution: "@tokenizer/token@npm:0.3.0"
checksum: 1d575d02d2a9f0c5a4ca5180635ebd2ad59e0f18b42a65f3d04844148b49b3db35cf00b6012a1af2d59c2ab3caca59451c5689f747ba8667ee586ad717ee58e1
languageName: node
linkType: hard
"@tootallnate/once@npm:2": "@tootallnate/once@npm:2":
version: 2.0.0 version: 2.0.0
resolution: "@tootallnate/once@npm:2.0.0" resolution: "@tootallnate/once@npm:2.0.0"
@@ -487,12 +519,28 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@types/ws@npm:^8.5.4": "@types/ws@npm:8.5.9":
version: 8.5.4 version: 8.5.9
resolution: "@types/ws@npm:8.5.4" resolution: "@types/ws@npm:8.5.9"
dependencies: dependencies:
"@types/node": "*" "@types/node": "*"
checksum: fefbad20d211929bb996285c4e6f699b12192548afedbe4930ab4384f8a94577c9cd421acaad163cacd36b88649509970a05a0b8f20615b30c501ed5269038d1 checksum: 83f436b731d2cdc49a45ced31a0a65cdd2e39c24d7b882776c26efa190dad6553e266d624c7a7089f36ad3ed471e02e729f3219282c80689b435f665df4a2b0b
languageName: node
linkType: hard
"@types/ws@npm:^8.5.9":
version: 8.5.10
resolution: "@types/ws@npm:8.5.10"
dependencies:
"@types/node": "*"
checksum: 3ec416ea2be24042ebd677932a462cf16d2080393d8d7d0b1b3f5d6eaa4a7387aaf0eefb99193c0bfd29444857cf2e0c3ac89899e130550dc6c14ada8a46d25e
languageName: node
linkType: hard
"@vladfrangu/async_event_emitter@npm:^2.2.2":
version: 2.2.4
resolution: "@vladfrangu/async_event_emitter@npm:2.2.4"
checksum: ff65ebc4d89639adecd249e24e4f6f97b7696404f2a4461160efdff628d91de543e982727c18de62a4edada3f66381b5a3cd1d4f4f33098075d839c1b4f46979
languageName: node languageName: node
linkType: hard linkType: hard
@@ -609,6 +657,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"bmp-js@npm:^0.1.0":
version: 0.1.0
resolution: "bmp-js@npm:0.1.0"
checksum: 2f6cf7eeabae2aa50eb768122f59e9752caa97248028cb8b5cf0d9db7cf8fb3a60262aeb2c6889dd21357ab061b2fb318f21f20d2b24963ba36ead8e264c6654
languageName: node
linkType: hard
"brace-expansion@npm:^1.1.7": "brace-expansion@npm:^1.1.7":
version: 1.1.11 version: 1.1.11
resolution: "brace-expansion@npm:1.1.11" resolution: "brace-expansion@npm:1.1.11"
@@ -866,31 +921,32 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"discord-api-types@npm:^0.37.37": "discord-api-types@npm:0.37.61":
version: 0.37.40 version: 0.37.61
resolution: "discord-api-types@npm:0.37.40" resolution: "discord-api-types@npm:0.37.61"
checksum: d05ab85c10eeaed4b066e5b826adee8faf05d53c93234ece89c17ef7bf8ff967b9e1fb60f0b343475416910d898f1656f1b7afe33d9a001c2fd7e0245584b128 checksum: fe33d528e31a6de0bab2afb43d0e058957a6da6cfc4d797943fac83aeb8d07543dc0f85cad3c4e6789cbbac0c7ca49dae5ac465224b129c7acb716097fa0b081
languageName: node languageName: node
linkType: hard linkType: hard
"discord.js@npm:14.9.0": "discord.js@npm:^14.14.1":
version: 14.9.0 version: 14.14.1
resolution: "discord.js@npm:14.9.0" resolution: "discord.js@npm:14.14.1"
dependencies: dependencies:
"@discordjs/builders": ^1.6.0 "@discordjs/builders": ^1.7.0
"@discordjs/collection": ^1.5.0 "@discordjs/collection": 1.5.3
"@discordjs/formatters": ^0.3.0 "@discordjs/formatters": ^0.3.3
"@discordjs/rest": ^1.7.0 "@discordjs/rest": ^2.1.0
"@discordjs/util": ^0.2.0 "@discordjs/util": ^1.0.2
"@sapphire/snowflake": ^3.4.0 "@discordjs/ws": ^1.0.2
"@types/ws": ^8.5.4 "@sapphire/snowflake": 3.5.1
discord-api-types: ^0.37.37 "@types/ws": 8.5.9
fast-deep-equal: ^3.1.3 discord-api-types: 0.37.61
lodash.snakecase: ^4.1.1 fast-deep-equal: 3.1.3
tslib: ^2.5.0 lodash.snakecase: 4.1.1
undici: ^5.21.0 tslib: 2.6.2
ws: ^8.13.0 undici: 5.27.2
checksum: 34589830f771b238975cbabb82531db78756b1b132b6b296ad845bc93755cfee34e65febb638e1b77e9e68d9ce2362cd4d4057123c37909e1354d670b747cb71 ws: 8.14.2
checksum: 651e61861ae33e6ec3903e72a8bf229caae5dab73f8d409c3673430cafd9c438a0dd59983242bdcff47bab50da39f7a04da5b586c35b396c102e8e87637076e5
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1032,7 +1088,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"fast-deep-equal@npm:^3.1.3": "fast-deep-equal@npm:3.1.3, fast-deep-equal@npm:^3.1.3":
version: 3.1.3 version: 3.1.3
resolution: "fast-deep-equal@npm:3.1.3" resolution: "fast-deep-equal@npm:3.1.3"
checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d
@@ -1068,17 +1124,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"file-type@npm:^18.2.1":
version: 18.2.1
resolution: "file-type@npm:18.2.1"
dependencies:
readable-web-to-node-stream: ^3.0.2
strtok3: ^7.0.0
token-types: ^5.0.1
checksum: bbc9381292e96a72ecd892f9f5e1a9a8d3f9717955841346e55891acfe099135bfa149f7dad51f35ee52b5e7e0a1a02d7375061b2800758011682c2e9d96953e
languageName: node
linkType: hard
"fill-range@npm:^7.0.1": "fill-range@npm:^7.0.1":
version: 7.0.1 version: 7.0.1
resolution: "fill-range@npm:7.0.1" resolution: "fill-range@npm:7.0.1"
@@ -1293,10 +1338,10 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ieee754@npm:^1.2.1": "idb-keyval@npm:^6.2.0":
version: 1.2.1 version: 6.2.1
resolution: "ieee754@npm:1.2.1" resolution: "idb-keyval@npm:6.2.1"
checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e checksum: 7c0836f832096086e99258167740181132a71dd2694c8b8454a4f5ec69114ba6d70983115153306f0b6de1c8d3bad04f67eed3dff8f50c96815b9985d6d78470
languageName: node languageName: node
linkType: hard linkType: hard
@@ -1368,6 +1413,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"is-electron@npm:^2.2.2":
version: 2.2.2
resolution: "is-electron@npm:2.2.2"
checksum: de5aa8bd8d72c96675b8d0f93fab4cc21f62be5440f65bc05c61338ca27bd851a64200f31f1bf9facbaa01b3dbfed7997b2186741d84b93b63e0aff1db6a9494
languageName: node
linkType: hard
"is-extglob@npm:^2.1.1": "is-extglob@npm:^2.1.1":
version: 2.1.1 version: 2.1.1
resolution: "is-extglob@npm:2.1.1" resolution: "is-extglob@npm:2.1.1"
@@ -1419,6 +1471,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"is-url@npm:^1.2.4":
version: 1.2.4
resolution: "is-url@npm:1.2.4"
checksum: 100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432
languageName: node
linkType: hard
"isexe@npm:^2.0.0": "isexe@npm:^2.0.0":
version: 2.0.0 version: 2.0.0
resolution: "isexe@npm:2.0.0" resolution: "isexe@npm:2.0.0"
@@ -1484,7 +1543,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"lodash.snakecase@npm:^4.1.1": "lodash.snakecase@npm:4.1.1":
version: 4.1.1 version: 4.1.1
resolution: "lodash.snakecase@npm:4.1.1" resolution: "lodash.snakecase@npm:4.1.1"
checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8 checksum: 1685ed3e83dda6eae5a4dcaee161a51cd210aabb3e1c09c57150e7dd8feda19e4ca0d27d0631eabe8d0f4eaa51e376da64e8c018ae5415417c5890d42feb72a8
@@ -1534,6 +1593,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"magic-bytes.js@npm:^1.5.0":
version: 1.8.0
resolution: "magic-bytes.js@npm:1.8.0"
checksum: 18835ec4e67a5985d162788cba4ca6744cb9b042f15d02358623dca4e72d54029d14c60b5ce326d574c8524e30eeb5245c015da121546d61f49888c8a365137c
languageName: node
linkType: hard
"make-fetch-happen@npm:^10.0.3": "make-fetch-happen@npm:^10.0.3":
version: 10.2.1 version: 10.2.1
resolution: "make-fetch-happen@npm:10.2.1" resolution: "make-fetch-happen@npm:10.2.1"
@@ -1732,6 +1798,20 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"node-fetch@npm:^2.6.9":
version: 2.7.0
resolution: "node-fetch@npm:2.7.0"
dependencies:
whatwg-url: ^5.0.0
peerDependencies:
encoding: ^0.1.0
peerDependenciesMeta:
encoding:
optional: true
checksum: d76d2f5edb451a3f05b15115ec89fc6be39de37c6089f1b6368df03b91e1633fd379a7e01b7ab05089a25034b2023d959b47e59759cb38d88341b2459e89d6e5
languageName: node
linkType: hard
"node-gyp@npm:latest": "node-gyp@npm:latest":
version: 9.3.0 version: 9.3.0
resolution: "node-gyp@npm:9.3.0" resolution: "node-gyp@npm:9.3.0"
@@ -1825,6 +1905,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"opencollective-postinstall@npm:^2.0.3":
version: 2.0.3
resolution: "opencollective-postinstall@npm:2.0.3"
bin:
opencollective-postinstall: index.js
checksum: 0a68c5cef135e46d11e665d5077398285d1ce5311c948e8327b435791c409744d4a6bb9c55bd6507fb5f2ef34b0ad920565adcdaf974cbdae701aead6f32b396
languageName: node
linkType: hard
"p-map@npm:^4.0.0": "p-map@npm:^4.0.0":
version: 4.0.0 version: 4.0.0
resolution: "p-map@npm:4.0.0" resolution: "p-map@npm:4.0.0"
@@ -1855,13 +1944,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"peek-readable@npm:^5.0.0":
version: 5.0.0
resolution: "peek-readable@npm:5.0.0"
checksum: bef5ceb50586eb42e14efba274ac57ffe97f0ed272df9239ce029f688f495d9bf74b2886fa27847c706a9db33acda4b7d23bbd09a2d21eb4c2a54da915117414
languageName: node
linkType: hard
"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1":
version: 2.3.1 version: 2.3.1
resolution: "picomatch@npm:2.3.1" resolution: "picomatch@npm:2.3.1"
@@ -1936,15 +2018,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"readable-web-to-node-stream@npm:^3.0.2":
version: 3.0.2
resolution: "readable-web-to-node-stream@npm:3.0.2"
dependencies:
readable-stream: ^3.6.0
checksum: 8c56cc62c68513425ddfa721954875b382768f83fa20e6b31e365ee00cbe7a3d6296f66f7f1107b16cd3416d33aa9f1680475376400d62a081a88f81f0ea7f9c
languageName: node
linkType: hard
"readdirp@npm:~3.6.0": "readdirp@npm:~3.6.0":
version: 3.6.0 version: 3.6.0
resolution: "readdirp@npm:3.6.0" resolution: "readdirp@npm:3.6.0"
@@ -1954,6 +2027,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"regenerator-runtime@npm:^0.13.3":
version: 0.13.11
resolution: "regenerator-runtime@npm:0.13.11"
checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4
languageName: node
linkType: hard
"resolve-from@npm:^5.0.0": "resolve-from@npm:^5.0.0":
version: 5.0.0 version: 5.0.0
resolution: "resolve-from@npm:5.0.0" resolution: "resolve-from@npm:5.0.0"
@@ -2058,10 +2138,11 @@ __metadata:
"@sern/handler": ^3.3.2 "@sern/handler": ^3.3.2
"@types/node": 18.16.3 "@types/node": 18.16.3
"@types/string-similarity": 4.0.0 "@types/string-similarity": 4.0.0
discord.js: 14.9.0 discord.js: ^14.14.1
dotenv: 16.0.3 dotenv: 16.0.3
jsdoc-parse-plus: 1.3.0 jsdoc-parse-plus: 1.3.0
string-similarity: 4.0.4 string-similarity: 4.0.4
tesseract.js: ^5.0.4
trie-search: 1.4.1 trie-search: 1.4.1
tsup: 6.7.0 tsup: 6.7.0
typescript: 5.0.4 typescript: 5.0.4
@@ -2219,16 +2300,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"strtok3@npm:^7.0.0":
version: 7.0.0
resolution: "strtok3@npm:7.0.0"
dependencies:
"@tokenizer/token": ^0.3.0
peek-readable: ^5.0.0
checksum: 2ebe7ad8f2aea611dec6742cf6a42e82764892a362907f7ce493faf334501bf981ce21c828dcc300457e6d460dc9c34d644ededb3b01dcb9e37559203cf1748c
languageName: node
linkType: hard
"sucrase@npm:^3.20.3": "sucrase@npm:^3.20.3":
version: 3.25.0 version: 3.25.0
resolution: "sucrase@npm:3.25.0" resolution: "sucrase@npm:3.25.0"
@@ -2260,6 +2331,31 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tesseract.js-core@npm:^5.0.0":
version: 5.0.0
resolution: "tesseract.js-core@npm:5.0.0"
checksum: 5d66291078ecf36f2e957e195bc82c4b313136bebf64cfc974e188226a524690785c6f3561ce4cc42f6060190318d3a08c6fee88dade19d77e70f50badd59d7e
languageName: node
linkType: hard
"tesseract.js@npm:^5.0.4":
version: 5.0.4
resolution: "tesseract.js@npm:5.0.4"
dependencies:
bmp-js: ^0.1.0
idb-keyval: ^6.2.0
is-electron: ^2.2.2
is-url: ^1.2.4
node-fetch: ^2.6.9
opencollective-postinstall: ^2.0.3
regenerator-runtime: ^0.13.3
tesseract.js-core: ^5.0.0
wasm-feature-detect: ^1.2.11
zlibjs: ^0.3.1
checksum: 02addebd5b759a8a9b08f21ba60ef1f3f74ed76e497ec52c3a67be2e8f6ef4c7b6807e87a3d35a7f96d3d39d58ffc285eec9a2bb26a32ba62c4604f54c7816c6
languageName: node
linkType: hard
"text-hex@npm:1.0.x": "text-hex@npm:1.0.x":
version: 1.0.0 version: 1.0.0
resolution: "text-hex@npm:1.0.0" resolution: "text-hex@npm:1.0.0"
@@ -2294,16 +2390,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"token-types@npm:^5.0.1":
version: 5.0.1
resolution: "token-types@npm:5.0.1"
dependencies:
"@tokenizer/token": ^0.3.0
ieee754: ^1.2.1
checksum: 32780123bc6ce8b6a2231d860445c994a02a720abf38df5583ea957aa6626873cd1c4dd8af62314da4cf16ede00c379a765707a3b06f04b8808c38efdae1c785
languageName: node
linkType: hard
"tr46@npm:^1.0.1": "tr46@npm:^1.0.1":
version: 1.0.1 version: 1.0.1
resolution: "tr46@npm:1.0.1" resolution: "tr46@npm:1.0.1"
@@ -2366,6 +2452,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tslib@npm:2.6.2, tslib@npm:^2.6.2":
version: 2.6.2
resolution: "tslib@npm:2.6.2"
checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
languageName: node
linkType: hard
"tslib@npm:^2.1.0": "tslib@npm:^2.1.0":
version: 2.4.1 version: 2.4.1
resolution: "tslib@npm:2.4.1" resolution: "tslib@npm:2.4.1"
@@ -2373,13 +2466,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"tslib@npm:^2.5.0":
version: 2.5.0
resolution: "tslib@npm:2.5.0"
checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1
languageName: node
linkType: hard
"tsup@npm:6.7.0": "tsup@npm:6.7.0":
version: 6.7.0 version: 6.7.0
resolution: "tsup@npm:6.7.0" resolution: "tsup@npm:6.7.0"
@@ -2436,7 +2522,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici@npm:5.22.0, undici@npm:^5.21.0": "undici@npm:5.22.0":
version: 5.22.0 version: 5.22.0
resolution: "undici@npm:5.22.0" resolution: "undici@npm:5.22.0"
dependencies: dependencies:
@@ -2445,6 +2531,15 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"undici@npm:5.27.2":
version: 5.27.2
resolution: "undici@npm:5.27.2"
dependencies:
"@fastify/busboy": ^2.0.0
checksum: 22bbdd763798700979986546d70072b67223189353d2a811efa9c6e44476161a0d1781ffe24115221f69a1b344b95d5926bd39a6eb760a2cd8804781cec0c5eb
languageName: node
linkType: hard
"unique-filename@npm:^2.0.0": "unique-filename@npm:^2.0.0":
version: 2.0.1 version: 2.0.1
resolution: "unique-filename@npm:2.0.1" resolution: "unique-filename@npm:2.0.1"
@@ -2484,6 +2579,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"wasm-feature-detect@npm:^1.2.11":
version: 1.6.1
resolution: "wasm-feature-detect@npm:1.6.1"
checksum: 63bb5522f2cc2e1a35b1c287212e7eadc1311d853c9ff34497b887aa39389b07e63ca4ee2d6899678392303f08c6d178e5ee4f718d1989beb574f3fa69ab8b97
languageName: node
linkType: hard
"webidl-conversions@npm:^3.0.0": "webidl-conversions@npm:^3.0.0":
version: 3.0.1 version: 3.0.1
resolution: "webidl-conversions@npm:3.0.1" resolution: "webidl-conversions@npm:3.0.1"
@@ -2576,9 +2678,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"ws@npm:^8.13.0": "ws@npm:8.14.2":
version: 8.13.0 version: 8.14.2
resolution: "ws@npm:8.13.0" resolution: "ws@npm:8.14.2"
peerDependencies: peerDependencies:
bufferutil: ^4.0.1 bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2" utf-8-validate: ">=5.0.2"
@@ -2587,7 +2689,22 @@ __metadata:
optional: true optional: true
utf-8-validate: utf-8-validate:
optional: true optional: true
checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c checksum: 3ca0dad26e8cc6515ff392b622a1467430814c463b3368b0258e33696b1d4bed7510bc7030f7b72838b9fdeb8dbd8839cbf808367d6aae2e1d668ce741d4308b
languageName: node
linkType: hard
"ws@npm:^8.14.2":
version: 8.16.0
resolution: "ws@npm:8.16.0"
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: ">=5.0.2"
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
checksum: feb3eecd2bae82fa8a8beef800290ce437d8b8063bdc69712725f21aef77c49cb2ff45c6e5e7fce622248f9c7abaee506bae0a9064067ffd6935460c7357321b
languageName: node languageName: node
linkType: hard linkType: hard
@@ -2604,3 +2721,10 @@ __metadata:
checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f
languageName: node languageName: node
linkType: hard linkType: hard
"zlibjs@npm:^0.3.1":
version: 0.3.1
resolution: "zlibjs@npm:0.3.1"
checksum: 91f3d28bb5925ac71565a1fd4d44303b6b876ed483c9c192864393811151b399f29d917c9118a5aca5a541d9dfc7c199460f86b489ea1f77b7217e0edc887c89
languageName: node
linkType: hard