From 4528a96ded3f2023d193957a95ffbd070e4cfc30 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Thu, 22 Apr 2021 23:29:06 +0200 Subject: prepare npm publish --- package.json | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'package.json') diff --git a/package.json b/package.json index 2047cb37..b8e591df 100644 --- a/package.json +++ b/package.json @@ -1,12 +1,13 @@ { - "name": "fosscord-api", + "name": "@fosscord/api", "version": "1.0.0", "description": "This repository contains the HTTP API Server", - "main": "index.js", + "main": "dist/Server.js", + "types": "dist/Server.d.ts", "scripts": { "test": "jest", "test:watch": "jest --watch", - "start": "npm run build:util && npm run build && node dist/", + "start": "npm run build:util && npm run build && node dist/start", "build": "tsc -b .", "build:util": "tsc -b ./node_modules/fosscord-server-util/", "postinstall": "npm i github:fosscord/fosscord-server-util && patch-package" @@ -15,14 +16,21 @@ "type": "git", "url": "git+https://github.com/fosscord/fosscord-api.git" }, - "keywords": [], - "author": "", + "keywords": [ + "discord", + "fosscord", + "fosscord-api", + "discord open source", + "discord-open-source" + ], + "author": "Fosscord", "license": "ISC", "bugs": { "url": "https://github.com/fosscord/fosscord-api/issues" }, "homepage": "https://github.com/fosscord/fosscord-api#readme", "dependencies": { + "@fosscord/fosscord-server-util": "github:fosscord/fosscord-server-util", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", -- cgit 1.5.1 From 4b914bcd32109c16dc6e1b54af7aced22afe1a17 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Thu, 22 Apr 2021 23:30:53 +0200 Subject: :art: rename to -> @fosscord/server-util --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'package.json') diff --git a/package.json b/package.json index b8e591df..99c0d73e 100644 --- a/package.json +++ b/package.json @@ -30,14 +30,13 @@ }, "homepage": "https://github.com/fosscord/fosscord-api#readme", "dependencies": { - "@fosscord/fosscord-server-util": "github:fosscord/fosscord-server-util", + "@fosscord/server-util": "@fosscord/server-util", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", "dotenv": "^8.2.0", "express": "^4.17.1", "express-validator": "^6.9.2", - "fosscord-server-util": "github:fosscord/fosscord-server-util", "i18next": "^19.8.5", "i18next-http-middleware": "^3.1.0", "i18next-node-fs-backend": "^2.1.3", -- cgit 1.5.1 From b40d6b825b4a2074e5eb0f6f20f0388abb36dd89 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Thu, 22 Apr 2021 23:37:07 +0200 Subject: npm i @fosscord/server-util --- package-lock.json | 105 ++------------------- package.json | 6 +- src/Server.ts | 2 +- src/middlewares/Authentication.ts | 2 +- src/routes/auth/login.ts | 2 +- src/routes/auth/register.ts | 2 +- src/routes/channels/#channel_id/invites.ts | 2 +- .../channels/#channel_id/messages/bulk-delete.ts | 4 +- src/routes/channels/#channel_id/messages/index.ts | 2 +- src/routes/guilds/#guild_id/bans.ts | 2 +- src/routes/guilds/#guild_id/channels.ts | 2 +- src/routes/guilds/#guild_id/index.ts | 2 +- src/routes/guilds/#guild_id/members.ts | 2 +- src/routes/guilds/index.ts | 2 +- src/routes/invites/index.ts | 2 +- src/routes/users/@me/guilds.ts | 2 +- src/routes/users/@me/index.ts | 2 +- src/schema/Guild.ts | 2 +- src/schema/Message.ts | 2 +- src/test/test.ts | 2 +- src/util/Config.ts | 2 +- src/util/Event.ts | 2 +- src/util/Member.ts | 2 +- src/util/User.ts | 2 +- 24 files changed, 35 insertions(+), 122 deletions(-) (limited to 'package.json') diff --git a/package-lock.json b/package-lock.json index 455aa3c4..53482ae0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,14 +10,13 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "@fosscord/fosscord-server-util": "github:fosscord/fosscord-server-util", + "@fosscord/server-util": "^1.0.2", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", "dotenv": "^8.2.0", "express": "^4.17.1", "express-validator": "^6.9.2", - "fosscord-server-util": "github:fosscord/fosscord-server-util", "i18next": "^19.8.5", "i18next-http-middleware": "^3.1.0", "i18next-node-fs-backend": "^2.1.3", @@ -581,10 +580,10 @@ "node": ">=0.1.95" } }, - "node_modules/@fosscord/fosscord-server-util": { + "node_modules/@fosscord/server-util": { "version": "1.0.2", - "resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#afc284ec9a6309c9bf486739538de1619b62604d", - "license": "ISC", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.2.tgz", + "integrity": "sha512-X4l+lzG4nnNsM63bfjQenPkWOQBiPn40iqoSH+vZGw1dBUs25U8Vd4XpDoi/mkOTPiKXIM2fRkhGvTFyEn9l4g==", "dependencies": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", @@ -598,7 +597,7 @@ "typescript": "^4.1.3" } }, - "node_modules/@fosscord/fosscord-server-util/node_modules/mongodb": { + "node_modules/@fosscord/server-util/node_modules/mongodb": { "version": "3.6.6", "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", @@ -4619,62 +4618,6 @@ "node": ">= 0.6" } }, - "node_modules/fosscord-server-util": { - "version": "1.0.0", - "resolved": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#9c62b43664f9808497cdaf5142ef071c4e01275d", - "license": "ISC", - "dependencies": { - "@types/jsonwebtoken": "^8.5.0", - "@types/mongoose-autopopulate": "^0.10.1", - "@types/mongoose-lean-virtuals": "^0.5.1", - "@types/node": "^14.14.25", - "jsonwebtoken": "^8.5.1", - "missing-native-js-functions": "^1.2.2", - "mongodb": "^3.6.6", - "mongoose": "^5.12.3", - "mongoose-autopopulate": "^0.12.3", - "typescript": "^4.1.3" - } - }, - "node_modules/fosscord-server-util/node_modules/mongodb": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", - "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", - "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.0.2", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" - }, - "peerDependenciesMeta": { - "aws4": { - "optional": true - }, - "bson-ext": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "mongodb-extjson": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -12619,9 +12562,10 @@ "minimist": "^1.2.0" } }, - "@fosscord/fosscord-server-util": { - "version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#afc284ec9a6309c9bf486739538de1619b62604d", - "from": "@fosscord/fosscord-server-util@github:fosscord/fosscord-server-util", + "@fosscord/server-util": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.2.tgz", + "integrity": "sha512-X4l+lzG4nnNsM63bfjQenPkWOQBiPn40iqoSH+vZGw1dBUs25U8Vd4XpDoi/mkOTPiKXIM2fRkhGvTFyEn9l4g==", "requires": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", @@ -15995,37 +15939,6 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, - "fosscord-server-util": { - "version": "git+ssh://git@github.com/fosscord/fosscord-server-util.git#9c62b43664f9808497cdaf5142ef071c4e01275d", - "from": "fosscord-server-util@github:fosscord/fosscord-server-util", - "requires": { - "@types/jsonwebtoken": "^8.5.0", - "@types/mongoose-autopopulate": "^0.10.1", - "@types/mongoose-lean-virtuals": "^0.5.1", - "@types/node": "^14.14.25", - "jsonwebtoken": "^8.5.1", - "missing-native-js-functions": "^1.2.2", - "mongodb": "^3.6.6", - "mongoose": "^5.12.3", - "mongoose-autopopulate": "^0.12.3", - "typescript": "^4.1.3" - }, - "dependencies": { - "mongodb": { - "version": "3.6.6", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.6.6.tgz", - "integrity": "sha512-WlirMiuV1UPbej5JeCMqE93JRfZ/ZzqE7nJTwP85XzjAF4rRSeq2bGCb1cjfoHLOF06+HxADaPGqT0g3SbVT1w==", - "requires": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.0.2", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - } - } - } - }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", diff --git a/package.json b/package.json index 99c0d73e..c2899076 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,8 @@ "test:watch": "jest --watch", "start": "npm run build:util && npm run build && node dist/start", "build": "tsc -b .", - "build:util": "tsc -b ./node_modules/fosscord-server-util/", - "postinstall": "npm i github:fosscord/fosscord-server-util && patch-package" + "build:util": "tsc -b ./node_modules/@fosscord/server-util/", + "postinstall": "npm i github:fosscord/@fosscord/server-util && patch-package" }, "repository": { "type": "git", @@ -30,7 +30,7 @@ }, "homepage": "https://github.com/fosscord/fosscord-api#readme", "dependencies": { - "@fosscord/server-util": "@fosscord/server-util", + "@fosscord/server-util": "^1.0.2", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", diff --git a/src/Server.ts b/src/Server.ts index 03222d4a..c7c52c1f 100644 --- a/src/Server.ts +++ b/src/Server.ts @@ -4,7 +4,7 @@ import { Connection } from "mongoose"; import { Server, ServerOptions } from "lambert-server"; import { Authentication, GlobalRateLimit } from "./middlewares/"; import Config from "./util/Config"; -import { db } from "fosscord-server-util"; +import { db } from "@fosscord/server-util"; import i18next from "i18next"; import i18nextMiddleware, { I18next } from "i18next-http-middleware"; import i18nextBackend from "i18next-node-fs-backend"; diff --git a/src/middlewares/Authentication.ts b/src/middlewares/Authentication.ts index 30445815..0ecc1bc0 100644 --- a/src/middlewares/Authentication.ts +++ b/src/middlewares/Authentication.ts @@ -1,6 +1,6 @@ import { NextFunction, Request, Response } from "express"; import { HTTPError } from "lambert-server"; -import { checkToken } from "fosscord-server-util"; +import { checkToken } from "@fosscord/server-util"; export const NO_AUTHORIZATION_ROUTES = [ "/api/v8/auth/login", diff --git a/src/routes/auth/login.ts b/src/routes/auth/login.ts index cc2b6202..9db2e06a 100644 --- a/src/routes/auth/login.ts +++ b/src/routes/auth/login.ts @@ -2,7 +2,7 @@ import { Request, Response, Router } from "express"; import { check, FieldErrors, Length } from "../../util/instanceOf"; import bcrypt from "bcrypt"; import jwt from "jsonwebtoken"; -import { User, UserModel } from "fosscord-server-util"; +import { User, UserModel } from "@fosscord/server-util"; import Config from "../../util/Config"; import { adjustEmail } from "./register"; diff --git a/src/routes/auth/register.ts b/src/routes/auth/register.ts index 5501203d..1a026670 100644 --- a/src/routes/auth/register.ts +++ b/src/routes/auth/register.ts @@ -1,6 +1,6 @@ import { Request, Response, Router } from "express"; import Config from "../../util/Config"; -import { trimSpecial, User, Snowflake, UserModel } from "fosscord-server-util"; +import { trimSpecial, User, Snowflake, UserModel } from "@fosscord/server-util"; import bcrypt from "bcrypt"; import { check, Email, EMAIL_REGEX, FieldErrors, Length } from "../../util/instanceOf"; import "missing-native-js-functions"; diff --git a/src/routes/channels/#channel_id/invites.ts b/src/routes/channels/#channel_id/invites.ts index da802800..5ec5163a 100644 --- a/src/routes/channels/#channel_id/invites.ts +++ b/src/routes/channels/#channel_id/invites.ts @@ -7,7 +7,7 @@ import { emitEvent } from "../../../util/Event"; import { InviteCreateSchema } from "../../../schema/Invite"; -import { getPermission, ChannelModel, InviteModel, InviteCreateEvent, toObject } from "fosscord-server-util"; +import { getPermission, ChannelModel, InviteModel, InviteCreateEvent, toObject } from "@fosscord/server-util"; const router: Router = Router(); diff --git a/src/routes/channels/#channel_id/messages/bulk-delete.ts b/src/routes/channels/#channel_id/messages/bulk-delete.ts index 89e9d720..13aea8a1 100644 --- a/src/routes/channels/#channel_id/messages/bulk-delete.ts +++ b/src/routes/channels/#channel_id/messages/bulk-delete.ts @@ -1,5 +1,5 @@ import { Router } from "express"; -import { ChannelModel, getPermission, MessageDeleteBulkEvent, MessageModel } from "fosscord-server-util"; +import { ChannelModel, getPermission, MessageDeleteBulkEvent, MessageModel } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import Config from "../../../../util/Config"; import { emitEvent } from "../../../../util/Event"; @@ -13,7 +13,7 @@ export default router; // TODO: should this request fail, if you provide messages older than 14 days/invalid ids? // https://discord.com/developers/docs/resources/channel#bulk-delete-messages router.post("/", check({ messages: [String] }), async (req, res) => { - const channel_id = req.params.channel_id + const channel_id = req.params.channel_id; const channel = await ChannelModel.findOne({ id: channel_id }, { permission_overwrites: true, guild_id: true }).exec(); if (!channel?.guild_id) throw new HTTPError("Can't bulk delete dm channel messages", 400); diff --git a/src/routes/channels/#channel_id/messages/index.ts b/src/routes/channels/#channel_id/messages/index.ts index 4978b98a..91298326 100644 --- a/src/routes/channels/#channel_id/messages/index.ts +++ b/src/routes/channels/#channel_id/messages/index.ts @@ -9,7 +9,7 @@ import { MessageModel, Snowflake, toObject, -} from "fosscord-server-util"; +} from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { MessageCreateSchema } from "../../../../schema/Message"; import { check, instanceOf, Length } from "../../../../util/instanceOf"; diff --git a/src/routes/guilds/#guild_id/bans.ts b/src/routes/guilds/#guild_id/bans.ts index 3de80a32..f0e3804a 100644 --- a/src/routes/guilds/#guild_id/bans.ts +++ b/src/routes/guilds/#guild_id/bans.ts @@ -1,5 +1,5 @@ import { Request, Response, Router } from "express"; -import { BanModel, getPermission, GuildBanAddEvent, GuildBanRemoveEvent, GuildModel, toObject } from "fosscord-server-util"; +import { BanModel, getPermission, GuildBanAddEvent, GuildBanRemoveEvent, GuildModel, toObject } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { getIpAdress } from "../../../middlewares/GlobalRateLimit"; import { BanCreateSchema } from "../../../schema/Ban"; diff --git a/src/routes/guilds/#guild_id/channels.ts b/src/routes/guilds/#guild_id/channels.ts index e0d8f3ac..d42ba481 100644 --- a/src/routes/guilds/#guild_id/channels.ts +++ b/src/routes/guilds/#guild_id/channels.ts @@ -1,5 +1,5 @@ import { Router } from "express"; -import { ChannelCreateEvent, ChannelModel, ChannelType, GuildModel, Snowflake, toObject } from "fosscord-server-util"; +import { ChannelCreateEvent, ChannelModel, ChannelType, GuildModel, Snowflake, toObject } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { ChannelModifySchema } from "../../../schema/Channel"; import { emitEvent } from "../../../util/Event"; diff --git a/src/routes/guilds/#guild_id/index.ts b/src/routes/guilds/#guild_id/index.ts index 7e5f49d3..96861e48 100644 --- a/src/routes/guilds/#guild_id/index.ts +++ b/src/routes/guilds/#guild_id/index.ts @@ -12,7 +12,7 @@ import { RoleModel, toObject, UserModel, -} from "fosscord-server-util"; +} from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { GuildUpdateSchema } from "../../../schema/Guild"; import { emitEvent } from "../../../util/Event"; diff --git a/src/routes/guilds/#guild_id/members.ts b/src/routes/guilds/#guild_id/members.ts index f4e6d4e8..61493485 100644 --- a/src/routes/guilds/#guild_id/members.ts +++ b/src/routes/guilds/#guild_id/members.ts @@ -1,5 +1,5 @@ import { Request, Response, Router } from "express"; -import { GuildModel, MemberModel, toObject } from "fosscord-server-util"; +import { GuildModel, MemberModel, toObject } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { instanceOf, Length } from "../../../util/instanceOf"; import { PublicMemberProjection } from "../../../util/Member"; diff --git a/src/routes/guilds/index.ts b/src/routes/guilds/index.ts index 57d7ddc4..6d9b7c1b 100644 --- a/src/routes/guilds/index.ts +++ b/src/routes/guilds/index.ts @@ -1,5 +1,5 @@ import { Router, Request, Response } from "express"; -import { RoleModel, GuildModel, Snowflake, Guild } from "fosscord-server-util"; +import { RoleModel, GuildModel, Snowflake, Guild } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { check } from "./../../util/instanceOf"; import { GuildCreateSchema } from "../../schema/Guild"; diff --git a/src/routes/invites/index.ts b/src/routes/invites/index.ts index df74e216..7ffceb25 100644 --- a/src/routes/invites/index.ts +++ b/src/routes/invites/index.ts @@ -1,5 +1,5 @@ import { Router, Request, Response } from "express"; -import { getPermission, InviteModel, toObject } from "fosscord-server-util"; +import { getPermission, InviteModel, toObject } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; const router: Router = Router(); diff --git a/src/routes/users/@me/guilds.ts b/src/routes/users/@me/guilds.ts index d0fbaa3e..5042c17c 100644 --- a/src/routes/users/@me/guilds.ts +++ b/src/routes/users/@me/guilds.ts @@ -1,5 +1,5 @@ import { Router, Request, Response } from "express"; -import { GuildModel, MemberModel, UserModel, GuildDeleteEvent, GuildMemberRemoveEvent, toObject } from "fosscord-server-util"; +import { GuildModel, MemberModel, UserModel, GuildDeleteEvent, GuildMemberRemoveEvent, toObject } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import { emitEvent } from "../../../util/Event"; import { getPublicUser } from "../../../util/User"; diff --git a/src/routes/users/@me/index.ts b/src/routes/users/@me/index.ts index 32877dcc..22d4cf3b 100644 --- a/src/routes/users/@me/index.ts +++ b/src/routes/users/@me/index.ts @@ -1,5 +1,5 @@ import { Router, Request, Response } from "express"; -import { UserModel } from "fosscord-server-util"; +import { UserModel } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; const router: Router = Router(); diff --git a/src/schema/Guild.ts b/src/schema/Guild.ts index 6527f35d..2b792db0 100644 --- a/src/schema/Guild.ts +++ b/src/schema/Guild.ts @@ -1,4 +1,4 @@ -import { ChannelSchema, GuildChannel } from "fosscord-server-util"; +import { ChannelSchema, GuildChannel } from "@fosscord/server-util"; import { Length } from "../util/instanceOf"; export const GuildCreateSchema = { diff --git a/src/schema/Message.ts b/src/schema/Message.ts index c0e2315a..9b62edcf 100644 --- a/src/schema/Message.ts +++ b/src/schema/Message.ts @@ -1,4 +1,4 @@ -import { Embed, EmbedImage } from "fosscord-server-util"; +import { Embed, EmbedImage } from "@fosscord/server-util"; import { Length } from "../util/instanceOf"; export const MessageCreateSchema = { diff --git a/src/test/test.ts b/src/test/test.ts index eb0cb8b3..b7d877b3 100644 --- a/src/test/test.ts +++ b/src/test/test.ts @@ -1,4 +1,4 @@ -import { getPermission } from "fosscord-server-util"; +import { getPermission } from "@fosscord/server-util"; async function main() { const t = await getPermission("811642917432066048", "812327318532915201"); diff --git a/src/util/Config.ts b/src/util/Config.ts index 1a038b1d..e500197f 100644 --- a/src/util/Config.ts +++ b/src/util/Config.ts @@ -1,4 +1,4 @@ -import { Config, Snowflake } from "fosscord-server-util"; +import { Config, Snowflake } from "@fosscord/server-util"; import crypto from "crypto"; import fs from "fs"; diff --git a/src/util/Event.ts b/src/util/Event.ts index 8a24e4bb..5ff027e5 100644 --- a/src/util/Event.ts +++ b/src/util/Event.ts @@ -1,4 +1,4 @@ -import { Event, EventModel } from "fosscord-server-util"; +import { Event, EventModel } from "@fosscord/server-util"; export async function emitEvent(payload: Omit) { const obj = { diff --git a/src/util/Member.ts b/src/util/Member.ts index 4d1b8ac5..2be9686e 100644 --- a/src/util/Member.ts +++ b/src/util/Member.ts @@ -7,7 +7,7 @@ import { GuildModel, MemberModel, UserModel, -} from "fosscord-server-util"; +} from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; import Config from "./Config"; import { emitEvent } from "./Event"; diff --git a/src/util/User.ts b/src/util/User.ts index 05213642..0f3768cc 100644 --- a/src/util/User.ts +++ b/src/util/User.ts @@ -1,4 +1,4 @@ -import { toObject, UserModel } from "fosscord-server-util"; +import { toObject, UserModel } from "@fosscord/server-util"; import { HTTPError } from "lambert-server"; export const PublicUserProjection = { -- cgit 1.5.1 From 3e6d1103bcb121390116ed9d2b200806da0f85d9 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 23 Apr 2021 00:15:38 +0200 Subject: :art: clean up permission checks to use .hasThrow() --- package-lock.json | 14 +++++++------- package.json | 2 +- src/routes/channels/#channel_id/followers.ts | 9 +++++++++ src/routes/channels/#channel_id/invites.ts | 10 ++-------- .../channels/#channel_id/messages/:message_id/crosspost.ts | 8 ++++++++ .../channels/#channel_id/messages/:message_id/index.ts | 0 .../channels/#channel_id/messages/:message_id/reactions.ts | 0 src/routes/channels/#channel_id/messages/bulk-delete.ts | 2 +- src/routes/channels/#channel_id/messages/index.ts | 10 +++++----- src/routes/channels/#channel_id/webhooks.ts | 2 ++ src/routes/guilds/#guild_id/bans.ts | 6 ++---- src/routes/guilds/#guild_id/index.ts | 2 +- 12 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 src/routes/channels/#channel_id/messages/:message_id/crosspost.ts create mode 100644 src/routes/channels/#channel_id/messages/:message_id/index.ts create mode 100644 src/routes/channels/#channel_id/messages/:message_id/reactions.ts (limited to 'package.json') diff --git a/package-lock.json b/package-lock.json index 53482ae0..e5321797 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "@fosscord/server-util": "^1.0.2", + "@fosscord/server-util": "^1.0.3", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", @@ -581,9 +581,9 @@ } }, "node_modules/@fosscord/server-util": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.2.tgz", - "integrity": "sha512-X4l+lzG4nnNsM63bfjQenPkWOQBiPn40iqoSH+vZGw1dBUs25U8Vd4XpDoi/mkOTPiKXIM2fRkhGvTFyEn9l4g==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.3.tgz", + "integrity": "sha512-sDZIU1ROu9SwThrwxcIUBw/YY9nB/Uselkgufanx6tdDJ0YTgWzviP7C4l1QweZ/fJdSNBNj1rNipDeY3/r7qA==", "dependencies": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", @@ -12563,9 +12563,9 @@ } }, "@fosscord/server-util": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.2.tgz", - "integrity": "sha512-X4l+lzG4nnNsM63bfjQenPkWOQBiPn40iqoSH+vZGw1dBUs25U8Vd4XpDoi/mkOTPiKXIM2fRkhGvTFyEn9l4g==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.3.tgz", + "integrity": "sha512-sDZIU1ROu9SwThrwxcIUBw/YY9nB/Uselkgufanx6tdDJ0YTgWzviP7C4l1QweZ/fJdSNBNj1rNipDeY3/r7qA==", "requires": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", diff --git a/package.json b/package.json index c2899076..7e4dd3de 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ }, "homepage": "https://github.com/fosscord/fosscord-api#readme", "dependencies": { - "@fosscord/server-util": "^1.0.2", + "@fosscord/server-util": "^1.0.3", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", diff --git a/src/routes/channels/#channel_id/followers.ts b/src/routes/channels/#channel_id/followers.ts index 9a4e81fa..25165356 100644 --- a/src/routes/channels/#channel_id/followers.ts +++ b/src/routes/channels/#channel_id/followers.ts @@ -2,3 +2,12 @@ import { Router } from "express"; const router: Router = Router(); export default router; + +/** + * + * @param {"webhook_channel_id":"754001514330062952"} + * + * Creates a WebHook in the channel and returns the id of it + * + * @returns {"channel_id": "816382962056560690", "webhook_id": "834910735095037962"} + */ diff --git a/src/routes/channels/#channel_id/invites.ts b/src/routes/channels/#channel_id/invites.ts index 5ec5163a..10d6ae3f 100644 --- a/src/routes/channels/#channel_id/invites.ts +++ b/src/routes/channels/#channel_id/invites.ts @@ -22,10 +22,7 @@ router.post("/", check(InviteCreateSchema), async (req: Request, res: Response) const { guild_id } = channel; const permission = await getPermission(user_id, guild_id); - - if (!permission.has("CREATE_INSTANT_INVITE")) { - throw new HTTPError("You aren't authorised to access this endpoint", 401); - } + permission.hasThrow("CREATE_INSTANT_INVITE"); const invite = { code: random(), @@ -55,10 +52,7 @@ router.get("/", async (req: Request, res: Response) => { } const { guild_id } = channel; const permission = await getPermission(user_id, guild_id); - - if (!permission.has("MANAGE_CHANNELS")) { - throw new HTTPError("You aren't authorised to access this endpoint", 401); - } + permission.hasThrow("MANAGE_CHANNELS"); const invites = await InviteModel.find({ guild_id }).exec(); diff --git a/src/routes/channels/#channel_id/messages/:message_id/crosspost.ts b/src/routes/channels/#channel_id/messages/:message_id/crosspost.ts new file mode 100644 index 00000000..17f36396 --- /dev/null +++ b/src/routes/channels/#channel_id/messages/:message_id/crosspost.ts @@ -0,0 +1,8 @@ +import { Router } from "express"; + +const router = Router(); + +// TODO: +// router.post("/", (req, res) => {}); + +export default router; diff --git a/src/routes/channels/#channel_id/messages/:message_id/index.ts b/src/routes/channels/#channel_id/messages/:message_id/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/routes/channels/#channel_id/messages/:message_id/reactions.ts b/src/routes/channels/#channel_id/messages/:message_id/reactions.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/routes/channels/#channel_id/messages/bulk-delete.ts b/src/routes/channels/#channel_id/messages/bulk-delete.ts index 13aea8a1..ff1324d7 100644 --- a/src/routes/channels/#channel_id/messages/bulk-delete.ts +++ b/src/routes/channels/#channel_id/messages/bulk-delete.ts @@ -18,7 +18,7 @@ router.post("/", check({ messages: [String] }), async (req, res) => { if (!channel?.guild_id) throw new HTTPError("Can't bulk delete dm channel messages", 400); const permission = await getPermission(req.user_id, channel?.guild_id, channel_id, { channel }); - if (!permission.has("MANAGE_MESSAGES")) throw new HTTPError("You are missing the MANAGE_MESSAGES permissions"); + permission.hasThrow("MANAGE_MESSAGES"); const { maxBulkDelete } = Config.get().limits.message; diff --git a/src/routes/channels/#channel_id/messages/index.ts b/src/routes/channels/#channel_id/messages/index.ts index 91298326..689f6733 100644 --- a/src/routes/channels/#channel_id/messages/index.ts +++ b/src/routes/channels/#channel_id/messages/index.ts @@ -62,7 +62,8 @@ router.get("/", async (req, res) => { if (channel.guild_id) { const permissions = await getPermission(req.user_id, channel.guild_id, channel_id, { channel }); - if (!permissions.has("VIEW_CHANNEL")) throw new HTTPError("You don't have permission to view this channel", 401); + permissions.hasThrow("VIEW_CHANNEL"); + if (!permissions.has("READ_MESSAGE_HISTORY")) return res.json([]); } else if (channel.recipients) { // group/dm channel @@ -106,11 +107,10 @@ router.post("/", check(MessageCreateSchema), async (req, res) => { if (channel.guild_id) { const permissions = await getPermission(req.user_id, channel.guild_id, channel_id, { channel }); - if (!permissions.has("SEND_MESSAGES")) throw new HTTPError("You don't have the SEND_MESSAGES permission"); - if (body.tts && !permissions.has("SEND_TTS_MESSAGES")) throw new HTTPError("You are missing the SEND_TTS_MESSAGES permission"); + permissions.hasThrow("SEND_MESSAGES"); + if (body.tts) permissions.hasThrow("SEND_TTS_MESSAGES"); if (body.message_reference) { - if (!permissions.has("READ_MESSAGE_HISTORY")) - throw new HTTPError("You are missing the READ_MESSAGE_HISTORY permission to reply"); + permissions.hasThrow("READ_MESSAGE_HISTORY"); if (body.message_reference.guild_id !== channel.guild_id) throw new HTTPError("You can only reference messages from this guild"); } diff --git a/src/routes/channels/#channel_id/webhooks.ts b/src/routes/channels/#channel_id/webhooks.ts index 9a4e81fa..a7a5df95 100644 --- a/src/routes/channels/#channel_id/webhooks.ts +++ b/src/routes/channels/#channel_id/webhooks.ts @@ -1,4 +1,6 @@ import { Router } from "express"; const router: Router = Router(); +router.post("/", (req, res) => {}); + export default router; diff --git a/src/routes/guilds/#guild_id/bans.ts b/src/routes/guilds/#guild_id/bans.ts index f0e3804a..f84950f9 100644 --- a/src/routes/guilds/#guild_id/bans.ts +++ b/src/routes/guilds/#guild_id/bans.ts @@ -35,7 +35,7 @@ router.post("/:user_id", check(BanCreateSchema), async (req: Request, res: Respo const banned_user = await getPublicUser(banned_user_id); const perms = await getPermission(req.user_id, guild_id); - if (!perms.has("BAN_MEMBERS")) throw new HTTPError("You don't have the permission to ban members", 403); + perms.hasThrow("BAN_MEMBERS"); if (req.user_id === banned_user_id) throw new HTTPError("You can't ban yourself", 400); await removeMember(banned_user_id, guild_id); @@ -69,9 +69,7 @@ router.delete("/:user_id", async (req: Request, res: Response) => { if (!guild) throw new HTTPError("Guild not found", 404); const perms = await getPermission(req.user_id, guild_id); - if (!perms.has("BAN_MEMBERS")) { - throw new HTTPError("No permissions", 403); - } + perms.hasThrow("BAN_MEMBERS"); await BanModel.deleteOne({ user_id: banned_user_id, diff --git a/src/routes/guilds/#guild_id/index.ts b/src/routes/guilds/#guild_id/index.ts index 96861e48..2a7d9b38 100644 --- a/src/routes/guilds/#guild_id/index.ts +++ b/src/routes/guilds/#guild_id/index.ts @@ -41,7 +41,7 @@ router.patch("/", check(GuildUpdateSchema), async (req: Request, res: Response) // TODO: guild update check image const perms = await getPermission(req.user_id, guild_id); - if (!perms.has("MANAGE_GUILD")) throw new HTTPError("You do not have the MANAGE_GUILD permission", 401); + perms.hasThrow("MANAGE_GUILD"); const guild = await GuildModel.findOneAndUpdate({ id: guild_id }, body) .populate({ path: "joined_at", match: { id: req.user_id } }) -- cgit 1.5.1 From c6e1511ae4cc87e82456d48a4eca8d06076d352d Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 23 Apr 2021 22:24:52 +0200 Subject: :bug: fix package --- package-lock.json | 15 ++++++++------- package.json | 5 ++--- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'package.json') diff --git a/package-lock.json b/package-lock.json index e5321797..ea952617 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "hasInstallScript": true, "license": "ISC", "dependencies": { - "@fosscord/server-util": "^1.0.3", + "@fosscord/server-util": "^1.0.4", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", @@ -581,9 +581,10 @@ } }, "node_modules/@fosscord/server-util": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.3.tgz", - "integrity": "sha512-sDZIU1ROu9SwThrwxcIUBw/YY9nB/Uselkgufanx6tdDJ0YTgWzviP7C4l1QweZ/fJdSNBNj1rNipDeY3/r7qA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.4.tgz", + "integrity": "sha512-TZPUNyOF/dxmVLDscUPQXmikKS/K209Itv15TGVYGHovCFVIfHVbfXxa+u7EVseQJvX7BL1Kyd45IWDE0Qy1jA==", + "license": "ISC", "dependencies": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", @@ -12563,9 +12564,9 @@ } }, "@fosscord/server-util": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.3.tgz", - "integrity": "sha512-sDZIU1ROu9SwThrwxcIUBw/YY9nB/Uselkgufanx6tdDJ0YTgWzviP7C4l1QweZ/fJdSNBNj1rNipDeY3/r7qA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@fosscord/server-util/-/server-util-1.0.4.tgz", + "integrity": "sha512-TZPUNyOF/dxmVLDscUPQXmikKS/K209Itv15TGVYGHovCFVIfHVbfXxa+u7EVseQJvX7BL1Kyd45IWDE0Qy1jA==", "requires": { "@types/jsonwebtoken": "^8.5.0", "@types/mongoose-autopopulate": "^0.10.1", diff --git a/package.json b/package.json index 7e4dd3de..6003b7a8 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,7 @@ "test:watch": "jest --watch", "start": "npm run build:util && npm run build && node dist/start", "build": "tsc -b .", - "build:util": "tsc -b ./node_modules/@fosscord/server-util/", - "postinstall": "npm i github:fosscord/@fosscord/server-util && patch-package" + "build:util": "tsc -b ./node_modules/@fosscord/server-util/" }, "repository": { "type": "git", @@ -30,7 +29,7 @@ }, "homepage": "https://github.com/fosscord/fosscord-api#readme", "dependencies": { - "@fosscord/server-util": "^1.0.3", + "@fosscord/server-util": "^1.0.4", "@types/jest": "^26.0.22", "bcrypt": "^5.0.0", "body-parser": "^1.19.0", -- cgit 1.5.1 From d8f22c681903485258b691cc4d0abcab7fa81663 Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Fri, 23 Apr 2021 22:39:31 +0200 Subject: :bug: add patch-package postinstall --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'package.json') diff --git a/package.json b/package.json index 6003b7a8..f8509916 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,8 @@ "test:watch": "jest --watch", "start": "npm run build:util && npm run build && node dist/start", "build": "tsc -b .", - "build:util": "tsc -b ./node_modules/@fosscord/server-util/" + "build:util": "tsc -b ./node_modules/@fosscord/server-util/", + "postinstall": "patch-package" }, "repository": { "type": "git", -- cgit 1.5.1