From ac616b48ab05aa3937b1673e340e4d9009e05147 Mon Sep 17 00:00:00 2001 From: nardev Date: Tue, 25 Apr 2023 19:05:25 -0400 Subject: [PATCH] First step for typeorm upgrade! Task: https://rootspace.app/taskboard/6/item/1567/type-orm-and-nested-set-tree-issue Remaining issues: Now, the typeorm-seeding is not compatible with newer version of typeorm so we have to make upgrade of seeders. I was not able to find dropin replacement. more: https://github.com/w3tecch/typeorm-seeding/issues/228 --- api/package.json | 2 +- api/src/commands/spaces/DeleteCommand.ts | 24 +- api/src/commands/tasks/OverdueCommand.ts | 8 +- .../database/commands/tasks/BoardIdCommand.ts | 2 +- api/src/database/entities/UserToSpace.ts | 10 +- .../database/repositories/BaseRepository.ts | 8 +- api/src/database/seeder/dev/Seeder.ts | 2 +- api/src/libs/cron/MarkOverdueTasks.ts | 8 +- api/src/services/FollowService.ts | 22 +- api/src/services/NotificationService.ts | 2 +- api/src/services/activity/ActivityService.ts | 2 +- .../content-access/ContentAccessService.ts | 2 +- api/src/services/content/FavoriteService.ts | 2 +- api/src/services/content/doc/DocService.ts | 2 +- .../content/tasks/TaskBoardService.ts | 2 +- .../content/tasks/TaskBoardTagService.ts | 4 +- .../content/tasks/TaskCommentService.ts | 2 +- .../services/content/tasks/TaskListService.ts | 6 +- api/src/services/content/tasks/TaskService.ts | 12 +- api/src/services/invite/InviteService.ts | 2 +- api/src/services/space/SpaceService.ts | 4 +- api/src/services/user/UserService.ts | 4 +- api/tests/database.test.ts | 2 +- api/tsconfig.json | 3 +- api/yarn.lock | 357 +++++++++--------- 25 files changed, 240 insertions(+), 254 deletions(-) diff --git a/api/package.json b/api/package.json index f035ebed..95cea5c5 100644 --- a/api/package.json +++ b/api/package.json @@ -76,7 +76,7 @@ "reflect-metadata": "^0.1.13", "sharp": "^0.25.4", "socket.io": "^3.0.1", - "typeorm": "0.2.25", + "typeorm": "0.3.12", "typeorm-seeding": "^1.6.1", "uuid": "^8.3.0", "ws": "^7.4.0", diff --git a/api/src/commands/spaces/DeleteCommand.ts b/api/src/commands/spaces/DeleteCommand.ts index 5eb7e6c3..d6252ae9 100644 --- a/api/src/commands/spaces/DeleteCommand.ts +++ b/api/src/commands/spaces/DeleteCommand.ts @@ -36,7 +36,7 @@ export class DeleteCommand { private static async deleteSpace(id: number) { const spaceRepository = getCustomRepository(SpaceRepository) - const space = await spaceRepository.findOne(id) + const space = await spaceRepository.findOne({where: {id}}) if (space) { // tslint:disable-next-line:no-console @@ -54,7 +54,7 @@ export class DeleteCommand { // Docs const docsRepository = getCustomRepository(DocRepository) - const docs = await docsRepository.find({spaceId: id}) + const docs = await docsRepository.find({where: {spaceId: id}}) if (docs) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting docs ...`)) @@ -64,7 +64,7 @@ export class DeleteCommand { // Docs Revisions const docsRevisionsRepository = getCustomRepository(DocRevisionRepository) - const docsRevisions = await docsRevisionsRepository.find({spaceId: id}) + const docsRevisions = await docsRevisionsRepository.find({where: {spaceId: id}}) if (docsRevisions) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting doc revisions ...`)) @@ -74,7 +74,7 @@ export class DeleteCommand { // Embeds const embedsRepository = getCustomRepository(EmbedRepository) - const embeds = await embedsRepository.find({spaceId: id}) + const embeds = await embedsRepository.find({where: {spaceId: id}}) if (embeds) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting embeds ...`)) @@ -84,7 +84,7 @@ export class DeleteCommand { // Favorites const favoritesRepository = getCustomRepository(FavoriteRepository) - const favorites = await favoritesRepository.find({spaceId: id}) + const favorites = await favoritesRepository.find({where: {spaceId: id}}) if (favorites) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting favorites ...`)) @@ -94,7 +94,7 @@ export class DeleteCommand { // Folders const foldersRepository = getCustomRepository(FolderRepository) - const folders = await foldersRepository.find({spaceId: id}) + const folders = await foldersRepository.find({where: {spaceId: id}}) if (folders) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting folders ...`)) @@ -107,7 +107,7 @@ export class DeleteCommand { // Invites const invitesRepository = getCustomRepository(InviteRepository) - const invites = await invitesRepository.find({spaceId: id}) + const invites = await invitesRepository.find({where: {spaceId: id}}) if (invites) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting invites ...`)) @@ -117,7 +117,7 @@ export class DeleteCommand { // Links const linksRepository = getCustomRepository(LinkRepository) - const links = await linksRepository.find({spaceId: id}) + const links = await linksRepository.find({where: {spaceId: id}}) if (links) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting links ...`)) @@ -127,7 +127,7 @@ export class DeleteCommand { // Nodes const nodesRepository = getCustomRepository(NodeRepository) - const nodes = await nodesRepository.find({spaceId: id}) + const nodes = await nodesRepository.find({where: {spaceId: id}}) if (nodes) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting nodes ...`)) @@ -137,7 +137,7 @@ export class DeleteCommand { // Notifications const notificationsRepository = getCustomRepository(NotificationRepository) - const notifications = await notificationsRepository.find({spaceId: id}) + const notifications = await notificationsRepository.find({where: {spaceId: id}}) if (notifications) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting notifications ...`)) @@ -148,7 +148,7 @@ export class DeleteCommand { // Uploads // Todo: Delete files from remote storage const uploadsRepository = getCustomRepository(UploadRepository) - const uploads = await uploadsRepository.find({spaceId: id}) + const uploads = await uploadsRepository.find({where: {spaceId: id}}) if (uploads) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting uploads ...`)) @@ -158,7 +158,7 @@ export class DeleteCommand { // User Settings const userSettingsRepository = getCustomRepository(UserSettingRepository) - const settings = await userSettingsRepository.find({spaceId: id}) + const settings = await userSettingsRepository.find({where: {spaceId: id}}) if (settings) { // tslint:disable-next-line:no-console console.log(chalk.yellow(`Deleting user settings ...`)) diff --git a/api/src/commands/tasks/OverdueCommand.ts b/api/src/commands/tasks/OverdueCommand.ts index 69de2944..967ace18 100644 --- a/api/src/commands/tasks/OverdueCommand.ts +++ b/api/src/commands/tasks/OverdueCommand.ts @@ -24,14 +24,14 @@ export class OverdueCommand { private static async updateTasks() { // tslint:disable-next-line:no-console console.log(chalk.yellow('Updating isOverdue...')) - const yesterday = moment().subtract(1, 'days') + const yesterday = moment().subtract(1, 'days').toDate() const repository = getCustomRepository(TaskRepository) - const tasks = await repository.find( - { + const tasks = await repository.find({ + where: { isOverdue: false, dueDate: LessThan(yesterday) - }) + }}) for (const task of tasks) { task.isOverdue = OverdueCommand.isOverdue(task) diff --git a/api/src/database/commands/tasks/BoardIdCommand.ts b/api/src/database/commands/tasks/BoardIdCommand.ts index c6035225..849336c6 100644 --- a/api/src/database/commands/tasks/BoardIdCommand.ts +++ b/api/src/database/commands/tasks/BoardIdCommand.ts @@ -30,7 +30,7 @@ export class BoardIdCommand { .getMany() for (const task of tasks) { - const taskList = await getCustomRepository(TaskListRepository).findOne(task.listId) + const taskList = await getCustomRepository(TaskListRepository).findOne({where: {id: task.listId}}) task.boardId = taskList.boardId } diff --git a/api/src/database/entities/UserToSpace.ts b/api/src/database/entities/UserToSpace.ts index 10d56ad3..5594c370 100644 --- a/api/src/database/entities/UserToSpace.ts +++ b/api/src/database/entities/UserToSpace.ts @@ -1,4 +1,4 @@ -import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, Index, CreateDateColumn, UpdateDateColumn } from 'typeorm' +import { Entity, PrimaryGeneratedColumn, Column, ManyToOne, Index, CreateDateColumn, UpdateDateColumn, JoinColumn } from 'typeorm' import { User } from './User' import { Space } from './Space' @@ -29,15 +29,15 @@ export class UserToSpace { @ManyToOne( (type) => User, - (user) => user.userSpaces, - { primary: true } + (user) => user.userSpaces ) + @JoinColumn({ name: 'userId' }) user: User @ManyToOne( (type) => Space, - (space) => space.userSpaces, - { primary: true } + (space) => space.userSpaces ) + @JoinColumn({ name: 'spaceId' }) space: Space } diff --git a/api/src/database/repositories/BaseRepository.ts b/api/src/database/repositories/BaseRepository.ts index 60c52073..806d9e23 100644 --- a/api/src/database/repositories/BaseRepository.ts +++ b/api/src/database/repositories/BaseRepository.ts @@ -1,9 +1,9 @@ -import { Repository } from 'typeorm' +import { FindOptionsWhere, Repository } from 'typeorm' interface WithId { id: number } -export abstract class BaseRepository extends Repository { - public reload(entity: ET): Promise { - return this.findOneOrFail(entity.id) as any +export abstract class BaseRepository extends Repository { + public reload(entity: T): Promise { + return this.findOneByOrFail({id:entity.id} as FindOptionsWhere) as any } } diff --git a/api/src/database/seeder/dev/Seeder.ts b/api/src/database/seeder/dev/Seeder.ts index 62a1779d..5cb58d2b 100644 --- a/api/src/database/seeder/dev/Seeder.ts +++ b/api/src/database/seeder/dev/Seeder.ts @@ -15,7 +15,7 @@ export class DevSeeder implements Seeder { public async run(factory: Factory, connection: Connection): Promise { this.factory = factory - const userCount = await connection.manager.count(User, {email: this.demoUserData.email}) + const userCount = await connection.manager.count(User, {where:{ email: this.demoUserData.email}}) if (userCount===0){ await this.createUser() } diff --git a/api/src/libs/cron/MarkOverdueTasks.ts b/api/src/libs/cron/MarkOverdueTasks.ts index e0d3b085..ba061714 100644 --- a/api/src/libs/cron/MarkOverdueTasks.ts +++ b/api/src/libs/cron/MarkOverdueTasks.ts @@ -5,12 +5,12 @@ import moment from 'moment' export class MarkOverdueTasks { static async run() { - const yesterday = moment().subtract(1, 'days') - const tasks = await getCustomRepository(TaskRepository).find( - { + const yesterday = moment().subtract(1, 'days').toDate(); + const tasks = await getCustomRepository(TaskRepository).find({ + where: { isOverdue: false, dueDate: LessThan(yesterday) - } + }} ) for (const task of tasks) { diff --git a/api/src/services/FollowService.ts b/api/src/services/FollowService.ts index c6494429..d0162f69 100644 --- a/api/src/services/FollowService.ts +++ b/api/src/services/FollowService.ts @@ -27,14 +27,14 @@ export class FollowService { } async getById(id: number): Promise { - return this.getFollowRepository().findOneOrFail(id) + return this.getFollowRepository().findOneOrFail({where: {id}}) } async getFollowsForActivity(activity: Activity): Promise { - const follows = await this.getFollowRepository().find({ + const follows = await this.getFollowRepository().find({where:{ entityId: activity.entityId, entity: activity.entity, - }) + }}) return follows.filter((follow) => { return follow.userId !== activity.actorId @@ -50,31 +50,31 @@ export class FollowService { } async followFromRequest(userId: number, entity: any): Promise { - const user = await this.userService.getUserRepository().findOneOrFail(userId) + const user = await this.userService.getUserRepository().findOneOrFail({where: {id: userId}}) return this.follow(user, entity) } async unfollowFromRequest(userId: number, entity: any): Promise { - const user = await this.userService.getUserRepository().findOneOrFail(userId) + const user = await this.userService.getUserRepository().findOneOrFail({where: {id: userId}}) return this.unfollow(user, entity) } async followEntity(userId: number, entity: any): Promise { - const user = await this.userService.getUserRepository().findOneOrFail(userId) + const user = await this.userService.getUserRepository().findOneOrFail({where: {id: userId}}) return this.follow(user, entity) } async unfollowEntity(userId: number, entity: any): Promise { - const user = await this.userService.getUserRepository().findOneOrFail(userId) + const user = await this.userService.getUserRepository().findOneOrFail({where: {id: userId}}) return this.unfollow(user, entity) } async follow(user: User, entity: any): Promise { - const follow = await this.getFollowRepository().findOne({ + const follow = await this.getFollowRepository().findOne({where: { userId: user.id, entityId: entity.id, entity: entity.constructor.name, - }) + }}) if (follow) { return follow @@ -91,11 +91,11 @@ export class FollowService { } async unfollow(user: User, entity: any): Promise { - const follow = await this.getFollowRepository().findOne({ + const follow = await this.getFollowRepository().findOne({where: { userId: user.id, entityId: entity.id, entity: entity.constructor.name, - }) + }}) if (!follow) { return diff --git a/api/src/services/NotificationService.ts b/api/src/services/NotificationService.ts index 2601bd75..70528764 100644 --- a/api/src/services/NotificationService.ts +++ b/api/src/services/NotificationService.ts @@ -30,7 +30,7 @@ export class NotificationService { throw clientError('Notification not found', HttpErrName.EntityNotFound, HttpStatusCode.NotFound) } - return this.getNotificationRepository().findOne(id) + return this.getNotificationRepository().findOne({where: {id}}) } async create(activity: Activity, userId: number): Promise { diff --git a/api/src/services/activity/ActivityService.ts b/api/src/services/activity/ActivityService.ts index 0c3d1f6b..becdcfc1 100644 --- a/api/src/services/activity/ActivityService.ts +++ b/api/src/services/activity/ActivityService.ts @@ -50,7 +50,7 @@ export class ActivityService implements IActivityObserver { } getById(id: number): Promise { - return this.getActivityRepository().findOne(id) + return this.getActivityRepository().findOne({where: {id}}) } async getBySpaceId(spaceId: number, filter: any = {}, options: any = {}): Promise { diff --git a/api/src/services/content-access/ContentAccessService.ts b/api/src/services/content-access/ContentAccessService.ts index 33e7532d..91fbb9fa 100644 --- a/api/src/services/content-access/ContentAccessService.ts +++ b/api/src/services/content-access/ContentAccessService.ts @@ -37,7 +37,7 @@ export class ContentAccessService extends Service { } getById(id: number): Promise { - return this.getRepository().findOne(id) + return this.getRepository().findOne({where: {id}}) } async requireById(id: number): Promise { diff --git a/api/src/services/content/FavoriteService.ts b/api/src/services/content/FavoriteService.ts index 9983dab3..081aa0b8 100644 --- a/api/src/services/content/FavoriteService.ts +++ b/api/src/services/content/FavoriteService.ts @@ -21,7 +21,7 @@ export class FavoriteService { } getById(id: number): Promise { - return this.getFavoriteRepository().findOne(id) + return this.getFavoriteRepository().findOne({where: {id}}) } async requireById(id: number): Promise { diff --git a/api/src/services/content/doc/DocService.ts b/api/src/services/content/doc/DocService.ts index 5d302cd9..6311b283 100644 --- a/api/src/services/content/doc/DocService.ts +++ b/api/src/services/content/doc/DocService.ts @@ -61,7 +61,7 @@ export class DocService extends NodeContentService { } getDocRevisionById(id: number): Promise { - return this.getDocRevisionRepository().findOne(id) + return this.getDocRevisionRepository().findOne({where: {id}}) } async requireDocRevisionById(id: number): Promise { diff --git a/api/src/services/content/tasks/TaskBoardService.ts b/api/src/services/content/tasks/TaskBoardService.ts index 914d70ac..1b98e449 100644 --- a/api/src/services/content/tasks/TaskBoardService.ts +++ b/api/src/services/content/tasks/TaskBoardService.ts @@ -101,7 +101,7 @@ export class TaskBoardService extends NodeContentService { } async save(data: any, parentId?: number): Promise { - data.space = await this.getSpaceRepository().findOneOrFail(data.spaceId) + data.space = await this.getSpaceRepository().findOneOrFail({where: {id: data.spaceId}}) let taskBoard = await this.getTaskBoardRepository().save(data) let value = NodeCreateValue.fromObject({ diff --git a/api/src/services/content/tasks/TaskBoardTagService.ts b/api/src/services/content/tasks/TaskBoardTagService.ts index d381570a..f56d3d08 100644 --- a/api/src/services/content/tasks/TaskBoardTagService.ts +++ b/api/src/services/content/tasks/TaskBoardTagService.ts @@ -18,11 +18,11 @@ export class TaskBoardTagService { } async getById(id: number): Promise { - return this.getTagRepository().findOneOrFail(id) + return this.getTagRepository().findOneOrFail({where: {id}}) } async getByTaskBoardId(id: number): Promise { - return this.getTagRepository().find({ boardId: id }) + return this.getTagRepository().find({where: { boardId: id }}) } async create(data: any): Promise { diff --git a/api/src/services/content/tasks/TaskCommentService.ts b/api/src/services/content/tasks/TaskCommentService.ts index a8a723c1..0bab9cdb 100644 --- a/api/src/services/content/tasks/TaskCommentService.ts +++ b/api/src/services/content/tasks/TaskCommentService.ts @@ -29,7 +29,7 @@ export class TaskCommentService extends Service { } async getById(id: number): Promise { - return this.getTaskCommentRepository().findOneOrFail(id) + return this.getTaskCommentRepository().findOneOrFail({where: {id}}) } async create(data: any): Promise { diff --git a/api/src/services/content/tasks/TaskListService.ts b/api/src/services/content/tasks/TaskListService.ts index aceadcc2..2837d2e9 100644 --- a/api/src/services/content/tasks/TaskListService.ts +++ b/api/src/services/content/tasks/TaskListService.ts @@ -40,7 +40,7 @@ export class TaskListService extends Service { } async getById(id: number): Promise { - return this.getTaskListRepository().findOne(id) + return this.getTaskListRepository().findOne({where: {id}}) } async requireById(id: number): Promise { @@ -71,8 +71,8 @@ export class TaskListService extends Service { } async create(data: any): Promise { - data.space = await this.getSpaceRepository().findOneOrFail(data.spaceId) - data.board = await this.getTaskBoardRepository().findOneOrFail(data.boardId) + data.space = await this.getSpaceRepository().findOneOrFail({where: {id: data.spaceId}}) + data.board = await this.getTaskBoardRepository().findOneOrFail({where: {id: data.boardId}}) const taskList = await this.getTaskListRepository().save(data) await this.notifyActivity(TaskListActivity.created(taskList, taskList.userId)) diff --git a/api/src/services/content/tasks/TaskService.ts b/api/src/services/content/tasks/TaskService.ts index aa993d09..bdd8fd24 100644 --- a/api/src/services/content/tasks/TaskService.ts +++ b/api/src/services/content/tasks/TaskService.ts @@ -53,9 +53,9 @@ export class TaskService extends Service { } async create(data: any): Promise { - data.list = await this.getTaskListRepository().findOneOrFail(data.listId) - data.board = await this.getTaskBoardRepository().findOneOrFail(data.list.boardId) - data.space = await this.getSpaceRepository().findOneOrFail(data.board.spaceId) + data.list = await this.getTaskListRepository().findOneOrFail({where: {id: data.listId}}) + data.board = await this.getTaskBoardRepository().findOneOrFail({where: {id: data.list.boardId}}) + data.space = await this.getSpaceRepository().findOneOrFail({where: {id: data.board.spaceId}}) const task = await this.getTaskRepository().save(data) await this.notifyActivity(TaskActivity.created(task, task.userId)) @@ -78,8 +78,8 @@ export class TaskService extends Service { await this.notifyActivity(TaskActivity.updated(task, updatedTask, actorId)) if (task.listId !== updatedTask.listId) { - const oldList = await this.getTaskListRepository().findOne(task.listId) - const newList = await this.getTaskListRepository().findOne(updatedTask.listId) + const oldList = await this.getTaskListRepository().findOne({where: {id: task.listId}}) + const newList = await this.getTaskListRepository().findOne({where: {id: updatedTask.listId}}) this.notifyActivity(TaskActivity.listMoved(updatedTask, oldList, newList, actorId)) } @@ -126,7 +126,7 @@ export class TaskService extends Service { } async remove(taskId: number, actorId: number) { - const task = await this.getTaskRepository().findOneOrFail(taskId, { withDeleted: true }) + const task = await this.getTaskRepository().findOneOrFail({where: {id: taskId}, withDeleted: true}) await this.notifyActivity(TaskActivity.deleted(task, actorId)) return this.getTaskRepository().remove(task) diff --git a/api/src/services/invite/InviteService.ts b/api/src/services/invite/InviteService.ts index 85efada1..d765c9e8 100644 --- a/api/src/services/invite/InviteService.ts +++ b/api/src/services/invite/InviteService.ts @@ -24,7 +24,7 @@ export class InviteService extends Service { } getInviteById(id: number): Promise { - return this.getInviteRepository().findOne(id) + return this.getInviteRepository().findOne({where: {id}}) } async requireInviteById(id: number): Promise { diff --git a/api/src/services/space/SpaceService.ts b/api/src/services/space/SpaceService.ts index ffc7cd37..738e535e 100644 --- a/api/src/services/space/SpaceService.ts +++ b/api/src/services/space/SpaceService.ts @@ -20,7 +20,7 @@ export class SpaceService { } getSpaceById(id: number): Promise { - return this.getSpaceRepository().findOne(id) + return this.getSpaceRepository().findOne({where: {id}}) } async requireSpaceById(id: number): Promise { @@ -47,7 +47,7 @@ export class SpaceService { } async update(data: SpaceUpdateValue, id: number): Promise { - const space = await this.getSpaceRepository().findOne(id) + const space = await this.getSpaceRepository().findOne({where: {id}}) if (!space) { throw clientError('Invalid request') diff --git a/api/src/services/user/UserService.ts b/api/src/services/user/UserService.ts index f530fc3c..3d598623 100644 --- a/api/src/services/user/UserService.ts +++ b/api/src/services/user/UserService.ts @@ -74,7 +74,7 @@ export class UserService extends Service { } getUserByTokenAndId(token: string, userId: number): Promise { - return this.getUserRepository().findOne(userId, { where: { token } }) + return this.getUserRepository().findOne({ where: { id: userId, token } }) } getPasswordResetByToken(token: string): Promise { @@ -82,7 +82,7 @@ export class UserService extends Service { } getPasswordResetById(id: number): Promise { - return this.getPasswordResetRepository().findOne(id) + return this.getPasswordResetRepository().findOne({where: {id}}) } async confirmEmail(token: string, userId: number): Promise { diff --git a/api/tests/database.test.ts b/api/tests/database.test.ts index c12421ac..559574be 100644 --- a/api/tests/database.test.ts +++ b/api/tests/database.test.ts @@ -19,7 +19,7 @@ describe('Database', () => { const userRepository = getCustomRepository(UserRepository) - const loadedUser = await userRepository.findOne({ email }) + const loadedUser = await userRepository.findOne({ where: { email } }) expect(loadedUser.email).toBe(user.email) }) diff --git a/api/tsconfig.json b/api/tsconfig.json index 47cd63ee..8147837c 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -15,6 +15,7 @@ "exclude": [ "node_modules", "dist", - "test" + "test", + "./src/database/seeder/**/*.ts" ] } \ No newline at end of file diff --git a/api/yarn.lock b/api/yarn.lock index 7df828a9..6a25885a 100644 --- a/api/yarn.lock +++ b/api/yarn.lock @@ -664,6 +664,11 @@ resolved "https://registry.yarnpkg.com/@sphinxxxx/color-conversion/-/color-conversion-2.2.2.tgz#03ecc29279e3c0c832f6185a5bfa3497858ac8ca" integrity sha512-XExJS3cLqgrmNBIP3bBw6+1oQ1ksGjFh0+oClDKFYpCCqx/hlqwWO5KO/S63fzUo67SxI9dMrF0y5T/Ey7h8Zw== +"@sqltools/formatter@^1.2.5": + version "1.2.5" + resolved "https://registry.yarnpkg.com/@sqltools/formatter/-/formatter-1.2.5.tgz#3abc203c79b8c3e90fd6c156a0c62d5403520e12" + integrity sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw== + "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -1396,16 +1401,16 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + ansi-reset@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ansi-reset/-/ansi-reset-0.1.1.tgz#e7e71292c3c7ddcd4d62ef4a6c7c05980911c3b7" @@ -1420,12 +1425,7 @@ ansi-strikethrough@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1486,10 +1486,10 @@ anymatch@^3.0.3, anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.0.0.tgz#210b6f43873227e18a4b810a032283311555d5ad" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== +app-root-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-3.1.0.tgz#5971a2fc12ba170369a7a1ef018c71e6e47c2e86" + integrity sha512-biN3PwB2gUtjaYy/isrU3aNWI5w+fAfvHkSvCKeQGxhmYpwKFUxudR3Yya+KqVRHBmEDYh+/lTozYCFbmzX4nA== append-field@^1.0.0: version "1.0.0" @@ -1521,6 +1521,11 @@ argparse@^1.0.10, argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" @@ -1827,6 +1832,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + brace@0.11.1: version "0.11.1" resolved "https://registry.yarnpkg.com/brace/-/brace-0.11.1.tgz#4896fcc9d544eef45f4bb7660db320d3b379fe58" @@ -1909,7 +1921,7 @@ buffer@4.9.2: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.1.0, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -1917,6 +1929,14 @@ buffer@^5.1.0, buffer@^5.5.0, buffer@^5.6.0: base64-js "^1.3.1" ieee754 "^1.1.13" +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" @@ -2058,17 +2078,6 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -2086,7 +2095,7 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^4.0.0, chalk@^4.1.0: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -2182,7 +2191,7 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-highlight@^2.0.0: +cli-highlight@^2.1.11: version "2.1.11" resolved "https://registry.yarnpkg.com/cli-highlight/-/cli-highlight-2.1.11.tgz#49736fa452f0aaf4fae580e30acb26828d2dc1bf" integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== @@ -2195,9 +2204,9 @@ cli-highlight@^2.0.0: yargs "^16.0.0" cli-spinners@^2.2.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.0.tgz#36c7dc98fb6a9a76bd6238ec3f77e2425627e939" - integrity sha512-t+4/y50K/+4xcCRosKkA7W4gTr1MySvLV0q+PxmG7FJ5g+66ChKurYjxBCjHggHH3HA5Hh9cy+lcUGWDqVH+4Q== + version "2.8.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc" + integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ== cliui@^2.1.0: version "2.1.0" @@ -2208,15 +2217,6 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -2235,6 +2235,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-response@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" @@ -2245,7 +2254,7 @@ clone-response@^1.0.2: clone@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== cluster-key-slot@^1.1.0: version "1.1.0" @@ -2607,6 +2616,11 @@ date-fns@1.30.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c" integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw== +date-fns@^2.29.3: + version "2.29.3" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" + integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== + date.js@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/date.js/-/date.js-0.3.3.tgz#ef1e92332f507a638795dbb985e951882e50bbda" @@ -2642,6 +2656,13 @@ debug@^3.1.0: dependencies: ms "^2.1.1" +debug@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@~3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" @@ -2706,9 +2727,9 @@ default-compare@^1.0.0: kind-of "^5.0.2" defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= + version "1.0.4" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" @@ -2873,10 +2894,10 @@ dotenv@*: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -dotenv@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-6.2.0.tgz#941c0410535d942c8becf28d3f357dbd9d476064" - integrity sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w== +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== dotenv@^8.2.0: version "8.6.0" @@ -2927,11 +2948,6 @@ emittery@^0.7.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.7.2.tgz#25595908e13af0f5674ab419396e2fb394cdfa82" integrity sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -3082,7 +3098,7 @@ escape-html@~1.0.3: resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= @@ -3303,7 +3319,7 @@ extglob@^2.0.4: faker@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/faker/-/faker-4.1.0.tgz#1e45bbbecc6774b3c195fad2835109c6d748cc3f" - integrity sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8= + integrity sha512-ILKg69P6y/D8/wSmDXw35Ly0re8QzQ8pMfBCflsGiZG2ZjMUNLYNexA6lz5pkmJlepVdsiDFUxYAzPQ9/+iGLA== "falsey@^0.3.2": version "0.3.2" @@ -3334,11 +3350,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -figlet@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/figlet/-/figlet-1.5.0.tgz#2db4d00a584e5155a96080632db919213c3e003c" - integrity sha512-ZQJM4aifMpz6H19AW1VqvZ7l4pOE9p7i/3LyxgO2kp+PO/VcDYNqIHEMtkccqIhTXMKci4kjueJr/iCQEaT/Ww== - fill-range@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" @@ -3369,13 +3380,6 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== - dependencies: - locate-path "^3.0.0" - find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -3614,6 +3618,17 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" @@ -3722,13 +3737,6 @@ handlebars@^4.0.11, handlebars@^4.7.6, handlebars@^4.7.7: optionalDependencies: uglify-js "^3.1.4" -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" @@ -3981,7 +3989,7 @@ ieee754@1.1.13: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== -ieee754@^1.1.13, ieee754@^1.1.4: +ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== @@ -4944,6 +4952,13 @@ js-yaml@^3.13.1: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + jsdom@^16.4.0, jsdom@^16.5.3: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -5245,14 +5260,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -locate-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== - dependencies: - p-locate "^3.0.0" - path-exists "^3.0.0" - locate-path@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" @@ -5567,6 +5574,13 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" @@ -5617,6 +5631,11 @@ mkdirp@^0.5.3, mkdirp@^0.5.4: dependencies: minimist "^1.2.5" +mkdirp@^2.1.3: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== + mobius1-selectr@2.4.10: version "2.4.10" resolved "https://registry.yarnpkg.com/mobius1-selectr/-/mobius1-selectr-2.4.10.tgz#98f29116e9461b7be19b8f380dabd7dc1253a861" @@ -6056,7 +6075,7 @@ p-finally@^1.0.0: resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== @@ -6070,13 +6089,6 @@ p-limit@^3.0.2: dependencies: yocto-queue "^0.1.0" -p-locate@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== - dependencies: - p-limit "^2.0.0" - p-locate@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" @@ -6120,11 +6132,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parent-require@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parent-require/-/parent-require-1.0.0.tgz#746a167638083a860b0eef6732cb27ed46c32977" - integrity sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc= - parse-json@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -6232,11 +6239,6 @@ passport@^0.4.1: passport-strategy "1.x.x" pause "0.0.1" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" @@ -7537,15 +7539,6 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^4.1.0, string-width@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" @@ -7555,6 +7548,15 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" +string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string.prototype.padend@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.1.2.tgz#6858ca4f35c5268ebd5e8615e1327d55f59ee311" @@ -7640,13 +7642,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -7654,6 +7649,13 @@ strip-ansi@^6.0.0: dependencies: ansi-regex "^5.0.0" +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -7713,11 +7715,6 @@ supertest@^4.0.2: methods "^1.1.2" superagent "^3.8.3" -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - supports-color@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -8016,11 +8013,16 @@ tslib@>=1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== -tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: +tslib@^1.13.0, tslib@^1.8.1, tslib@^1.9.3: version "1.14.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== +tslib@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + tslint@^6.1.1: version "6.1.3" resolved "https://registry.yarnpkg.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904" @@ -8125,26 +8127,28 @@ typeorm-seeding@^1.6.1: reflect-metadata "0.1.13" yargs "15.3.1" -typeorm@0.2.25: - version "0.2.25" - resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.2.25.tgz#1a33513b375b78cc7740d2405202208b918d7dde" - integrity sha512-yzQ995fyDy5wolSLK9cmjUNcmQdixaeEm2TnXB5HN++uKbs9TiR6Y7eYAHpDlAE8s9J1uniDBgytecCZVFergQ== - dependencies: - app-root-path "^3.0.0" - buffer "^5.1.0" - chalk "^2.4.2" - cli-highlight "^2.0.0" - debug "^4.1.1" - dotenv "^6.2.0" - glob "^7.1.2" - js-yaml "^3.13.1" - mkdirp "^1.0.3" +typeorm@0.3.12: + version "0.3.12" + resolved "https://registry.yarnpkg.com/typeorm/-/typeorm-0.3.12.tgz#d0fcdc4ce0c32bca42ba5ab04e83f5f58c41ebf3" + integrity sha512-sYSxBmCf1nJLLTcYtwqZ+lQIRtLPyUoO93rHTOKk9vJCyT4UfRtU7oRsJvfvKP3nnZTD1hzz2SEy2zwPEN6OyA== + dependencies: + "@sqltools/formatter" "^1.2.5" + app-root-path "^3.1.0" + buffer "^6.0.3" + chalk "^4.1.2" + cli-highlight "^2.1.11" + date-fns "^2.29.3" + debug "^4.3.4" + dotenv "^16.0.3" + glob "^8.1.0" + js-yaml "^4.1.0" + mkdirp "^2.1.3" reflect-metadata "^0.1.13" sha.js "^2.4.11" - tslib "^1.9.0" - xml2js "^0.4.17" - yargonaut "^1.1.2" - yargs "^13.2.1" + tslib "^2.5.0" + uuid "^9.0.0" + xml2js "^0.4.23" + yargs "^17.6.2" typescript@4.2.4: version "4.2.4" @@ -8273,6 +8277,11 @@ uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +uuid@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" + integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== + v8-to-istanbul@^7.0.0: version "7.1.2" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz#30898d1a7fa0c84d225a2c1434fb958f290883c1" @@ -8352,7 +8361,7 @@ warning-symbol@^0.1.0: wcwidth@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" @@ -8462,15 +8471,6 @@ wordwrap@~0.0.2: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" @@ -8534,7 +8534,7 @@ xml2js@0.4.19: sax ">=0.6.0" xmlbuilder "~9.0.1" -xml2js@^0.4.17: +xml2js@^0.4.23: version "0.4.23" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== @@ -8616,28 +8616,11 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== -yargonaut@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/yargonaut/-/yargonaut-1.1.4.tgz#c64f56432c7465271221f53f5cc517890c3d6e0c" - integrity sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA== - dependencies: - chalk "^1.1.1" - figlet "^1.1.1" - parent-require "^1.0.0" - yargs-parser@20.x, yargs-parser@^20.2.2: version "20.2.9" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^18.1.1, yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" @@ -8646,6 +8629,11 @@ yargs-parser@^18.1.1, yargs-parser@^18.1.2: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs@15.3.1: version "15.3.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" @@ -8663,22 +8651,6 @@ yargs@15.3.1: y18n "^4.0.0" yargs-parser "^18.1.1" -yargs@^13.2.1: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - yargs@^15.4.1: version "15.4.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" @@ -8709,6 +8681,19 @@ yargs@^16.0.0: y18n "^5.0.5" yargs-parser "^20.2.2" +yargs@^17.6.2: + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"