Skip to content

Commit 02ef534

Browse files
authored
Release 2025-08-13 [2] (#3505)
2 parents 85b9bab + 26ff14c commit 02ef534

194 files changed

Lines changed: 1230 additions & 752 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/apps/human-app/server/src/integrations/exchange-oracle/exchange-oracle.gateway.ts

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Mapper } from '@automapper/core';
22
import { InjectMapper } from '@automapper/nestjs';
33
import { HttpService } from '@nestjs/axios';
44
import { Injectable } from '@nestjs/common';
5-
import { AxiosRequestConfig } from 'axios';
5+
import { AxiosError, AxiosRequestConfig } from 'axios';
66
import { lastValueFrom } from 'rxjs';
77
import { HttpMethod } from '../../common/enums/http-method';
88
import { toCleanObjParams } from '../../common/utils/gateway-common.utils';
@@ -61,12 +61,18 @@ export class ExchangeOracleGateway {
6161
const response = await lastValueFrom(this.httpService.request(options));
6262
return response.data as T;
6363
} catch (error) {
64-
this.logger.error('Error while executing exchange oracle API call', {
65-
url: options.url,
66-
method: options.method,
67-
data: options.data,
68-
error: errorUtils.formatError(error),
69-
});
64+
if (
65+
error instanceof AxiosError &&
66+
error.response?.status &&
67+
error.response.status >= 500
68+
) {
69+
this.logger.error('Error while executing exchange oracle API call', {
70+
url: options.url,
71+
method: options.method,
72+
data: options.data,
73+
error: errorUtils.formatError(error),
74+
});
75+
}
7076
throw error;
7177
}
7278
}

packages/apps/reputation-oracle/server/.eslintrc.js

Lines changed: 0 additions & 34 deletions
This file was deleted.
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// @ts-check
2+
import eslint from '@eslint/js';
3+
import globals from 'globals';
4+
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended';
5+
import * as importPlugin from 'eslint-plugin-import';
6+
import tseslint from 'typescript-eslint';
7+
8+
export default tseslint.config(
9+
{
10+
ignores: ['eslint.config.mjs', 'dist'],
11+
},
12+
eslint.configs.recommended,
13+
tseslint.configs.recommended,
14+
eslintPluginPrettierRecommended,
15+
{
16+
languageOptions: {
17+
globals: {
18+
...globals.node,
19+
...globals.jest,
20+
},
21+
sourceType: 'module',
22+
parserOptions: {
23+
projectService: true,
24+
tsconfigRootDir: import.meta.dirname,
25+
},
26+
},
27+
plugins: {
28+
'import': importPlugin,
29+
},
30+
rules: {
31+
'@typescript-eslint/no-explicit-any': 'warn',
32+
'@typescript-eslint/no-floating-promises': 'warn',
33+
'@typescript-eslint/no-unsafe-argument': 'warn',
34+
'@typescript-eslint/no-unused-vars': ['error', {
35+
"args": "all",
36+
"argsIgnorePattern": "^_",
37+
"caughtErrors": "all",
38+
"caughtErrorsIgnorePattern": "^noop",
39+
"destructuredArrayIgnorePattern": "^_",
40+
"varsIgnorePattern": "^_",
41+
"ignoreRestSiblings": true
42+
}],
43+
'import/order': [
44+
'warn',
45+
{
46+
alphabetize: { order: 'asc', caseInsensitive: true },
47+
'newlines-between': 'always',
48+
groups: ['builtin', 'external', 'internal', ['parent', 'sibling', 'index']],
49+
},
50+
],
51+
},
52+
settings: {
53+
'import/resolver': {
54+
typescript: {},
55+
},
56+
},
57+
},
58+
);
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,19 @@
1-
import { createDefaultPreset } from 'ts-jest';
1+
import { createDefaultPreset, pathsToModuleNameMapper } from 'ts-jest';
2+
3+
import { compilerOptions } from './tsconfig.json';
24

35
process.env['GIT_HASH'] = 'test_value_hardcoded_in_jest_config';
46

57
const jestTsPreset = createDefaultPreset({});
68

