mirror of
https://iceshrimp.dev/limepotato/jormungandr-bite.git
synced 2024-11-21 09:27:31 -07:00
This commit is contained in:
commit
03e54e88b8
408 changed files with 17480 additions and 20204 deletions
|
@ -1,5 +1,5 @@
|
|||
on:
|
||||
- push
|
||||
push:
|
||||
jobs:
|
||||
test-build:
|
||||
runs-on: docker
|
||||
|
@ -15,19 +15,15 @@ jobs:
|
|||
image: redis
|
||||
steps:
|
||||
- name: Clone repository
|
||||
run: git clone https://iceshrimp.dev/iceshrimp/iceshrimp.git --branch=${{ github.ref_name }} --depth=1 /iceshrimp
|
||||
run: git clone https://iceshrimp.dev/iceshrimp/iceshrimp.git --branch=${{ github.ref_name }} --depth=1 .
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
cd /iceshrimp
|
||||
cp -Tr /iceshrimp-caches/yarn .yarn
|
||||
yarn --immutable
|
||||
rm -rf /iceshrimp-caches/yarn/* && cp -Tr .yarn /iceshrimp-caches/yarn
|
||||
- name: Build the shrimp
|
||||
run: |
|
||||
cd /iceshrimp
|
||||
yarn build:debug
|
||||
run: yarn build:debug
|
||||
- name: Test the shrimp
|
||||
run: |
|
||||
cd /iceshrimp
|
||||
cp .config/ci.yml .config/default.yml
|
||||
yarn run migrate
|
||||
|
|
52
.pnp.loader.mjs
generated
52
.pnp.loader.mjs
generated
|
@ -1,9 +1,12 @@
|
|||
/* eslint-disable */
|
||||
// @ts-nocheck
|
||||
|
||||
import fs from 'fs';
|
||||
import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url';
|
||||
import path from 'path';
|
||||
import { createHash } from 'crypto';
|
||||
import { EOL } from 'os';
|
||||
import moduleExports, { isBuiltin } from 'module';
|
||||
import esmModule, { createRequire, isBuiltin } from 'module';
|
||||
import assert from 'assert';
|
||||
|
||||
const SAFE_TIME = 456789e3;
|
||||
|
@ -830,6 +833,12 @@ class ProxiedFS extends FakeFS {
|
|||
rmdirSync(p, opts) {
|
||||
return this.baseFs.rmdirSync(this.mapToBase(p), opts);
|
||||
}
|
||||
async rmPromise(p, opts) {
|
||||
return this.baseFs.rmPromise(this.mapToBase(p), opts);
|
||||
}
|
||||
rmSync(p, opts) {
|
||||
return this.baseFs.rmSync(this.mapToBase(p), opts);
|
||||
}
|
||||
async linkPromise(existingP, newP) {
|
||||
return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP));
|
||||
}
|
||||
|
@ -1211,6 +1220,18 @@ class NodeFS extends BasePortableFakeFS {
|
|||
rmdirSync(p, opts) {
|
||||
return this.realFs.rmdirSync(npath.fromPortablePath(p), opts);
|
||||
}
|
||||
async rmPromise(p, opts) {
|
||||
return await new Promise((resolve, reject) => {
|
||||
if (opts) {
|
||||
this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject));
|
||||
} else {
|
||||
this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject));
|
||||
}
|
||||
});
|
||||
}
|
||||
rmSync(p, opts) {
|
||||
return this.realFs.rmSync(npath.fromPortablePath(p), opts);
|
||||
}
|
||||
async linkPromise(existingP, newP) {
|
||||
return await new Promise((resolve, reject) => {
|
||||
this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject));
|
||||
|
@ -1403,6 +1424,8 @@ const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : global
|
|||
const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10));
|
||||
const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13;
|
||||
const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3;
|
||||
const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20;
|
||||
const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22;
|
||||
|
||||
function readPackageScope(checkPath) {
|
||||
const rootSeparatorIndex = checkPath.indexOf(npath.sep);
|
||||
|
@ -1493,10 +1516,21 @@ async function load$1(urlString, context, nextLoad) {
|
|||
const format = getFileFormat(filePath);
|
||||
if (!format)
|
||||
return nextLoad(urlString, context, nextLoad);
|
||||
if (format === `json` && context.importAssertions?.type !== `json`) {
|
||||
const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import assertion of type "json"`);
|
||||
err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`;
|
||||
throw err;
|
||||
if (format === `json`) {
|
||||
if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) {
|
||||
if (context.importAttributes?.type !== `json`) {
|
||||
const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`);
|
||||
err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`;
|
||||
throw err;
|
||||
}
|
||||
} else {
|
||||
const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type;
|
||||
if (type !== `json`) {
|
||||
const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`);
|
||||
err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`;
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) {
|
||||
const pathToSend = pathToFileURL(
|
||||
|
@ -1941,6 +1975,13 @@ function packageImportsResolve({ name, base, conditions, readFileSyncFn }) {
|
|||
throwImportNotDefined(name, packageJSONUrl, base);
|
||||
}
|
||||
|
||||
let findPnpApi = esmModule.findPnpApi;
|
||||
if (!findPnpApi) {
|
||||
const require = createRequire(import.meta.url);
|
||||
const pnpApi = require(`./.pnp.cjs`);
|
||||
pnpApi.setup();
|
||||
findPnpApi = esmModule.findPnpApi;
|
||||
}
|
||||
const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/;
|
||||
const isRelativeRegexp = /^\.{0,2}\//;
|
||||
function tryReadFile(filePath) {
|
||||
|
@ -1968,7 +2009,6 @@ async function resolvePrivateRequest(specifier, issuer, context, nextResolve) {
|
|||
}
|
||||
}
|
||||
async function resolve$1(originalSpecifier, context, nextResolve) {
|
||||
const { findPnpApi } = moduleExports;
|
||||
if (!findPnpApi || isBuiltin(originalSpecifier))
|
||||
return nextResolve(originalSpecifier, context, nextResolve);
|
||||
let specifier = originalSpecifier;
|
||||
|
|
3
.yarn/cache/@emnapi-runtime-npm-1.2.0-36d2203035-c954b36493.zip
vendored
Normal file
3
.yarn/cache/@emnapi-runtime-npm-1.2.0-36d2203035-c954b36493.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f55f261eeccf10a7439daaece365db141f635a7e9a1f9016e00ab8f28943399f
|
||||
size 91230
|
3
.yarn/cache/@iceshrimp-summaly-npm-2.7.2-3842079977-242d994023.zip
vendored
Normal file
3
.yarn/cache/@iceshrimp-summaly-npm-2.7.2-3842079977-242d994023.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2813f320e458788fe0798d2ccfcda5761be9356459aead4956f33c948d3c488b
|
||||
size 22555
|
BIN
.yarn/cache/@img-sharp-darwin-arm64-npm-0.33.4-061afc6886-10.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/@img-sharp-darwin-arm64-npm-0.33.4-061afc6886-10.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
3
.yarn/cache/@img-sharp-darwin-x64-npm-0.33.4-6aac8de317-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-darwin-x64-npm-0.33.4-6aac8de317-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:723b51d409908aa6afafeca67892dc83b016696018d449e18a81d11bd1110b95
|
||||
size 106850
|
3
.yarn/cache/@img-sharp-libvips-darwin-arm64-npm-1.0.2-6c9ede770e-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-libvips-darwin-arm64-npm-1.0.2-6c9ede770e-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e00b4d72355e50af073adb1d02fcae5f858e91ab2323022f560b0fff36f3d5cb
|
||||
size 7008013
|
3
.yarn/cache/@img-sharp-libvips-darwin-x64-npm-1.0.2-01b146c37d-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-libvips-darwin-x64-npm-1.0.2-01b146c37d-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0ffccca8cd6273fcc7a24fc1ec2cc621247c31e6d69dfe6200190186653d8330
|
||||
size 7894090
|
BIN
.yarn/cache/@img-sharp-libvips-linux-arm64-npm-1.0.2-a3a6e66f3b-10.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/@img-sharp-libvips-linux-arm64-npm-1.0.2-a3a6e66f3b-10.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@img-sharp-libvips-linux-x64-npm-1.0.2-69e740ab3d-10.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/@img-sharp-libvips-linux-x64-npm-1.0.2-69e740ab3d-10.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
3
.yarn/cache/@img-sharp-libvips-linuxmusl-arm64-npm-1.0.2-f787a79edb-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-libvips-linuxmusl-arm64-npm-1.0.2-f787a79edb-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2bfedd5b2cfa0952e02cdd4d72f83e32df9de82db18cf5195e16f72891d815ac
|
||||
size 7099479
|
3
.yarn/cache/@img-sharp-libvips-linuxmusl-x64-npm-1.0.2-e4d5858946-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-libvips-linuxmusl-x64-npm-1.0.2-e4d5858946-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:737651fc2b1963b06609484ac20fedd163bdd57b51ab4eb693cd506d5841695a
|
||||
size 7204642
|
3
.yarn/cache/@img-sharp-linux-arm64-npm-0.33.4-eee77af7d4-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-linux-arm64-npm-0.33.4-eee77af7d4-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:80752717166479cd78d3a4477293e80d7d96de70a09785489f51b86bc177296e
|
||||
size 107298
|
3
.yarn/cache/@img-sharp-linux-x64-npm-0.33.4-e678be5de4-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-linux-x64-npm-0.33.4-e678be5de4-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:37df8739ba92bd891180a9fe4aa2a372cfd4ea92223bd14ccc5f0526661df978
|
||||
size 114780
|
3
.yarn/cache/@img-sharp-linuxmusl-arm64-npm-0.33.4-c98abb8a19-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-linuxmusl-arm64-npm-0.33.4-c98abb8a19-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:507a08f66569fb890d3459241a989b257ae758b7cec2014ee18d4574f4233a61
|
||||
size 111591
|
3
.yarn/cache/@img-sharp-linuxmusl-x64-npm-0.33.4-6e3f28f5de-10.zip
vendored
Normal file
3
.yarn/cache/@img-sharp-linuxmusl-x64-npm-0.33.4-6e3f28f5de-10.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bb0ca07851c9935e2889d79d613591929b83d9274b8636e247665ca1a1c6f57f
|
||||
size 118348
|
BIN
.yarn/cache/@syuilo-aiscript-npm-0.11.1-451b9d1a3f-4df4bb5a25.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/@syuilo-aiscript-npm-0.11.1-451b9d1a3f-4df4bb5a25.zip
(Stored with Git LFS)
vendored
Binary file not shown.
3
.yarn/cache/@syuilo-aiscript-npm-0.17.0-005e068ae6-2a10b3d29a.zip
vendored
Normal file
3
.yarn/cache/@syuilo-aiscript-npm-0.17.0-005e068ae6-2a10b3d29a.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:efc418b0cc9ffe3683b1cf5f5c2be1f614a8babd885446b88111c9f2f8308379
|
||||
size 168922
|
BIN
.yarn/cache/chalk-npm-4.0.0-50e5418ea0-f8ae363f43.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/chalk-npm-4.0.0-50e5418ea0-f8ae363f43.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/chownr-npm-1.1.4-5bd400ab08-115648f8eb.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/deep-extend-npm-0.6.0-e182924219-7be7e5a8d4.zip
(Stored with Git LFS)
vendored
Binary file not shown.
3
.yarn/cache/detect-libc-npm-2.0.3-2ddae34945-b4ea018d62.zip
vendored
Normal file
3
.yarn/cache/detect-libc-npm-2.0.3-2ddae34945-b4ea018d62.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:23b86d525b50e2419c6def32d652247d834dac64ca9e61f89b7d893febfbca34
|
||||
size 9395
|
BIN
.yarn/cache/expand-template-npm-2.0.3-80de959306-588c198472.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/expand-template-npm-2.0.3-80de959306-588c198472.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-2a091ba07f.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/github-from-package-npm-0.0.0-519f80c9a1-2a091ba07f.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-3f4e088208.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/mkdirp-classic-npm-0.5.3-3b5c991910-3f4e088208.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/nan-npm-2.18.0-a51ed5bed5-5520e22c64.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/nan-npm-2.18.0-a51ed5bed5-5520e22c64.zip
(Stored with Git LFS)
vendored
Binary file not shown.
3
.yarn/cache/nan-npm-2.19.0-2f5da4a528-b97f680753.zip
vendored
Normal file
3
.yarn/cache/nan-npm-2.19.0-2f5da4a528-b97f680753.zip
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bb4ff42d414f1c2a732d520e2b25bedf23587ff4d22cf672519bf53b83ddc0dd
|
||||
size 99593
|
BIN
.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-276feb8e30.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/napi-build-utils-npm-1.0.2-892e4bba56-276feb8e30.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/node-abi-npm-3.45.0-586bc5cf50-b59b49d515.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/node-abi-npm-3.45.0-586bc5cf50-b59b49d515.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-8eea1d4d96.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/node-addon-api-npm-6.1.0-634c545b39-8eea1d4d96.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/node-fetch-npm-3.3.1-576511fc5a-9fed9ed9ab.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/node-fetch-npm-3.3.1-576511fc5a-9fed9ed9ab.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/prebuild-install-npm-7.1.1-cb9fc9d341-6c70a2f82f.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/prebuild-install-npm-7.1.1-cb9fc9d341-6c70a2f82f.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/rc-npm-1.2.8-d6768ac936-5c4d72ae7e.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/rc-npm-1.2.8-d6768ac936-5c4d72ae7e.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/re2-npm-1.20.11-ab65de125e-a8665c861c.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/re2-npm-1.20.11-ab65de125e-a8665c861c.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/re2-npm-1.20.9-65a014d791-0ecd9f849b.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/re2-npm-1.20.9-65a014d791-0ecd9f849b.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/semver-npm-7.6.2-0fec6944bb-296b17d027.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/semver-npm-7.6.2-0fec6944bb-296b17d027.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/sharp-npm-0.32.1-5af640fc49-07df854f3d.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/sharp-npm-0.32.1-5af640fc49-07df854f3d.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/sharp-npm-0.33.4-afc15185a7-f396d1363d.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/sharp-npm-0.33.4-afc15185a7-f396d1363d.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4d211042cc.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/simple-concat-npm-1.0.1-48df70de29-4d211042cc.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/simple-get-npm-4.0.1-fa2a97645d-93f1b32319.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/simple-get-npm-4.0.1-fa2a97645d-93f1b32319.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/strip-json-comments-npm-2.0.1-e7883b2d04-1074ccb632.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/summaly-npm-2.7.0-e25bfbf6a2-ce49173396.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/summaly-npm-2.7.0-e25bfbf6a2-ce49173396.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-526deae025.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/tar-fs-npm-2.1.1-e374d3b7a2-526deae025.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/trace-redirect-npm-1.0.6-e4829a09f3-20429f8ed3.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/trace-redirect-npm-1.0.6-e4829a09f3-20429f8ed3.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/uuid-npm-7.0.3-2b088bd924-b2a4d30ecd.zip
(Stored with Git LFS)
vendored
BIN
.yarn/cache/uuid-npm-7.0.3-2b088bd924-b2a4d30ecd.zip
(Stored with Git LFS)
vendored
Binary file not shown.
BIN
.yarn/cache/uuid-npm-9.0.1-39a8442bc6-9d0b6adb72.zip
(Stored with Git LFS)
vendored
Normal file
BIN
.yarn/cache/uuid-npm-9.0.1-39a8442bc6-9d0b6adb72.zip
(Stored with Git LFS)
vendored
Normal file
Binary file not shown.
BIN
.yarn/corepack.tgz
(Stored with Git LFS)
BIN
.yarn/corepack.tgz
(Stored with Git LFS)
Binary file not shown.
60
CHANGELOG.md
60
CHANGELOG.md
|
@ -1,3 +1,61 @@
|
|||
## v2023.12.9
|
||||
This release contains a security patch, as well as minor fixes and improvements. Upgrading is strongly recommended for all server operators.
|
||||
|
||||
### Highlights
|
||||
- Several DoS vulnerabilities - allowing remote attackers to allocate arbitrary amounts of memory - were patched
|
||||
- Corrupt jobs now get discarded instead of clogging up the failed queues
|
||||
|
||||
### Backend
|
||||
- Fetched JSON-LD contexts are now limited to 1MiB, resolving a DoS attack vector
|
||||
- Fetched node-fetch responses are now limited to 1MiB/10MiB, resolving a DoS attack vector
|
||||
|
||||
### Miscellaneous
|
||||
- The docker images now use the bundled libvips version shipping with sharp instead of the system-wide one, reducing the image size by ~60MB
|
||||
- The example docker-compose.yml file was updated
|
||||
- The iceshrimp-js package was renamed to iceshrimp-sdk in order to prevent confusion should this repository be renamed to iceshrimp-js in the future (to distinguish it from Iceshrimp.NET)
|
||||
- Various dependency updates
|
||||
- Various translation updates
|
||||
|
||||
### Attribution
|
||||
This release was made possible by project contributors: AntoineÐ & Laura Hausmann
|
||||
|
||||
## v2023.12.8
|
||||
This release contains minor fixes and improvements. Upgrading is recommended for all server operators.
|
||||
|
||||
### Highlights
|
||||
- AiScript has been updated to v0.17.0
|
||||
- Several new MFM functions have been added
|
||||
|
||||
### Backend
|
||||
- Pinned notes are rendered as links instead of objects, improving privacy
|
||||
- Sporadic errors while scrolling through followers/following lists were fixed
|
||||
- The link preview generator now sends a proper user agent instead of identifying itself as a generic bot
|
||||
- The home timeline query heuristic now gets reset when follow lists are being imported, resolving a timeline performance edge case
|
||||
|
||||
### Mastodon client API
|
||||
- The verify_credentials response now includes the follow_requests_count property, improving compatibiltiy with certain Mastodon clients
|
||||
- Attachments will now fall back to their full res version if they don't have a thumbnail, fixing a crash with the official Mastodon for Android app
|
||||
|
||||
### Frontend
|
||||
- The placeholder timetravel buttons have been removed
|
||||
- The experiments page has been removed
|
||||
|
||||
### Miscellaneous
|
||||
- The helm chart was updated and now has more configuration options
|
||||
- The yarn version was updated to v4.3.1
|
||||
- The README was updated to better reflect the current development situation in relation to the rewrite
|
||||
- The project now builds against NodeJS 22
|
||||
- The dockerfile was updated & now builds against alpine 3.20
|
||||
- Backend dependencies have been updated
|
||||
- The recommended key/value store was switched to valkey
|
||||
- The CI configuration has been updated
|
||||
- Various translation updates
|
||||
|
||||
### Attribution
|
||||
This release was made possible by project contributors: AverageDood, Gersonzao, Kopper, Laura Hausmann, Mae Dartmann, Pyrox, Tournesol, ari melody, limepotato, mia & zotan
|
||||
|
||||
It also includes cherry-picked contributions from external contributors: naskya (firefish), ChaoticLeah (cutiekey)
|
||||
|
||||
## v2023.12.7
|
||||
This is a security release. Upgrading is therefore strongly recommended.
|
||||
|
||||
|
@ -718,4 +776,4 @@ It also includes cherry-picked contributions from external contributors: Namekuj
|
|||
|
||||
---
|
||||
|
||||
This file lists all major changes made since the fork from Firefish on 2023-07-21. For changes prior to that date, please reference the [Firefish](https://git.joinfirefish.org/firefish/firefish/-/tree/76ad0a19b3a64eaecb4da31f20c229e423ee2095/) repository.
|
||||
This file lists all major changes made since the fork from Firefish on 2023-07-21. For changes prior to that date, please reference the [Firefish](https://firefish.dev/firefish/firefish/-/tree/76ad0a19b3a64eaecb4da31f20c229e423ee2095/) repository.
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# syntax = docker/dockerfile:1.2
|
||||
## Install dev and compilation dependencies, build files
|
||||
FROM alpine:3.18 as build
|
||||
FROM alpine:3.20 as build
|
||||
WORKDIR /iceshrimp
|
||||
|
||||
# Install compilation dependencies
|
||||
RUN apk add --no-cache --no-progress git alpine-sdk vips-dev python3 nodejs-current npm vips
|
||||
RUN apk add --no-cache --no-progress git alpine-sdk python3 py3-setuptools nodejs-current npm
|
||||
|
||||
# Copy in all files for the build
|
||||
COPY . ./
|
||||
|
@ -31,11 +31,11 @@ RUN yarn focus-production
|
|||
RUN --mount=type=cache,target=/iceshrimp/.yarncache_focused rm -rf .yarncache/* && cp -r .yarn/. .yarncache_focused
|
||||
|
||||
## Runtime container
|
||||
FROM alpine:3.18
|
||||
FROM alpine:3.20
|
||||
WORKDIR /iceshrimp
|
||||
|
||||
# Install runtime dependencies
|
||||
RUN apk add --no-cache --no-progress tini ffmpeg vips-dev zip unzip nodejs-current libheif-dev
|
||||
RUN apk add --no-cache --no-progress tini ffmpeg zip unzip nodejs-current libheif-dev
|
||||
|
||||
# Copy built files
|
||||
COPY --from=build /iceshrimp /iceshrimp
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
- Check out [FediDB](https://fedidb.org/software/iceshrimp) or [Fediverse Observer](https://iceshrimp.fediverse.observer/list) to get an overview of the instances that are out there.
|
||||
- Please note that we do not operate a "flagship instance", the only project-affiliated domain is `iceshrimp.dev`.
|
||||
- Want to donate to the project?
|
||||
- Our backend lead dev (zotan) is in need of a better laptop, as their current one does not have enough memory. You can contribute [here](https://bunq.me/zotanlaptopcrowdfund). Any leftover money will be given to queers in need.
|
||||
- Our frontend dev (Lilian) needs help paying for healthcare costs. You can contribute [here](https://bunq.me/lilianhealthcarefund). Money from the fund will be used for co-pays, and medical expenses not covered by insurance.
|
||||
- Need help or want to contribute? Join the [chat room](https://chat.iceshrimp.dev)!
|
||||
|
||||
---
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
},
|
||||
"formatter": {
|
||||
"ignore": [
|
||||
"packages/iceshrimp-js/api-extractor.json",
|
||||
"packages/iceshrimp-sdk/api-extractor.json",
|
||||
"packages/*/tsconfig.json",
|
||||
"packages/*/built",
|
||||
"packages/*/package-lock.json",
|
||||
|
|
|
@ -15,7 +15,7 @@ type: application
|
|||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.2
|
||||
version: 0.1.4
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
|
|
|
@ -31,6 +31,7 @@ A fun, new, open way to experience social media https://iceshrimp.dev
|
|||
| iceshrimp.libreTranslate.apiKey | string | `""` | |
|
||||
| iceshrimp.libreTranslate.apiUrl | string | `""` | |
|
||||
| iceshrimp.libreTranslate.managed | bool | `false` | |
|
||||
| iceshrimp.maxNoteLength | integer | `3000` | Max note length |
|
||||
| iceshrimp.objectStorage.access_key | string | `""` | |
|
||||
| iceshrimp.objectStorage.access_secret | string | `""` | |
|
||||
| iceshrimp.objectStorage.baseUrl | string | `""` | |
|
||||
|
@ -51,6 +52,7 @@ A fun, new, open way to experience social media https://iceshrimp.dev
|
|||
| iceshrimp.smtp.port | int | `587` | |
|
||||
| iceshrimp.smtp.server | string | `"smtp.mailgun.org"` | |
|
||||
| iceshrimp.smtp.useImplicitSslTls | bool | `false` | |
|
||||
| iceshrimp.strategy | object | `{}` | Override DeploymentStrategy for Iceshrimp |
|
||||
| elasticsearch | object | `{"auth":{},"enabled":false,"hostname":"","port":9200,"ssl":false}` | https://github.com/bitnami/charts/tree/master/bitnami/elasticsearch#parameters |
|
||||
| fullnameOverride | string | `""` | |
|
||||
| image.pullPolicy | string | `"IfNotPresent"` | |
|
||||
|
|
|
@ -211,7 +211,7 @@ id: 'aid'
|
|||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
# Max note length, should be < 8000.
|
||||
#maxNoteLength: 3000
|
||||
maxNoteLength: {{ .Values.iceshrimp.maxNoteLength | default 3000 }}
|
||||
|
||||
# Maximum lenght of an image caption or file comment (default 1500, max 8192)
|
||||
#maxCaptionLength: 1500
|
||||
|
|
|
@ -5,9 +5,15 @@ metadata:
|
|||
labels:
|
||||
{{- include "iceshrimp.labels" . | nindent 4 }}
|
||||
spec:
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
{{- if not .Values.autoscaling.enabled }}
|
||||
replicas: {{ .Values.replicaCount }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.iceshrimp.deploymentStrategy }}
|
||||
strategy:
|
||||
{{- toYaml .Values.iceshrimp.deploymentStrategy | nindent 4 }}
|
||||
{{- end }}
|
||||
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "iceshrimp.selectorLabels" . | nindent 6 }}
|
||||
|
|
|
@ -42,7 +42,7 @@ iceshrimp:
|
|||
prefix: files
|
||||
endpoint: "" # e.g. "nyc3.digitaloceanspaces.com:443"
|
||||
region: "" # e.g. "nyc3"
|
||||
|
||||
|
||||
localStorage:
|
||||
enabled: true
|
||||
claimName: null
|
||||
|
@ -53,7 +53,14 @@ iceshrimp:
|
|||
annotations:
|
||||
helm.sh/resource-policy: keep
|
||||
size: 10Gi
|
||||
|
||||
|
||||
# Deployment strategy (optional), see https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
|
||||
# deploymentStrategy:
|
||||
# type: RollingUpdate
|
||||
# rollingUpdate:
|
||||
# maxUnavailable: 0
|
||||
# maxSurge: 1
|
||||
|
||||
# -- If you want to allow iceshrimp to connect to private ips, enter the cidrs here.
|
||||
allowedPrivateNetworks: []
|
||||
# - "10.0.0.0/8"
|
||||
|
@ -68,6 +75,9 @@ iceshrimp:
|
|||
# Number of worker processes per replica
|
||||
clusterLimit: 1
|
||||
|
||||
# Max note length
|
||||
maxNoteLength: 3000
|
||||
|
||||
# https://github.com/bitnami/charts/tree/master/bitnami/postgresql#parameters
|
||||
postgresql:
|
||||
# -- disable if you want to use an existing db; in which case the values below
|
||||
|
|
|
@ -22,7 +22,7 @@ services:
|
|||
redis:
|
||||
restart: always
|
||||
container_name: iceshrimp_redis
|
||||
image: docker.io/redis:7.0-alpine
|
||||
image: docker.io/valkey/valkey:7-alpine
|
||||
networks:
|
||||
- network
|
||||
volumes:
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
You can find interactive API documentation at any Iceshrimp instance. https://iceshrimp.social/api-doc
|
||||
|
||||
You can also find auto-generated documentation for iceshrimp-js [here](../packages/iceshrimp-js/markdown/iceshrimp-js.md).
|
||||
You can also find auto-generated documentation for iceshrimp-sdk [here](../packages/iceshrimp-sdk/markdown/iceshrimp-sdk.md).
|
||||
|
|
|
@ -28,7 +28,7 @@ services:
|
|||
|
||||
redis:
|
||||
restart: unless-stopped
|
||||
image: docker.io/redis:7.0-alpine
|
||||
image: docker.io/valkey/valkey:7-alpine
|
||||
container_name: iceshrimp_redis
|
||||
networks:
|
||||
- ishnet
|
||||
|
@ -37,7 +37,7 @@ services:
|
|||
|
||||
db:
|
||||
restart: unless-stopped
|
||||
image: docker.io/postgres:12.2-alpine
|
||||
image: docker.io/postgres:16-alpine
|
||||
container_name: iceshrimp_db
|
||||
networks:
|
||||
- ishnet
|
||||
|
|
|
@ -14,7 +14,7 @@ This document will guide you through manual installation of Iceshrimp. We also p
|
|||
|
||||
- [**Node.js**](https://nodejs.org) v18.16.0+ (v20 recommended)
|
||||
- [**PostgreSQL**](https://www.postgresql.org/) 12+ (including modules, usually packaged as postgresql-contrib)
|
||||
- [**Redis**](https://redis.io/) 6+
|
||||
- [**Valkey**](https://valkey.io/) (or any other Redis 6 compatible fork)
|
||||
- [**libvips**](https://www.libvips.org/)
|
||||
- **Web proxy**
|
||||
- nginx
|
||||
|
|
|
@ -2092,15 +2092,6 @@ preventAiLearning: Evita l'indexació dels bots
|
|||
preventAiLearningDescription: Sol·liciteu que els models de llenguatge d'IA de tercers
|
||||
no estudiïn el contingut que pengeu, com ara publicacions i imatges.
|
||||
pwa: Instal·lar PWA
|
||||
_experiments:
|
||||
alpha: Alfa
|
||||
beta: Beta
|
||||
release: Publicà
|
||||
title: Experiments
|
||||
enablePostImports: Activar l'importació de publicacions
|
||||
postImportsCaption: Permet els usuaris importar publicacions desde comptes a Iceshrimp,
|
||||
Iceshrimp, Mastodon, Akkoma i Pleroma. Pot fer que el servidor vagi més lent durant
|
||||
la càrrega si tens un coll d'ampolla a la cua.
|
||||
noGraze: Si us plau, desactiva l'extensió del navegador "Graze for Mastodon", ja que
|
||||
interfereix amb Iceshrimp.
|
||||
accessibility: Accessibilitat
|
||||
|
|
|
@ -2101,12 +2101,6 @@ accessibility: Erreichbarkeit
|
|||
jumpToPrevious: Zum Vorherigen springen
|
||||
silencedWarning: Diese Meldung wird angezeigt, weil diese Nutzer von Servern stammen,
|
||||
die Ihr Administrator abgeschaltet hat, so dass es sich möglicherweise um Spam handelt.
|
||||
_experiments:
|
||||
title: Funktionstests
|
||||
enablePostImports: Beitragsimporte aktivieren
|
||||
postImportsCaption: Erlaubt es Nutzer:innen ihre Posts von alten Iceshrimp, Iceshrimp,
|
||||
Mastodon, Akkoma und Pleroma Accounts zu importieren. Bei Engpässen in der Warteschlange
|
||||
kann es zu Verlangsamungen beim Laden während des Imports kommen.
|
||||
noGraze: Bitte deaktivieren Sie die Browsererweiterung "Graze for Mastodon", da sie
|
||||
die Funktion von Iceshrimp stört.
|
||||
indexFrom: Indexieren ab Beitragskennung aufwärts
|
||||
|
|
|
@ -1344,6 +1344,15 @@ _mfm:
|
|||
plain: "Plain"
|
||||
plainDescription: "Deactivates the effects of all MFM contained within this MFM
|
||||
effect."
|
||||
border: "Border"
|
||||
borderDescription: "Adds a border around content."
|
||||
ruby: "Ruby"
|
||||
rubyDescription: "Render a small annotation above text, Usually used for showing pronounciations of East Asian characters."
|
||||
unixtime: "Unix Time"
|
||||
unixtimeDescription: "Convert a number of seconds since 1st of January, 1970 to a readable date."
|
||||
followmouse: "Follow Mouse"
|
||||
followmouseDescription: "Make content follow the mouse cursor."
|
||||
followmouseToggle: "Toggle preview"
|
||||
_instanceTicker:
|
||||
none: "Never show"
|
||||
remote: "Show for remote creatures"
|
||||
|
@ -2148,12 +2157,6 @@ _deck:
|
|||
channel: "Channel"
|
||||
mentions: "Mentions"
|
||||
direct: "Direct messages"
|
||||
_experiments:
|
||||
title: "Experiments"
|
||||
enablePostImports: "Enable beep imports"
|
||||
postImportsCaption: "Allows creatures to import their beeps from past Jörmungandr, Misskey,
|
||||
Mastodon, Akkoma, and Pleroma accounts. It may cause slowdowns during load if
|
||||
your queue is bottlenecked."
|
||||
_dialog:
|
||||
charactersExceeded: "Max characters exceeded! Current: {current}/Limit: {max}"
|
||||
charactersBelow: "Not enough characters! Current: {current}/Limit: {min}"
|
||||
|
|
|
@ -447,7 +447,7 @@ title: "Título"
|
|||
text: "Texto"
|
||||
enable: "Activar"
|
||||
next: "Siguiente"
|
||||
retype: "Intentar de nuevo"
|
||||
retype: "otra vez"
|
||||
noteOf: "Publicaciones de {user}"
|
||||
inviteToGroup: "Invitar al grupo"
|
||||
quoteAttached: "Cita añadida"
|
||||
|
@ -468,9 +468,9 @@ weakPassword: "Contraseña débil"
|
|||
normalPassword: "Contraseña aceptable"
|
||||
strongPassword: "Contraseña fuerte"
|
||||
passwordMatched: "Coincide"
|
||||
passwordNotMatched: "Las contraseñas no coinciden"
|
||||
passwordNotMatched: "No coincide"
|
||||
signinWith: "Inicia sesión con {x}"
|
||||
signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario
|
||||
signinFailed: "Inicio de sesión fallido. Asegúrate de haber usado el nombre de usuario
|
||||
y contraseña correctos."
|
||||
tapSecurityKey: "Toque la clave de seguridad"
|
||||
or: "O"
|
||||
|
@ -2188,12 +2188,6 @@ _feeds:
|
|||
copyFeed: Copiar feed
|
||||
rss: RSS
|
||||
atom: Atom
|
||||
_experiments:
|
||||
title: Experimentos
|
||||
enablePostImports: Activar importaciones de publicaciones
|
||||
postImportsCaption: Permite a los usuarios importar publicaciones de cuentas antiguas
|
||||
de Iceshrimp, Misskey, Mastodon, Akkoma y Pleroma. Puede que cause ralentizaciones
|
||||
durante la carga si sufres cuello de botella.
|
||||
_skinTones:
|
||||
mediumDark: Medio oscuro
|
||||
dark: Oscuro
|
||||
|
|
|
@ -993,9 +993,9 @@ _registry:
|
|||
domain: "Domaine"
|
||||
createKey: "Créer une clé"
|
||||
_aboutIceshrimp:
|
||||
about: "Iceshrimp est un média social décentralisé et fédéré utilisant ActivityPub.\n\
|
||||
C'est un fork de Calckey/Firefish (lui-même fork de Misskey) qui se concentre
|
||||
sur la stabilité, les performances et la facilité d'utilisation plutôt que sur
|
||||
about: "Iceshrimp est un média social décentralisé et fédéré utilisant ActivityPub.\n
|
||||
C’est un fork de Calckey/Firefish (lui-même fork de Misskey) qui se concentre
|
||||
sur la stabilité, les performances et la facilité d’utilisation plutôt que sur
|
||||
de nouvelles fonctionnalités."
|
||||
contributors: "Principaux contributeurs"
|
||||
allContributors: "Tous les contributeurs"
|
||||
|
@ -1114,6 +1114,17 @@ _mfm:
|
|||
backgroundDescription: Changer la couleur d’arrière-plan d’un texte.
|
||||
background: Couleur d’arrière-plan
|
||||
plain: Simple
|
||||
border: Bordure
|
||||
rubyDescription: Affiche une petite annotation au-dessus du texte, généralement
|
||||
utilisée pour afficher les prononciations des caractères d’Asie de l’Est.
|
||||
borderDescription: Ajoute une bordure autour du contenu.
|
||||
ruby: Rubis
|
||||
unixtime: Heure Unix (Posix)
|
||||
unixtimeDescription: Convertit un nombre de secondes depuis le 1er janvier 1970
|
||||
en une date lisible.
|
||||
followmouse: Suivre la souris
|
||||
followmouseDescription: Faire en sorte que le contenu suive le curseur de la souris.
|
||||
followmouseToggle: Afficher/Masquer l’aperçu
|
||||
_instanceTicker:
|
||||
none: "Cacher"
|
||||
remote: "Montrer pour les utilisateur·ice·s distant·e·s"
|
||||
|
@ -2103,15 +2114,6 @@ editNote: Modifier publication
|
|||
edited: "Modifié à {date} {time}"
|
||||
flagShowTimelineRepliesDescription: Si activé, affiche dans le fil les réponses des
|
||||
utilisatieur·rice·s aux publications des autres.
|
||||
_experiments:
|
||||
alpha: Alpha
|
||||
beta: Beta
|
||||
enablePostImports: Autoriser l’importation de publications
|
||||
title: Expérimentations
|
||||
postImportsCaption: Permet aux utilisateurs d’importer leurs publications à partir
|
||||
de leurs anciens comptes Iceshrimp, Misskey, Mastodon, Akkoma et Pleroma. Cela
|
||||
peut entraîner des ralentissements lors du chargement si votre file d’attente
|
||||
est congestionnée.
|
||||
findOtherInstance: Trouver une autre instance
|
||||
userSaysSomethingReasonQuote: "{name} a cité une publication contenant {reason}"
|
||||
signupsDisabled: Les inscriptions sur cette instance sont actuellement désactivés,
|
||||
|
@ -2215,7 +2217,7 @@ _filters:
|
|||
matchOptions: Modifier la sensibilité à la casse et/ou activer la correspondance
|
||||
exacte avec une suite de caractères
|
||||
info: Nomenclature
|
||||
info2: Un tiret entre crochets [-] indique la possibilité d'inverser/négativer
|
||||
info2: Un tiret entre crochets [-] indique la possibilité d’inverser/négativer
|
||||
un filtre avec le caractère tiret -
|
||||
infoEnd: Filtrer par aliases
|
||||
replyTo: En réponse à
|
||||
|
@ -2263,10 +2265,10 @@ cwStyle: Apparence des «Avertissement de contenu»
|
|||
collapseAllCws: Cacher le contenu de toutes les réponses
|
||||
searchNotLoggedIn_1: Vous devez être authentifié pour pouvoir utiliser la recherche
|
||||
en texte intégral.
|
||||
searchNotLoggedIn_2: Toutefois, vous pouvez effectuer des recherches à l'aide de hashtags
|
||||
searchNotLoggedIn_2: Toutefois, vous pouvez effectuer des recherches à l’aide de hashtags
|
||||
et rechercher des utilisateurs.
|
||||
antennaTimelineHint: Les antennes affichent les messages correspondants dans l'ordre
|
||||
dans lequel ils ont été reçus, ce qui n'est pas nécessairement chronologique.
|
||||
antennaTimelineHint: Les antennes affichent les messages correspondants dans l’ordre
|
||||
dans lequel ils ont été reçus, ce qui n’est pas nécessairement chronologique.
|
||||
alwaysExpandCws: Toujours dérouler les messages avec des avertissements sur le contenu
|
||||
hideFromHome: Cacher de la timeline «Principal»
|
||||
_wellness:
|
||||
|
|
|
@ -1898,11 +1898,6 @@ noteId: 投稿のID
|
|||
hiddenTagsDescription: 'トレンドと「みつける」から除外したいハッシュタグを(先頭の # を除いて)改行区切りで入力してください。この設定はトレンドと「みつける」以外には影響しません。'
|
||||
hiddenTags: 非表示にするハッシュタグ
|
||||
apps: "アプリ"
|
||||
_experiments:
|
||||
title: 試験的な機能
|
||||
postImportsCaption:
|
||||
ユーザーが過去の投稿をIceshrimp・Iceshrimp・Mastodon・Akkoma・Pleromaからインポートすることを許可します。キューが溜まっているときにインポートするとサーバーに負荷がかかる可能性があります。
|
||||
enablePostImports: 投稿のインポートを有効にする
|
||||
sendModMail: モデレーション通知を送る
|
||||
deleted: 削除済み
|
||||
editNote: 投稿を編集
|
||||
|
|
|
@ -1257,11 +1257,6 @@ _aboutIceshrimp:
|
|||
de bovenstaande link om je naam hier te krijgen!
|
||||
contributors: Belangrijkste bijdragers
|
||||
allContributors: Alle bijdragers
|
||||
_experiments:
|
||||
postImportsCaption: Hiermee kunnen gebruikers hun posts van eerdere Iceshrimp, Misskey,
|
||||
Mastodon, Akkoma en Pleroma-accounts importen. Dit kan tijdensh het laden voor
|
||||
traagheid zorgen als de wachtrij vol zit.
|
||||
enablePostImports: Post-importeren aanzetten
|
||||
hiddenTagsDescription: 'Geef de hashtags (zonder #) op die je uit Trending en Verkennen
|
||||
wilt verbergen. Verborgen hashtags zijn nog steeds ontdekbaar via andere manieren.'
|
||||
pinnedClipId: ID van de clip on vast te zetten
|
||||
|
|
|
@ -2098,12 +2098,6 @@ preventAiLearningDescription: Zażądaj, by modele językowe AI osób trzecich n
|
|||
silencedWarning: Ta strona się pokazuje, ponieważ wymienieni użytkownicy są z serwerów
|
||||
które Twój admin wyciszył, więc mogą być oni potencjalnymi spamerami.
|
||||
verifiedLink: Zweryfikowany link
|
||||
_experiments:
|
||||
enablePostImports: Włącz import postów
|
||||
postImportsCaption: Pozwala użytkownikom na zaimportowanie ich postów z poprzednich
|
||||
kont Iceshrimp, Misskey, Mastodon, Akkomy czy Pleromy. Może to spowodować spowolnienia
|
||||
podczas ładowania, jeśli twoja kolejka ma wąskie gardło.
|
||||
title: Eksperymenty
|
||||
alwaysExpandCws: Zawsze rozwijaj posty z CW
|
||||
video: Film
|
||||
swipeOnMobile: Zezwól na przesuwanie palcem między stronami
|
||||
|
|
|
@ -57,7 +57,7 @@ login: Entrar
|
|||
loggingIn: Entrando
|
||||
logout: Sair
|
||||
signup: Criar conta
|
||||
uploading: Enviando...
|
||||
uploading: Enviando…
|
||||
users: Usuários
|
||||
addUser: Adicione um usuário
|
||||
addInstance: Adicionar um servidor
|
||||
|
@ -95,7 +95,7 @@ alreadyFavorited: Já foi adicionado aos marcadores.
|
|||
download: Download
|
||||
pageLoadError: Ocorreu um erro ao carregar a página.
|
||||
pageLoadErrorDescription: Isso normalmente é causado por erros de rede ou pelo cache
|
||||
do navegador. Tente limpar o cache e, depois de esperar um pouquinho, tente novamente.
|
||||
do navegador. Tente limpar o cache ou esperar um pouquinho e recarregar a página.
|
||||
serverIsDead: Esse servidos não está respondendo. Por favor espere um pouco e tente
|
||||
novamente.
|
||||
youShouldUpgradeClient: Para visualizar essa página, favor reiniciar para atualizar
|
||||
|
@ -110,3 +110,60 @@ followRequests: Pedidos de seguimento
|
|||
unfollow: Parar de seguir
|
||||
followRequestPending: Pedido de seguimento pendente
|
||||
enterEmoji: Insira um emoji
|
||||
markAsSensitive: Marcar como sensível
|
||||
unmarkAsSensitive: Desmarcar como sensível
|
||||
processing: Processando…
|
||||
renoted: Impulsionado.
|
||||
blockConfirm: Tem certeza de que deseja bloquear esta conta?
|
||||
unsuspendConfirm: Tem certeza de que deseja remover a suspensão desta conta?
|
||||
flagAsBotDescription: Habilite esta opção se esta conta for controlada por um programa.
|
||||
Se ativado, ela funcionará como um sinalizador para outros desenvolvedores, evitando
|
||||
intermináveis cadeias de interação com outros bots e ajustando os sistemas internos
|
||||
do Iceshrimp para tratar esta conta como um bot.
|
||||
sendErrorReportsDescription: "Quando ativado, informações de erro detalhadas serão
|
||||
compartilhadas com o Iceshrimp quando ocorrer um problema, ajudando a melhorar a
|
||||
qualidade do Iceshrimp.\n Isso incluirá informações como a versão do seu sistema
|
||||
operacional, qual navegador você está usando, sua atividade no Iceshrimp, etc."
|
||||
general: Geral
|
||||
federation: Federação
|
||||
receiveFollowRequest: Pedido de seguidor recebido
|
||||
followRequestAccepted: Pedido de seguidor aceito
|
||||
pinned: Fixar no perfil
|
||||
reaction: Reações
|
||||
removeReaction: Remover sua reação
|
||||
enableEmojiReactions: Ativar reações de emoji
|
||||
showEmojisInReactionNotifications: Mostrar emojis em notificações de reação
|
||||
reactionSetting: Reações a serem mostradas no seletor de reações
|
||||
reactionSettingDescription2: Arraste para organizar, clique para excluir, aperte "+"
|
||||
para adicionar.
|
||||
attachCancel: Remover anexo
|
||||
enterFileName: Insira nome de arquivo
|
||||
suspend: Suspender
|
||||
unsuspend: Remover suspensão
|
||||
unblockConfirm: Tem certeza de que deseja desbloquear esta conta?
|
||||
suspendConfirm: Tem certeza de que deseja suspender esta conta?
|
||||
editWidgetsExit: Feito
|
||||
sensitive: Sensível
|
||||
block: Bloquear
|
||||
unblock: Desbloquear
|
||||
emoji: Emoji
|
||||
emojis: Emoji
|
||||
wallpaper: Plano de fundo
|
||||
recipient: Destinatário(s)
|
||||
annotation: Comentários
|
||||
instances: Servidores
|
||||
charts: Gráficos
|
||||
operations: Operações
|
||||
software: Programa
|
||||
version: Versão
|
||||
metadata: Metadados
|
||||
network: Rede
|
||||
disk: Disco
|
||||
statistics: Estatísticas
|
||||
done: Feito
|
||||
default: Padrão
|
||||
blocked: ''
|
||||
migrationConfirm: "Você tem certeza absoluta de que deseja migrar sua conta para {account}?
|
||||
Depois de fazer isso, você não poderá reverter e não poderá usar sua conta normalmente
|
||||
novamente.\nAlém disso, certifique-se de definir esta conta atual como a conta da
|
||||
qual você está migrando."
|
||||
|
|
|
@ -1859,12 +1859,6 @@ _notification:
|
|||
youReceivedFollowRequest: Bir takip isteği geldi
|
||||
youGotPoll: '{name} anketinde oylama yaptı'
|
||||
youGotMessagingMessageFromUser: '{name} sana bir sohbet mesajı gönderdi'
|
||||
_experiments:
|
||||
title: Deneyler
|
||||
postImportsCaption: Kullanıcıların geçmiş Iceshrimp, Iceshrimp, Mastodon, Akkoma ve
|
||||
Pleroma hesaplarından gönderilerini içe aktarmalarına izin verir. Kuyruğunuz tıkanırsa
|
||||
yükleme sırasında yavaşlamalara neden olabilir.
|
||||
enablePostImports: Gönderi içeri aktarmasını aktif et
|
||||
_dialog:
|
||||
charactersExceeded: 'Maksimum karakter aşıldı! Geçerli: {current}/Sınır: {max}'
|
||||
charactersBelow: 'Yeterli karakter yok! Geçerli: {current}/Sınır: {min}'
|
||||
|
|
|
@ -1904,12 +1904,6 @@ _instanceMute:
|
|||
title: Приховує записи з перелічених серверів.
|
||||
instanceMuteDescription2: Розділити новими рядками
|
||||
heading: Список серверів для заглушення
|
||||
_experiments:
|
||||
enablePostImports: Ввімкнути імпорт записів
|
||||
title: Експерименти
|
||||
postImportsCaption: Дозволяє користувачам імпортувати свої публікації з минулих
|
||||
облікових записів Iceshrimp, Misskey, Mastodon, Akkoma і Pleroma. Це може знизити
|
||||
швидкість під час завантаження, якщо ваша черга перевантажена.
|
||||
_dialog:
|
||||
charactersExceeded: 'Перевищено максимальну кількість символів! Обмеження: {current}/{max}'
|
||||
charactersBelow: 'Недостатньо символів! Обмеження: {current}/{min}'
|
||||
|
|
|
@ -1815,10 +1815,6 @@ _messaging:
|
|||
dms: 私信
|
||||
groups: 群组
|
||||
migration: 迁移
|
||||
_experiments:
|
||||
title: 实验性功能
|
||||
postImportsCaption: 允许用户从过去的 Iceshrimp、Iceshrimp、Mastodon、Akkoma 和 Pleroma 账号导入帖子。如果您的队列出现拥堵,则可能会导致加载速度减慢。
|
||||
enablePostImports: 启用帖子导入
|
||||
license: 许可证
|
||||
flagSpeakAsCatDescription: 在猫模式下您的帖子会喵化
|
||||
allowedInstances: 白名单服务器
|
||||
|
|
|
@ -1823,8 +1823,6 @@ flagSpeakAsCat: 像貓一樣地說話
|
|||
silenceThisInstance: 靜音此伺服器
|
||||
silencedInstances: 已靜音的伺服器
|
||||
silenced: 已靜音
|
||||
_experiments:
|
||||
title: 試驗功能
|
||||
findOtherInstance: 找找另一個伺服器
|
||||
noGraze: 瀏覽器擴展 "Graze for Mastodon" 會與Iceshrimp發生衝突,請停用該擴展。
|
||||
userSaysSomethingReasonRenote: '{name} 轉傳了包含 {reason} 的貼文'
|
||||
|
|
158
package.json
158
package.json
|
@ -1,80 +1,82 @@
|
|||
{
|
||||
"name": "iceshrimp",
|
||||
"version": "2023.12.7-jormungandr.18",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://iceshrimp.dev/limepotato/jormungandr-bite.git"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"rebuild": "clean && node ./scripts/build-greet.js && yarn workspace iceshrimp-js build && yarn workspaces foreach -Apitv run build && gulp",
|
||||
"build": "node ./scripts/build-greet.js && yarn workspace iceshrimp-js run build && yarn workspaces foreach -Apitv run build && gulp",
|
||||
"build:debug": "node ./scripts/build-greet.js && yarn workspace iceshrimp-js run build:debug && yarn workspaces foreach -Apitv run build:debug && gulp",
|
||||
"start": "yarn workspace backend run start",
|
||||
"start:debug": "yarn workspace backend run start:debug",
|
||||
"start:test": "yarn workspace backend run start:test",
|
||||
"init": "yarn migrate",
|
||||
"migrate": "yarn workspace backend run migrate",
|
||||
"revertmigration": "yarn workspace backend run revertmigration",
|
||||
"migrateandstart": "yarn migrate && yarn start",
|
||||
"gulp": "gulp build",
|
||||
"watch": "yarn dev",
|
||||
"dev": "node ./scripts/dev.js",
|
||||
"dev:staging": "NODE_OPTIONS=--max_old_space_size=3072 NODE_ENV=development yarn build && yarn start",
|
||||
"lint": "yarn workspaces foreach -Ap run lint",
|
||||
"cy:open": "cypress open --browser --e2e --config-file=cypress.config.ts",
|
||||
"cy:run": "cypress run",
|
||||
"e2e": "start-server-and-test start:test http://localhost:61812 cy:run",
|
||||
"mocha": "yarn workspace backend run mocha",
|
||||
"test": "yarn mocha",
|
||||
"format": "yarn workspaces foreach -Ap run format",
|
||||
"clean": "node ./scripts/clean.js",
|
||||
"clean-all": "node ./scripts/clean-all.js",
|
||||
"cleanall": "yarn clean-all",
|
||||
"focus-production": "node ./scripts/focus-production.js",
|
||||
"regen-version": "node ./scripts/regen-version.js",
|
||||
"pack-yarn": "corepack pack -o .yarn/corepack.tgz"
|
||||
},
|
||||
"workspaces": [
|
||||
"packages/backend",
|
||||
"packages/client",
|
||||
"packages/sw",
|
||||
"packages/iceshrimp-js"
|
||||
],
|
||||
"resolutions": {
|
||||
"chokidar": "^3.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@bull-board/api": "5.6.0",
|
||||
"@bull-board/ui": "5.6.0",
|
||||
"js-yaml": "4.1.0",
|
||||
"seedrandom": "^3.0.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.4.1",
|
||||
"@types/gulp": "4.0.13",
|
||||
"@types/gulp-rename": "2.0.2",
|
||||
"@types/node": "20.4.1",
|
||||
"chalk": "4.1.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"cross-env": "7.0.3",
|
||||
"cypress": "10.11.0",
|
||||
"execa": "5.1.1",
|
||||
"glob": "^10.3.10",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-cssnano": "2.1.3",
|
||||
"gulp-rename": "2.0.0",
|
||||
"gulp-replace": "1.1.4",
|
||||
"gulp-terser": "2.1.0",
|
||||
"install-peers": "^1.0.4",
|
||||
"start-server-and-test": "1.15.2",
|
||||
"typescript": "5.1.6",
|
||||
"yaml": "^2.3.4"
|
||||
},
|
||||
"packageManager": "yarn@4.1.1",
|
||||
"dependenciesMeta": {
|
||||
"@discordapp/twemoji@14.1.2": {
|
||||
"unplugged": true
|
||||
}
|
||||
}
|
||||
"name": "iceshrimp",
|
||||
"version": "2023.12.9-jormungandr.18",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://iceshrimp.dev/limepotato/jormungandr-bite.git"
|
||||
},
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"rebuild": "clean && node ./scripts/build-greet.js && yarn workspace iceshrimp-sdk build && yarn workspaces foreach -Apitv run build && gulp",
|
||||
"build": "node ./scripts/build-greet.js && yarn workspace iceshrimp-sdk run build && yarn workspaces foreach -Apitv run build && gulp",
|
||||
"build:debug": "node ./scripts/build-greet.js && yarn workspace iceshrimp-sdk run build:debug && yarn workspaces foreach -Apitv run build:debug && gulp",
|
||||
"start": "yarn workspace backend run start",
|
||||
"start:debug": "yarn workspace backend run start:debug",
|
||||
"start:test": "yarn workspace backend run start:test",
|
||||
"init": "yarn migrate",
|
||||
"migrate": "yarn workspace backend run migrate",
|
||||
"revertmigration": "yarn workspace backend run revertmigration",
|
||||
"migrateandstart": "yarn migrate && yarn start",
|
||||
"gulp": "gulp build",
|
||||
"watch": "yarn dev",
|
||||
"dev": "node ./scripts/dev.js",
|
||||
"dev:staging": "NODE_OPTIONS=--max_old_space_size=3072 NODE_ENV=development yarn build && yarn start",
|
||||
"lint": "yarn workspaces foreach -Ap run lint",
|
||||
"cy:open": "cypress open --browser --e2e --config-file=cypress.config.ts",
|
||||
"cy:run": "cypress run",
|
||||
"e2e": "start-server-and-test start:test http://localhost:61812 cy:run",
|
||||
"mocha": "yarn workspace backend run mocha",
|
||||
"test": "yarn mocha",
|
||||
"format": "yarn workspaces foreach -Ap run format",
|
||||
"clean": "node ./scripts/clean.js",
|
||||
"clean-all": "node ./scripts/clean-all.js",
|
||||
"cleanall": "yarn clean-all",
|
||||
"focus-production": "node ./scripts/focus-production.js",
|
||||
"regen-version": "node ./scripts/regen-version.js",
|
||||
"pack-yarn": "corepack pack -o .yarn/corepack.tgz"
|
||||
},
|
||||
"workspaces": [
|
||||
"packages/backend",
|
||||
"packages/client",
|
||||
"packages/sw",
|
||||
"packages/iceshrimp-sdk"
|
||||
],
|
||||
"resolutions": {
|
||||
"chokidar": "^3.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@bull-board/api": "5.6.0",
|
||||
"@bull-board/ui": "5.6.0",
|
||||
"js-yaml": "4.1.0",
|
||||
"seedrandom": "^3.0.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.4.1",
|
||||
"@types/gulp": "4.0.13",
|
||||
"@types/gulp-rename": "2.0.2",
|
||||
"@types/node": "20.4.1",
|
||||
"chalk": "4.1.2",
|
||||
"chokidar": "^3.5.3",
|
||||
"cross-env": "7.0.3",
|
||||
"cypress": "10.11.0",
|
||||
"execa": "5.1.1",
|
||||
"glob": "^10.3.10",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-cssnano": "2.1.3",
|
||||
"gulp-rename": "2.0.0",
|
||||
"gulp-replace": "1.1.4",
|
||||
"gulp-terser": "2.1.0",
|
||||
"install-peers": "^1.0.4",
|
||||
"start-server-and-test": "1.15.2",
|
||||
"typescript": "5.1.6",
|
||||
"yaml": "^2.3.4"
|
||||
},
|
||||
"packageManager": "yarn@4.3.1",
|
||||
"dependenciesMeta": {
|
||||
"@discordapp/twemoji@14.1.2": { "unplugged": true },
|
||||
"@microsoft/api-documenter@7.22.30": { "unplugged": true },
|
||||
"@microsoft/api-extractor@7.36.3": { "unplugged": true },
|
||||
"@microsoft/api-extractor-model@7.27.5": { "unplugged": true },
|
||||
"eventemitter3@4.0.7": { "unplugged": true }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,4 +5,4 @@ This directory contains all of the packages Iceshrimp uses.
|
|||
- `backend`: Main backend code written in TypeScript for NodeJS
|
||||
- `client`: Web interface written in Vue3 and TypeScript
|
||||
- `sw`: Web [Service Worker](https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API) written in TypeScript
|
||||
- `iceshrimp-js`: TypeScript SDK for both backend and client, also published on [NPM](https://www.npmjs.com/package/iceshrimp-js) for public use
|
||||
- `iceshrimp-sdk`: TypeScript SDK for both backend and client
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
"@bull-board/koa": "5.6.0",
|
||||
"@bull-board/ui": "5.6.0",
|
||||
"@discordapp/twemoji": "14.1.2",
|
||||
"@iceshrimp/summaly": "2.7.2",
|
||||
"@koa/cors": "3.4.3",
|
||||
"@koa/multer": "3.0.2",
|
||||
"@koa/router": "9.0.1",
|
||||
|
@ -34,7 +35,6 @@
|
|||
"@peertube/http-signature": "1.7.0",
|
||||
"@redocly/openapi-core": "1.0.0-beta.131",
|
||||
"@sinonjs/fake-timers": "9.1.2",
|
||||
"@syuilo/aiscript": "0.11.1",
|
||||
"@transfem-org/sfm-js": "^0.24.5",
|
||||
"adm-zip": "^0.5.10",
|
||||
"ajv": "8.12.0",
|
||||
|
@ -69,7 +69,7 @@
|
|||
"gunzip-maybe": "^1.4.2",
|
||||
"happy-dom": "^12.10.3",
|
||||
"hpagent": "0.1.2",
|
||||
"iceshrimp-js": "workspace:*",
|
||||
"iceshrimp-sdk": "workspace:*",
|
||||
"ioredis": "5.3.2",
|
||||
"ip-cidr": "3.1.0",
|
||||
"is-svg": "4.3.2",
|
||||
|
@ -93,7 +93,7 @@
|
|||
"msgpackr": "1.9.5",
|
||||
"multer": "1.4.4-lts.1",
|
||||
"nested-property": "4.0.0",
|
||||
"node-fetch": "3.3.1",
|
||||
"node-fetch": "3.3.2",
|
||||
"nodemailer": "6.9.3",
|
||||
"oauth": "^0.10.0",
|
||||
"os-utils": "0.0.14",
|
||||
|
@ -111,7 +111,7 @@
|
|||
"qs": "6.11.2",
|
||||
"random-seed": "0.3.0",
|
||||
"ratelimiter": "3.4.1",
|
||||
"re2": "^1.20.9",
|
||||
"re2": "^1.20.11",
|
||||
"redis-lock": "0.1.4",
|
||||
"redis-semaphore": "5.3.1",
|
||||
"reflect-metadata": "0.1.13",
|
||||
|
@ -121,9 +121,8 @@
|
|||
"sanitize-html": "2.10.0",
|
||||
"seedrandom": "^3.0.5",
|
||||
"semver": "7.5.4",
|
||||
"sharp": "0.32.1",
|
||||
"sharp": "0.33.4",
|
||||
"stringz": "2.1.0",
|
||||
"summaly": "2.7.0",
|
||||
"syslog-pro": "1.0.0",
|
||||
"systeminformation": "^5.21.12",
|
||||
"tar-stream": "^3.1.6",
|
||||
|
|
|
@ -24,6 +24,7 @@ export class FederatedBite1705528046452 implements MigrationInterface {
|
|||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DELETE FROM "notification" WHERE "biteId" IS NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_c54844158c1eead7042e7ca4c83"`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" DROP CONSTRAINT "FK_5d5f68610583f2e0b6785d3c0e9"`);
|
||||
await queryRunner.query(`ALTER TABLE "bite" DROP CONSTRAINT "FK_a646fbbeb6efa2531c75fec46b9"`);
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||
|
||||
export class BiteNotificationIndex1722204953558 implements MigrationInterface {
|
||||
name = 'BiteNotificationIndex1722204953558'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c54844158c1eead7042e7ca4c8" ON "notification" ("biteId") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "public"."IDX_c54844158c1eead7042e7ca4c8"`);
|
||||
}
|
||||
}
|
|
@ -88,7 +88,6 @@ export async function getResponse(args: {
|
|||
body?: string;
|
||||
headers: Record<string, string>;
|
||||
timeout?: number;
|
||||
size?: number;
|
||||
redirect?: RequestRedirect;
|
||||
}) {
|
||||
const timeout = args.timeout || 10 * 1000;
|
||||
|
@ -103,7 +102,7 @@ export async function getResponse(args: {
|
|||
headers: args.headers,
|
||||
body: args.body,
|
||||
timeout,
|
||||
size: args.size || 10 * 1024 * 1024,
|
||||
size: 10 * 1024 * 1024,
|
||||
agent: getAgentByUrl,
|
||||
signal: controller.signal,
|
||||
redirect: args.redirect
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
import { Check, Column, Entity, ManyToOne, PrimaryColumn } from "typeorm";
|
||||
import { Check, Column, Entity, ManyToOne, PrimaryColumn, Index } from "typeorm";
|
||||
import { id } from "../id.js";
|
||||
import { User } from "./user.js";
|
||||
|
||||
|
|
|
@ -183,6 +183,7 @@ export class Notification {
|
|||
@JoinColumn()
|
||||
public appAccessToken: AccessToken | null;
|
||||
|
||||
@Index()
|
||||
@Column({ ...id(), nullable: true })
|
||||
public biteId: Bite["id"] | null;
|
||||
|
||||
|
|
|
@ -241,24 +241,29 @@ export const UserRepository = db.getRepository(User).extend({
|
|||
},
|
||||
|
||||
async userFromURI(uri: string): Promise<User | null> {
|
||||
const dbResolver = new DbResolver();
|
||||
let local = await dbResolver.getUserFromApId(uri);
|
||||
if (local) {
|
||||
return local;
|
||||
try {
|
||||
const dbResolver = new DbResolver();
|
||||
let local = await dbResolver.getUserFromApId(uri);
|
||||
if (local) {
|
||||
return local;
|
||||
}
|
||||
|
||||
// fetching Object once from remote
|
||||
const resolver = new Resolver();
|
||||
const object = (await resolver.resolve(uri)) as any;
|
||||
|
||||
// /@user If a URI other than the id is specified,
|
||||
// the URI is determined here
|
||||
if (uri !== object.id) {
|
||||
local = await dbResolver.getUserFromApId(object.id);
|
||||
if (local != null) return local;
|
||||
}
|
||||
|
||||
return isActor(object) ? await createPerson(getApId(object)) : null;
|
||||
}
|
||||
|
||||
// fetching Object once from remote
|
||||
const resolver = new Resolver();
|
||||
const object = (await resolver.resolve(uri)) as any;
|
||||
|
||||
// /@user If a URI other than the id is specified,
|
||||
// the URI is determined here
|
||||
if (uri !== object.id) {
|
||||
local = await dbResolver.getUserFromApId(object.id);
|
||||
if (local != null) return local;
|
||||
catch {
|
||||
return null;
|
||||
}
|
||||
|
||||
return isActor(object) ? await createPerson(getApId(object)) : null;
|
||||
},
|
||||
|
||||
async getHasUnreadAntenna(userId: User["id"]): Promise<boolean> {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import type Bull from "bull";
|
||||
import { noop } from "@/queue/processors/noop.js";
|
||||
|
||||
const jobs = {} as Record<string, Bull.ProcessCallbackFunction<Record<string, unknown>>>;
|
||||
|
||||
|
@ -6,4 +7,6 @@ export default function (q: Bull.Queue) {
|
|||
for (const [k, v] of Object.entries(jobs)) {
|
||||
q.process(k, 16, v);
|
||||
}
|
||||
|
||||
q.process(noop);
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import { Users, DriveFiles } from "@/models/index.js";
|
|||
import type { DbUserImportJobData } from "@/queue/types.js";
|
||||
import { queueLogger } from "../../logger.js";
|
||||
import type Bull from "bull";
|
||||
import { cache as heuristic } from "@/server/api/common/generate-following-query.js";
|
||||
|
||||
const logger = queueLogger.createSubLogger("import-following");
|
||||
|
||||
|
@ -111,6 +112,7 @@ export async function importFollowing(
|
|||
}
|
||||
}
|
||||
|
||||
await heuristic.delete(user.id);
|
||||
logger.succ("Imported");
|
||||
done();
|
||||
}
|
||||
|
|
|
@ -16,6 +16,7 @@ import { importMastoPost } from "./import-masto-post.js";
|
|||
import { importCkPost } from "./import-firefish-post.js";
|
||||
import { importBlocking } from "./import-blocking.js";
|
||||
import { importCustomEmojis } from "./import-custom-emojis.js";
|
||||
import { noop } from "@/queue/processors/noop.js";
|
||||
|
||||
const jobs = {
|
||||
deleteDriveFiles,
|
||||
|
@ -44,4 +45,6 @@ export default function (dbQueue: Bull.Queue<DbJobData>) {
|
|||
for (const [k, v] of Object.entries(jobs)) {
|
||||
dbQueue.process(k, v);
|
||||
}
|
||||
|
||||
dbQueue.process(noop);
|
||||
}
|
||||
|
|
|
@ -22,6 +22,10 @@ const logger = new Logger("deliver");
|
|||
let latest: string | null = null;
|
||||
|
||||
export default async (job: Bull.Job<DeliverJobData>) => {
|
||||
if (job.data == null || Object.keys(job.data).length === 0) {
|
||||
job.opts.removeOnComplete = true;
|
||||
return "Skip (data was null or empty)";
|
||||
}
|
||||
const { host } = new URL(job.data.to);
|
||||
const puny = toPuny(host);
|
||||
|
||||
|
|
|
@ -11,6 +11,11 @@ export async function endedPollNotification(
|
|||
job: Bull.Job<EndedPollNotificationJobData>,
|
||||
done: any,
|
||||
): Promise<void> {
|
||||
if (job.data == null || Object.keys(job.data).length === 0) {
|
||||
job.opts.removeOnComplete = true;
|
||||
done();
|
||||
return;
|
||||
}
|
||||
const note = await Notes.findOneBy({ id: job.data.noteId });
|
||||
if (note == null || !note.hasPoll) {
|
||||
done();
|
||||
|
|
|
@ -29,6 +29,10 @@ const logger = new Logger("inbox");
|
|||
|
||||
// Processing when an activity arrives in the user's inbox
|
||||
export default async (job: Bull.Job<InboxJobData>): Promise<string> => {
|
||||
if (job.data == null || Object.keys(job.data).length === 0) {
|
||||
job.opts.removeOnComplete = true;
|
||||
return "Skip (data was null or empty)";
|
||||
}
|
||||
const signature = job.data.signature; // HTTP-signature
|
||||
let activity = job.data.activity;
|
||||
|
||||
|
|
7
packages/backend/src/queue/processors/noop.ts
Normal file
7
packages/backend/src/queue/processors/noop.ts
Normal file
|
@ -0,0 +1,7 @@
|
|||
import Bull from "bull";
|
||||
|
||||
// Processor to be registered for jobs with __default__ (unnamed) handlers in queues that only have named handlers
|
||||
// Prevents sporadic bogus jobs from clogging up the queues
|
||||
export async function noop(job: Bull.Job): Promise<void> {
|
||||
job.opts.removeOnComplete = true;
|
||||
}
|
|
@ -2,6 +2,7 @@ import type Bull from "bull";
|
|||
import type { ObjectStorageJobData } from "@/queue/types.js";
|
||||
import deleteFile from "./delete-file.js";
|
||||
import cleanRemoteFiles from "./clean-remote-files.js";
|
||||
import { noop } from "@/queue/processors/noop.js";
|
||||
|
||||
const jobs = {
|
||||
deleteFile,
|
||||
|
@ -16,4 +17,6 @@ export default function (q: Bull.Queue) {
|
|||
for (const [k, v] of Object.entries(jobs)) {
|
||||
q.process(k, 16, v);
|
||||
}
|
||||
|
||||
q.process(noop);
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import { checkExpiredMutings } from "./check-expired-mutings.js";
|
|||
import { clean } from "./clean.js";
|
||||
import { setLocalEmojiSizes } from "./local-emoji-size.js";
|
||||
import { verifyLinks } from "./verify-links.js";
|
||||
import { noop } from "@/queue/processors/noop.js";
|
||||
|
||||
const jobs = {
|
||||
tickCharts,
|
||||
|
@ -25,4 +26,6 @@ export default function (dbQueue: Bull.Queue<Record<string, unknown>>) {
|
|||
for (const [k, v] of Object.entries(jobs)) {
|
||||
dbQueue.process(k, v);
|
||||
}
|
||||
|
||||
dbQueue.process(noop);
|
||||
}
|
||||
|
|
|
@ -9,6 +9,10 @@ import config from "@/config/index.js";
|
|||
const logger = new Logger("webhook");
|
||||
|
||||
export default async (job: Bull.Job<WebhookDeliverJobData>) => {
|
||||
if (job.data == null || Object.keys(job.data).length === 0) {
|
||||
job.opts.removeOnComplete = true;
|
||||
return "Skip (data was null or empty)";
|
||||
}
|
||||
try {
|
||||
logger.debug(`delivering ${job.data.webhookId}`);
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ import config from "@/config/index.js";
|
|||
import { genId } from "@/misc/gen-id.js";
|
||||
import { createBite } from "@/services/create-bite.js";
|
||||
import { Bite } from "@/models/entities/bite.js";
|
||||
import { tickBiteIncoming } from "@/metrics.js";
|
||||
|
||||
export default async (
|
||||
actor: CacheableRemoteUser,
|
||||
|
@ -76,7 +75,5 @@ export default async (
|
|||
bite.published ? new Date(bite.published) : null,
|
||||
);
|
||||
|
||||
tickBiteIncoming();
|
||||
|
||||
return "ok";
|
||||
};
|
||||
|
|
|
@ -126,6 +126,7 @@ export class LdSignature {
|
|||
headers: {
|
||||
Accept: "application/ld+json, application/json",
|
||||
},
|
||||
size: 1024 * 1024, // 1MiB
|
||||
// TODO
|
||||
//timeout: this.loderTimeout,
|
||||
agent: (u) => (u.protocol === "http:" ? httpAgent : httpsAgent),
|
||||
|
|
|
@ -584,7 +584,7 @@ export async function updateNote(value: string | IObject, resolver?: Resolver) {
|
|||
text = await htmlToMfm(post.content, post.tag);
|
||||
}
|
||||
|
||||
const cw = post.sensitive && post.summary;
|
||||
const cw = post.summary === "" ? null : post.summary;
|
||||
|
||||
// File parsing
|
||||
const fileList = post.attachment
|
||||
|
|
|
@ -56,6 +56,8 @@ import {
|
|||
import { RecursionLimiter } from "@/models/repositories/user-profile.js";
|
||||
import { UserConverter } from "@/server/api/mastodon/converters/user.js";
|
||||
|
||||
import fetch from "node-fetch";
|
||||
|
||||
const logger = apLogger;
|
||||
|
||||
const nameLength = 128;
|
||||
|
@ -271,6 +273,7 @@ export async function createPerson(
|
|||
try {
|
||||
let data = await fetch(person.followers, {
|
||||
headers: { Accept: "application/json" },
|
||||
size: 1024 * 1024
|
||||
});
|
||||
let json_data = JSON.parse(await data.text());
|
||||
|
||||
|
@ -286,6 +289,7 @@ export async function createPerson(
|
|||
try {
|
||||
let data = await fetch(person.following, {
|
||||
headers: { Accept: "application/json" },
|
||||
size: 1024 * 1024
|
||||
});
|
||||
let json_data = JSON.parse(await data.text());
|
||||
|
||||
|
@ -529,6 +533,7 @@ export async function updatePerson(
|
|||
try {
|
||||
let data = await fetch(person.followers, {
|
||||
headers: { Accept: "application/json" },
|
||||
size: 1024 * 1024
|
||||
});
|
||||
let json_data = JSON.parse(await data.text());
|
||||
|
||||
|
@ -544,6 +549,7 @@ export async function updatePerson(
|
|||
try {
|
||||
let data = await fetch(person.following, {
|
||||
headers: { Accept: "application/json" },
|
||||
size: 1024 * 1024
|
||||
});
|
||||
let json_data = JSON.parse(await data.text());
|
||||
|
||||
|
|
|
@ -11,14 +11,14 @@ export default function (
|
|||
totalItems: any,
|
||||
first?: string,
|
||||
last?: string,
|
||||
orderedItems?: Record<string, unknown>[],
|
||||
orderedItems?: (Record<string, unknown> | string)[],
|
||||
): {
|
||||
id: string | null;
|
||||
type: "OrderedCollection";
|
||||
totalItems: any;
|
||||
first?: string;
|
||||
last?: string;
|
||||
orderedItems?: Record<string, unknown>[];
|
||||
orderedItems?: (Record<string, unknown> | string)[];
|
||||
} {
|
||||
const page: any = {
|
||||
id,
|
||||
|
|
|
@ -27,7 +27,6 @@ import { shouldBlockInstance } from "@/misc/should-block-instance.js";
|
|||
import { apLogger } from "@/remote/activitypub/logger.js";
|
||||
import { In, IsNull, Not } from "typeorm";
|
||||
import renderBite from "@/remote/activitypub/renderer/bite.js";
|
||||
import { tickResolve } from "@/metrics.js";
|
||||
|
||||
export default class Resolver {
|
||||
private history: Set<string>;
|
||||
|
|
|
@ -37,7 +37,6 @@ import { serverLogger } from "./index.js";
|
|||
import config from "@/config/index.js";
|
||||
import Koa from "koa";
|
||||
import renderBite from "@/remote/activitypub/renderer/bite.js";
|
||||
import { tickFetch } from "@/metrics.js";
|
||||
|
||||
// Init router
|
||||
const router = new Router();
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue