706b4ae602
This pull request adds support for the [sonic](https://github.com/valeriansaliou/sonic) full text indexing server into Calckey. In addition to this, a stateful endpoint has been added that will completely (re-)index all notes into any (elasticsearch and/or sonic) indexing server defined in your config at `/api/admin/search/index-all`. It can (optionally) take input data to define the starting point, such as: ``` {"cursor": "9beg3lx6ad"} ``` Currently if both sonic and elasticsearch are defined in the config, sonic will take precedence for searching, but both indexes will continue to be updated for new note creations. Future enhancements may include the ability to choose which indexer to use (or combine multiple). Co-authored-by: Kaitlyn Allan <kaitlyn.allan@enlabs.cloud> Reviewed-on: https://codeberg.org/calckey/calckey/pulls/9714 Co-authored-by: Kaity A <supakaity@noreply.codeberg.org> Co-committed-by: Kaity A <supakaity@noreply.codeberg.org>
197 lines
5.2 KiB
JSON
197 lines
5.2 KiB
JSON
{
|
|
"name": "backend",
|
|
"main": "./index.js",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"start": "pnpm node ./built/index.js",
|
|
"start:test": "NODE_ENV=test pnpm node ./built/index.js",
|
|
"migrate": "typeorm migration:run -d ormconfig.js",
|
|
"revertmigration": "typeorm migration:revert -d ormconfig.js",
|
|
"check:connect": "node ./check_connect.js",
|
|
"build": "pnpm swc src -d built -D",
|
|
"watch": "pnpm swc src -d built -D -w",
|
|
"lint": "pnpm rome check \"src/**/*.ts\"",
|
|
"mocha": "cross-env NODE_ENV=test TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
|
|
"test": "pnpm run mocha"
|
|
},
|
|
"resolutions": {
|
|
"chokidar": "^3.3.1"
|
|
},
|
|
"optionalDependencies": {
|
|
"@swc/core-android-arm64": "1.3.11",
|
|
"@tensorflow/tfjs-node": "3.21.1"
|
|
},
|
|
"dependencies": {
|
|
"@bull-board/api": "^4.6.4",
|
|
"@bull-board/koa": "^4.6.4",
|
|
"@bull-board/ui": "^4.6.4",
|
|
"@discordapp/twemoji": "14.0.2",
|
|
"@elastic/elasticsearch": "7.17.0",
|
|
"@koa/cors": "3.4.3",
|
|
"@koa/multer": "3.0.0",
|
|
"@koa/router": "9.0.1",
|
|
"@peertube/http-signature": "1.7.0",
|
|
"@redocly/openapi-core": "1.0.0-beta.120",
|
|
"@sinonjs/fake-timers": "9.1.2",
|
|
"@syuilo/aiscript": "0.11.1",
|
|
"@tensorflow/tfjs": "^4.2.0",
|
|
"ajv": "8.11.2",
|
|
"archiver": "5.3.1",
|
|
"koa-body": "^6.0.1",
|
|
"autobind-decorator": "2.4.0",
|
|
"autolinker": "4.0.0",
|
|
"axios": "^1.3.2",
|
|
"autwh": "0.1.0",
|
|
"aws-sdk": "2.1277.0",
|
|
"bcryptjs": "2.4.3",
|
|
"blurhash": "1.1.5",
|
|
"bull": "4.10.2",
|
|
"cacheable-lookup": "7.0.0",
|
|
"calckey-js": "^0.0.22",
|
|
"cbor": "8.1.0",
|
|
"chalk": "5.2.0",
|
|
"chalk-template": "0.4.0",
|
|
"chokidar": "3.5.3",
|
|
"cli-highlight": "2.1.11",
|
|
"color-convert": "2.0.1",
|
|
"content-disposition": "0.5.4",
|
|
"date-fns": "2.29.3",
|
|
"deep-email-validator": "0.1.21",
|
|
"escape-regexp": "0.0.1",
|
|
"feed": "4.2.2",
|
|
"file-type": "17.1.6",
|
|
"fluent-ffmpeg": "2.1.2",
|
|
"got": "12.5.3",
|
|
"hpagent": "0.1.2",
|
|
"ioredis": "5.2.4",
|
|
"ip-cidr": "3.0.11",
|
|
"is-svg": "4.3.2",
|
|
"js-yaml": "4.1.0",
|
|
"jsdom": "20.0.3",
|
|
"jsonld": "6.0.0",
|
|
"jsrsasign": "10.6.1",
|
|
"koa": "2.13.4",
|
|
"koa-remove-trailing-slashes": "2.0.3",
|
|
"koa-bodyparser": "4.3.0",
|
|
"koa-favicon": "2.1.0",
|
|
"koa-json-body": "5.3.0",
|
|
"koa-logger": "3.2.1",
|
|
"koa-mount": "4.0.0",
|
|
"koa-send": "5.0.1",
|
|
"koa-slow": "2.1.0",
|
|
"koa-views": "7.0.2",
|
|
"@calckey/megalodon": "5.1.21",
|
|
"mfm-js": "0.23.2",
|
|
"mime-types": "2.1.35",
|
|
"multer": "1.4.4-lts.1",
|
|
"nested-property": "4.0.0",
|
|
"node-fetch": "3.3.0",
|
|
"nodemailer": "6.8.0",
|
|
"nsfwjs": "2.4.2",
|
|
"oauth": "^0.10.0",
|
|
"os-utils": "0.0.14",
|
|
"parse5": "7.1.2",
|
|
"pg": "8.8.0",
|
|
"private-ip": "2.3.4",
|
|
"probe-image-size": "7.2.3",
|
|
"promise-limit": "2.7.0",
|
|
"punycode": "2.1.1",
|
|
"pureimage": "0.3.15",
|
|
"qrcode": "1.5.1",
|
|
"qs": "6.9.7",
|
|
"random-seed": "0.3.0",
|
|
"ratelimiter": "3.4.1",
|
|
"re2": "1.18.0",
|
|
"redis-lock": "0.1.4",
|
|
"reflect-metadata": "0.1.13",
|
|
"rename": "1.0.4",
|
|
"rndstr": "1.0.0",
|
|
"rss-parser": "3.12.0",
|
|
"sanitize-html": "2.8.1",
|
|
"seedrandom": "^3.0.5",
|
|
"semver": "7.3.8",
|
|
"sharp": "0.31.3",
|
|
"sonic-channel": "^1.3.1",
|
|
"speakeasy": "2.0.0",
|
|
"stringz": "2.1.0",
|
|
"summaly": "2.7.0",
|
|
"syslog-pro": "1.0.0",
|
|
"systeminformation": "5.16.9",
|
|
"tesseract.js": "^3.0.3",
|
|
"tinycolor2": "1.5.2",
|
|
"tmp": "0.2.1",
|
|
"twemoji-parser": "14.0.0",
|
|
"typeorm": "0.3.11",
|
|
"ulid": "2.3.0",
|
|
"unzipper": "0.10.11",
|
|
"uuid": "9.0.0",
|
|
"web-push": "3.5.0",
|
|
"websocket": "1.0.34",
|
|
"xev": "3.0.2"
|
|
},
|
|
"devDependencies": {
|
|
"@swc/cli": "^0.1.59",
|
|
"@swc/core": "^1.3.26",
|
|
"@types/bcryptjs": "2.4.2",
|
|
"@types/bull": "3.15.9",
|
|
"@types/cbor": "6.0.0",
|
|
"@types/escape-regexp": "0.0.1",
|
|
"@types/fluent-ffmpeg": "2.1.20",
|
|
"@types/js-yaml": "4.0.5",
|
|
"@types/jsdom": "20.0.1",
|
|
"@types/jsonld": "1.5.8",
|
|
"@types/jsrsasign": "10.5.4",
|
|
"@types/koa": "2.13.5",
|
|
"@types/koa-bodyparser": "4.3.10",
|
|
"@types/koa-cors": "0.0.2",
|
|
"@types/koa-favicon": "2.0.21",
|
|
"@types/koa-logger": "3.1.2",
|
|
"@types/koa-mount": "4.0.2",
|
|
"@types/koa-send": "4.1.3",
|
|
"@types/koa-views": "7.0.0",
|
|
"@types/koa__cors": "3.3.0",
|
|
"@types/koa__multer": "2.0.4",
|
|
"@types/koa__router": "8.0.11",
|
|
"@types/mocha": "9.1.1",
|
|
"@types/node": "18.11.18",
|
|
"@types/node-fetch": "3.0.3",
|
|
"@types/nodemailer": "6.4.7",
|
|
"@types/oauth": "0.9.1",
|
|
"@types/pug": "2.0.6",
|
|
"@types/punycode": "2.1.0",
|
|
"@types/qrcode": "1.5.0",
|
|
"@types/qs": "6.9.7",
|
|
"@types/random-seed": "0.3.3",
|
|
"@types/ratelimiter": "3.4.4",
|
|
"@types/redis": "4.0.11",
|
|
"@types/rename": "1.0.4",
|
|
"@types/sanitize-html": "2.8.0",
|
|
"@types/semver": "7.3.13",
|
|
"@types/sharp": "0.31.1",
|
|
"@types/sinonjs__fake-timers": "8.1.2",
|
|
"@types/speakeasy": "2.0.7",
|
|
"@types/tinycolor2": "1.4.3",
|
|
"@types/tmp": "0.2.3",
|
|
"@types/uuid": "8.3.4",
|
|
"@types/web-push": "3.3.2",
|
|
"@types/websocket": "1.0.5",
|
|
"@types/ws": "8.5.3",
|
|
"autobind-decorator": "2.4.0",
|
|
"cross-env": "7.0.3",
|
|
"eslint": "^8.31.0",
|
|
"execa": "6.1.0",
|
|
"json5": "2.2.3",
|
|
"json5-loader": "4.0.1",
|
|
"mocha": "10.2.0",
|
|
"pug": "3.0.2",
|
|
"strict-event-emitter-types": "2.0.0",
|
|
"swc-loader": "^0.2.3",
|
|
"ts-loader": "9.4.2",
|
|
"ts-node": "10.9.1",
|
|
"tsconfig-paths": "4.1.2",
|
|
"typescript": "4.9.4",
|
|
"webpack": "^5.75.0",
|
|
"ws": "8.11.0"
|
|
}
|
|
}
|