Compare commits
6 commits
35735342c1
...
0569bc3e15
Author | SHA1 | Date | |
---|---|---|---|
0569bc3e15 | |||
880382a45f | |||
b63e03942e | |||
67ebf83ed7 | |||
ebafed4a97 | |||
d87de46217 |
20 changed files with 59 additions and 635 deletions
|
@ -1,4 +0,0 @@
|
|||
# db settings
|
||||
POSTGRES_PASSWORD=example-foundkey-pass
|
||||
POSTGRES_USER=example-foundkey-user
|
||||
POSTGRES_DB=foundkey
|
|
@ -68,17 +68,6 @@ redis:
|
|||
#prefix: example-prefix
|
||||
#db: 1
|
||||
|
||||
# ┌─────────────────────────────┐
|
||||
#───┘ Elasticsearch configuration └─────────────────────────────
|
||||
|
||||
# Elasticsearch is optional.
|
||||
#elasticsearch:
|
||||
# host: localhost
|
||||
# port: 9200
|
||||
# ssl: false
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
.autogen
|
||||
.config
|
||||
.woodpecker
|
||||
Dockerfile
|
||||
build/
|
||||
built/
|
||||
db/
|
||||
docker-compose.yml
|
||||
elasticsearch/
|
||||
node_modules/
|
||||
redis/
|
||||
files/
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -21,7 +21,6 @@ report.*.json
|
|||
# config
|
||||
/.config/*
|
||||
!/.config/example.yml
|
||||
!/.config/docker_example.env
|
||||
|
||||
# misskey
|
||||
/build
|
||||
|
@ -29,7 +28,6 @@ built
|
|||
/data
|
||||
/.cache-loader
|
||||
/db
|
||||
/elasticsearch
|
||||
npm-debug.log
|
||||
*.pem
|
||||
run.bat
|
||||
|
|
36
Dockerfile
36
Dockerfile
|
@ -1,36 +0,0 @@
|
|||
FROM node:18.12.1-alpine3.16 AS base
|
||||
|
||||
ARG NODE_ENV=production
|
||||
|
||||
WORKDIR /foundkey
|
||||
|
||||
ENV BUILD_DEPS autoconf automake file g++ gcc libc-dev libtool make nasm pkgconfig python3 zlib-dev git
|
||||
|
||||
FROM base AS builder
|
||||
|
||||
COPY . ./
|
||||
|
||||
RUN apk add --no-cache $BUILD_DEPS && \
|
||||
git submodule update --init && \
|
||||
yarn install && \
|
||||
yarn build && \
|
||||
rm -rf .git
|
||||
|
||||
FROM base AS runner
|
||||
|
||||
RUN apk add --no-cache \
|
||||
ffmpeg \
|
||||
tini
|
||||
|
||||
ENTRYPOINT ["/sbin/tini", "--"]
|
||||
|
||||
COPY --from=builder /foundkey/node_modules ./node_modules
|
||||
COPY --from=builder /foundkey/built ./built
|
||||
COPY --from=builder /foundkey/packages/backend/node_modules ./packages/backend/node_modules
|
||||
COPY --from=builder /foundkey/packages/backend/built ./packages/backend/built
|
||||
COPY --from=builder /foundkey/packages/foundkey-js/built ./packages/foundkey-js/built
|
||||
COPY . ./
|
||||
|
||||
ENV NODE_ENV=production
|
||||
CMD ["npm", "run", "migrateandstart"]
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
version: "3"
|
||||
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
restart: always
|
||||
links:
|
||||
- db
|
||||
- redis
|
||||
# - es
|
||||
ports:
|
||||
- "127.0.0.1:3000:3000"
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
volumes:
|
||||
- ./files:/foundkey/files
|
||||
- ./.config:/foundkey/.config:ro
|
||||
|
||||
redis:
|
||||
restart: always
|
||||
image: redis:7.0-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:14.5-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
env_file:
|
||||
- .config/docker.env
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
|
||||
# es:
|
||||
# restart: always
|
||||
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
|
||||
# environment:
|
||||
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
# - "TAKE_FILE_OWNERSHIP=111"
|
||||
# networks:
|
||||
# - internal_network
|
||||
# volumes:
|
||||
# - ./elasticsearch:/usr/share/elasticsearch/data
|
||||
|
||||
networks:
|
||||
internal_network:
|
||||
internal: true
|
||||
external_network:
|
|
@ -1,85 +0,0 @@
|
|||
# Create FoundKey instance with Docker Compose
|
||||
|
||||
This guide describes how to install and setup FoundKey with Docker Compose.
|
||||
|
||||
**WARNING:**
|
||||
Never change the domain name (hostname) of an instance once you start using it!
|
||||
|
||||
|
||||
## Requirements
|
||||
- Docker or Podman
|
||||
- Docker Compose plugin (or podman-compose)
|
||||
|
||||
If using Podman, replace `docker` with `podman`. Commands using `docker compose` should be replaced with `podman-compose`.
|
||||
|
||||
You may need to prefix `docker` commands with `sudo` unless your user is in the `docker` group or you are running Docker in rootless mode.
|
||||
|
||||
## Get the repository
|
||||
```sh
|
||||
git clone https://akkoma.dev/FoundKeyGang/FoundKey.git
|
||||
cd FoundKey
|
||||
```
|
||||
|
||||
To make it easier to perform your own changes on top, we suggest making a branch based on the latest tag.
|
||||
In this example, we'll use `v13.0.0-preview1` as the tag to check out and `my-branch` as the branch name.
|
||||
```sh
|
||||
git checkout tags/v13.0.0-preview1 -b my-branch
|
||||
```
|
||||
|
||||
## Configure
|
||||
|
||||
Copy example configuration files with following:
|
||||
|
||||
```sh
|
||||
cp .config/docker_example.yml .config/default.yml
|
||||
cp .config/docker_example.env .config/docker.env
|
||||
```
|
||||
|
||||
Edit `default.yml` and `docker.env` according to the instructions in the files.
|
||||
You will need to set the database host to `db` and Redis host to `redis` in order to use the internal container network for these services.
|
||||
|
||||
Edit `docker-compose.yml` if necessary. (e.g. if you want to change the port).
|
||||
If you are using SELinux (eg. you're on Fedora or a RHEL derivative), you'll want to add the `Z` mount flag to the volume mounts to allow the containers to access the contents of those volumes.
|
||||
|
||||
Also check out the [Configure Foundkey](./install.md#configure-foundkey) section in the ordinary installation instructions.
|
||||
|
||||
## Build and initialize
|
||||
The following command will build FoundKey and initialize the database.
|
||||
This will take some time.
|
||||
|
||||
``` shell
|
||||
docker compose build
|
||||
docker compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
## Launch
|
||||
You can start FoundKey with the following command:
|
||||
|
||||
```sh
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
In case you are encountering issues, you can run `docker compose logs -f` to get the log output of the running containers.
|
||||
|
||||
## How to update your FoundKey server
|
||||
When updating, be sure to check the [release notes](https://akkoma.dev/FoundKeyGang/FoundKey/src/branch/main/CHANGELOG.md) to know in advance the changes and whether or not additional work is required (in most cases, it is not).
|
||||
|
||||
To update your branch to the latest tag (in this example `v13.0.0-preview2`), you can do the following:
|
||||
```sh
|
||||
git fetch -t
|
||||
|
||||
# Use --squash if you want to merge all of the changes in the tag into a single commit.
|
||||
# Useful if you have made additional changes.
|
||||
git merge tags/v13.0.0-preview2
|
||||
|
||||
# Rebuild and restart the docker container.
|
||||
docker compose build
|
||||
docker compose down && docker compose up -d
|
||||
```
|
||||
|
||||
It may take some time depending on the contents of the update and the size of the database.
|
||||
|
||||
## How to execute CLI commands
|
||||
```sh
|
||||
docker compose run --rm web node packages/backend/built/tools/foo bar
|
||||
```
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"node-option": [
|
||||
"experimental-specifier-resolution=node"
|
||||
],
|
||||
"slow": 1000,
|
||||
"timeout": 30000,
|
||||
"exit": true
|
||||
}
|
|
@ -15,26 +15,19 @@
|
|||
"@bull-board/api": "^4.3.1",
|
||||
"@bull-board/koa": "^4.3.1",
|
||||
"@discordapp/twemoji": "14.0.2",
|
||||
"@elastic/elasticsearch": "7.11.0",
|
||||
"@koa/cors": "3.1.0",
|
||||
"@koa/multer": "3.0.0",
|
||||
"@koa/router": "9.0.1",
|
||||
"@peertube/http-signature": "1.7.0",
|
||||
"@sinonjs/fake-timers": "9.1.2",
|
||||
"@syuilo/aiscript": "0.11.1",
|
||||
"abort-controller": "3.0.0",
|
||||
"ajv": "8.11.0",
|
||||
"archiver": "5.3.1",
|
||||
"argon2": "^0.30.2",
|
||||
"autobind-decorator": "2.4.0",
|
||||
"aws-sdk": "2.1165.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"blurhash": "1.1.5",
|
||||
"bull": "4.8.4",
|
||||
"cacheable-lookup": "6.0.4",
|
||||
"cbor": "8.1.0",
|
||||
"cli-highlight": "2.1.11",
|
||||
"color-convert": "2.0.1",
|
||||
"content-disposition": "0.5.4",
|
||||
"date-fns": "2.28.0",
|
||||
"decompress": "4.2.1",
|
||||
|
@ -52,8 +45,6 @@
|
|||
"is-svg": "4.3.2",
|
||||
"js-yaml": "4.1.0",
|
||||
"jsdom": "20.0.0",
|
||||
"json5": "2.2.1",
|
||||
"json5-loader": "4.0.1",
|
||||
"jsonld": "6.0.0",
|
||||
"jsrsasign": "10.5.25",
|
||||
"katex": "^0.16.0",
|
||||
|
@ -64,7 +55,6 @@
|
|||
"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",
|
||||
"mfm-js": "0.23.3",
|
||||
"mime-types": "2.1.35",
|
||||
|
@ -85,9 +75,7 @@
|
|||
"ratelimiter": "3.4.1",
|
||||
"re2": "1.17.8",
|
||||
"redis-lock": "0.1.4",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rename": "1.0.4",
|
||||
"require-all": "3.0.0",
|
||||
"rss-parser": "3.12.0",
|
||||
"sanitize-html": "2.7.0",
|
||||
"semver": "7.3.7",
|
||||
|
@ -95,14 +83,10 @@
|
|||
"speakeasy": "2.0.0",
|
||||
"strict-event-emitter-types": "2.0.0",
|
||||
"stringz": "2.1.0",
|
||||
"style-loader": "3.3.1",
|
||||
"systeminformation": "5.11.22",
|
||||
"tinycolor2": "1.4.2",
|
||||
"tmp": "0.2.1",
|
||||
"ts-loader": "9.3.1",
|
||||
"ts-node": "10.9.1",
|
||||
"tsc-alias": "1.7.0",
|
||||
"tsconfig-paths": "4.1.0",
|
||||
"twemoji-parser": "14.0.0",
|
||||
"typeorm": "0.3.7",
|
||||
"uuid": "8.3.2",
|
||||
|
|
14
packages/backend/src/@types/koa-slow.d.ts
vendored
14
packages/backend/src/@types/koa-slow.d.ts
vendored
|
@ -1,14 +0,0 @@
|
|||
declare module 'koa-slow' {
|
||||
import { Middleware } from 'koa';
|
||||
|
||||
interface ISlowOptions {
|
||||
url?: RegExp;
|
||||
delay?: number;
|
||||
}
|
||||
|
||||
function slow(options?: ISlowOptions): Middleware;
|
||||
|
||||
namespace slow {} // Hack
|
||||
|
||||
export = slow;
|
||||
}
|
|
@ -24,14 +24,6 @@ export type Source = {
|
|||
db?: number;
|
||||
prefix?: string;
|
||||
};
|
||||
elasticsearch?: {
|
||||
host: string;
|
||||
port: number;
|
||||
ssl?: boolean;
|
||||
user?: string;
|
||||
pass?: string;
|
||||
index?: string;
|
||||
};
|
||||
|
||||
proxy?: string;
|
||||
proxySmtp?: string;
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
import * as elasticsearch from '@elastic/elasticsearch';
|
||||
import config from '@/config/index.js';
|
||||
|
||||
const index = {
|
||||
settings: {
|
||||
analysis: {
|
||||
analyzer: {
|
||||
ngram: {
|
||||
tokenizer: 'ngram',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
mappings: {
|
||||
properties: {
|
||||
text: {
|
||||
type: 'text',
|
||||
index: true,
|
||||
analyzer: 'ngram',
|
||||
},
|
||||
userId: {
|
||||
type: 'keyword',
|
||||
index: true,
|
||||
},
|
||||
userHost: {
|
||||
type: 'keyword',
|
||||
index: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// Init ElasticSearch connection
|
||||
const client = config.elasticsearch ? new elasticsearch.Client({
|
||||
node: `${config.elasticsearch.ssl ? 'https://' : 'http://'}${config.elasticsearch.host}:${config.elasticsearch.port}`,
|
||||
auth: (config.elasticsearch.user && config.elasticsearch.pass) ? {
|
||||
username: config.elasticsearch.user,
|
||||
password: config.elasticsearch.pass,
|
||||
} : undefined,
|
||||
pingTimeout: 30000,
|
||||
}) : null;
|
||||
|
||||
if (client) {
|
||||
client.indices.exists({
|
||||
index: config.elasticsearch.index || 'misskey_note',
|
||||
}).then(exist => {
|
||||
if (!exist.body) {
|
||||
client.indices.create({
|
||||
index: config.elasticsearch.index || 'misskey_note',
|
||||
body: index,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export default client;
|
|
@ -4,7 +4,6 @@ import pg from 'pg';
|
|||
pg.types.setTypeParser(20, Number);
|
||||
|
||||
import { Logger, DataSource } from 'typeorm';
|
||||
import * as highlight from 'cli-highlight';
|
||||
import config from '@/config/index.js';
|
||||
|
||||
import { SECOND } from '@/const.js';
|
||||
|
@ -74,22 +73,16 @@ import { dbLogger } from './logger.js';
|
|||
const sqlLogger = dbLogger.createSubLogger('sql');
|
||||
|
||||
class MyCustomLogger implements Logger {
|
||||
private highlight(sql: string): string {
|
||||
return highlight.highlight(sql, {
|
||||
language: 'sql', ignoreIllegals: true,
|
||||
});
|
||||
}
|
||||
|
||||
public logQuery(query: string): void {
|
||||
sqlLogger.info(this.highlight(query).substring(0, 100));
|
||||
sqlLogger.info(query);
|
||||
}
|
||||
|
||||
public logQueryError(error: string, query: string): void {
|
||||
sqlLogger.error(this.highlight(query));
|
||||
sqlLogger.error(query);
|
||||
}
|
||||
|
||||
public logQuerySlow(time: number, query: string): void {
|
||||
sqlLogger.warn(this.highlight(query));
|
||||
sqlLogger.warn(query);
|
||||
}
|
||||
|
||||
public logSchemaBuild(message: string): void {
|
||||
|
|
|
@ -13,7 +13,6 @@ export const envOption = {
|
|||
noDaemons: false,
|
||||
disableClustering: false,
|
||||
withLogTime: false,
|
||||
slow: false,
|
||||
logLevel: LOG_LEVELS.info,
|
||||
};
|
||||
|
||||
|
|
|
@ -203,10 +203,6 @@ export const meta = {
|
|||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
elasticsearch: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
},
|
||||
hcaptcha: {
|
||||
type: 'boolean',
|
||||
optional: false, nullable: false,
|
||||
|
@ -319,7 +315,6 @@ export default define(meta, paramDef, async () => {
|
|||
localTimeLine: !instance.disableLocalTimeline,
|
||||
globalTimeLine: !instance.disableGlobalTimeline,
|
||||
emailRequiredForSignup: instance.emailRequiredForSignup,
|
||||
elasticsearch: config.elasticsearch ? true : false,
|
||||
hcaptcha: instance.enableHcaptcha,
|
||||
recaptcha: instance.enableRecaptcha,
|
||||
objectStorage: instance.useObjectStorage,
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
import { In } from 'typeorm';
|
||||
import { Notes } from '@/models/index.js';
|
||||
import config from '@/config/index.js';
|
||||
import es from '@/db/elasticsearch.js';
|
||||
import define from '@/server/api/define.js';
|
||||
import { makePaginationQuery } from '@/server/api/common/make-pagination-query.js';
|
||||
import { visibilityQuery } from '@/server/api/common/generate-visibility-query.js';
|
||||
|
@ -45,96 +42,34 @@ export const paramDef = {
|
|||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default define(meta, paramDef, async (ps, me) => {
|
||||
if (es == null) {
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId);
|
||||
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId);
|
||||
|
||||
if (ps.userId) {
|
||||
query.andWhere('note.userId = :userId', { userId: ps.userId });
|
||||
} else if (ps.host) {
|
||||
query.andWhere('note.userHost = :host', { host: ps.host });
|
||||
} else if (ps.channelId) {
|
||||
query.andWhere('note.channelId = :channelId', { channelId: ps.channelId });
|
||||
}
|
||||
|
||||
query
|
||||
.andWhere('note.text ILIKE :q', { q: `%${ps.query}%` })
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('user.avatar', 'avatar')
|
||||
.leftJoinAndSelect('user.banner', 'banner')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar')
|
||||
.leftJoinAndSelect('replyUser.banner', 'replyUserBanner')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar')
|
||||
.leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner');
|
||||
|
||||
if (me) generateMutedUserQuery(query, me);
|
||||
if (me) generateBlockedUserQuery(query, me);
|
||||
|
||||
const notes = await visibilityQuery(query, me).take(ps.limit).getMany();
|
||||
|
||||
return await Notes.packMany(notes, me);
|
||||
} else {
|
||||
const userQuery = ps.userId != null ? [{
|
||||
term: {
|
||||
userId: ps.userId,
|
||||
},
|
||||
}] : [];
|
||||
|
||||
const hostQuery = ps.userId == null ?
|
||||
ps.host === null ? [{
|
||||
bool: {
|
||||
must_not: {
|
||||
exists: {
|
||||
field: 'userHost',
|
||||
},
|
||||
},
|
||||
},
|
||||
}] : ps.host !== undefined ? [{
|
||||
term: {
|
||||
userHost: ps.host,
|
||||
},
|
||||
}] : []
|
||||
: [];
|
||||
|
||||
const result = await es.search({
|
||||
index: config.elasticsearch.index || 'misskey_note',
|
||||
body: {
|
||||
size: ps.limit,
|
||||
from: ps.offset,
|
||||
query: {
|
||||
bool: {
|
||||
must: [{
|
||||
simple_query_string: {
|
||||
fields: ['text'],
|
||||
query: ps.query.toLowerCase(),
|
||||
default_operator: 'and',
|
||||
},
|
||||
}, ...hostQuery, ...userQuery],
|
||||
},
|
||||
},
|
||||
sort: [{
|
||||
_doc: 'desc',
|
||||
}],
|
||||
},
|
||||
});
|
||||
|
||||
const hits = result.body.hits.hits.map((hit: any) => hit._id);
|
||||
|
||||
if (hits.length === 0) return [];
|
||||
|
||||
// Fetch found notes
|
||||
const notes = await Notes.find({
|
||||
where: {
|
||||
id: In(hits),
|
||||
},
|
||||
order: {
|
||||
id: -1,
|
||||
},
|
||||
});
|
||||
|
||||
return await Notes.packMany(notes, me);
|
||||
if (ps.userId) {
|
||||
query.andWhere('note.userId = :userId', { userId: ps.userId });
|
||||
} else if (ps.host) {
|
||||
query.andWhere('note.userHost = :host', { host: ps.host });
|
||||
} else if (ps.channelId) {
|
||||
query.andWhere('note.channelId = :channelId', { channelId: ps.channelId });
|
||||
}
|
||||
|
||||
query
|
||||
.andWhere('note.text ILIKE :q', { q: `%${ps.query}%` })
|
||||
.innerJoinAndSelect('note.user', 'user')
|
||||
.leftJoinAndSelect('user.avatar', 'avatar')
|
||||
.leftJoinAndSelect('user.banner', 'banner')
|
||||
.leftJoinAndSelect('note.reply', 'reply')
|
||||
.leftJoinAndSelect('note.renote', 'renote')
|
||||
.leftJoinAndSelect('reply.user', 'replyUser')
|
||||
.leftJoinAndSelect('replyUser.avatar', 'replyUserAvatar')
|
||||
.leftJoinAndSelect('replyUser.banner', 'replyUserBanner')
|
||||
.leftJoinAndSelect('renote.user', 'renoteUser')
|
||||
.leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar')
|
||||
.leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner');
|
||||
|
||||
if (me) generateMutedUserQuery(query, me);
|
||||
if (me) generateBlockedUserQuery(query, me);
|
||||
|
||||
const notes = await visibilityQuery(query, me).take(ps.limit).getMany();
|
||||
|
||||
return await Notes.packMany(notes, me);
|
||||
});
|
||||
|
|
|
@ -9,7 +9,6 @@ import Koa from 'koa';
|
|||
import Router from '@koa/router';
|
||||
import mount from 'koa-mount';
|
||||
import koaLogger from 'koa-logger';
|
||||
import * as slow from 'koa-slow';
|
||||
|
||||
import { IsNull } from 'typeorm';
|
||||
import config from '@/config/index.js';
|
||||
|
@ -40,13 +39,6 @@ if (!['production', 'test'].includes(process.env.NODE_ENV || '')) {
|
|||
app.use(koaLogger(str => {
|
||||
serverLogger.info(str);
|
||||
}));
|
||||
|
||||
// Delay
|
||||
if (envOption.slow) {
|
||||
app.use(slow({
|
||||
delay: 3000,
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
// HSTS
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
import es from '@/db/elasticsearch.js';
|
||||
import config from '@/config/index.js';
|
||||
import { Note } from '@/models/entities/note.js';
|
||||
import { UserProfiles } from '@/models/index.js';
|
||||
import { normalizeForSearch } from '@/misc/normalize-for-search.js';
|
||||
import { Cache } from '@/misc/cache.js';
|
||||
import { UserProfile } from '@/models/entities/user-profile.js';
|
||||
import { MINUTE } from '@/const.js';
|
||||
|
@ -16,17 +13,3 @@ export const mutedWordsCache = new Cache<{ userId: UserProfile['userId']; mutedW
|
|||
select: ['userId', 'mutedWords'],
|
||||
}),
|
||||
);
|
||||
|
||||
export function index(note: Note): void {
|
||||
if (note.text == null || config.elasticsearch == null) return;
|
||||
|
||||
es.index({
|
||||
index: config.elasticsearch.index || 'misskey_note',
|
||||
id: note.id.toString(),
|
||||
body: {
|
||||
text: normalizeForSearch(note.text),
|
||||
userId: note.userId,
|
||||
userHost: note.userHost,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
|
|
@ -26,7 +26,7 @@ import { registerOrFetchInstanceDoc } from '../register-or-fetch-instance-doc.js
|
|||
import { createNotification } from '../create-notification.js';
|
||||
import { addNoteToAntenna } from '../add-note-to-antenna.js';
|
||||
import { deliverToRelays } from '../relay.js';
|
||||
import { mutedWordsCache, index } from './index.js';
|
||||
import { mutedWordsCache } from './index.js';
|
||||
import { Polls } from '@/models/index.js';
|
||||
import { Poll } from '@/models/entities/poll.js';
|
||||
|
||||
|
@ -399,9 +399,6 @@ export async function sideEffects(user: User, note: Note, silent = false, create
|
|||
|
||||
// TODO AP deliver
|
||||
}
|
||||
|
||||
// Register to search database
|
||||
index(note);
|
||||
}
|
||||
|
||||
async function notifyWatchers(noteId: Note['id'], user: { id: User['id']; }, nm: NotificationManager, type: NotificationType): Promise<void> {
|
||||
|
|
220
yarn.lock
220
yarn.lock
|
@ -593,19 +593,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@elastic/elasticsearch@npm:7.11.0":
|
||||
version: 7.11.0
|
||||
resolution: "@elastic/elasticsearch@npm:7.11.0"
|
||||
dependencies:
|
||||
debug: ^4.1.1
|
||||
hpagent: ^0.1.1
|
||||
ms: ^2.1.1
|
||||
pump: ^3.0.0
|
||||
secure-json-parse: ^2.1.0
|
||||
checksum: 58aee93f1b0d216ecf7fd936c6310123fa05b50a8419207820a483e31f2e5110ae54747111ecf57a2237a99765eb7bf1b78aa405f538132c551cf7959cc2cd99
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@esbuild/linux-loong64@npm:0.14.54":
|
||||
version: 0.14.54
|
||||
resolution: "@esbuild/linux-loong64@npm:0.14.54"
|
||||
|
@ -1378,15 +1365,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sinonjs/fake-timers@npm:9.1.2, @sinonjs/fake-timers@npm:^9.1.2":
|
||||
version: 9.1.2
|
||||
resolution: "@sinonjs/fake-timers@npm:9.1.2"
|
||||
dependencies:
|
||||
"@sinonjs/commons": ^1.7.0
|
||||
checksum: 7d3aef54e17c1073101cb64d953157c19d62a40e261a30923fa1ee337b049c5f29cc47b1f0c477880f42b5659848ba9ab897607ac8ea4acd5c30ddcfac57fca6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sinonjs/fake-timers@npm:^7.0.4":
|
||||
version: 7.1.2
|
||||
resolution: "@sinonjs/fake-timers@npm:7.1.2"
|
||||
|
@ -1405,6 +1383,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sinonjs/fake-timers@npm:^9.1.2":
|
||||
version: 9.1.2
|
||||
resolution: "@sinonjs/fake-timers@npm:9.1.2"
|
||||
dependencies:
|
||||
"@sinonjs/commons": ^1.7.0
|
||||
checksum: 7d3aef54e17c1073101cb64d953157c19d62a40e261a30923fa1ee337b049c5f29cc47b1f0c477880f42b5659848ba9ab897607ac8ea4acd5c30ddcfac57fca6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@sinonjs/samsam@npm:^7.0.1":
|
||||
version: 7.0.1
|
||||
resolution: "@sinonjs/samsam@npm:7.0.1"
|
||||
|
@ -1889,7 +1876,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.8, @types/json-schema@npm:^7.0.9":
|
||||
"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9":
|
||||
version: 7.0.11
|
||||
resolution: "@types/json-schema@npm:7.0.11"
|
||||
checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d
|
||||
|
@ -2679,7 +2666,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"abort-controller@npm:3.0.0, abort-controller@npm:^3.0.0":
|
||||
"abort-controller@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "abort-controller@npm:3.0.0"
|
||||
dependencies:
|
||||
|
@ -2779,15 +2766,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ajv-keywords@npm:^3.5.2":
|
||||
version: 3.5.2
|
||||
resolution: "ajv-keywords@npm:3.5.2"
|
||||
peerDependencies:
|
||||
ajv: ^6.9.1
|
||||
checksum: 7dc5e5931677a680589050f79dcbe1fefbb8fea38a955af03724229139175b433c63c68f7ae5f86cf8f65d55eb7c25f75a046723e2e58296707617ca690feae9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ajv@npm:8.11.0":
|
||||
version: 8.11.0
|
||||
resolution: "ajv@npm:8.11.0"
|
||||
|
@ -2800,7 +2778,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5, ajv@npm:~6.12.6":
|
||||
"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:~6.12.6":
|
||||
version: 6.12.6
|
||||
resolution: "ajv@npm:6.12.6"
|
||||
dependencies:
|
||||
|
@ -3437,14 +3415,11 @@ __metadata:
|
|||
"@bull-board/api": ^4.3.1
|
||||
"@bull-board/koa": ^4.3.1
|
||||
"@discordapp/twemoji": 14.0.2
|
||||
"@elastic/elasticsearch": 7.11.0
|
||||
"@koa/cors": 3.1.0
|
||||
"@koa/multer": 3.0.0
|
||||
"@koa/router": 9.0.1
|
||||
"@peertube/http-signature": 1.7.0
|
||||
"@redocly/openapi-core": 1.0.0-beta.97
|
||||
"@sinonjs/fake-timers": 9.1.2
|
||||
"@syuilo/aiscript": 0.11.1
|
||||
"@types/bcryptjs": 2.4.2
|
||||
"@types/bull": 3.15.8
|
||||
"@types/cbor": 6.0.0
|
||||
|
@ -3491,19 +3466,15 @@ __metadata:
|
|||
"@types/ws": 8.5.3
|
||||
"@typescript-eslint/eslint-plugin": ^5.46.1
|
||||
"@typescript-eslint/parser": ^5.46.1
|
||||
abort-controller: 3.0.0
|
||||
ajv: 8.11.0
|
||||
archiver: 5.3.1
|
||||
argon2: ^0.30.2
|
||||
autobind-decorator: 2.4.0
|
||||
aws-sdk: 2.1165.0
|
||||
bcryptjs: 2.4.3
|
||||
blurhash: 1.1.5
|
||||
bull: 4.8.4
|
||||
cacheable-lookup: 6.0.4
|
||||
cbor: 8.1.0
|
||||
cli-highlight: 2.1.11
|
||||
color-convert: 2.0.1
|
||||
content-disposition: 0.5.4
|
||||
date-fns: 2.28.0
|
||||
decompress: 4.2.1
|
||||
|
@ -3526,8 +3497,6 @@ __metadata:
|
|||
is-svg: 4.3.2
|
||||
js-yaml: 4.1.0
|
||||
jsdom: 20.0.0
|
||||
json5: 2.2.1
|
||||
json5-loader: 4.0.1
|
||||
jsonld: 6.0.0
|
||||
jsrsasign: 10.5.25
|
||||
katex: ^0.16.0
|
||||
|
@ -3538,7 +3507,6 @@ __metadata:
|
|||
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
|
||||
mfm-js: 0.23.3
|
||||
mime-types: 2.1.35
|
||||
|
@ -3559,9 +3527,7 @@ __metadata:
|
|||
ratelimiter: 3.4.1
|
||||
re2: 1.17.8
|
||||
redis-lock: 0.1.4
|
||||
reflect-metadata: 0.1.13
|
||||
rename: 1.0.4
|
||||
require-all: 3.0.0
|
||||
rss-parser: 3.12.0
|
||||
sanitize-html: 2.7.0
|
||||
semver: 7.3.7
|
||||
|
@ -3570,14 +3536,10 @@ __metadata:
|
|||
speakeasy: 2.0.0
|
||||
strict-event-emitter-types: 2.0.0
|
||||
stringz: 2.1.0
|
||||
style-loader: 3.3.1
|
||||
systeminformation: 5.11.22
|
||||
tinycolor2: 1.4.2
|
||||
tmp: 0.2.1
|
||||
ts-loader: 9.3.1
|
||||
ts-node: 10.9.1
|
||||
tsc-alias: 1.7.0
|
||||
tsconfig-paths: 4.1.0
|
||||
twemoji-parser: 14.0.0
|
||||
typeorm: 0.3.7
|
||||
typescript: ^4.9.4
|
||||
|
@ -3647,13 +3609,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"big.js@npm:^5.2.2":
|
||||
version: 5.2.2
|
||||
resolution: "big.js@npm:5.2.2"
|
||||
checksum: b89b6e8419b097a8fb4ed2399a1931a68c612bce3cfd5ca8c214b2d017531191070f990598de2fc6f3f993d91c0f08aa82697717f6b3b8732c9731866d233c9e
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"binary-extensions@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "binary-extensions@npm:2.0.0"
|
||||
|
@ -4303,7 +4258,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"cli-highlight@npm:2.1.11, cli-highlight@npm:^2.1.11":
|
||||
"cli-highlight@npm:^2.1.11":
|
||||
version: 2.1.11
|
||||
resolution: "cli-highlight@npm:2.1.11"
|
||||
dependencies:
|
||||
|
@ -4547,15 +4502,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-convert@npm:2.0.1, color-convert@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "color-convert@npm:2.0.1"
|
||||
dependencies:
|
||||
color-name: ~1.1.4
|
||||
checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-convert@npm:^1.3.0, color-convert@npm:^1.9.0":
|
||||
version: 1.9.3
|
||||
resolution: "color-convert@npm:1.9.3"
|
||||
|
@ -4565,6 +4511,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-convert@npm:^2.0.1":
|
||||
version: 2.0.1
|
||||
resolution: "color-convert@npm:2.0.1"
|
||||
dependencies:
|
||||
color-name: ~1.1.4
|
||||
checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"color-name@npm:1.1.3":
|
||||
version: 1.1.3
|
||||
resolution: "color-name@npm:1.1.3"
|
||||
|
@ -5660,13 +5615,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"emojis-list@npm:^3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "emojis-list@npm:3.0.0"
|
||||
checksum: ddaaa02542e1e9436c03970eeed445f4ed29a5337dfba0fe0c38dfdd2af5da2429c2a0821304e8a8d1cadf27fdd5b22ff793571fa803ae16852a6975c65e8e70
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"encode-utf8@npm:^1.0.3":
|
||||
version: 1.0.3
|
||||
resolution: "encode-utf8@npm:1.0.3"
|
||||
|
@ -5699,16 +5647,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"enhanced-resolve@npm:^5.0.0":
|
||||
version: 5.10.0
|
||||
resolution: "enhanced-resolve@npm:5.10.0"
|
||||
dependencies:
|
||||
graceful-fs: ^4.2.4
|
||||
tapable: ^2.2.0
|
||||
checksum: 0bb9830704db271610f900e8d79d70a740ea16f251263362b0c91af545576d09fe50103496606c1300a05e588372d6f9780a9bc2e30ce8ef9b827ec8f44687ff
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"entities@npm:^2.0.0, entities@npm:^2.0.3":
|
||||
version: 2.2.0
|
||||
resolution: "entities@npm:2.2.0"
|
||||
|
@ -7629,7 +7567,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"graceful-fs@npm:^4.0.0, graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
|
||||
"graceful-fs@npm:^4.0.0, graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9":
|
||||
version: 4.2.11
|
||||
resolution: "graceful-fs@npm:4.2.11"
|
||||
checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
|
||||
|
@ -7902,7 +7840,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"hpagent@npm:0.1.2, hpagent@npm:^0.1.1":
|
||||
"hpagent@npm:0.1.2":
|
||||
version: 0.1.2
|
||||
resolution: "hpagent@npm:0.1.2"
|
||||
checksum: 1918518ab937d9fa615a47b94489e23662547bc1edf27069ee9bf40bfefb94da65eb142b6f42336b4b0752fce87f66c284d92b97340fd2a90b24aa3616b5450d
|
||||
|
@ -9729,20 +9667,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json5-loader@npm:4.0.1":
|
||||
version: 4.0.1
|
||||
resolution: "json5-loader@npm:4.0.1"
|
||||
dependencies:
|
||||
json5: ^2.1.3
|
||||
loader-utils: ^2.0.0
|
||||
schema-utils: ^3.0.0
|
||||
peerDependencies:
|
||||
webpack: ^4.0.0 || ^5.0.0
|
||||
checksum: 89e82429dc71d4c76b3e5d27e4f1437de38e1963bb81ba392b340e3993b6b5fb7a16de6aec233f173f5e8249b5ac2cc371bf0be6734f678acee6f3498294f0e3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"json5@npm:2.2.1, json5@npm:2.x, json5@npm:^2.1.2, json5@npm:^2.1.3, json5@npm:^2.2.1":
|
||||
"json5@npm:2.2.1, json5@npm:2.x, json5@npm:^2.2.1":
|
||||
version: 2.2.1
|
||||
resolution: "json5@npm:2.2.1"
|
||||
bin:
|
||||
|
@ -10023,16 +9948,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"koa-slow@npm:2.1.0":
|
||||
version: 2.1.0
|
||||
resolution: "koa-slow@npm:2.1.0"
|
||||
dependencies:
|
||||
lodash.isregexp: 3.0.5
|
||||
q: 1.4.1
|
||||
checksum: 1b2fa6c709cd4016f5c5c4f45a8bd569910fdfef482c85120f2bbddd5cf274d714b0d231659ac3335d15b03f0debdb71b14f3cc54624921be7d808df7f8ac513
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"koa-static@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "koa-static@npm:5.0.0"
|
||||
|
@ -10237,17 +10152,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"loader-utils@npm:^2.0.0":
|
||||
version: 2.0.2
|
||||
resolution: "loader-utils@npm:2.0.2"
|
||||
dependencies:
|
||||
big.js: ^5.2.2
|
||||
emojis-list: ^3.0.0
|
||||
json5: ^2.1.2
|
||||
checksum: 9078d1ed47cadc57f4c6ddbdb2add324ee7da544cea41de3b7f1128e8108fcd41cd3443a85b7ee8d7d8ac439148aa221922774efe4cf87506d4fb054d5889303
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"locate-path@npm:^5.0.0":
|
||||
version: 5.0.0
|
||||
resolution: "locate-path@npm:5.0.0"
|
||||
|
@ -10315,13 +10219,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.isregexp@npm:3.0.5":
|
||||
version: 3.0.5
|
||||
resolution: "lodash.isregexp@npm:3.0.5"
|
||||
checksum: 973f4887f003af746bf838267d9d1ea39d912f579cf402cca67049b1e4487daf2a25b10c70e4fc1c7ad97ee3be6d43d38c9839bc9c55c40e94b62dfc60f601c7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"lodash.memoize@npm:4.x, lodash.memoize@npm:^4.1.2":
|
||||
version: 4.1.2
|
||||
resolution: "lodash.memoize@npm:4.1.2"
|
||||
|
@ -10638,7 +10535,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"micromatch@npm:^4.0.0, micromatch@npm:^4.0.4":
|
||||
"micromatch@npm:^4.0.4":
|
||||
version: 4.0.5
|
||||
resolution: "micromatch@npm:4.0.5"
|
||||
dependencies:
|
||||
|
@ -12907,13 +12804,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"q@npm:1.4.1":
|
||||
version: 1.4.1
|
||||
resolution: "q@npm:1.4.1"
|
||||
checksum: 22c8e1f24f416d0977e6da63f24712189c5dd789489999fc040467480e4e0ef4bd0e3126cce1b8ef72c709bbe1fcce10eba0f4991a03fc64ecb5a17e05ed8d35
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"q@npm:^1.1.2":
|
||||
version: 1.5.1
|
||||
resolution: "q@npm:1.5.1"
|
||||
|
@ -13268,7 +13158,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"reflect-metadata@npm:0.1.13, reflect-metadata@npm:^0.1.13":
|
||||
"reflect-metadata@npm:^0.1.13":
|
||||
version: 0.1.13
|
||||
resolution: "reflect-metadata@npm:0.1.13"
|
||||
checksum: 798d379a7b6f6455501145419505c97dd11cbc23857a386add2b9ef15963ccf15a48d9d15507afe01d4cd74116df8a213247200bac00320bd7c11ddeaa5e8fb4
|
||||
|
@ -13390,13 +13280,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"require-all@npm:3.0.0":
|
||||
version: 3.0.0
|
||||
resolution: "require-all@npm:3.0.0"
|
||||
checksum: f2d652d6bca4201bda1ff2f7d4f46a3edd136cc6fd81d38caff50eaa4669ae7ae459f32a06b0892e754bf0f7aae21fbe69172409dff1abd78be5c12cab750a01
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"require-directory@npm:^2.1.1":
|
||||
version: 2.1.1
|
||||
resolution: "require-directory@npm:2.1.1"
|
||||
|
@ -13739,24 +13622,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"schema-utils@npm:^3.0.0":
|
||||
version: 3.1.1
|
||||
resolution: "schema-utils@npm:3.1.1"
|
||||
dependencies:
|
||||
"@types/json-schema": ^7.0.8
|
||||
ajv: ^6.12.5
|
||||
ajv-keywords: ^3.5.2
|
||||
checksum: fb73f3d759d43ba033c877628fe9751620a26879f6301d3dbeeb48cf2a65baec5cdf99da65d1bf3b4ff5444b2e59cbe4f81c2456b5e0d2ba7d7fd4aed5da29ce
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"secure-json-parse@npm:^2.1.0":
|
||||
version: 2.5.0
|
||||
resolution: "secure-json-parse@npm:2.5.0"
|
||||
checksum: 84147a32615ce0d93d2fbba60cde85ae362f45cc948ea134e4d6d1e678bb4b7f3a5ce9b9692ed052baefeb2e1c8ba183b34920390e6a089925b97b0d8f7ab064
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"seedrandom@npm:3.0.5":
|
||||
version: 3.0.5
|
||||
resolution: "seedrandom@npm:3.0.5"
|
||||
|
@ -14528,15 +14393,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"style-loader@npm:3.3.1":
|
||||
version: 3.3.1
|
||||
resolution: "style-loader@npm:3.3.1"
|
||||
peerDependencies:
|
||||
webpack: ^5.0.0
|
||||
checksum: 470feef680f59e2fce4d6601b5c55b88c01ad8d1dd693c528ffd591ff5fd7c01a4eff3bdbe62f26f847d6bd2430c9ab594be23307cfe7a3446ab236683f0d066
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"supports-color@npm:^2.0.0":
|
||||
version: 2.0.0
|
||||
resolution: "supports-color@npm:2.0.0"
|
||||
|
@ -14676,13 +14532,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tapable@npm:^2.2.0":
|
||||
version: 2.2.1
|
||||
resolution: "tapable@npm:2.2.1"
|
||||
checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"tar-fs@npm:^2.0.0, tar-fs@npm:^2.1.1":
|
||||
version: 2.1.1
|
||||
resolution: "tar-fs@npm:2.1.1"
|
||||
|
@ -15064,21 +14913,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ts-loader@npm:9.3.1":
|
||||
version: 9.3.1
|
||||
resolution: "ts-loader@npm:9.3.1"
|
||||
dependencies:
|
||||
chalk: ^4.1.0
|
||||
enhanced-resolve: ^5.0.0
|
||||
micromatch: ^4.0.0
|
||||
semver: ^7.3.4
|
||||
peerDependencies:
|
||||
typescript: "*"
|
||||
webpack: ^5.0.0
|
||||
checksum: 462a8ac315017cf4961dafd2be29d5abe7c3af63c4515e325269f79b9d0212b35c59184d7fd01fc378749c88454752e1599301d2190eb6844ea5fe332de5f695
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"ts-node@npm:10.9.1":
|
||||
version: 10.9.1
|
||||
resolution: "ts-node@npm:10.9.1"
|
||||
|
|
Loading…
Add table
Reference in a new issue