Use Node.js imports for types
This commit is contained in:
parent
b8bee6eb04
commit
56b5a4c00c
46
.dockerignore
Normal file
46
.dockerignore
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
.env
|
||||||
|
|
||||||
|
keys/
|
||||||
|
node_modules/
|
||||||
|
lib/
|
||||||
|
logs/
|
||||||
|
upload/
|
||||||
|
|
||||||
|
.DS_STORE
|
||||||
|
scripts/flow/*/.flowconfig
|
||||||
|
.flowconfig
|
||||||
|
*~
|
||||||
|
*.pyc
|
||||||
|
.grunt
|
||||||
|
_SpecRunner.html
|
||||||
|
__benchmarks__
|
||||||
|
build/
|
||||||
|
build2/
|
||||||
|
remote-repo/
|
||||||
|
coverage/
|
||||||
|
.module-cache
|
||||||
|
fixtures/dom/public/react-dom.js
|
||||||
|
fixtures/dom/public/react.js
|
||||||
|
test/the-files-to-test.generated.js
|
||||||
|
*.log*
|
||||||
|
chrome-user-data
|
||||||
|
*.sublime-project
|
||||||
|
*.sublime-workspace
|
||||||
|
.idea
|
||||||
|
*.iml
|
||||||
|
.vscode
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
|
||||||
|
packages/react-devtools-core/dist
|
||||||
|
packages/react-devtools-extensions/chrome/build
|
||||||
|
packages/react-devtools-extensions/chrome/*.crx
|
||||||
|
packages/react-devtools-extensions/chrome/*.pem
|
||||||
|
packages/react-devtools-extensions/firefox/build
|
||||||
|
packages/react-devtools-extensions/firefox/*.xpi
|
||||||
|
packages/react-devtools-extensions/firefox/*.pem
|
||||||
|
packages/react-devtools-extensions/shared/build
|
||||||
|
packages/react-devtools-extensions/.tempUserDataDir
|
||||||
|
packages/react-devtools-inline/dist
|
||||||
|
packages/react-devtools-shell/dist
|
||||||
|
packages/react-devtools-scheduling-profiler/dist
|
@ -1 +0,0 @@
|
|||||||
../.gitignore
|
|
374
backend/package-lock.json
generated
374
backend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "accord-backend",
|
"name": "@accord/backend",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"description": "",
|
|
||||||
"main": "src/app.ts",
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "npm run start:dev",
|
"start": "npm run start:dev",
|
||||||
"start:dev": "ts-node-dev --transpile-only src/app.ts",
|
"start:dev": "ts-node-dev --transpile-only src/app.ts",
|
||||||
@ -15,7 +13,9 @@
|
|||||||
"keywords": [],
|
"keywords": [],
|
||||||
"author": "github.com/theadamjr",
|
"author": "github.com/theadamjr",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@accord/types": "file:./types",
|
"@accord/backend": "file:../src",
|
||||||
|
"@accord/ion": "github:accord-dot-app/ion",
|
||||||
|
"@accord/types": "file:../types",
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"chai-things": "^0.2.0",
|
"chai-things": "^0.2.0",
|
||||||
"colors": "^1.4.0",
|
"colors": "^1.4.0",
|
||||||
@ -50,7 +50,6 @@
|
|||||||
"winston": "^3.3.3"
|
"winston": "^3.3.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@accord/ion": "github:accord-dot-app/ion",
|
|
||||||
"@types/chai": "^4.2.14",
|
"@types/chai": "^4.2.14",
|
||||||
"@types/chai-as-promised": "^7.1.3",
|
"@types/chai-as-promised": "^7.1.3",
|
||||||
"@types/chai-spies": "^1.0.3",
|
"@types/chai-spies": "^1.0.3",
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import '@accord/types';
|
||||||
import { connect } from 'mongoose';
|
import { connect } from 'mongoose';
|
||||||
import { config } from 'dotenv';
|
import { config } from 'dotenv';
|
||||||
config();
|
config();
|
||||||
@ -11,7 +12,6 @@ connect(process.env.MONGO_URI, {
|
|||||||
useFindAndModify: false,
|
useFindAndModify: false,
|
||||||
useCreateIndex: true,
|
useCreateIndex: true,
|
||||||
serverSelectionTimeoutMS: 0,
|
serverSelectionTimeoutMS: 0,
|
||||||
}, (error) => (error)
|
})
|
||||||
? log.error(error.message, { uri: process.env.MONGO_URI })
|
.catch(error => log.error(error.message, { uri: process.env.MONGO_URI }))
|
||||||
: log.info('Connected to database.', { uri: process.env.MONGO_URI })
|
.then(con => log.info(`Connected to database on PORT ${con.port}.`, { uri: process.env.MONGO_URI }));
|
||||||
)
|
|
@ -21,7 +21,6 @@ export default class Channels extends DBWrapper<string, ChannelDocument> {
|
|||||||
return Channel.create({
|
return Channel.create({
|
||||||
_id: generateSnowflake(),
|
_id: generateSnowflake(),
|
||||||
name: 'chat',
|
name: 'chat',
|
||||||
// TODO: testme
|
|
||||||
position: await Channel.countDocuments({ guildId: options.guildId }),
|
position: await Channel.countDocuments({ guildId: options.guildId }),
|
||||||
type: 'TEXT',
|
type: 'TEXT',
|
||||||
...options as any,
|
...options as any,
|
||||||
|
@ -1,11 +1,3 @@
|
|||||||
import Channels from '../data/channels';
|
|
||||||
import GuildMembers from '../data/guild-members';
|
|
||||||
import Guilds from '../data/guilds';
|
|
||||||
import Invites from '../data/invites';
|
|
||||||
import Messages from '../data/messages';
|
|
||||||
import Pings from '../data/pings';
|
|
||||||
import Roles from '../data/roles';
|
|
||||||
import Users from '../data/users';
|
|
||||||
import { Email } from '../email/email';
|
import { Email } from '../email/email';
|
||||||
import { EmailFunctions } from '../email/email-functions';
|
import { EmailFunctions } from '../email/email-functions';
|
||||||
import { Verification } from '../email/verification';
|
import { Verification } from '../email/verification';
|
||||||
@ -15,33 +7,17 @@ import { WSCooldowns } from '../ws/modules/ws-cooldowns';
|
|||||||
import { WSGuard } from '../ws/modules/ws-guard';
|
import { WSGuard } from '../ws/modules/ws-guard';
|
||||||
import { WSRooms } from '../ws/modules/ws-rooms';
|
import { WSRooms } from '../ws/modules/ws-rooms';
|
||||||
import { WebSocket } from '../ws/websocket';
|
import { WebSocket } from '../ws/websocket';
|
||||||
|
import Channels from '../data/channels';
|
||||||
|
import GuildMembers from '../data/guild-members';
|
||||||
|
import Guilds from '../data/guilds';
|
||||||
|
import Invites from '../data/invites';
|
||||||
|
import Messages from '../data/messages';
|
||||||
|
import Pings from '../data/pings';
|
||||||
|
import Roles from '../data/roles';
|
||||||
|
import Users from '../data/users';
|
||||||
import ChannelJoin from '../ws/ws-events/channel-join';
|
import ChannelJoin from '../ws/ws-events/channel-join';
|
||||||
import ChannelLeave from '../ws/ws-events/channel-leave';
|
import ChannelLeave from '../ws/ws-events/channel-leave';
|
||||||
|
import Deps from '@accord/types/deps';
|
||||||
export interface Deps {
|
|
||||||
channels: Channels;
|
|
||||||
/** @deprecated */
|
|
||||||
channelJoin: ChannelJoin;
|
|
||||||
/** @deprecated */
|
|
||||||
channelLeave: ChannelLeave;
|
|
||||||
email: Email;
|
|
||||||
emailFunctions: EmailFunctions;
|
|
||||||
guilds: Guilds;
|
|
||||||
guildMembers: GuildMembers;
|
|
||||||
invites: Invites;
|
|
||||||
messages: Messages;
|
|
||||||
/** @deprecated */
|
|
||||||
pings: Pings;
|
|
||||||
rest: REST;
|
|
||||||
roles: Roles;
|
|
||||||
users: Users;
|
|
||||||
wsCooldowns: WSCooldowns;
|
|
||||||
wsGuard: WSGuard;
|
|
||||||
wsRooms: WSRooms;
|
|
||||||
webSocket: WebSocket;
|
|
||||||
verification: Verification;
|
|
||||||
voiceService: VoiceService;
|
|
||||||
}
|
|
||||||
|
|
||||||
const deps: Deps = {
|
const deps: Deps = {
|
||||||
channels: new Channels(),
|
channels: new Channels(),
|
||||||
|
@ -19,7 +19,9 @@ const readFileAsync = promisify(readFile);
|
|||||||
|
|
||||||
function setupMulter(app: Application) {
|
function setupMulter(app: Application) {
|
||||||
const uploadDir = resolve('./assets/upload');
|
const uploadDir = resolve('./assets/upload');
|
||||||
execSync(`mkdir -p ${uploadDir}`);
|
try {
|
||||||
|
execSync(`mkdir -p ${uploadDir} 2>> /dev/null`);
|
||||||
|
} catch {}
|
||||||
|
|
||||||
// uses storage rather than memory - 2 file operations per file upload
|
// uses storage rather than memory - 2 file operations per file upload
|
||||||
const storage = multer.diskStorage({
|
const storage = multer.diskStorage({
|
||||||
|
@ -22,10 +22,11 @@ export default class implements WSEvent<'CHANNEL_DELETE'> {
|
|||||||
await channel.deleteOne();
|
await channel.deleteOne();
|
||||||
await this.lowerHigherChannels(channel);
|
await this.lowerHigherChannels(channel);
|
||||||
|
|
||||||
/** @deprecated */
|
return [{
|
||||||
ws
|
emit: this.on,
|
||||||
.to(channel.guildId)
|
to: channel.guildId,
|
||||||
.emit(this.on, { channelId, guildId: channel.guildId });
|
send: { channelId, guildId: channel.guildId },
|
||||||
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
private async lowerHigherChannels(channel: ChannelDocument) {
|
private async lowerHigherChannels(channel: ChannelDocument) {
|
||||||
|
@ -23,4 +23,6 @@ use(should);
|
|||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
import('../../src/app');
|
||||||
|
|
||||||
import('./ws/channel-delete.test');
|
import('./ws/channel-delete.test');
|
@ -1,17 +1,45 @@
|
|||||||
|
import '@accord/types';
|
||||||
|
import { Channel } from '../../../src/data/models/channel';
|
||||||
|
import { Guild } from '../../../src/data/models/guild';
|
||||||
import ChannelDelete from '../../../src/ws/ws-events/channel-delete';
|
import ChannelDelete from '../../../src/ws/ws-events/channel-delete';
|
||||||
import { given, test } from '@accord/ion';
|
import { given, test } from '@accord/ion';
|
||||||
import { WebSocket } from '../../../src/ws/websocket';
|
import { WebSocket } from '../../../src/ws/websocket';
|
||||||
|
import { User } from '../../../src/data/models/user';
|
||||||
|
|
||||||
test(channelDelete, () => {
|
test(channelDelete, () => {
|
||||||
|
let channel: Entity.Channel;
|
||||||
|
let guild: Entity.Guild;
|
||||||
|
let ownerUser: Entity.User;
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
ownerUser = await deps.users.create({
|
||||||
|
email: 'doesnotmatter@example.com',
|
||||||
|
username: 'Test User',
|
||||||
|
password: 'doesnotmatter',
|
||||||
|
});
|
||||||
|
guild = await deps.guilds.create('Test Guild', '');
|
||||||
|
channel = await deps.channels.create({ guildId: guild.id });
|
||||||
|
});
|
||||||
|
after(async () => {
|
||||||
|
await Channel.deleteMany();
|
||||||
|
await Guild.deleteMany();
|
||||||
|
await User.deleteMany();
|
||||||
|
});
|
||||||
|
|
||||||
|
given({})
|
||||||
|
.before(async () => ownerUser = await User.create({}));
|
||||||
|
|
||||||
given({}).rejectWith('Channel not found');
|
given({}).rejectWith('Channel not found');
|
||||||
given({}).rejectWith('Channel not found');
|
// given({ channelId: generateSnowflake() }).rejectWith('Channel not found');
|
||||||
|
given({ channelId: channel.id }).resolveWith([{
|
||||||
|
emit: 'CHANNEL_DELETE',
|
||||||
|
to: channel.id,
|
||||||
|
send: { channelId: channel.id },
|
||||||
|
}]);
|
||||||
});
|
});
|
||||||
|
|
||||||
async function channelDelete(args: WS.To['CHANNEL_DELETE']) {
|
async function channelDelete(args: WS.To['CHANNEL_DELETE']) {
|
||||||
await import('../../../src/modules/deps');
|
|
||||||
console.error = () => {};
|
|
||||||
global['log'] = console;
|
|
||||||
|
|
||||||
const event = new ChannelDelete();
|
const event = new ChannelDelete();
|
||||||
return event.invoke(new WebSocket(), {} as any, args);
|
return event.invoke(new WebSocket(), {} as any, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
sudo docker pull mongo:4.4-bionic
|
|
||||||
sudo docker tag mongo:4.4-bionic accord_database
|
|
||||||
|
|
||||||
(cd types; sudo docker build -t accord_types:latest .)
|
|
||||||
(cd backend; sudo docker build -t accord_backend:latest .)
|
|
||||||
(cd frontend; sudo docker build -t accord_frontend:latest .)
|
|
||||||
|
|
||||||
sudo docker volume create accord 2>> /dev/null
|
|
||||||
sudo docker network create accord 2>> /dev/null
|
|
@ -1,4 +0,0 @@
|
|||||||
yes | docker container prune
|
|
||||||
yes | docker image prune
|
|
||||||
yes | docker network prune
|
|
||||||
yes | docker volume prune
|
|
@ -1,5 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
docker container rm -f $(docker ps -aq) 2> /dev/null
|
|
||||||
docker image rm -f $(docker image ls -q) 2> /dev/null
|
|
||||||
docker volume rm -f $(docker volume ls -q) 2> /dev/null
|
|
||||||
docker network rm $(docker network ls -q) 2> /dev/null
|
|
@ -1,8 +0,0 @@
|
|||||||
docker container rm -f accord_database
|
|
||||||
docker container rm -f accord_backend
|
|
||||||
docker container rm -f accord_frontend
|
|
||||||
|
|
||||||
docker image rm -f accord_database
|
|
||||||
docker image rm -f accord_types
|
|
||||||
docker image rm -f accord_backend
|
|
||||||
docker image rm -f accord_frontend
|
|
@ -1,27 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
docker container rm -f accord_database
|
|
||||||
docker container rm -f accord_backend
|
|
||||||
docker container rm -f accord_frontend
|
|
||||||
|
|
||||||
sudo docker run \
|
|
||||||
--name accord_database \
|
|
||||||
--hostname accord_database \
|
|
||||||
-p 27018:27017 \
|
|
||||||
-v accord:/data/db \
|
|
||||||
-d accord_database:latest;
|
|
||||||
|
|
||||||
sudo docker run \
|
|
||||||
--name accord_backend \
|
|
||||||
--hostname accord_backend \
|
|
||||||
--env-file ./backend/.env \
|
|
||||||
-p 3000:3000 \
|
|
||||||
-u root \
|
|
||||||
-d accord_backend:latest;
|
|
||||||
|
|
||||||
sudo docker run \
|
|
||||||
--name accord_frontend \
|
|
||||||
--hostname accord_frontend \
|
|
||||||
--env-file ./frontend/env/.env.dev \
|
|
||||||
-p 4200:4200 \
|
|
||||||
-u root \
|
|
||||||
-d accord_frontend:latest;
|
|
@ -1 +0,0 @@
|
|||||||
../.gitignore
|
|
45
types/deps.ts
Normal file
45
types/deps.ts
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
import { Email } from '@accord/backend/src/email/email';
|
||||||
|
import { EmailFunctions } from '@accord/backend/src/email/email-functions';
|
||||||
|
import { Verification } from '@accord/backend/src/email/verification';
|
||||||
|
import { REST } from '@accord/backend/src/rest/server';
|
||||||
|
import { VoiceService } from '@accord/backend/src/voice/voice-service';
|
||||||
|
import { WSCooldowns } from '@accord/backend/src/ws/modules/ws-cooldowns';
|
||||||
|
import { WSGuard } from '@accord/backend/src/ws/modules/ws-guard';
|
||||||
|
import { WSRooms } from '@accord/backend/src/ws/modules/ws-rooms';
|
||||||
|
import { WebSocket } from '@accord/backend/src/ws/websocket';
|
||||||
|
import Channels from '@accord/backend/src/data/channels';
|
||||||
|
import GuildMembers from '@accord/backend/src/data/guild-members';
|
||||||
|
import Guilds from '@accord/backend/src/data/guilds';
|
||||||
|
import Invites from '@accord/backend/src/data/invites';
|
||||||
|
import Messages from '@accord/backend/src/data/messages';
|
||||||
|
import Pings from '@accord/backend/src/data/pings';
|
||||||
|
import Roles from '@accord/backend/src/data/roles';
|
||||||
|
import Users from '@accord/backend/src/data/users';
|
||||||
|
import ChannelJoin from '@accord/backend/src/ws/ws-events/channel-join';
|
||||||
|
import ChannelLeave from '@accord/backend/src/ws/ws-events/channel-leave';
|
||||||
|
|
||||||
|
declare interface Deps {
|
||||||
|
channels: Channels;
|
||||||
|
/** @deprecated */
|
||||||
|
channelJoin: ChannelJoin;
|
||||||
|
/** @deprecated */
|
||||||
|
channelLeave: ChannelLeave;
|
||||||
|
email: Email;
|
||||||
|
emailFunctions: EmailFunctions;
|
||||||
|
guilds: Guilds;
|
||||||
|
guildMembers: GuildMembers;
|
||||||
|
invites: Invites;
|
||||||
|
messages: Messages;
|
||||||
|
/** @deprecated */
|
||||||
|
pings: Pings;
|
||||||
|
rest: REST;
|
||||||
|
roles: Roles;
|
||||||
|
users: Users;
|
||||||
|
wsCooldowns: WSCooldowns;
|
||||||
|
wsGuard: WSGuard;
|
||||||
|
wsRooms: WSRooms;
|
||||||
|
webSocket: WebSocket;
|
||||||
|
verification: Verification;
|
||||||
|
voiceService: VoiceService;
|
||||||
|
}
|
||||||
|
export default Deps;
|
2
types/global.d.ts
vendored
2
types/global.d.ts
vendored
@ -1,4 +1,4 @@
|
|||||||
export declare global {
|
export declare global {
|
||||||
const log: import('winston').Logger;
|
const log: import('winston').Logger;
|
||||||
const deps: import('../modules/deps').Deps;
|
const deps: import('./deps').default;
|
||||||
}
|
}
|
9
types/main.ts
Normal file
9
types/main.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import './auth';
|
||||||
|
import './deps';
|
||||||
|
import './dotenv';
|
||||||
|
import './entity';
|
||||||
|
import './global';
|
||||||
|
import './rest';
|
||||||
|
import './store';
|
||||||
|
import './util';
|
||||||
|
import './ws';
|
168
types/package-lock.json
generated
Normal file
168
types/package-lock.json
generated
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"name": "@accord/types",
|
||||||
|
"lockfileVersion": 2,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "@accord/types",
|
||||||
|
"dependencies": {
|
||||||
|
"@accord/backend": "file:../backend"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"../backend": {
|
||||||
|
"name": "@accord/backend",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"@accord/backend": "file:../src",
|
||||||
|
"@accord/ion": "github:accord-dot-app/ion",
|
||||||
|
"@accord/types": "file:../types",
|
||||||
|
"body-parser": "^1.19.0",
|
||||||
|
"chai-things": "^0.2.0",
|
||||||
|
"colors": "^1.4.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"crypto-js": "^4.1.1",
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"express-async-errors": "^3.1.1",
|
||||||
|
"express-rate-limit": "^5.2.6",
|
||||||
|
"faker": "^5.4.0",
|
||||||
|
"got": "^11.7.0",
|
||||||
|
"helmet": "^4.4.1",
|
||||||
|
"imghash": "^0.0.9",
|
||||||
|
"jsonwebtoken": "^8.5.1",
|
||||||
|
"mongodb-memory-server": "^8.0.2",
|
||||||
|
"mongoose": "^5.10.7",
|
||||||
|
"mongoose-unique-validator": "^2.0.3",
|
||||||
|
"multer": "^1.4.3",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
|
"nodemailer": "^6.5.0",
|
||||||
|
"nodemailer-pug-engine": "^2.0.0",
|
||||||
|
"passport": "^0.4.1",
|
||||||
|
"passport-local": "^1.0.0",
|
||||||
|
"passport-local-mongoose": "^6.0.1",
|
||||||
|
"rate-limit-mongo": "^2.3.1",
|
||||||
|
"re2": "^1.16.0",
|
||||||
|
"socket.io": "^4.0.0",
|
||||||
|
"socket.io-client": "^4.0.0",
|
||||||
|
"striptags": "^3.2.0",
|
||||||
|
"ts-node": "^9.1.1",
|
||||||
|
"typescript": "^4.2.3",
|
||||||
|
"winston": "^3.3.3"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/chai": "^4.2.14",
|
||||||
|
"@types/chai-as-promised": "^7.1.3",
|
||||||
|
"@types/chai-spies": "^1.0.3",
|
||||||
|
"@types/chai-things": "^0.0.34",
|
||||||
|
"@types/colors": "^1.2.1",
|
||||||
|
"@types/cors": "^2.8.7",
|
||||||
|
"@types/crypto-js": "^4.0.2",
|
||||||
|
"@types/deasync": "^0.1.2",
|
||||||
|
"@types/dotenv": "^8.2.0",
|
||||||
|
"@types/express": "^4.17.11",
|
||||||
|
"@types/express-rate-limit": "^5.1.1",
|
||||||
|
"@types/faker": "^5.1.6",
|
||||||
|
"@types/jest": "^27.0.1",
|
||||||
|
"@types/jsonwebtoken": "^8.5.0",
|
||||||
|
"@types/mocha": "^8.2.3",
|
||||||
|
"@types/mongoose": "^5.7.36",
|
||||||
|
"@types/multer": "^1.4.7",
|
||||||
|
"@types/node": "^14.11.2",
|
||||||
|
"@types/node-fetch": "^2.5.7",
|
||||||
|
"@types/nodemailer": "^6.4.1",
|
||||||
|
"@types/passport": "^1.0.4",
|
||||||
|
"@types/passport-local": "^1.0.33",
|
||||||
|
"@types/socket.io": "^2.1.13",
|
||||||
|
"@types/socket.io-client": "^3.0.0",
|
||||||
|
"@types/supertest": "^2.0.10",
|
||||||
|
"chai": "^4.2.0",
|
||||||
|
"chai-as-promised": "^7.1.1",
|
||||||
|
"chai-spies": "^1.0.0",
|
||||||
|
"mocha": "^8.2.1",
|
||||||
|
"nodemon": "^2.0.14",
|
||||||
|
"supertest": "^6.1.3",
|
||||||
|
"ts-mocha": "^8.0.0",
|
||||||
|
"ts-node-dev": "^1.1.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@accord/backend": {
|
||||||
|
"resolved": "../backend",
|
||||||
|
"link": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@accord/backend": {
|
||||||
|
"version": "file:../backend",
|
||||||
|
"requires": {
|
||||||
|
"@accord/backend": "file:../src",
|
||||||
|
"@accord/ion": "github:accord-dot-app/ion",
|
||||||
|
"@accord/types": "file:../types",
|
||||||
|
"@types/chai": "^4.2.14",
|
||||||
|
"@types/chai-as-promised": "^7.1.3",
|
||||||
|
"@types/chai-spies": "^1.0.3",
|
||||||
|
"@types/chai-things": "^0.0.34",
|
||||||
|
"@types/colors": "^1.2.1",
|
||||||
|
"@types/cors": "^2.8.7",
|
||||||
|
"@types/crypto-js": "^4.0.2",
|
||||||
|
"@types/deasync": "^0.1.2",
|
||||||
|
"@types/dotenv": "^8.2.0",
|
||||||
|
"@types/express": "^4.17.11",
|
||||||
|
"@types/express-rate-limit": "^5.1.1",
|
||||||
|
"@types/faker": "^5.1.6",
|
||||||
|
"@types/jest": "^27.0.1",
|
||||||
|
"@types/jsonwebtoken": "^8.5.0",
|
||||||
|
"@types/mocha": "^8.2.3",
|
||||||
|
"@types/mongoose": "^5.7.36",
|
||||||
|
"@types/multer": "^1.4.7",
|
||||||
|
"@types/node": "^14.11.2",
|
||||||
|
"@types/node-fetch": "^2.5.7",
|
||||||
|
"@types/nodemailer": "^6.4.1",
|
||||||
|
"@types/passport": "^1.0.4",
|
||||||
|
"@types/passport-local": "^1.0.33",
|
||||||
|
"@types/socket.io": "^2.1.13",
|
||||||
|
"@types/socket.io-client": "^3.0.0",
|
||||||
|
"@types/supertest": "^2.0.10",
|
||||||
|
"body-parser": "^1.19.0",
|
||||||
|
"chai": "^4.2.0",
|
||||||
|
"chai-as-promised": "^7.1.1",
|
||||||
|
"chai-spies": "^1.0.0",
|
||||||
|
"chai-things": "^0.2.0",
|
||||||
|
"colors": "^1.4.0",
|
||||||
|
"cors": "^2.8.5",
|
||||||
|
"crypto-js": "^4.1.1",
|
||||||
|
"dotenv": "^8.2.0",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"express-async-errors": "^3.1.1",
|
||||||
|
"express-rate-limit": "^5.2.6",
|
||||||
|
"faker": "^5.4.0",
|
||||||
|
"got": "^11.7.0",
|
||||||
|
"helmet": "^4.4.1",
|
||||||
|
"imghash": "^0.0.9",
|
||||||
|
"jsonwebtoken": "^8.5.1",
|
||||||
|
"mocha": "^8.2.1",
|
||||||
|
"mongodb-memory-server": "^8.0.2",
|
||||||
|
"mongoose": "^5.10.7",
|
||||||
|
"mongoose-unique-validator": "^2.0.3",
|
||||||
|
"multer": "^1.4.3",
|
||||||
|
"node-fetch": "^2.6.1",
|
||||||
|
"nodemailer": "^6.5.0",
|
||||||
|
"nodemailer-pug-engine": "^2.0.0",
|
||||||
|
"nodemon": "^2.0.14",
|
||||||
|
"passport": "^0.4.1",
|
||||||
|
"passport-local": "^1.0.0",
|
||||||
|
"passport-local-mongoose": "^6.0.1",
|
||||||
|
"rate-limit-mongo": "^2.3.1",
|
||||||
|
"re2": "^1.16.0",
|
||||||
|
"socket.io": "^4.0.0",
|
||||||
|
"socket.io-client": "^4.0.0",
|
||||||
|
"striptags": "^3.2.0",
|
||||||
|
"supertest": "^6.1.3",
|
||||||
|
"ts-mocha": "^8.0.0",
|
||||||
|
"ts-node": "^9.1.1",
|
||||||
|
"ts-node-dev": "^1.1.8",
|
||||||
|
"typescript": "^4.2.3",
|
||||||
|
"winston": "^3.3.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
types/package.json
Normal file
7
types/package.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"name":"@accord/types",
|
||||||
|
"main":"main.ts",
|
||||||
|
"dependencies": {
|
||||||
|
"@accord/backend": "file:../backend"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user