79
module.exports = {
810
...jestTsPreset,
9-
coverageDirectory: '../coverage',
10-
collectCoverageFrom: ['**/*.(t|j)s'],
1111
moduleFileExtensions: ['js', 'json', 'ts'],
12-
rootDir: 'src',
12+
roots: ['<rootDir>/src'],
1313
testEnvironment: 'node',
1414
testRegex: '.*\\.spec\\.ts$',
15-
moduleNameMapper: {
16-
'^uuid$': require.resolve('uuid'),
17-
'^typeorm$': require.resolve('typeorm'),
18-
},
15+
modulePaths: [compilerOptions.baseUrl],
16+
17+
moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths),
1918
clearMocks: true,
2019
};

packages/apps/reputation-oracle/server/package.json

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,20 @@
1313
"start:dev": "nest start --watch",
1414
"start:debug": "nest start --debug --watch",
1515
"start:prod": "node dist/src/main",
16-
"migration:create": "yarn build && typeorm-ts-node-commonjs migration:create",
17-
"migration:generate": "yarn build && typeorm-ts-node-commonjs migration:generate -d typeorm-migrations-datasource.ts",
18-
"migration:revert": "yarn build && typeorm-ts-node-commonjs migration:revert -d typeorm-migrations-datasource.ts",
19-
"migration:run": "yarn build && typeorm-ts-node-commonjs migration:run -d typeorm-migrations-datasource.ts",
20-
"migration:show": "yarn build && typeorm-ts-node-commonjs migration:show -d typeorm-migrations-datasource.ts",
16+
"migration:create": "yarn typeorm migration:create",
17+
"migration:generate": "yarn typeorm migration:generate -d typeorm-migrations-datasource.ts",
18+
"migration:revert": "yarn typeorm migration:revert -d typeorm-migrations-datasource.ts",
19+
"migration:run": "yarn typeorm migration:run -d typeorm-migrations-datasource.ts",
20+
"migration:show": "yarn typeorm migration:show -d typeorm-migrations-datasource.ts",
2121
"setup:local": "ts-node ./scripts/setup-staking.ts && LOCAL=true yarn setup:kvstore",
2222
"setup:kvstore": "ts-node ./scripts/setup-kv-store.ts",
23-
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
23+
"lint": "eslint \"{src,test}/**/*.ts\" --fix",
2424
"test": "jest",
2525
"test:watch": "jest --watch",
2626
"test:cov": "jest --coverage",
2727
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
28-
"generate-env-doc": "ts-node scripts/generate-env-doc.ts"
28+
"generate-env-doc": "ts-node scripts/generate-env-doc.ts",
29+
"typeorm": "typeorm-ts-node-commonjs"
2930
},
3031
"dependencies": {
3132
"@human-protocol/core": "workspace:*",
@@ -39,7 +40,6 @@
3940
"@nestjs/passport": "^10.0.0",
4041
"@nestjs/platform-express": "^10.3.10",
4142
"@nestjs/schedule": "^4.0.1",
42-
"@nestjs/serve-static": "^4.0.2",
4343
"@nestjs/swagger": "^7.4.2",
4444
"@nestjs/terminus": "^11.0.0",
4545
"@nestjs/typeorm": "^10.0.1",
@@ -71,6 +71,7 @@
7171
"zxcvbn": "^4.4.2"
7272
},
7373
"devDependencies": {
74+
"@eslint/js": "^9.33.0",
7475
"@faker-js/faker": "^9.4.0",
7576
"@golevelup/ts-jest": "^0.6.1",
7677
"@nestjs/cli": "^10.3.2",
@@ -83,20 +84,21 @@
8384
"@types/node": "22.10.5",
8485
"@types/uuid": "^10.0.0",
8586
"@types/zxcvbn": "4.4.5",
86-
"@typescript-eslint/eslint-plugin": "^5.0.0",
87-
"@typescript-eslint/parser": "^5.0.0",
88-
"eslint": "^8.55.0",
89-
"eslint-config-prettier": "^9.1.0",
90-
"eslint-plugin-prettier": "^5.2.1",
87+
"eslint": "^9.33.0",
88+
"eslint-config-prettier": "^10.1.8",
89+
"eslint-import-resolver-typescript": "^4.4.4",
90+
"eslint-plugin-import": "^2.32.0",
91+
"eslint-plugin-prettier": "^5.5.4",
92+
"globals": "^16.3.0",
9193
"jest": "29.7.0",
9294
"nock": "^14.0.3",
9395
"prettier": "^3.4.2",
94-
"source-map-support": "^0.5.20",
9596
"ts-jest": "29.2.5",
9697
"ts-node": "^10.9.2",
97-
"tsconfig-paths": "4.2.0",
98+
"tsconfig-paths": "^4.2.0",
9899
"type-fest": "^4.37.0",
99-
"typescript": "^5.6.3"
100+
"typescript": "^5.9.2",
101+
"typescript-eslint": "^8.39.1"
100102
},
101103
"lint-staged": {
102104
"*.ts": [

packages/apps/reputation-oracle/server/src/app.controller.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Controller, Get, Redirect } from '@nestjs/common';
22
import { ApiExcludeEndpoint } from '@nestjs/swagger';
3+
34
import { Public } from './common/decorators';
45

56
@Controller()

packages/apps/reputation-oracle/server/src/app.module.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,29 @@
11
import { ClassSerializerInterceptor, Module } from '@nestjs/common';
2-
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR, APP_PIPE } from '@nestjs/core';
32
import { ConfigModule } from '@nestjs/config';
3+
import { APP_FILTER, APP_GUARD, APP_INTERCEPTOR, APP_PIPE } from '@nestjs/core';
44
import { ScheduleModule } from '@nestjs/schedule';
5-
import { ServeStaticModule } from '@nestjs/serve-static';
6-
import { join } from 'path';
75

