add filed dueDate
Gitea Actions Demo / Deploy (push) Successful in 29s

This commit is contained in:
vadim committed 2026-09-27 22:41:35 +03:00
1 parent f0f36c4f48
commit 40d579cdb9
30 files changed
+114 -13

No files matched your search

+2
View File
@@ -12,3 +12,5 @@ npx prisma migrate dev --name init
npx prisma generate npx prisma generate
npx auth@latest generate npx auth@latest generate
npx prisma migrate deploy
@@ -1,3 +1,9 @@
/*
Warnings:
- A unique constraint covering the columns `[providerId,accountId]` on the table `account` will be added. If there are existing duplicate values, this will fail.
*/
-- CreateTable -- CreateTable
CREATE TABLE "issue" ( CREATE TABLE "issue" (
"id" SERIAL NOT NULL, "id" SERIAL NOT NULL,
@@ -9,6 +15,7 @@ CREATE TABLE "issue" (
"assigneeId" TEXT, "assigneeId" TEXT,
"reporterId" TEXT NOT NULL, "reporterId" TEXT NOT NULL,
"projectId" TEXT NOT NULL, "projectId" TEXT NOT NULL,
"dueDate" TIMESTAMPTZ(3),
"createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "createdAt" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMPTZ(3) NOT NULL, "updatedAt" TIMESTAMPTZ(3) NOT NULL,
@@ -49,6 +56,15 @@ CREATE INDEX "issue_reporterId_idx" ON "issue"("reporterId");
-- CreateIndex -- CreateIndex
CREATE INDEX "issue_projectId_idx" ON "issue"("projectId"); CREATE INDEX "issue_projectId_idx" ON "issue"("projectId");
-- CreateIndex
CREATE INDEX "issue_createdAt_idx" ON "issue"("createdAt");
-- CreateIndex
CREATE INDEX "issue_projectId_createdAt_idx" ON "issue"("projectId", "createdAt");
-- CreateIndex
CREATE INDEX "issue_dueDate_idx" ON "issue"("dueDate");
-- CreateIndex -- CreateIndex
CREATE INDEX "project_createdAt_idx" ON "project"("createdAt"); CREATE INDEX "project_createdAt_idx" ON "project"("createdAt");
@@ -64,6 +80,9 @@ CREATE INDEX "project_member_userId_idx" ON "project_member"("userId");
-- CreateIndex -- CreateIndex
CREATE UNIQUE INDEX "project_member_projectId_userId_key" ON "project_member"("projectId", "userId"); CREATE UNIQUE INDEX "project_member_projectId_userId_key" ON "project_member"("projectId", "userId");
-- CreateIndex
CREATE UNIQUE INDEX "account_providerId_accountId_key" ON "account"("providerId", "accountId");
-- AddForeignKey -- AddForeignKey
ALTER TABLE "issue" ADD CONSTRAINT "issue_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE; ALTER TABLE "issue" ADD CONSTRAINT "issue_assigneeId_fkey" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;
+12 -7
View File
@@ -58,6 +58,7 @@ model Account {
createdAt DateTime @default(now()) createdAt DateTime @default(now())
updatedAt DateTime @updatedAt updatedAt DateTime @updatedAt
@@unique([providerId, accountId])
@@index([userId]) @@index([userId])
@@map("account") @@map("account")
} }
@@ -75,25 +76,29 @@ model Verification {
} }
model Issue { model Issue {
id Int @id @default(autoincrement()) id Int @id @default(autoincrement())
key String key String
title String title String
content String? content String?
status String status String
priority Int @default(0) priority Int @default(0)
assigneeId String? assigneeId String?
assignee User? @relation(name: "assigneeIssues", fields: [assigneeId], references: [id], onDelete: Cascade) assignee User? @relation(name: "assigneeIssues", fields: [assigneeId], references: [id], onDelete: Cascade)
reporterId String reporterId String
reporter User @relation(name: "reporterIssues", fields: [reporterId], references: [id], onDelete: Cascade) reporter User @relation(name: "reporterIssues", fields: [reporterId], references: [id], onDelete: Cascade)
projectId String projectId String
project Project @relation(fields: [projectId], references: [id], onDelete: Cascade) project Project @relation(fields: [projectId], references: [id], onDelete: Cascade)
createdAt DateTime @default(now()) @db.Timestamptz(3) dueDate DateTime? @db.Timestamptz(3)
updatedAt DateTime @updatedAt @db.Timestamptz(3) createdAt DateTime @default(now()) @db.Timestamptz(3)
updatedAt DateTime @updatedAt @db.Timestamptz(3)
@@index([status]) @@index([status])
@@index([assigneeId]) @@index([assigneeId])
@@index([reporterId]) @@index([reporterId])
@@index([projectId]) @@index([projectId])
@@index([createdAt])
@@index([projectId, createdAt])
@@index([dueDate])
@@map("issue") @@map("issue")
} }
@@ -12,6 +12,7 @@ export class IssueWithUsersDto {
assignee: UserDto | null; assignee: UserDto | null;
reporter: UserDto; reporter: UserDto;
projectId: string; projectId: string;
dueDate: Date | null;
createdAt: Date; createdAt: Date;
updatedAt: Date; updatedAt: Date;
} }
@@ -8,6 +8,7 @@ export class IssueDto {
assigneeId: string | null; assigneeId: string | null;
reporterId: string; reporterId: string;
projectId: string; projectId: string;
dueDate: Date | null;
createdAt: Date; createdAt: Date;
updatedAt: Date; updatedAt: Date;
} }
@@ -15,6 +15,7 @@ export class IssueApplicationMapper {
assigneeId: issue.assignee, assigneeId: issue.assignee,
reporterId: issue.reporter, reporterId: issue.reporter,
projectId: issue.projectId, projectId: issue.projectId,
dueDate: issue.dueDate,
createdAt: issue.createdAt, createdAt: issue.createdAt,
updatedAt: issue.updatedAt, updatedAt: issue.updatedAt,
}; };
@@ -39,6 +40,7 @@ export class IssueApplicationMapper {
assignee: issue.assignee ? (usersById.get(issue.assignee) ?? null) : null, assignee: issue.assignee ? (usersById.get(issue.assignee) ?? null) : null,
reporter, reporter,
projectId: issue.projectId, projectId: issue.projectId,
dueDate: issue.dueDate,
createdAt: issue.createdAt, createdAt: issue.createdAt,
updatedAt: issue.updatedAt, updatedAt: issue.updatedAt,
}; };
@@ -27,6 +27,7 @@ const buildIssue = (overrides: Partial<{ assignee: string | null; reporter: stri
assignee: 'assignee' in overrides ? (overrides.assignee ?? null) : 'user-2', assignee: 'assignee' in overrides ? (overrides.assignee ?? null) : 'user-2',
reporter: overrides.reporter ?? 'user-1', reporter: overrides.reporter ?? 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}); });
@@ -7,5 +7,6 @@ export class CreateIssueCommand {
public readonly content?: string, public readonly content?: string,
public readonly priority?: number, public readonly priority?: number,
public readonly assignee?: string, public readonly assignee?: string,
public readonly dueDate?: Date,
) {} ) {}
} }
@@ -56,6 +56,7 @@ describe('CreateIssueUseCase', () => {
assignee: issue.assignee, assignee: issue.assignee,
reporter: issue.reporter, reporter: issue.reporter,
projectId: issue.projectId, projectId: issue.projectId,
dueDate: issue.dueDate,
createdAt: issue.createdAt, createdAt: issue.createdAt,
updatedAt: issue.updatedAt, updatedAt: issue.updatedAt,
}), }),
@@ -104,6 +105,7 @@ describe('CreateIssueUseCase', () => {
assignee: issue.assignee, assignee: issue.assignee,
reporter: issue.reporter, reporter: issue.reporter,
projectId: issue.projectId, projectId: issue.projectId,
dueDate: issue.dueDate,
createdAt: issue.createdAt, createdAt: issue.createdAt,
updatedAt: issue.updatedAt, updatedAt: issue.updatedAt,
}), }),
@@ -31,6 +31,7 @@ export class CreateIssueUseCase {
assignee: command.assignee, assignee: command.assignee,
reporter: command.reporter, reporter: command.reporter,
projectId: command.projectId, projectId: command.projectId,
dueDate: command.dueDate,
}); });
const issue = await this.issueRepository.create(draft); const issue = await this.issueRepository.create(draft);
@@ -17,6 +17,7 @@ const buildIssue = () =>
assignee: null, assignee: null,
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}); });
@@ -18,6 +18,7 @@ const buildIssue = () =>
assignee: 'user-2', assignee: 'user-2',
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}); });
@@ -18,6 +18,7 @@ const buildIssue = () =>
assignee: 'user-2', assignee: 'user-2',
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}); });
@@ -17,6 +17,7 @@ const buildIssue = (id: number) =>
assignee: null, assignee: null,
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}); });
@@ -7,5 +7,6 @@ export class UpdateIssueCommand {
public readonly status?: string, public readonly status?: string,
public readonly priority?: number, public readonly priority?: number,
public readonly assignee?: string | null, public readonly assignee?: string | null,
public readonly dueDate?: Date | null,
) {} ) {}
} }
@@ -20,6 +20,7 @@ const buildIssue = () =>
assignee: null, assignee: null,
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date('2026-01-01T00:00:00.000Z'), createdAt: new Date('2026-01-01T00:00:00.000Z'),
updatedAt: new Date('2026-01-01T00:00:00.000Z'), updatedAt: new Date('2026-01-01T00:00:00.000Z'),
}); });
@@ -53,6 +53,10 @@ export class UpdateIssueUseCase {
} }
} }
if (command.dueDate !== undefined) {
issue.updateDueDate(command.dueDate);
}
await this.issueRepository.update(issue); await this.issueRepository.update(issue);
const dto = await this.issueUserExpander.expand(issue); const dto = await this.issueUserExpander.expand(issue);
@@ -72,6 +72,7 @@ describe('Issue', () => {
assignee: 'user-3', assignee: 'user-3',
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: now, createdAt: now,
updatedAt: now, updatedAt: now,
}); });
@@ -94,6 +95,7 @@ describe('Issue', () => {
assignee: null, assignee: null,
reporter: 'user-1', reporter: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date('2026-01-01T00:00:00.000Z'), createdAt: new Date('2026-01-01T00:00:00.000Z'),
updatedAt: new Date('2026-01-01T00:00:00.000Z'), updatedAt: new Date('2026-01-01T00:00:00.000Z'),
}); });
@@ -14,6 +14,7 @@ interface IssueProps {
assignee: string | null; assignee: string | null;
reporter: string; reporter: string;
projectId: string; projectId: string;
dueDate: Date | null;
createdAt: Date; createdAt: Date;
updatedAt: Date; updatedAt: Date;
} }
@@ -40,6 +41,7 @@ export class Issue {
assignee?: string | null; assignee?: string | null;
reporter: string; reporter: string;
projectId: string; projectId: string;
dueDate?: Date | null;
}): Issue { }): Issue {
const issue = new Issue({ const issue = new Issue({
id: null, id: null,
@@ -51,6 +53,7 @@ export class Issue {
assignee: params.assignee ?? null, assignee: params.assignee ?? null,
reporter: params.reporter, reporter: params.reporter,
projectId: params.projectId, projectId: params.projectId,
dueDate: params.dueDate ?? null,
createdAt: new Date(), createdAt: new Date(),
updatedAt: new Date(), updatedAt: new Date(),
}); });
@@ -71,6 +74,7 @@ export class Issue {
assignee: string | null; assignee: string | null;
reporter: string; reporter: string;
projectId: string; projectId: string;
dueDate: Date | null;
createdAt: Date; createdAt: Date;
updatedAt: Date; updatedAt: Date;
}): Issue { }): Issue {
@@ -84,6 +88,7 @@ export class Issue {
assignee: props.assignee, assignee: props.assignee,
reporter: props.reporter, reporter: props.reporter,
projectId: props.projectId, projectId: props.projectId,
dueDate: props.dueDate,
createdAt: props.createdAt, createdAt: props.createdAt,
updatedAt: props.updatedAt, updatedAt: props.updatedAt,
}); });
@@ -125,6 +130,10 @@ export class Issue {
return this.props.projectId; return this.props.projectId;
} }
get dueDate(): Date | null {
return this.props.dueDate;
}
get createdAt(): Date { get createdAt(): Date {
return this.props.createdAt; return this.props.createdAt;
} }
@@ -163,6 +172,11 @@ export class Issue {
this.touch(); this.touch();
} }
updateDueDate(dueDate: Date | null): void {
this.props.dueDate = dueDate;
this.touch();
}
private touch(): void { private touch(): void {
this.props.updatedAt = new Date(); this.props.updatedAt = new Date();
this.addDomainEvent(new IssueUpdatedEvent(this.key)); this.addDomainEvent(new IssueUpdatedEvent(this.key));
@@ -13,6 +13,7 @@ describe('IssuePrismaMapper', () => {
assigneeId: 'user-2', assigneeId: 'user-2',
reporterId: 'user-1', reporterId: 'user-1',
projectId: 'project-1', projectId: 'project-1',
dueDate: null,
createdAt: new Date('2026-01-01T00:00:00.000Z'), createdAt: new Date('2026-01-01T00:00:00.000Z'),
updatedAt: new Date('2026-01-02T00:00:00.000Z'), updatedAt: new Date('2026-01-02T00:00:00.000Z'),
}; };
@@ -14,6 +14,7 @@ export class IssuePrismaMapper {
assignee: record.assigneeId, assignee: record.assigneeId,
reporter: record.reporterId, reporter: record.reporterId,
projectId: record.projectId, projectId: record.projectId,
dueDate: record.dueDate,
createdAt: record.createdAt, createdAt: record.createdAt,
updatedAt: record.updatedAt, updatedAt: record.updatedAt,
}); });
@@ -29,6 +30,7 @@ export class IssuePrismaMapper {
assigneeId: issue.assignee, assigneeId: issue.assignee,
reporterId: issue.reporter, reporterId: issue.reporter,
projectId: issue.projectId, projectId: issue.projectId,
dueDate: issue.dueDate,
createdAt: issue.createdAt, createdAt: issue.createdAt,
updatedAt: issue.updatedAt, updatedAt: issue.updatedAt,
}; };
@@ -41,6 +43,7 @@ export class IssuePrismaMapper {
status: issue.status, status: issue.status,
priority: issue.priority, priority: issue.priority,
assigneeId: issue.assignee, assigneeId: issue.assignee,
dueDate: issue.dueDate,
updatedAt: issue.updatedAt, updatedAt: issue.updatedAt,
}; };
} }
@@ -62,6 +62,7 @@ export class IssueController {
dto.content, dto.content,
dto.priority, dto.priority,
dto.assignee, dto.assignee,
dto.dueDate !== undefined ? new Date(dto.dueDate) : undefined,
), ),
), ),
); );
@@ -132,7 +133,16 @@ export class IssueController {
) { ) {
return this.handleErrors(() => return this.handleErrors(() =>
this.updateIssueUseCase.execute( this.updateIssueUseCase.execute(
new UpdateIssueCommand(id, session.user.id, dto.title, dto.content, dto.status, dto.priority, dto.assignee), new UpdateIssueCommand(
id,
session.user.id,
dto.title,
dto.content,
dto.status,
dto.priority,
dto.assignee,
dto.dueDate === undefined ? undefined : dto.dueDate === null ? null : new Date(dto.dueDate),
),
), ),
); );
} }
@@ -1,4 +1,4 @@
import { IsInt, IsNotEmpty, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator'; import { IsDateString, IsInt, IsNotEmpty, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator';
export class CreateIssueRequestDto { export class CreateIssueRequestDto {
@IsString() @IsString()
@@ -27,4 +27,8 @@ export class CreateIssueRequestDto {
@IsOptional() @IsOptional()
@IsString() @IsString()
assignee?: string; assignee?: string;
@IsOptional()
@IsDateString()
dueDate?: string;
} }
@@ -1,4 +1,4 @@
import { IsIn, IsInt, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator'; import { IsDateString, IsIn, IsInt, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator';
import { ISSUE_STATUSES } from '../../domain/value-objects/issue-status.vo.js'; import { ISSUE_STATUSES } from '../../domain/value-objects/issue-status.vo.js';
export class UpdateIssueRequestDto { export class UpdateIssueRequestDto {
@@ -24,4 +24,8 @@ export class UpdateIssueRequestDto {
@IsOptional() @IsOptional()
@IsString() @IsString()
assignee?: string | null; assignee?: string | null;
@IsOptional()
@IsDateString()
dueDate?: string | null;
} }
@@ -1,5 +1,5 @@
import { Field, InputType, Int } from '@nestjs/graphql'; import { Field, InputType, Int } from '@nestjs/graphql';
import { IsInt, IsNotEmpty, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator'; import { IsDate, IsInt, IsNotEmpty, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator';
@InputType() @InputType()
export class CreateIssueInput { export class CreateIssueInput {
@@ -35,4 +35,9 @@ export class CreateIssueInput {
@IsOptional() @IsOptional()
@IsString() @IsString()
assignee?: string; assignee?: string;
@Field(() => Date, { nullable: true })
@IsOptional()
@IsDate()
dueDate?: Date;
} }
@@ -36,6 +36,9 @@ export class IssueDetailType {
@Field() @Field()
projectId: string; projectId: string;
@Field(() => Date, { nullable: true })
dueDate: Date | null;
@Field(() => Date) @Field(() => Date)
createdAt: Date; createdAt: Date;
@@ -29,6 +29,9 @@ export class IssueType {
@Field() @Field()
projectId: string; projectId: string;
@Field(() => Date, { nullable: true })
dueDate: Date | null;
@Field(() => Date) @Field(() => Date)
createdAt: Date; createdAt: Date;
@@ -1,5 +1,5 @@
import { Field, InputType, Int } from '@nestjs/graphql'; import { Field, InputType, Int } from '@nestjs/graphql';
import { IsIn, IsInt, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator'; import { IsDate, IsIn, IsInt, IsOptional, IsString, Max, MaxLength, Min } from 'class-validator';
import { ISSUE_STATUSES } from '../../domain/value-objects/issue-status.vo.js'; import { ISSUE_STATUSES } from '../../domain/value-objects/issue-status.vo.js';
@InputType() @InputType()
@@ -31,4 +31,9 @@ export class UpdateIssueInput {
@IsOptional() @IsOptional()
@IsString() @IsString()
assignee?: string | null; assignee?: string | null;
@Field(() => Date, { nullable: true })
@IsOptional()
@IsDate()
dueDate?: Date | null;
} }
@@ -66,6 +66,7 @@ export class IssueResolver {
input.content, input.content,
input.priority, input.priority,
input.assignee, input.assignee,
input.dueDate,
), ),
), ),
); );
@@ -87,6 +88,7 @@ export class IssueResolver {
input.status, input.status,
input.priority, input.priority,
input.assignee, input.assignee,
input.dueDate,
), ),
), ),
); );
+1 -1
View File
@@ -1 +1 @@
{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2025.float16.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2023.full.d.ts","./node_modules/reflect-metadata/index.d.ts","./node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts","./node_modules/@nestjs/common/interfaces/abstract.interface.d.ts","./node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts","./node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts","./node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts","./node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts","./node_modules/rxjs/dist/types/internal/subscription.d.ts","./node_modules/rxjs/dist/types/internal/subscriber.d.ts","./node_modules/rxjs/dist/types/internal/operator.d.ts","./node_modules/rxjs/dist/types/internal/observable.d.ts","./node_modules/rxjs/dist/types/internal/types.d.ts","./node_modules/rxjs/dist/types/internal/operators/audit.d.ts","./node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.tsLine truncated {"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2025.float16.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2023.full.d.ts","./node_modules/reflect-metadata/index.d.ts","./node_modules/@nestjs/common/decorators/core/bind.decorator.d.ts","./node_modules/@nestjs/common/interfaces/abstract.interface.d.ts","./node_modules/@nestjs/common/interfaces/controllers/controller-metadata.interface.d.ts","./node_modules/@nestjs/common/interfaces/controllers/controller.interface.d.ts","./node_modules/@nestjs/common/interfaces/features/arguments-host.interface.d.ts","./node_modules/@nestjs/common/interfaces/exceptions/exception-filter.interface.d.ts","./node_modules/rxjs/dist/types/internal/subscription.d.ts","./node_modules/rxjs/dist/types/internal/subscriber.d.ts","./node_modules/rxjs/dist/types/internal/operator.d.ts","./node_modules/rxjs/dist/types/internal/observable.d.ts","./node_modules/rxjs/dist/types/internal/types.d.ts","./node_modules/rxjs/dist/types/internal/operators/audit.d.ts","./node_modules/rxjs/dist/types/internal/operators/audittime.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffer.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffercount.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffertime.d.ts","./node_modules/rxjs/dist/types/internal/operators/buffertoggle.d.tsLine truncated