Skip to content
3 changes: 3 additions & 0 deletions .github/prompts/autonomy-version.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"version": "2025.11"
}
8 changes: 8 additions & 0 deletions .github/prompts/autonomy.manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"version": "2025.11",
"consent": {
"phrase": "",
"expiresMinutes": 0
},
"actions": []
}
87 changes: 34 additions & 53 deletions BackEnd/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions BackEnd/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix --max-warnings=9999",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
Expand Down Expand Up @@ -47,14 +47,14 @@
"@nestjs/cache-manager": "^3.1.0",
"@nestjs/common": "^11.0.1",
"@nestjs/config": "^4.0.2",
"@nestjs/core": "^11.0.1",
"@nestjs/core": "^11.1.27",
"@nestjs/event-emitter": "^3.0.1",
"@nestjs/jwt": "^11.0.2",
"@nestjs/passport": "^11.0.5",
"@nestjs/platform-express": "^11.0.1",
"@nestjs/platform-socket.io": "^11.1.17",
"@nestjs/schedule": "^6.1.0",
"@nestjs/swagger": "^11.2.5",
"@nestjs/swagger": "^11.4.4",
"@nestjs/terminus": "^11.0.0",
"@nestjs/throttler": "^6.5.0",
"@nestjs/typeorm": "^11.0.0",
Expand All @@ -75,11 +75,11 @@
"@types/passport-google-oauth20": "^2.0.17",
"axios": "^1.16.1",
"bcrypt": "^6.0.0",
"bullmq": "5.76.6",
"bullmq": "^5.79.1",
"cache-manager": "^7.2.8",
"cache-manager-redis-store": "^3.0.1",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.3",
"class-validator": "^0.14.4",
"cron": "^4.4.0",
"csurf": "^1.2.2",
"dotenv": "^17.3.1",
Expand Down
8 changes: 1 addition & 7 deletions BackEnd/src/common/middleware/security.middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,7 @@ export class SecurityMiddleware implements NestMiddleware {
}

private sanitizeQueryParams(req: Request, maxDepth: number): void {
if (req.query) {
req.query = sanitizeObjectDeep(
req.query,
0,
maxDepth,
) as Request['query'];
}
req.query = sanitizeObjectDeep(req.query, 0, maxDepth) as Request['query'];
}

