mirror of
https://github.com/versia-pub/server.git
synced 2025-12-06 16:38:19 +01:00
Fix build errors and testing errors
This commit is contained in:
parent
f02344fa0d
commit
d6f1cd1347
5
build.ts
5
build.ts
|
|
@ -44,6 +44,9 @@ await cp(process.cwd() + "/pages/dist", process.cwd() + "/dist/pages/", {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Copy the Bee Movie script from pages
|
// Copy the Bee Movie script from pages
|
||||||
await cp(process.cwd() + "/pages/beemovie.txt", process.cwd() + "/dist/pages/");
|
await cp(
|
||||||
|
process.cwd() + "/pages/beemovie.txt",
|
||||||
|
process.cwd() + "/dist/pages/beemovie.txt"
|
||||||
|
);
|
||||||
|
|
||||||
console.log(`Built!`);
|
console.log(`Built!`);
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ export const getUrl = (name: string, config: ConfigType) => {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
||||||
if (config.media.backend === MediaBackendType.LOCAL) {
|
if (config.media.backend === MediaBackendType.LOCAL) {
|
||||||
return `${config.http.base_url}/media/${name}`;
|
return `${config.http.base_url}/media/${name}`;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison, @typescript-eslint/no-unnecessary-condition
|
||||||
} else if (config.media.backend === MediaBackendType.S3) {
|
} else if (config.media.backend === MediaBackendType.S3) {
|
||||||
return `${config.s3.public_url}/${name}`;
|
return `${config.s3.public_url}/${name}`;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,5 @@
|
||||||
// import { Worker } from "bullmq";
|
// import { Worker } from "bullmq";
|
||||||
import { client /* federationQueue */ } from "~database/datasource";
|
import { statusToLysand, type StatusWithRelations } from "./Status";
|
||||||
import {
|
|
||||||
statusAndUserRelations,
|
|
||||||
statusToLysand,
|
|
||||||
type StatusWithRelations,
|
|
||||||
} from "./Status";
|
|
||||||
import type { User } from "@prisma/client";
|
import type { User } from "@prisma/client";
|
||||||
import { ConfigManager } from "config-manager";
|
import { ConfigManager } from "config-manager";
|
||||||
|
|
||||||
|
|
@ -157,7 +152,7 @@ export const federateStatusTo = async (
|
||||||
);
|
);
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
||||||
const userInbox = new URL((user.endpoints as any).inbox);
|
const userInbox = new URL(user.endpoints.inbox);
|
||||||
|
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
import type { UserWithRelations } from "./User";
|
import type { UserWithRelations } from "./User";
|
||||||
import {
|
import { fetchRemoteUser, parseMentionsUris, userToAPI } from "./User";
|
||||||
fetchRemoteUser,
|
|
||||||
parseMentionsUris,
|
|
||||||
userRelations,
|
|
||||||
userToAPI,
|
|
||||||
} from "./User";
|
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import type { LysandPublication, Note } from "~types/lysand/Object";
|
import type { LysandPublication, Note } from "~types/lysand/Object";
|
||||||
import { htmlToText } from "html-to-text";
|
import { htmlToText } from "html-to-text";
|
||||||
|
|
@ -29,104 +24,10 @@ import linkifyStr from "linkify-string";
|
||||||
import linkifyHtml from "linkify-html";
|
import linkifyHtml from "linkify-html";
|
||||||
import { addStausToMeilisearch } from "@meilisearch";
|
import { addStausToMeilisearch } from "@meilisearch";
|
||||||
import { ConfigManager } from "config-manager";
|
import { ConfigManager } from "config-manager";
|
||||||
|
import { statusAndUserRelations, userRelations } from "./relations";
|
||||||
|
|
||||||
const config = await new ConfigManager({}).getConfig();
|
const config = await new ConfigManager({}).getConfig();
|
||||||
|
|
||||||
export const statusAndUserRelations: Prisma.StatusInclude = {
|
|
||||||
author: {
|
|
||||||
include: userRelations,
|
|
||||||
},
|
|
||||||
application: true,
|
|
||||||
emojis: true,
|
|
||||||
inReplyToPost: {
|
|
||||||
include: {
|
|
||||||
author: {
|
|
||||||
include: userRelations,
|
|
||||||
},
|
|
||||||
application: true,
|
|
||||||
emojis: true,
|
|
||||||
inReplyToPost: {
|
|
||||||
include: {
|
|
||||||
author: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
instance: true,
|
|
||||||
mentions: true,
|
|
||||||
pinnedBy: true,
|
|
||||||
_count: {
|
|
||||||
select: {
|
|
||||||
replies: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
reblogs: true,
|
|
||||||
attachments: true,
|
|
||||||
instance: true,
|
|
||||||
mentions: {
|
|
||||||
include: userRelations,
|
|
||||||
},
|
|
||||||
pinnedBy: true,
|
|
||||||
_count: {
|
|
||||||
select: {
|
|
||||||
replies: true,
|
|
||||||
likes: true,
|
|
||||||
reblogs: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
reblog: {
|
|
||||||
include: {
|
|
||||||
author: {
|
|
||||||
include: userRelations,
|
|
||||||
},
|
|
||||||
application: true,
|
|
||||||
emojis: true,
|
|
||||||
inReplyToPost: {
|
|
||||||
include: {
|
|
||||||
author: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
instance: true,
|
|
||||||
mentions: {
|
|
||||||
include: userRelations,
|
|
||||||
},
|
|
||||||
pinnedBy: true,
|
|
||||||
_count: {
|
|
||||||
select: {
|
|
||||||
replies: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
quotingPost: {
|
|
||||||
include: {
|
|
||||||
author: {
|
|
||||||
include: userRelations,
|
|
||||||
},
|
|
||||||
application: true,
|
|
||||||
emojis: true,
|
|
||||||
inReplyToPost: {
|
|
||||||
include: {
|
|
||||||
author: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
instance: true,
|
|
||||||
mentions: true,
|
|
||||||
pinnedBy: true,
|
|
||||||
_count: {
|
|
||||||
select: {
|
|
||||||
replies: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
likes: {
|
|
||||||
include: {
|
|
||||||
liker: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const statusRelations = Prisma.validator<Prisma.StatusDefaultArgs>()({
|
const statusRelations = Prisma.validator<Prisma.StatusDefaultArgs>()({
|
||||||
include: statusAndUserRelations,
|
include: statusAndUserRelations,
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ import { addInstanceIfNotExists } from "./Instance";
|
||||||
import type { APISource } from "~types/entities/source";
|
import type { APISource } from "~types/entities/source";
|
||||||
import { addUserToMeilisearch } from "@meilisearch";
|
import { addUserToMeilisearch } from "@meilisearch";
|
||||||
import { ConfigManager, type ConfigType } from "config-manager";
|
import { ConfigManager, type ConfigType } from "config-manager";
|
||||||
|
import { userRelations } from "./relations";
|
||||||
|
import { MediaBackendType } from "~packages/media-manager";
|
||||||
|
|
||||||
const configManager = new ConfigManager({});
|
const configManager = new ConfigManager({});
|
||||||
const config = await configManager.getConfig();
|
const config = await configManager.getConfig();
|
||||||
|
|
@ -23,21 +25,6 @@ export interface AuthData {
|
||||||
* Stores local and remote users
|
* Stores local and remote users
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export const userRelations: Prisma.UserInclude = {
|
|
||||||
emojis: true,
|
|
||||||
instance: true,
|
|
||||||
likes: true,
|
|
||||||
relationships: true,
|
|
||||||
relationshipSubjects: true,
|
|
||||||
pinnedNotes: true,
|
|
||||||
_count: {
|
|
||||||
select: {
|
|
||||||
statuses: true,
|
|
||||||
likes: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
const userRelations2 = Prisma.validator<Prisma.UserDefaultArgs>()({
|
const userRelations2 = Prisma.validator<Prisma.UserDefaultArgs>()({
|
||||||
include: userRelations,
|
include: userRelations,
|
||||||
});
|
});
|
||||||
|
|
@ -51,9 +38,10 @@ export type UserWithRelations = Prisma.UserGetPayload<typeof userRelations2>;
|
||||||
*/
|
*/
|
||||||
export const getAvatarUrl = (user: User, config: ConfigType) => {
|
export const getAvatarUrl = (user: User, config: ConfigType) => {
|
||||||
if (!user.avatar) return config.defaults.avatar;
|
if (!user.avatar) return config.defaults.avatar;
|
||||||
if (config.media.backend === "local") {
|
if (config.media.backend === MediaBackendType.LOCAL) {
|
||||||
return `${config.http.base_url}/media/${user.avatar}`;
|
return `${config.http.base_url}/media/${user.avatar}`;
|
||||||
} else if (config.media.backend === "s3") {
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
|
} else if (config.media.backend === MediaBackendType.S3) {
|
||||||
return `${config.s3.public_url}/${user.avatar}`;
|
return `${config.s3.public_url}/${user.avatar}`;
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
|
|
@ -66,9 +54,10 @@ export const getAvatarUrl = (user: User, config: ConfigType) => {
|
||||||
*/
|
*/
|
||||||
export const getHeaderUrl = (user: User, config: ConfigType) => {
|
export const getHeaderUrl = (user: User, config: ConfigType) => {
|
||||||
if (!user.header) return config.defaults.header;
|
if (!user.header) return config.defaults.header;
|
||||||
if (config.media.backend === "local") {
|
if (config.media.backend === MediaBackendType.LOCAL) {
|
||||||
return `${config.http.base_url}/media/${user.header}`;
|
return `${config.http.base_url}/media/${user.header}`;
|
||||||
} else if (config.media.backend === "s3") {
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||||
|
} else if (config.media.backend === MediaBackendType.S3) {
|
||||||
return `${config.s3.public_url}/${user.header}`;
|
return `${config.s3.public_url}/${user.header}`;
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
|
|
@ -366,7 +355,7 @@ export const userToAPI = (
|
||||||
bot: user.isBot,
|
bot: user.isBot,
|
||||||
source:
|
source:
|
||||||
isOwnAccount && user.source
|
isOwnAccount && user.source
|
||||||
? (user.source as any as APISource)
|
? (user.source as APISource)
|
||||||
: undefined,
|
: undefined,
|
||||||
// TODO: Add static avatar and header
|
// TODO: Add static avatar and header
|
||||||
avatar_static: "",
|
avatar_static: "",
|
||||||
|
|
|
||||||
111
database/entities/relations.ts
Normal file
111
database/entities/relations.ts
Normal file
|
|
@ -0,0 +1,111 @@
|
||||||
|
import type { Prisma } from "@prisma/client";
|
||||||
|
|
||||||
|
export const userRelations: Prisma.UserInclude = {
|
||||||
|
emojis: true,
|
||||||
|
instance: true,
|
||||||
|
likes: true,
|
||||||
|
relationships: true,
|
||||||
|
relationshipSubjects: true,
|
||||||
|
pinnedNotes: true,
|
||||||
|
_count: {
|
||||||
|
select: {
|
||||||
|
statuses: true,
|
||||||
|
likes: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export const statusAndUserRelations: Prisma.StatusInclude = {
|
||||||
|
author: {
|
||||||
|
include: userRelations,
|
||||||
|
},
|
||||||
|
application: true,
|
||||||
|
emojis: true,
|
||||||
|
inReplyToPost: {
|
||||||
|
include: {
|
||||||
|
author: {
|
||||||
|
include: userRelations,
|
||||||
|
},
|
||||||
|
application: true,
|
||||||
|
emojis: true,
|
||||||
|
inReplyToPost: {
|
||||||
|
include: {
|
||||||
|
author: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
instance: true,
|
||||||
|
mentions: true,
|
||||||
|
pinnedBy: true,
|
||||||
|
_count: {
|
||||||
|
select: {
|
||||||
|
replies: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
reblogs: true,
|
||||||
|
attachments: true,
|
||||||
|
instance: true,
|
||||||
|
mentions: {
|
||||||
|
include: userRelations,
|
||||||
|
},
|
||||||
|
pinnedBy: true,
|
||||||
|
_count: {
|
||||||
|
select: {
|
||||||
|
replies: true,
|
||||||
|
likes: true,
|
||||||
|
reblogs: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
reblog: {
|
||||||
|
include: {
|
||||||
|
author: {
|
||||||
|
include: userRelations,
|
||||||
|
},
|
||||||
|
application: true,
|
||||||
|
emojis: true,
|
||||||
|
inReplyToPost: {
|
||||||
|
include: {
|
||||||
|
author: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
instance: true,
|
||||||
|
mentions: {
|
||||||
|
include: userRelations,
|
||||||
|
},
|
||||||
|
pinnedBy: true,
|
||||||
|
_count: {
|
||||||
|
select: {
|
||||||
|
replies: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
quotingPost: {
|
||||||
|
include: {
|
||||||
|
author: {
|
||||||
|
include: userRelations,
|
||||||
|
},
|
||||||
|
application: true,
|
||||||
|
emojis: true,
|
||||||
|
inReplyToPost: {
|
||||||
|
include: {
|
||||||
|
author: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
instance: true,
|
||||||
|
mentions: true,
|
||||||
|
pinnedBy: true,
|
||||||
|
_count: {
|
||||||
|
select: {
|
||||||
|
replies: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
likes: {
|
||||||
|
include: {
|
||||||
|
liker: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
12
package.json
12
package.json
|
|
@ -19,6 +19,7 @@
|
||||||
"activitypub",
|
"activitypub",
|
||||||
"bun"
|
"bun"
|
||||||
],
|
],
|
||||||
|
"workspaces": ["packages/*"],
|
||||||
"maintainers": [
|
"maintainers": [
|
||||||
{
|
{
|
||||||
"email": "contact@cpluspatch.com",
|
"email": "contact@cpluspatch.com",
|
||||||
|
|
@ -85,14 +86,13 @@
|
||||||
"@aws-sdk/client-s3": "^3.461.0",
|
"@aws-sdk/client-s3": "^3.461.0",
|
||||||
"@iarna/toml": "^2.2.5",
|
"@iarna/toml": "^2.2.5",
|
||||||
"@json2csv/plainjs": "^7.0.6",
|
"@json2csv/plainjs": "^7.0.6",
|
||||||
"@jsr/bradenmacdonald__s3-lite-client": "npm:@jsr/bradenmacdonald__s3-lite-client",
|
"cli-parser": "workspace:*",
|
||||||
"@prisma/client": "^5.6.0",
|
"@prisma/client": "^5.6.0",
|
||||||
"blurhash": "^2.0.5",
|
"blurhash": "^2.0.5",
|
||||||
"bullmq": "latest",
|
"bullmq": "latest",
|
||||||
"chalk": "^5.3.0",
|
"chalk": "^5.3.0",
|
||||||
"cli-parser": "file:packages/cli-parser",
|
|
||||||
"cli-table": "^0.3.11",
|
"cli-table": "^0.3.11",
|
||||||
"config-manager": "file:packages/config-manager",
|
"config-manager": "workspace:*",
|
||||||
"eventemitter3": "^5.0.1",
|
"eventemitter3": "^5.0.1",
|
||||||
"extract-zip": "^2.0.1",
|
"extract-zip": "^2.0.1",
|
||||||
"html-to-text": "^9.0.5",
|
"html-to-text": "^9.0.5",
|
||||||
|
|
@ -104,9 +104,9 @@
|
||||||
"linkify-html": "^4.1.3",
|
"linkify-html": "^4.1.3",
|
||||||
"linkify-string": "^4.1.3",
|
"linkify-string": "^4.1.3",
|
||||||
"linkifyjs": "^4.1.3",
|
"linkifyjs": "^4.1.3",
|
||||||
"log-manager": "file:packages/log-manager",
|
"log-manager": "workspace:*",
|
||||||
"marked": "latest",
|
"marked": "latest",
|
||||||
"media-manager": "file:packages/media-manager",
|
"media-manager": "workspace:*",
|
||||||
"megalodon": "^9.1.1",
|
"megalodon": "^9.1.1",
|
||||||
"meilisearch": "latest",
|
"meilisearch": "latest",
|
||||||
"merge-deep-ts": "^1.2.6",
|
"merge-deep-ts": "^1.2.6",
|
||||||
|
|
@ -115,7 +115,7 @@
|
||||||
"prisma": "^5.6.0",
|
"prisma": "^5.6.0",
|
||||||
"prisma-json-types-generator": "^3.0.4",
|
"prisma-json-types-generator": "^3.0.4",
|
||||||
"prisma-redis-middleware": "^4.8.0",
|
"prisma-redis-middleware": "^4.8.0",
|
||||||
"request-parser": "file:packages/request-parser",
|
"request-parser": "workspace:*",
|
||||||
"semver": "^7.5.4",
|
"semver": "^7.5.4",
|
||||||
"sharp": "^0.33.0-rc.2",
|
"sharp": "^0.33.0-rc.2",
|
||||||
"strip-ansi": "^7.1.0"
|
"strip-ansi": "^7.1.0"
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "arg-parser",
|
"name": "cli-parser",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
"dependencies": { }
|
"dependencies": { "chalk": "^5.3.0", "strip-ansi": "^7.1.0" }
|
||||||
}
|
}
|
||||||
|
|
@ -26,7 +26,11 @@ export class ConfigManager {
|
||||||
const config = await this.readConfig<T>();
|
const config = await this.readConfig<T>();
|
||||||
const internalConfig = await this.readInternalConfig<T>();
|
const internalConfig = await this.readInternalConfig<T>();
|
||||||
|
|
||||||
return this.mergeConfigs<T>(configDefaults as T, config, internalConfig);
|
return this.mergeConfigs<T>(
|
||||||
|
configDefaults as T,
|
||||||
|
config,
|
||||||
|
internalConfig
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getConfigPath() {
|
getConfigPath() {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "config-manager",
|
"name": "config-manager",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
"dependencies": {}
|
"dependencies": { "@iarna/toml": "^2.2.5", "merge-deep-ts": "^1.2.6" }
|
||||||
}
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { S3Client } from "@bradenmacdonald/s3-lite-client";
|
import { S3Client } from "@jsr/bradenmacdonald__s3-lite-client";
|
||||||
import type { ConvertableMediaFormats } from "../media-converter";
|
import type { ConvertableMediaFormats } from "../media-converter";
|
||||||
import { MediaConverter } from "../media-converter";
|
import { MediaConverter } from "../media-converter";
|
||||||
import { MediaBackend, MediaBackendType, MediaHasher } from "..";
|
import { MediaBackend, MediaBackendType, MediaHasher } from "..";
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -2,5 +2,8 @@
|
||||||
"name": "media-manager",
|
"name": "media-manager",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
"dependencies": {}
|
"dependencies": {
|
||||||
|
"@jsr/bradenmacdonald__s3-lite-client": "npm:@jsr/bradenmacdonald__s3-lite-client",
|
||||||
|
"config-manager": "workspace:*"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
{
|
{
|
||||||
"name": "protocol-translator",
|
"name": "protocol-translator",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"main": "index.ts",
|
"main": "index.ts",
|
||||||
"dependencies": {}
|
"dependencies": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"activitypub-types": "^1.1.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="flex min-h-screen relative flex-col justify-center px-6 py-12 lg:px-8">
|
<div class="flex min-h-screen relative flex-col justify-center px-6 py-12 lg:px-8">
|
||||||
<div class="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80" aria-hidden="true">
|
<div class="absolute inset-x-0 -top-40 -z-10 transform-gpu overflow-hidden blur-3xl sm:-top-80"
|
||||||
|
aria-hidden="true">
|
||||||
<div class="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%-30rem)] sm:w-[72.1875rem]"
|
<div class="relative left-[calc(50%-11rem)] aspect-[1155/678] w-[36.125rem] -translate-x-1/2 rotate-[30deg] bg-gradient-to-tr from-[#ff80b5] to-[#9089fc] opacity-30 sm:left-[calc(50%-30rem)] sm:w-[72.1875rem]"
|
||||||
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)" />
|
style="clip-path: polygon(74.1% 44.1%, 100% 61.6%, 97.5% 26.9%, 85.5% 0.1%, 80.7% 2%, 72.5% 32.5%, 60.2% 62.4%, 52.4% 68.1%, 47.5% 58.3%, 45.2% 34.5%, 27.5% 76.7%, 0.1% 64.9%, 17.9% 100%, 27.6% 76.8%, 76.1% 97.7%, 74.1% 44.1%)" />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -11,7 +12,8 @@
|
||||||
<h1 class="font-bold text-2xl text-center tracking-tight">Login to your account</h1>
|
<h1 class="font-bold text-2xl text-center tracking-tight">Login to your account</h1>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="error && error !== 'undefined'" class="rounded bg-purple-100 ring-1 ring-purple-800 py-2 px-4">
|
<div v-if="error && error !== 'undefined'"
|
||||||
|
class="rounded bg-purple-100 ring-1 ring-purple-800 py-2 px-4">
|
||||||
<h3 class="font-bold">An error occured:</h3>
|
<h3 class="font-bold">An error occured:</h3>
|
||||||
<p>{{ error }}</p>
|
<p>{{ error }}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import type { UserWithRelations } from "~database/entities/User";
|
import type { UserWithRelations } from "~database/entities/User";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,12 @@
|
||||||
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
import { userRelations } from "~database/entities/User";
|
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import {
|
||||||
|
userRelations,
|
||||||
|
statusAndUserRelations,
|
||||||
|
} from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { sanitize } from "isomorphic-dompurify";
|
import { sanitize } from "isomorphic-dompurify";
|
||||||
import { sanitizeHtml } from "@sanitization";
|
import { sanitizeHtml } from "@sanitization";
|
||||||
|
|
@ -13,6 +13,7 @@ import type { MediaBackend } from "media-manager";
|
||||||
import { LocalMediaBackend } from "~packages/media-manager/backends/local";
|
import { LocalMediaBackend } from "~packages/media-manager/backends/local";
|
||||||
import { S3MediaBackend } from "~packages/media-manager/backends/s3";
|
import { S3MediaBackend } from "~packages/media-manager/backends/s3";
|
||||||
import { getUrl } from "~database/entities/Attachment";
|
import { getUrl } from "~database/entities/Attachment";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["PATCH"],
|
allowedMethods: ["PATCH"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations } from "~database/entities/User";
|
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import {
|
import {
|
||||||
checkForBidirectionalRelationships,
|
checkForBidirectionalRelationships,
|
||||||
relationshipToAPI,
|
relationshipToAPI,
|
||||||
} from "~database/entities/Relationship";
|
} from "~database/entities/Relationship";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations } from "~database/entities/User";
|
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import {
|
import {
|
||||||
checkForBidirectionalRelationships,
|
checkForBidirectionalRelationships,
|
||||||
relationshipToAPI,
|
relationshipToAPI,
|
||||||
} from "~database/entities/Relationship";
|
} from "~database/entities/Relationship";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { jsonResponse } from "@response";
|
import { jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import type { APIInstance } from "~types/entities/instance";
|
import type { APIInstance } from "~types/entities/instance";
|
||||||
import manifest from "~package.json";
|
import manifest from "~package.json";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,11 @@
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { userRelations } from "~database/entities/User";
|
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations } from "~database/entities/Status";
|
|
||||||
import { notificationToAPI } from "~database/entities/Notification";
|
import { notificationToAPI } from "~database/entities/Notification";
|
||||||
|
import {
|
||||||
|
userRelations,
|
||||||
|
statusAndUserRelations,
|
||||||
|
} from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["DELETE"],
|
allowedMethods: ["DELETE"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["DELETE"],
|
allowedMethods: ["DELETE"],
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ import { client } from "~database/datasource";
|
||||||
import {
|
import {
|
||||||
getAncestors,
|
getAncestors,
|
||||||
getDescendants,
|
getDescendants,
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
statusToAPI,
|
||||||
} from "~database/entities/Status";
|
} from "~database/entities/Status";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,8 @@ import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { createLike } from "~database/entities/Like";
|
import { createLike } from "~database/entities/Like";
|
||||||
import {
|
import { isViewableByUser, statusToAPI } from "~database/entities/Status";
|
||||||
isViewableByUser,
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
import type { APIStatus } from "~types/entities/status";
|
import type { APIStatus } from "~types/entities/status";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { isViewableByUser } from "~database/entities/Status";
|
||||||
|
import { userToAPI } from "~database/entities/User";
|
||||||
import {
|
import {
|
||||||
isViewableByUser,
|
|
||||||
statusAndUserRelations,
|
statusAndUserRelations,
|
||||||
} from "~database/entities/Status";
|
userRelations,
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
} from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ import { client } from "~database/datasource";
|
||||||
import {
|
import {
|
||||||
editStatus,
|
editStatus,
|
||||||
isViewableByUser,
|
isViewableByUser,
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
statusToAPI,
|
||||||
} from "~database/entities/Status";
|
} from "~database/entities/Status";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET", "DELETE", "PUT"],
|
allowedMethods: ["GET", "DELETE", "PUT"],
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,9 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import {
|
import { isViewableByUser, statusToAPI } from "~database/entities/Status";
|
||||||
isViewableByUser,
|
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
import { type UserWithRelations } from "~database/entities/User";
|
import { type UserWithRelations } from "~database/entities/User";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,12 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { isViewableByUser } from "~database/entities/Status";
|
||||||
|
import { userToAPI } from "~database/entities/User";
|
||||||
import {
|
import {
|
||||||
isViewableByUser,
|
|
||||||
statusAndUserRelations,
|
statusAndUserRelations,
|
||||||
} from "~database/entities/Status";
|
userRelations,
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
} from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse } from "@response";
|
import { errorResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import {
|
import { isViewableByUser } from "~database/entities/Status";
|
||||||
isViewableByUser,
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
statusAndUserRelations,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,8 @@ import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { deleteLike } from "~database/entities/Like";
|
import { deleteLike } from "~database/entities/Like";
|
||||||
import {
|
import { isViewableByUser, statusToAPI } from "~database/entities/Status";
|
||||||
isViewableByUser,
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
import type { APIStatus } from "~types/entities/status";
|
import type { APIStatus } from "~types/entities/status";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import {
|
import { isViewableByUser, statusToAPI } from "~database/entities/Status";
|
||||||
isViewableByUser,
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
import type { APIStatus } from "~types/entities/status";
|
import type { APIStatus } from "~types/entities/status";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,9 @@ import { parse } from "marked";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { getFromToken } from "~database/entities/Application";
|
import { getFromToken } from "~database/entities/Application";
|
||||||
import type { StatusWithRelations } from "~database/entities/Status";
|
import type { StatusWithRelations } from "~database/entities/Status";
|
||||||
import {
|
import { createNewStatus, statusToAPI } from "~database/entities/Status";
|
||||||
createNewStatus,
|
|
||||||
statusAndUserRelations,
|
|
||||||
statusToAPI,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
import type { UserWithRelations } from "~database/entities/User";
|
import type { UserWithRelations } from "~database/entities/User";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,12 @@ import { apiRoute, applyConfig } from "@api";
|
||||||
import { MeiliIndexType, meilisearch } from "@meilisearch";
|
import { MeiliIndexType, meilisearch } from "@meilisearch";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { statusAndUserRelations, statusToAPI } from "~database/entities/Status";
|
import { statusToAPI } from "~database/entities/Status";
|
||||||
import { userRelations, userToAPI } from "~database/entities/User";
|
import { userToAPI } from "~database/entities/User";
|
||||||
|
import {
|
||||||
|
statusAndUserRelations,
|
||||||
|
userRelations,
|
||||||
|
} from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { apiRoute, applyConfig } from "@api";
|
||||||
import { randomBytes } from "crypto";
|
import { randomBytes } from "crypto";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { TokenType } from "~database/entities/Token";
|
import { TokenType } from "~database/entities/Token";
|
||||||
import { userRelations } from "~database/entities/User";
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { userRelations } from "~database/entities/User";
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ import { client } from "~database/datasource";
|
||||||
import { parseEmojis } from "~database/entities/Emoji";
|
import { parseEmojis } from "~database/entities/Emoji";
|
||||||
import { createLike, deleteLike } from "~database/entities/Like";
|
import { createLike, deleteLike } from "~database/entities/Like";
|
||||||
import { createFromObject } from "~database/entities/Object";
|
import { createFromObject } from "~database/entities/Object";
|
||||||
|
import { createNewStatus, fetchFromRemote } from "~database/entities/Status";
|
||||||
|
import { parseMentionsUris } from "~database/entities/User";
|
||||||
import {
|
import {
|
||||||
createNewStatus,
|
userRelations,
|
||||||
fetchFromRemote,
|
|
||||||
statusAndUserRelations,
|
statusAndUserRelations,
|
||||||
} from "~database/entities/Status";
|
} from "~database/entities/relations";
|
||||||
import { parseMentionsUris, userRelations } from "~database/entities/User";
|
|
||||||
import type {
|
import type {
|
||||||
Announce,
|
Announce,
|
||||||
Like,
|
Like,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import { errorResponse, jsonResponse } from "@response";
|
import { errorResponse, jsonResponse } from "@response";
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
import { userRelations, userToLysand } from "~database/entities/User";
|
import { userToLysand } from "~database/entities/User";
|
||||||
|
import { userRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["POST"],
|
allowedMethods: ["POST"],
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
import { jsonResponse } from "@response";
|
import { jsonResponse } from "@response";
|
||||||
import { apiRoute, applyConfig } from "@api";
|
import { apiRoute, applyConfig } from "@api";
|
||||||
import {
|
import { statusToLysand } from "~database/entities/Status";
|
||||||
statusAndUserRelations,
|
|
||||||
statusToLysand,
|
|
||||||
} from "~database/entities/Status";
|
|
||||||
import { client } from "~database/datasource";
|
import { client } from "~database/datasource";
|
||||||
|
import { statusAndUserRelations } from "~database/entities/relations";
|
||||||
|
|
||||||
export const meta = applyConfig({
|
export const meta = applyConfig({
|
||||||
allowedMethods: ["GET"],
|
allowedMethods: ["GET"],
|
||||||
|
|
|
||||||
|
|
@ -83,11 +83,14 @@ describe("POST /auth/login/", () => {
|
||||||
|
|
||||||
expect(response.status).toBe(302);
|
expect(response.status).toBe(302);
|
||||||
expect(response.headers.get("Location")).toMatch(
|
expect(response.headers.get("Location")).toMatch(
|
||||||
/https:\/\/example.com\?code=/
|
/^\/oauth\/redirect\?redirect_uri=https%3A%2F%2Fexample.com&code=[a-f0-9]+&client_id=[a-zA-Z0-9_-]+&application=Test\+Application&website=https%3A%2F%2Fexample.com&scope=read\+write$/
|
||||||
);
|
);
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
code =
|
||||||
code = response.headers.get("location")?.split("=")[1] || "";
|
new URL(
|
||||||
|
response.headers.get("Location") ?? "",
|
||||||
|
"http://lysand.localhost:8080"
|
||||||
|
).searchParams.get("code") ?? "";
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue