Testing: Mocha does not wait for tests

This commit is contained in:
ADAMJR 2021-12-19 00:40:41 +00:00
parent 120aed8e47
commit 7ef8a080f8
33 changed files with 585 additions and 110 deletions

View File

@ -8,7 +8,7 @@
"start:prod": "ts-node-transpile-only src/app.ts",
"test": "npm run test:int test:unit",
"test:int": "ts-mocha --exit test/int/test.ts",
"test:unit": "ts-mocha --exit test/**/**.test.ts"
"test:unit": "ts-mocha --exit test/unit/**/**.test.ts"
},
"keywords": [],
"author": "github.com/theadamjr",

View File

@ -13,5 +13,5 @@ connect(process.env.MONGO_URI, {
useCreateIndex: true,
serverSelectionTimeoutMS: 0,
})
.catch(error => log.error(error.message, { uri: process.env.MONGO_URI }))
.then(con => log.info(`Connected to database on PORT ${con.port}.`, { uri: process.env.MONGO_URI }));
.catch(error => log.error(error.message ?? 'Unable to connect to db', { uri: process.env.MONGO_URI }))
.then(con => log.info(`Connected to database on PORT ${con['port']}.`, { uri: process.env.MONGO_URI }));

View File

@ -1,7 +1,7 @@
import { Document, model, Schema } from 'mongoose';
import patterns from '@accord/types/patterns';
import { PermissionTypes } from '@accord/types/permission-types';
import { createdAtToDate, useId } from '../../utils/utils';
import { PermissionTypes } from '@accord/types/permission.types';
import { createdAtToDate, useId } from '../../utils/utils';
import validators from '../../utils/validators';
import { generateSnowflake } from '../snowflake-entity';

View File

@ -101,5 +101,18 @@ export const User = model<UserDocument>('user', new Schema({
},
}, { toJSON: { getters: true } })
.plugin(uniqueValidator)
.plugin(passportLocalMongoose, { usernameField: 'email' })
.plugin(passportLocalMongoose, {
usernameField: 'email',
message: 'UserExistsError',
errorMessages: {
MissingPasswordError: 'No password was given',
AttemptTooSoonError: 'Account is currently locked. Try again later',
TooManyAttemptsError: 'Account locked due to too many failed login attempts',
NoSaltValueStoredError: 'Authentication not possible. No salt value stored',
IncorrectPasswordError: 'Password or username are incorrect',
IncorrectUsernameError: 'Password or username are incorrect',
MissingUsernameError: 'No username was given',
UserExistsError: 'Email is in use'
}
})
.method('toClient', useId));

View File

@ -1,5 +1,5 @@
import { UpdateQuery } from 'mongoose';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import DBWrapper from './db-wrapper';
import { hasPermission, Role, RoleDocument } from './models/role';
import { generateSnowflake } from './snowflake-entity';

View File