private collectIssues(
Expand Down
2 changes: 1 addition & 1 deletion BackEnd/src/config/sentry.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export function initSentry(): void {
process.env.SENTRY_TRACES_SAMPLE_RATE || '0.1',
),
integrations: [Sentry.httpIntegration()],
beforeSend(event) {
beforeSend(event: any) {
// Strip PII from user context
if (event.user) {
delete event.user.email;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import { MigrationInterface, QueryRunner } from 'typeorm';

export class AddIdempotencyKeys1800000000004
implements MigrationInterface
{
export class AddIdempotencyKeys1800000000004 implements MigrationInterface {
name = 'AddIdempotencyKeys1800000000004';

public async up(queryRunner: QueryRunner): Promise<void> {
Expand Down Expand Up @@ -31,9 +29,7 @@ export class AddIdempotencyKeys1800000000004
}

public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`DROP INDEX "IDX_idempotency_keys_fingerprint"`,
);
await queryRunner.query(`DROP INDEX "IDX_idempotency_keys_fingerprint"`);
await queryRunner.query(`DROP TABLE "idempotency_keys"`);
}
}
7 changes: 2 additions & 5 deletions BackEnd/src/modules/analytics/exporters/base-exporter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export class BaseAnalyticsExporter {
/**
* Convert data to specified format
*/
async export(data: any, options: ExportOptions): Promise<ExportResult> {
export(data: any, options: ExportOptions): ExportResult {
switch (options.format) {
case ReportFormat.JSON:
return this.exportToJson(data, options);
Expand Down Expand Up @@ -104,10 +104,7 @@ export class BaseAnalyticsExporter {
/**
* Export data to Excel format (simplified - returns CSV with Excel MIME type)
*/
private async exportToExcel(
data: any,
options: ExportOptions,
): Promise<ExportResult> {
private exportToExcel(data: any, options: ExportOptions): ExportResult {
// For now, export as CSV with Excel MIME type
// In a real implementation, you'd use a library like exceljs
const csvResult = this.exportToCsv(data, options);
Expand Down
4 changes: 3 additions & 1 deletion BackEnd/src/modules/analytics/services/report.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,9 @@
savedReport.id,
ReportStatus.FAILED,
error.message,
);
).catch(() => {
/* fire-and-forget status update */
});
});

return savedReport;
Expand Down Expand Up @@ -281,7 +283,7 @@
includeHeaders: true,
};

const exportResult = await this.baseExporter.export(data, exportOptions);

Check failure on line 286 in BackEnd/src/modules/analytics/services/report.service.ts

View workflow job for this annotation

GitHub Actions / Lint & Format Check

Unexpected `await` of a non-Promise (non-"Thenable") value

Check failure on line 286 in BackEnd/src/modules/analytics/services/report.service.ts

View workflow job for this annotation

GitHub Actions / Build, Lint & Format

Unexpected `await` of a non-Promise (non-"Thenable") value

// Update report with results
await this.reportRepository.update(report.id, {
Expand Down
5 changes: 3 additions & 2 deletions BackEnd/src/modules/analytics/utils/time-series.util.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,12 +44,13 @@ export class TimeSeriesUtil {
count: existingData?.count || 0,
});

// Increment by granularity
// Increment by granularity - only 'day' and 'week' need explicit handling
if (granularity === 'day') {
currentDate.setDate(currentDate.getDate() + 1);
} else if (granularity === 'week') {
currentDate.setDate(currentDate.getDate() + 7);
} else if (granularity === 'month') {
} else {
// 'month' case - month is the only remaining option in the union
currentDate.setMonth(currentDate.getMonth() + 1);
}
}
Expand Down
2 changes: 1 addition & 1 deletion BackEnd/src/modules/analytics/web-vitals.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export class WebVitalsAnalyticsController {
status: 202,
description: 'Web vitals metric accepted successfully.',
})
async createWebVitals(@Body() metric: WebVitalsDto): Promise<void> {
createWebVitals(@Body() metric: WebVitalsDto): void {
this.webVitalsAnalyticsService.recordWebVitals(metric);
}
}
2 changes: 1 addition & 1 deletion BackEnd/src/modules/auth/auth.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export class AuthController {

@Post('login')
@HttpCode(HttpStatus.OK)
async login(@Body() loginDto: LoginDto, @Res() res: Response) {
login(@Body() loginDto: LoginDto, @Res() res: Response) {
const result = this.authService.login(loginDto.stellarAddress);

return res.json(result);
Expand Down
2 changes: 1 addition & 1 deletion BackEnd/src/modules/cache/cache.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export class CacheController {
@Get('stats')
@ApiOperation({ summary: 'Get cache statistics' })
@ApiResponse({ status: 200, description: 'Cache statistics retrieved' })
async getStats(@Query('key') key?: string) {
getStats(@Query('key') key?: string) {
return this.cacheService.getStats(key);
}

Expand Down
4 changes: 1 addition & 3 deletions BackEnd/src/modules/email/email.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@
}
}

async sendEmail(
dto: SendEmailDto,
): Promise<{ messageId: string; status: EmailStatus }> {
sendEmail(dto: SendEmailDto): { messageId: string; status: EmailStatus } {
const filteredRecipients = this.filterUnsubscribed(dto.to);

if (filteredRecipients.length === 0) {
Expand All @@ -115,7 +113,7 @@
async queueEmail(
dto: SendEmailDto,
): Promise<{ messageId: string; status: EmailStatus }> {
const result = await this.sendEmail(dto);

Check failure on line 116 in BackEnd/src/modules/email/email.service.ts

View workflow job for this annotation

GitHub Actions / Lint & Format Check

Unexpected `await` of a non-Promise (non-"Thenable") value

Check failure on line 116 in BackEnd/src/modules/email/email.service.ts

View workflow job for this annotation

GitHub Actions / Build, Lint & Format

Unexpected `await` of a non-Promise (non-"Thenable") value

if (result.status === EmailStatus.DROPPED) {
return result;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ export class FeatureFlagsService {
/**
* Clear all flag caches (use with caution)
*/
async clearAllCaches(): Promise<void> {
clearAllCaches(): void {
// In a real implementation, you might need to iterate through all flag keys
this.logger.warn('Clearing all feature flag caches');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@

// Use Promise.race for timeout
const result = await Promise.race([
this.pingWithClient(client),

Check failure on line 56 in BackEnd/src/modules/health/services/cache-health.service.ts

View workflow job for this annotation

GitHub Actions / Lint & Format Check

Unexpected iterable of non-Promise (non-"Thenable") values passed to promise aggregator

Check failure on line 56 in BackEnd/src/modules/health/services/cache-health.service.ts

View workflow job for this annotation

GitHub Actions / Build, Lint & Format

Unexpected iterable of non-Promise (non-"Thenable") values passed to promise aggregator
this.timeoutPromise(CACHE_TIMEOUT_MS),
]);

Expand Down Expand Up @@ -126,7 +126,7 @@
return null;
}

private async pingWithClient(client: any): Promise<string> {
private pingWithClient(client: any): string {
return client.ping();
}

Expand Down
Loading
Loading