86
import { AppController } from './app.controller';
9-
import { JwtAuthGuard } from './common/guards';
107
import { ExceptionFilter } from './common/filters/exception.filter';
8+
import { JwtAuthGuard } from './common/guards';
119
import { TransformInterceptor } from './common/interceptors/transform.interceptor';
1210
import { HttpValidationPipe } from './common/pipes';
1311
import { envValidator, EnvConfigModule } from './config';
1412
import { DatabaseModule } from './database';
15-
1613
import { AbuseModule } from './modules/abuse';
1714
import { AuthModule } from './modules/auth';
1815
import { CronJobModule } from './modules/cron-job';
1916
import { EscrowCompletionModule } from './modules/escrow-completion';
2017
import { HealthModule } from './modules/health';
21-
import {
22-
IncomingWebhookModule,
23-
OutgoingWebhookModule,
24-
} from './modules/webhook';
2518
import { KycModule } from './modules/kyc';
2619
import { NDAModule } from './modules/nda';
2720
import { QualificationModule } from './modules/qualification';
2821
import { ReputationModule } from './modules/reputation';
2922
import { UserModule } from './modules/user';
30-
23+
import {
24+
IncomingWebhookModule,
25+
OutgoingWebhookModule,
26+
} from './modules/webhook';
3127
import Environment from './utils/environment';
3228

3329
@Module({
@@ -62,13 +58,6 @@ import Environment from './utils/environment';
6258
],
6359
imports: [
6460
ScheduleModule.forRoot(),
65-
ServeStaticModule.forRoot({
66-
rootPath: join(
67-
__dirname,
68-
'../../../../../../',
69-
'node_modules/swagger-ui-dist',
70-
),
71-
}),
7261
ConfigModule.forRoot({
7362
/**
7463
* First value found takes precendece

packages/apps/reputation-oracle/server/src/common/decorators/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Reflector } from '@nestjs/core';
2-
import { UserRole } from '../../modules/user';
2+
3+
import { UserRole } from '@/common/enums';
34

45
/**
56
* Decorator for HTTP endpoints to bypass JWT auth guard
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
export * from './collection';
22
export * from './http';
33
export * from './manifest';
4+
export * from './user';
45
export * from './web3';

packages/apps/reputation-oracle/server/src/modules/kyc/constants.ts renamed to packages/apps/reputation-oracle/server/src/common/enums/user.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,15 @@ export enum KycStatus {
77
EXPIRED = 'expired',
88
ABANDONED = 'abandoned',
99
}
10+
11+
export enum UserStatus {
12+
ACTIVE = 'active',
13+
PENDING = 'pending',
14+
INACTIVE = 'inactive',
15+
}
16+
17+
export enum UserRole {
18+
OPERATOR = 'operator',
19+
WORKER = 'worker',
20+
ADMIN = 'admin',
21+
}

0 commit comments

Comments
 (0)