@ -91,7 +91,7 @@ export default class Users extends DBWrapper<string, UserDocument> {
return await Guild.find({ _id: { $in: user.guildIds } });
}
public async create({ email, username, password }: Auth.Credentials, bot = false): Promise<UserDocument> {
public async create({ email, username, password }: Auth.Credentials, bot = false): Promise<SelfUserDocument> {
return (User as any).register({
_id: generateSnowflake(),
username,

View File

@ -1,6 +1,6 @@
import { NextFunction, Request, Response } from 'express';
import { GuildDocument } from '../../data/models/guild';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import { APIError } from '../modules/api-error';
export default (permission: PermissionTypes.Permission) =>

View File

@ -1,5 +1,5 @@
import { Router } from 'express';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import { Guild } from '../../data/models/guild';
import updateUser from '../middleware/update-user';
import validateUser from '../middleware/validate-user';

View File

@ -1,6 +1,6 @@
import { Guild } from '../../data/models/guild';
import { Socket } from 'socket.io';
import { PermissionTypes, getPermString } from '@accord/types/permission-types';
import { PermissionTypes, getPermString } from '@accord/types/permission.types';
export class WSGuard {
public userId(client: Socket) {

View File

@ -24,7 +24,7 @@ export default class implements WSEvent<'CHANNEL_DELETE'> {
return [{
emit: this.on,
to: channel.guildId,
to: [channel.guildId],
send: { channelId, guildId: channel.guildId },
}];
}

View File

@ -5,7 +5,7 @@ import { Guild, GuildDocument } from '../../data/models/guild';
import { GuildMember } from '../../data/models/guild-member';
import { SelfUserDocument, User } from '../../data/models/user';
import Users from '../../data/users';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import { WSGuard } from '../modules/ws-guard';

View File

@ -1,5 +1,5 @@
import { Socket } from 'socket.io';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import { Guild } from '../../data/models/guild';
import { Role } from '../../data/models/role';
import { generateSnowflake } from '../../data/snowflake-entity';

View File

@ -1,5 +1,5 @@
import { Socket } from 'socket.io';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import { Role } from '../../data/models/role';
import { WSGuard } from '../modules/ws-guard';

View File

@ -1,6 +1,6 @@
import { Socket } from 'socket.io';
import Invites from '../../data/invites';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
import { WSGuard } from '../modules/ws-guard';

View File

@ -1,7 +1,6 @@
import { WSEvent } from './ws-event';
import { Socket } from 'socket.io';
import { WebSocket } from '../websocket';
import generateInvite from '../../data/utils/generate-invite';
export default class implements WSEvent<'USER_DELETE'> {

View File

@ -1,4 +1,6 @@
import { config } from 'dotenv';
config({ path: 'test/.env' });
import { should, use } from 'chai';
import chaiAsPromised from 'chai-as-promised';
import chaiSpies from 'chai-spies';
@ -6,8 +8,6 @@ import chaiThings from 'chai-things';
import mongoose from 'mongoose';
import { MongoMemoryServer } from 'mongodb-memory-server';
config({ path: 'test/.env' });
use(chaiAsPromised);
use(chaiSpies);
use(chaiThings);
@ -21,8 +21,8 @@ use(should);
useFindAndModify: false,
useCreateIndex: true,
});
console.log('Connected to db');
})();
import('../../src/app');
import('./ws/channel-delete.test');
import('./ws/channel-delete.test');

View File

@ -1,41 +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 { given, test } from '@accord/ion';
import { WebSocket } from '../../../src/ws/websocket';
import { User } from '../../../src/data/models/user';
import { Channel } from '@accord/backend/data/models/channel';
import { Guild } from '@accord/backend/data/models/guild';
import ChannelDelete from '@accord/backend/ws/ws-events/channel-delete';
import { WebSocket } from '@accord/backend/ws/websocket';
import { SelfUserDocument, User } from '@accord/backend/data/models/user';
test(channelDelete, () => {
let channel: Entity.Channel;
let guild: Entity.Guild;
let ownerUser: Entity.User;
let ownerUser: SelfUserDocument;
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();
ownerUser = await deps.users.create({
email: 'user1@example.com',
username: 'Test User',
password: 'doesnotmatter',
});
guild = await deps.guilds.create('Test Guild', ownerUser);
channel = await deps.channels.create({ guildId: guild.id });
});
given({})
.before(async () => ownerUser = await User.create({}));
given({}).rejectWith('Channel not found');
// given({})
// // .before(async () => ownerUser = await deps.users.create({
// // email: 'user2@example.com',
// // username: 'Test User 2',
// // password: 'doesnotmatter',
// // }))
// .rejectWith('Missing Permissions');
// given({ channelId: generateSnowflake() }).rejectWith('Channel not found');
given({ channelId: channel.id }).resolveWith([{
emit: 'CHANNEL_DELETE',
to: channel.id,
send: { channelId: channel.id },
}]);
// given({ channelId: channel.id }).resolveWith([{
// emit: 'CHANNEL_DELETE',
// to: channel.id,
// send: { channelId: channel.id },
// }]);
});
async function channelDelete(args: WS.To['CHANNEL_DELETE']) {

View File

@ -2,7 +2,7 @@ import { generateSnowflake } from '../../../src/data/snowflake-entity';
import { test, given } from '@accord/ion';
import { longString, mongooseError } from '../../test-utils';
import { Role } from '../../../src/data/models/role';
import { PermissionTypes } from '@accord/types/permission-types';
import { PermissionTypes } from '@accord/types/permission.types';
test(createRole, () => {
given().expect(true);

View File

@ -1,45 +0,0 @@
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;

45
types/deps.types.ts Normal file
View File

@ -0,0 +1,45 @@
import { Email } from '@accord/backend/email/email';
import { EmailFunctions } from '@accord/backend/email/email-functions';
import { Verification } from '@accord/backend/email/verification';
import { REST } from '@accord/backend/rest/server';
import { VoiceService } from '@accord/backend/voice/voice-service';
import { WSCooldowns } from '@accord/backend/ws/modules/ws-cooldowns';
import { WSGuard } from '@accord/backend/ws/modules/ws-guard';
import { WSRooms } from '@accord/backend/ws/modules/ws-rooms';
import { WebSocket } from '@accord/backend/ws/websocket';
import Channels from '@accord/backend/data/channels';
import GuildMembers from '@accord/backend/data/guild-members';
import Guilds from '@accord/backend/data/guilds';
import Invites from '@accord/backend/data/invites';
import Messages from '@accord/backend/data/messages';
import Pings from '@accord/backend/data/pings';
import Roles from '@accord/backend/data/roles';
import Users from '@accord/backend/data/users';
import ChannelJoin from '@accord/backend/ws/ws-events/channel-join';
import ChannelLeave from '@accord/backend/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;

4
types/global.d.ts vendored
View File

@ -1,4 +0,0 @@
export declare global {
const log: import('winston').Logger;
const deps: import('./deps').default;
}

5
types/global.types.ts Normal file
View File

@ -0,0 +1,5 @@
declare global {
const log: import('winston').Logger;
const deps: import('./deps.types').default;
}
export {}

View File

@ -1,9 +1,9 @@
import './auth';
import './deps';
import './dotenv';
import './entity';
import './global';
import './rest';
import './store';
import './util';
import './ws';
import './auth.types';
import './deps.types';
import './dotenv.types';
import './entity.types';
import './global.types';
import './rest.types';
import './store.types';
import './util.types';
import './ws.types';

459
types/package-lock.json generated
View File

@ -6,7 +6,8 @@
"": {
"name": "@accord/types",
"dependencies": {
"@accord/backend": "file:../backend/src"
"@accord/backend": "file:../backend/src",
"@types/winston": "^2.4.4"
}
},
"../backend": {
@ -89,11 +90,467 @@
"node_modules/@accord/backend": {
"resolved": "../backend/src",
"link": true
},
"node_modules/@dabh/diagnostics": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
"integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==",
"dependencies": {
"colorspace": "1.1.x",
"enabled": "2.0.x",
"kuler": "^2.0.0"
}
},
"node_modules/@types/winston": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.4.4.tgz",
"integrity": "sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==",
"deprecated": "This is a stub types definition. winston provides its own type definitions, so you do not need this installed.",
"dependencies": {
"winston": "*"
}
},
"node_modules/async": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz",
"integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g=="
},
"node_modules/color": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
"integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"dependencies": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"node_modules/color-string": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz",
"integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==",
"dependencies": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"node_modules/colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"engines": {
"node": ">=0.1.90"
}
},
"node_modules/colorspace": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
"integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
"dependencies": {
"color": "^3.1.3",
"text-hex": "1.0.x"
}
},
"node_modules/enabled": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
"integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"node_modules/fecha": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz",
"integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
},
"node_modules/fn.name": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
"integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"engines": {
"node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/kuler": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
"integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
},
"node_modules/logform": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz",
"integrity": "sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==",
"dependencies": {
"colors": "^1.2.1",
"fecha": "^4.2.0",
"ms": "^2.1.1",
"safe-stable-stringify": "^1.1.0",
"triple-beam": "^1.3.0"
}
},
"node_modules/ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/one-time": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
"integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
"dependencies": {
"fn.name": "1.x.x"
}
},
"node_modules/readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/feross"
},
{
"type": "patreon",
"url": "https://www.patreon.com/feross"
},
{
"type": "consulting",
"url": "https://feross.org/support"
}
]
},
"node_modules/safe-stable-stringify": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz",
"integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw=="
},
"node_modules/simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"dependencies": {
"is-arrayish": "^0.3.1"
}
},
"node_modules/stack-trace": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
"engines": {
"node": "*"
}
},
"node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/text-hex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
"integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
"node_modules/triple-beam": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
"integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
},
"node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"node_modules/winston": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
"integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
"dependencies": {
"@dabh/diagnostics": "^2.0.2",
"async": "^3.1.0",
"is-stream": "^2.0.0",
"logform": "^2.2.0",
"one-time": "^1.0.0",
"readable-stream": "^3.4.0",
"stack-trace": "0.0.x",
"triple-beam": "^1.3.0",
"winston-transport": "^4.4.0"
},
"engines": {
"node": ">= 6.4.0"
}
},
"node_modules/winston-transport": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.1.tgz",
"integrity": "sha512-ciZRlU4CSjHqHe8RQG1iPxKMRVwv6ZJ0RC7DxStKWd0KjpAhPDy5gVYSCpIUq+5CUsP+IyNOTZy1X0tO2QZqjg==",
"dependencies": {
"logform": "^2.2.0",
"readable-stream": "^3.4.0",
"triple-beam": "^1.2.0"
},
"engines": {
"node": ">= 6.4.0"
}
}
},
"dependencies": {
"@accord/backend": {
"version": "file:../backend/src"
},
"@dabh/diagnostics": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz",
"integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==",
"requires": {
"colorspace": "1.1.x",
"enabled": "2.0.x",
"kuler": "^2.0.0"
}
},
"@types/winston": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.4.4.tgz",
"integrity": "sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==",
"requires": {
"winston": "*"
}
},
"async": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.2.tgz",
"integrity": "sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g=="
},
"color": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
"integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
"requires": {
"color-convert": "^1.9.3",
"color-string": "^1.6.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"color-string": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.0.tgz",
"integrity": "sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==",
"requires": {
"color-name": "^1.0.0",
"simple-swizzle": "^0.2.2"
}
},
"colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
},
"colorspace": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
"integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
"requires": {
"color": "^3.1.3",
"text-hex": "1.0.x"
}
},
"enabled": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
"integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"fecha": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.1.tgz",
"integrity": "sha512-MMMQ0ludy/nBs1/o0zVOiKTpG7qMbonKUzjJgQFEuvq6INZ1OraKPRAWkBq5vlKLOUMpmNYG1JoN3oDPUQ9m3Q=="
},
"fn.name": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
"integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"is-arrayish": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
"integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"kuler": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
"integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
},
"logform": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/logform/-/logform-2.3.0.tgz",
"integrity": "sha512-graeoWUH2knKbGthMtuG1EfaSPMZFZBIrhuJHhkS5ZseFBrc7DupCzihOQAzsK/qIKPQaPJ/lFQFctILUY5ARQ==",
"requires": {
"colors": "^1.2.1",
"fecha": "^4.2.0",
"ms": "^2.1.1",
"safe-stable-stringify": "^1.1.0",
"triple-beam": "^1.3.0"
}
},
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"one-time": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
"integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
"requires": {
"fn.name": "1.x.x"
}
},
"readable-stream": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
"util-deprecate": "^1.0.1"
}
},
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safe-stable-stringify": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-1.1.1.tgz",
"integrity": "sha512-ERq4hUjKDbJfE4+XtZLFPCDi8Vb1JqaxAPTxWFLBx8XcAlf9Bda/ZJdVezs/NAfsMQScyIlUMx+Yeu7P7rx5jw=="
},
"simple-swizzle": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
"requires": {
"is-arrayish": "^0.3.1"
}
},
"stack-trace": {
"version": "0.0.10",
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
}
},
"text-hex": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
"integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
},
"triple-beam": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
"integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
},
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"winston": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz",
"integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==",
"requires": {
"@dabh/diagnostics": "^2.0.2",
"async": "^3.1.0",
"is-stream": "^2.0.0",
"logform": "^2.2.0",
"one-time": "^1.0.0",
"readable-stream": "^3.4.0",
"stack-trace": "0.0.x",
"triple-beam": "^1.3.0",
"winston-transport": "^4.4.0"
}
},
"winston-transport": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.1.tgz",
"integrity": "sha512-ciZRlU4CSjHqHe8RQG1iPxKMRVwv6ZJ0RC7DxStKWd0KjpAhPDy5gVYSCpIUq+5CUsP+IyNOTZy1X0tO2QZqjg==",
"requires": {
"logform": "^2.2.0",
"readable-stream": "^3.4.0",
"triple-beam": "^1.2.0"
}
}
}
}

View File

@ -1,7 +1,8 @@
{
"name":"@accord/types",
"main":"main.ts",
"name": "@accord/types",
"main": "main.ts",
"dependencies": {
"@accord/backend": "file:../backend/src"
"@accord/backend": "file:../backend/src",
"@types/winston": "^2.4.4"
}
}
}