mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-26 18:42:49 +00:00
Merge pull request #8 from Tria-plc/feat/add_auth_integration
Feat/add auth integration
This commit is contained in:
@@ -9,8 +9,26 @@ DB_NAME=edr_freight
|
|||||||
DB_USER=postgres
|
DB_USER=postgres
|
||||||
DB_PASSWORD=
|
DB_PASSWORD=
|
||||||
|
|
||||||
# JWT (provided by external auth package — placeholder only)
|
# JWT (used by @tria-plc/api-common SharedAuthModule)
|
||||||
JWT_SECRET=
|
JWT_SECRET=
|
||||||
|
JWT_ACCESS_TOKEN_SECRET=
|
||||||
|
JWT_REFRESH_TOKEN_SECRET=
|
||||||
|
JWT_EXPIRES_IN=3600
|
||||||
|
# JWT expiry for @tria-plc/api-common token utils (jsonwebtoken timespan format)
|
||||||
|
JWT_ACCESS_TOKEN_EXPIRES=1h
|
||||||
|
JWT_REFRESH_TOKEN_EXPIRES=7d
|
||||||
|
|
||||||
|
# IAM seed defaults (used by @tria-plc/iamapi-common on first boot)
|
||||||
|
SUPER_ADMIN_EMAIL=superadmin@tria.com
|
||||||
|
SUPER_ADMIN_PHONE=
|
||||||
|
DEFAULT_PASSWORD=password@tria
|
||||||
|
|
||||||
|
# MinIO (used by @tria-plc/iamapi-common for file storage)
|
||||||
|
MINIO_ENDPOINT=localhost
|
||||||
|
MINIO_PORT=9000
|
||||||
|
MINIO_USE_SSL=false
|
||||||
|
MINIO_ACCESS_KEY=
|
||||||
|
MINIO_SECRET_KEY=
|
||||||
|
|
||||||
# Redis
|
# Redis
|
||||||
REDIS_HOST=localhost
|
REDIS_HOST=localhost
|
||||||
|
|||||||
@@ -13,8 +13,6 @@
|
|||||||
"type-check": "tsc --noEmit"
|
"type-check": "tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tria-plc/api-common": "^0.1.0",
|
|
||||||
"@tria-plc/iamapi-common": "^0.1.0",
|
|
||||||
"@edr/api-common": "workspace:*",
|
"@edr/api-common": "workspace:*",
|
||||||
"@edr/types": "workspace:*",
|
"@edr/types": "workspace:*",
|
||||||
"@nestjs/common": "^11.0.0",
|
"@nestjs/common": "^11.0.0",
|
||||||
@@ -24,8 +22,13 @@
|
|||||||
"@nestjs/platform-express": "^11.0.0",
|
"@nestjs/platform-express": "^11.0.0",
|
||||||
"@nestjs/swagger": "^11.4.2",
|
"@nestjs/swagger": "^11.4.2",
|
||||||
"@nestjs/typeorm": "^11.0.1",
|
"@nestjs/typeorm": "^11.0.1",
|
||||||
|
"@tria-plc/api-common": "^0.1.4",
|
||||||
|
"@tria-plc/iamapi-common": "^0.1.6",
|
||||||
|
"amqp-connection-manager": "^5.0.0",
|
||||||
|
"amqplib": "^2.0.1",
|
||||||
"class-transformer": "^0.5.1",
|
"class-transformer": "^0.5.1",
|
||||||
"class-validator": "^0.14.1",
|
"class-validator": "^0.14.1",
|
||||||
|
"dotenv": "^17.4.2",
|
||||||
"pg": "^8.13.0",
|
"pg": "^8.13.0",
|
||||||
"reflect-metadata": "^0.2.2",
|
"reflect-metadata": "^0.2.2",
|
||||||
"rxjs": "^7.8.1",
|
"rxjs": "^7.8.1",
|
||||||
@@ -33,12 +36,13 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@edr/api-common": "workspace:*",
|
"@edr/api-common": "workspace:*",
|
||||||
"@edr/types": "workspace:*",
|
|
||||||
"@edr/eslint-config": "workspace:*",
|
"@edr/eslint-config": "workspace:*",
|
||||||
"@edr/tsconfig": "workspace:*",
|
"@edr/tsconfig": "workspace:*",
|
||||||
|
"@edr/types": "workspace:*",
|
||||||
"@nestjs/cli": "^11.0.0",
|
"@nestjs/cli": "^11.0.0",
|
||||||
"@nestjs/schematics": "^11.0.0",
|
"@nestjs/schematics": "^11.0.0",
|
||||||
"@nestjs/testing": "^11.0.0",
|
"@nestjs/testing": "^11.0.0",
|
||||||
|
"@types/amqplib": "^0.10.8",
|
||||||
"@types/express": "^5.0.0",
|
"@types/express": "^5.0.0",
|
||||||
"@types/jest": "^29.5.13",
|
"@types/jest": "^29.5.13",
|
||||||
"@types/node": "^20.14.0",
|
"@types/node": "^20.14.0",
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import { Module } from "@nestjs/common";
|
import { Module, OnApplicationBootstrap } from "@nestjs/common";
|
||||||
import { ConfigModule, ConfigService } from "@nestjs/config";
|
import { ConfigModule, ConfigService } from "@nestjs/config";
|
||||||
import { TypeOrmModule, TypeOrmModuleOptions } from "@nestjs/typeorm";
|
import { TypeOrmModule, TypeOrmModuleOptions } from "@nestjs/typeorm";
|
||||||
|
import { IamModule, DataSeeder } from "@tria-plc/iamapi-common";
|
||||||
|
import { SharedAuthModule } from "@tria-plc/api-common/modules/auth/shared-auth.module";
|
||||||
|
|
||||||
import appConfig from "./config/app.config";
|
import appConfig from "./config/app.config";
|
||||||
import databaseConfig from "./config/database.config";
|
import databaseConfig from "./config/database.config";
|
||||||
@@ -24,6 +26,8 @@ import { NotificationsModule } from "./modules/notifications/notifications.modul
|
|||||||
useFactory: (config: ConfigService): TypeOrmModuleOptions =>
|
useFactory: (config: ConfigService): TypeOrmModuleOptions =>
|
||||||
config.get<TypeOrmModuleOptions>("database")!,
|
config.get<TypeOrmModuleOptions>("database")!,
|
||||||
}),
|
}),
|
||||||
|
SharedAuthModule,
|
||||||
|
IamModule.forRoot(),
|
||||||
BookingsModule,
|
BookingsModule,
|
||||||
ConsignmentsModule,
|
ConsignmentsModule,
|
||||||
TrainsModule,
|
TrainsModule,
|
||||||
@@ -33,4 +37,10 @@ import { NotificationsModule } from "./modules/notifications/notifications.modul
|
|||||||
NotificationsModule,
|
NotificationsModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class AppModule {}
|
export class AppModule implements OnApplicationBootstrap {
|
||||||
|
constructor(private readonly seeder: DataSeeder) {}
|
||||||
|
|
||||||
|
async onApplicationBootstrap() {
|
||||||
|
await this.seeder.run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,5 +1,94 @@
|
|||||||
import { registerAs } from "@nestjs/config";
|
import { registerAs } from "@nestjs/config";
|
||||||
import { TypeOrmModuleOptions } from "@nestjs/typeorm";
|
import { TypeOrmModuleOptions } from "@nestjs/typeorm";
|
||||||
|
import {
|
||||||
|
DefaultPosition,
|
||||||
|
DefaultUnit,
|
||||||
|
EmployeePosition,
|
||||||
|
Employee,
|
||||||
|
OrganizationConfiguration,
|
||||||
|
GlobalOrganizationConfiguration,
|
||||||
|
OrganizationType,
|
||||||
|
Organization,
|
||||||
|
PositionConfiguration,
|
||||||
|
PositionPermission,
|
||||||
|
PositionTypeConfiguration,
|
||||||
|
PositionTypePermission,
|
||||||
|
PositionType,
|
||||||
|
Position,
|
||||||
|
Project,
|
||||||
|
UnitConfiguration,
|
||||||
|
GlobalUnitConfiguration,
|
||||||
|
Unit,
|
||||||
|
EmployeeSignature,
|
||||||
|
EmployeeStamp,
|
||||||
|
RecordFooter,
|
||||||
|
RecordHeader,
|
||||||
|
Seal,
|
||||||
|
AccountConfiguration,
|
||||||
|
Application,
|
||||||
|
DocumentaryRequirement,
|
||||||
|
Permission,
|
||||||
|
RolePermission,
|
||||||
|
Role,
|
||||||
|
Session,
|
||||||
|
UserCredential,
|
||||||
|
UserDocument,
|
||||||
|
UserRole,
|
||||||
|
UserVerification,
|
||||||
|
User,
|
||||||
|
Notification,
|
||||||
|
NotificationEvent,
|
||||||
|
NotificationPlaceholder,
|
||||||
|
NotificationReceiverField,
|
||||||
|
NotificationReceiver,
|
||||||
|
NotificationTemplate,
|
||||||
|
} from "@tria-plc/iamapi-common";
|
||||||
|
import { OrganizationSetting } from "@tria-plc/iamapi-common/entities/iam/organization-structure/organization-setting.entity";
|
||||||
|
|
||||||
|
const iamEntities = [
|
||||||
|
DefaultPosition,
|
||||||
|
DefaultUnit,
|
||||||
|
EmployeePosition,
|
||||||
|
Employee,
|
||||||
|
OrganizationConfiguration,
|
||||||
|
GlobalOrganizationConfiguration,
|
||||||
|
OrganizationSetting,
|
||||||
|
OrganizationType,
|
||||||
|
Organization,
|
||||||
|
PositionConfiguration,
|
||||||
|
PositionPermission,
|
||||||
|
PositionTypeConfiguration,
|
||||||
|
PositionTypePermission,
|
||||||
|
PositionType,
|
||||||
|
Position,
|
||||||
|
Project,
|
||||||
|
UnitConfiguration,
|
||||||
|
GlobalUnitConfiguration,
|
||||||
|
Unit,
|
||||||
|
EmployeeSignature,
|
||||||
|
EmployeeStamp,
|
||||||
|
RecordFooter,
|
||||||
|
RecordHeader,
|
||||||
|
Seal,
|
||||||
|
AccountConfiguration,
|
||||||
|
Application,
|
||||||
|
DocumentaryRequirement,
|
||||||
|
Permission,
|
||||||
|
RolePermission,
|
||||||
|
Role,
|
||||||
|
Session,
|
||||||
|
UserCredential,
|
||||||
|
UserDocument,
|
||||||
|
UserRole,
|
||||||
|
UserVerification,
|
||||||
|
User,
|
||||||
|
Notification,
|
||||||
|
NotificationEvent,
|
||||||
|
NotificationPlaceholder,
|
||||||
|
NotificationReceiverField,
|
||||||
|
NotificationReceiver,
|
||||||
|
NotificationTemplate,
|
||||||
|
];
|
||||||
|
|
||||||
export default registerAs(
|
export default registerAs(
|
||||||
"database",
|
"database",
|
||||||
@@ -10,8 +99,15 @@ export default registerAs(
|
|||||||
username: process.env.DB_USER ?? "postgres",
|
username: process.env.DB_USER ?? "postgres",
|
||||||
password: process.env.DB_PASSWORD ?? "",
|
password: process.env.DB_PASSWORD ?? "",
|
||||||
database: process.env.DB_NAME ?? "edr_freight",
|
database: process.env.DB_NAME ?? "edr_freight",
|
||||||
entities: [__dirname + "/../**/*.entity.{ts,js}"],
|
entities: [__dirname + "/../**/*.entity.{ts,js}", ...iamEntities],
|
||||||
migrations: [__dirname + "/../../migrations/*.{ts,js}"],
|
autoLoadEntities: true,
|
||||||
|
migrations: [
|
||||||
|
// IAM schema + tables must be created before freight entity sync
|
||||||
|
__dirname +
|
||||||
|
"/../../node_modules/@tria-plc/iamapi-common/dist/db/migrations/*.js",
|
||||||
|
__dirname + "/../../migrations/*.{ts,js}",
|
||||||
|
],
|
||||||
|
migrationsRun: true,
|
||||||
// Never enable synchronize in production. Use migrations.
|
// Never enable synchronize in production. Use migrations.
|
||||||
synchronize: process.env.NODE_ENV === "development",
|
synchronize: process.env.NODE_ENV === "development",
|
||||||
logging: process.env.NODE_ENV === "development",
|
logging: process.env.NODE_ENV === "development",
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
|
import * as dotenv from "dotenv";
|
||||||
|
dotenv.config();
|
||||||
import { NestFactory } from "@nestjs/core";
|
import { NestFactory } from "@nestjs/core";
|
||||||
import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
|
import { DocumentBuilder, SwaggerModule } from "@nestjs/swagger";
|
||||||
import {
|
import {
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ApiOperation, ApiTags } from "@nestjs/swagger";
|
|||||||
import { BillingService } from "./billing.service";
|
import { BillingService } from "./billing.service";
|
||||||
|
|
||||||
@ApiTags("billing")
|
@ApiTags("billing")
|
||||||
// @UseGuards(JwtAuthGuard) — TODO: integrate @edr/auth
|
|
||||||
@Controller("billing")
|
@Controller("billing")
|
||||||
export class BillingController {
|
export class BillingController {
|
||||||
constructor(private readonly billingService: BillingService) {}
|
constructor(private readonly billingService: BillingService) {}
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import { CreateBookingDto } from "./dto/create-booking.dto";
|
|||||||
import { FilterBookingDto } from "./dto/filter-booking.dto";
|
import { FilterBookingDto } from "./dto/filter-booking.dto";
|
||||||
|
|
||||||
@ApiTags("bookings")
|
@ApiTags("bookings")
|
||||||
// @UseGuards(JwtAuthGuard) — TODO: integrate @edr/auth
|
|
||||||
@Controller("bookings")
|
@Controller("bookings")
|
||||||
export class BookingsController {
|
export class BookingsController {
|
||||||
constructor(private readonly bookingsService: BookingsService) {}
|
constructor(private readonly bookingsService: BookingsService) {}
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import { CreateConsignmentDto } from "./dto/create-consignment.dto";
|
|||||||
import { FilterConsignmentDto } from "./dto/filter-consignment.dto";
|
import { FilterConsignmentDto } from "./dto/filter-consignment.dto";
|
||||||
|
|
||||||
@ApiTags("consignments")
|
@ApiTags("consignments")
|
||||||
// @UseGuards(JwtAuthGuard) — TODO: integrate @edr/auth
|
|
||||||
@Controller("consignments")
|
@Controller("consignments")
|
||||||
export class ConsignmentsController {
|
export class ConsignmentsController {
|
||||||
constructor(private readonly consignmentsService: ConsignmentsService) {}
|
constructor(private readonly consignmentsService: ConsignmentsService) {}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { CustomersService } from "./customers.service";
|
|||||||
import { CreateCustomerDto } from "./dto/create-customer.dto";
|
import { CreateCustomerDto } from "./dto/create-customer.dto";
|
||||||
|
|
||||||
@ApiTags("customers")
|
@ApiTags("customers")
|
||||||
// @UseGuards(JwtAuthGuard) — TODO: integrate @edr/auth
|
|
||||||
@Controller("customers")
|
@Controller("customers")
|
||||||
export class CustomersController {
|
export class CustomersController {
|
||||||
constructor(private readonly customersService: CustomersService) {}
|
constructor(private readonly customersService: CustomersService) {}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { ApiOperation, ApiTags } from "@nestjs/swagger";
|
|||||||
import { TrackingService } from "./tracking.service";
|
import { TrackingService } from "./tracking.service";
|
||||||
|
|
||||||
@ApiTags("tracking")
|
@ApiTags("tracking")
|
||||||
// @UseGuards(JwtAuthGuard) — TODO: integrate @edr/auth
|
|
||||||
@Controller("tracking")
|
@Controller("tracking")
|
||||||
export class TrackingController {
|
export class TrackingController {
|
||||||
constructor(private readonly trackingService: TrackingService) {}
|
constructor(private readonly trackingService: TrackingService) {}
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ import { CreateTrainDto } from "./dto/create-train.dto";
|
|||||||
import { TrainsService } from "./trains.service";
|
import { TrainsService } from "./trains.service";
|
||||||
|
|
||||||
@ApiTags("trains")
|
@ApiTags("trains")
|
||||||
// @UseGuards(JwtAuthGuard) — TODO: integrate @edr/auth
|
|
||||||
@Controller("trains")
|
@Controller("trains")
|
||||||
export class TrainsController {
|
export class TrainsController {
|
||||||
constructor(private readonly trainsService: TrainsService) {}
|
constructor(private readonly trainsService: TrainsService) {}
|
||||||
|
|||||||
@@ -6,7 +6,9 @@
|
|||||||
"rootDir": "./src",
|
"rootDir": "./src",
|
||||||
"noEmit": false,
|
"noEmit": false,
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
"tsBuildInfoFile": "./.tsbuildinfo"
|
"tsBuildInfoFile": "./.tsbuildinfo",
|
||||||
|
"module": "node16",
|
||||||
|
"moduleResolution": "node16"
|
||||||
},
|
},
|
||||||
"include": ["src"]
|
"include": ["src"]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import TrackingPage from "./pages/tracking/TrackingPage";
|
|||||||
import BillingPage from "./pages/billing/BillingPage";
|
import BillingPage from "./pages/billing/BillingPage";
|
||||||
import TrainsPage from "./pages/trains/TrainsPage";
|
import TrainsPage from "./pages/trains/TrainsPage";
|
||||||
import DashboardPage from "./pages/dashboard/DashboardPage";
|
import DashboardPage from "./pages/dashboard/DashboardPage";
|
||||||
import { IamLoginPage } from "@tria-plc/iamui-common";
|
import { IamLoginPage, LoadingScreen, useAuth } from "@tria-plc/iamui-common";
|
||||||
import CustomersPage from "./pages/customers/CustomersPage";
|
import CustomersPage from "./pages/customers/CustomersPage";
|
||||||
import CustomerDetailPage from "./pages/customers/CustomerDetailPage";
|
import CustomerDetailPage from "./pages/customers/CustomerDetailPage";
|
||||||
import NewCustomerPage from "./pages/customers/NewCustomerPage";
|
import NewCustomerPage from "./pages/customers/NewCustomerPage";
|
||||||
@@ -49,8 +49,13 @@ const sidebarItems: SidebarItem[] = [
|
|||||||
const App = () => {
|
const App = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
const { user, loading } = useAuth();
|
||||||
|
|
||||||
if (location.pathname === "/auth") {
|
if (loading) {
|
||||||
|
return <LoadingScreen />;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!user) {
|
||||||
return (
|
return (
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/auth" element={<IamLoginPage />} />
|
<Route path="/auth" element={<IamLoginPage />} />
|
||||||
@@ -59,6 +64,10 @@ const App = () => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (location.pathname === "/auth") {
|
||||||
|
return <Navigate to="/" replace />;
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DashboardLayout
|
<DashboardLayout
|
||||||
title="EDR Freight"
|
title="EDR Freight"
|
||||||
|
|||||||
@@ -10,13 +10,29 @@ import {
|
|||||||
BrandingProvider,
|
BrandingProvider,
|
||||||
configureIam,
|
configureIam,
|
||||||
UserProvider,
|
UserProvider,
|
||||||
|
axiosInstance,
|
||||||
} from "@tria-plc/iamui-common";
|
} from "@tria-plc/iamui-common";
|
||||||
|
|
||||||
const queryClient = new QueryClient();
|
const queryClient = new QueryClient();
|
||||||
window.__IAM_CONFIG__ = {
|
window.__IAM_CONFIG__ = {
|
||||||
apiUrl: `${import.meta.env.VITE_BASE_API_URL}/api`,
|
apiUrl: `${import.meta.env.VITE_BASE_API_URL}/api`,
|
||||||
postLoginPath: "/user-management",
|
postLoginPath: "/",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Unwrap the StandardResponse envelope ({ success, data, timestamp }) that the
|
||||||
|
// freight API's ResponseTransformInterceptor adds to every response, so that
|
||||||
|
// iamui-common can read response.data.token / response.data fields as expected.
|
||||||
|
axiosInstance.interceptors.response.use((response) => {
|
||||||
|
if (
|
||||||
|
response.data &&
|
||||||
|
typeof response.data === "object" &&
|
||||||
|
"success" in response.data &&
|
||||||
|
"data" in response.data
|
||||||
|
) {
|
||||||
|
response.data = response.data.data;
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
});
|
||||||
window.__USER_MANAGEMENT_BRANDING__ = {
|
window.__USER_MANAGEMENT_BRANDING__ = {
|
||||||
organizationName: "EDR Platform",
|
organizationName: "EDR Platform",
|
||||||
appName: "EDR Portal",
|
appName: "EDR Portal",
|
||||||
|
|||||||
@@ -4,6 +4,23 @@ export const api = axios.create({
|
|||||||
baseURL: import.meta.env.VITE_API_URL,
|
baseURL: import.meta.env.VITE_API_URL,
|
||||||
});
|
});
|
||||||
|
|
||||||
// TODO: integrate @edr/auth — add a request interceptor here that attaches
|
api.interceptors.request.use((config) => {
|
||||||
// the bearer token from the auth package and a response interceptor that
|
const token = document.cookie
|
||||||
// triggers a refresh on 401.
|
.split("; ")
|
||||||
|
.find((row) => row.startsWith("auth-token="))
|
||||||
|
?.split("=")[1];
|
||||||
|
if (token) {
|
||||||
|
config.headers.Authorization = `Bearer ${token}`;
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
});
|
||||||
|
|
||||||
|
api.interceptors.response.use(
|
||||||
|
(response) => response,
|
||||||
|
(error) => {
|
||||||
|
if (error.response?.status === 401) {
|
||||||
|
window.location.href = "/auth";
|
||||||
|
}
|
||||||
|
return Promise.reject(error);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ networks:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres-freight-data:
|
postgres-freight-data:
|
||||||
postgres-passenger-data:
|
|
||||||
redis-data:
|
redis-data:
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -25,21 +24,6 @@ services:
|
|||||||
networks:
|
networks:
|
||||||
- edr-network
|
- edr-network
|
||||||
|
|
||||||
postgres-passenger:
|
|
||||||
image: postgres:17-alpine
|
|
||||||
container_name: edr-postgres-passenger
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: postgres
|
|
||||||
POSTGRES_PASSWORD: postgres
|
|
||||||
POSTGRES_DB: edr_passenger
|
|
||||||
ports:
|
|
||||||
- "5434:5432"
|
|
||||||
volumes:
|
|
||||||
- postgres-passenger-data:/var/lib/postgresql/data
|
|
||||||
networks:
|
|
||||||
- edr-network
|
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:7-alpine
|
image: redis:7-alpine
|
||||||
container_name: edr-redis
|
container_name: edr-redis
|
||||||
|
|||||||
68
pnpm-lock.yaml
generated
68
pnpm-lock.yaml
generated
@@ -55,7 +55,7 @@ importers:
|
|||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/microservices':
|
'@nestjs/microservices':
|
||||||
specifier: ^11.0.0
|
specifier: ^11.0.0
|
||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/platform-express':
|
'@nestjs/platform-express':
|
||||||
specifier: ^11.0.0
|
specifier: ^11.0.0
|
||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
||||||
@@ -66,17 +66,26 @@ importers:
|
|||||||
specifier: ^11.0.1
|
specifier: ^11.0.1
|
||||||
version: 11.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.29(babel-plugin-macros@3.1.0)(pg@8.20.0)(ts-node@10.9.2(@types/node@20.19.41)(typescript@5.9.3)))
|
version: 11.0.1(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)(typeorm@0.3.29(babel-plugin-macros@3.1.0)(pg@8.20.0)(ts-node@10.9.2(@types/node@20.19.41)(typescript@5.9.3)))
|
||||||
'@tria-plc/api-common':
|
'@tria-plc/api-common':
|
||||||
specifier: ^0.1.0
|
specifier: ^0.1.4
|
||||||
version: 0.1.4(dlk6rffkpcjlebt3tne6hjqwx4)
|
version: 0.1.4(dlk6rffkpcjlebt3tne6hjqwx4)
|
||||||
'@tria-plc/iamapi-common':
|
'@tria-plc/iamapi-common':
|
||||||
specifier: ^0.1.0
|
specifier: ^0.1.6
|
||||||
version: 0.1.6(nhzmwbpvzw5m5dv4mcbu7ilapi)
|
version: 0.1.6(nhzmwbpvzw5m5dv4mcbu7ilapi)
|
||||||
|
amqp-connection-manager:
|
||||||
|
specifier: ^5.0.0
|
||||||
|
version: 5.0.0(amqplib@2.0.1)
|
||||||
|
amqplib:
|
||||||
|
specifier: ^2.0.1
|
||||||
|
version: 2.0.1
|
||||||
class-transformer:
|
class-transformer:
|
||||||
specifier: ^0.5.1
|
specifier: ^0.5.1
|
||||||
version: 0.5.1
|
version: 0.5.1
|
||||||
class-validator:
|
class-validator:
|
||||||
specifier: ^0.14.1
|
specifier: ^0.14.1
|
||||||
version: 0.14.4
|
version: 0.14.4
|
||||||
|
dotenv:
|
||||||
|
specifier: ^17.4.2
|
||||||
|
version: 17.4.2
|
||||||
pg:
|
pg:
|
||||||
specifier: ^8.13.0
|
specifier: ^8.13.0
|
||||||
version: 8.20.0
|
version: 8.20.0
|
||||||
@@ -105,6 +114,9 @@ importers:
|
|||||||
'@nestjs/testing':
|
'@nestjs/testing':
|
||||||
specifier: ^11.0.0
|
specifier: ^11.0.0
|
||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)
|
||||||
|
'@types/amqplib':
|
||||||
|
specifier: ^0.10.8
|
||||||
|
version: 0.10.8
|
||||||
'@types/express':
|
'@types/express':
|
||||||
specifier: ^5.0.0
|
specifier: ^5.0.0
|
||||||
version: 5.0.6
|
version: 5.0.6
|
||||||
@@ -319,7 +331,7 @@ importers:
|
|||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/microservices':
|
'@nestjs/microservices':
|
||||||
specifier: ^11.0.0
|
specifier: ^11.0.0
|
||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/platform-express':
|
'@nestjs/platform-express':
|
||||||
specifier: ^11.0.0
|
specifier: ^11.0.0
|
||||||
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
version: 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
||||||
@@ -3558,6 +3570,9 @@ packages:
|
|||||||
cpu: [arm64]
|
cpu: [arm64]
|
||||||
os: [win32]
|
os: [win32]
|
||||||
|
|
||||||
|
'@types/amqplib@0.10.8':
|
||||||
|
resolution: {integrity: sha512-vtDp8Pk1wsE/AuQ8/Rgtm6KUZYqcnTgNvEHwzCkX8rL7AGsC6zqAfKAAJhUZXFhM/Pp++tbnUHiam/8vVpPztA==}
|
||||||
|
|
||||||
'@types/babel__core@7.20.5':
|
'@types/babel__core@7.20.5':
|
||||||
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
|
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
|
||||||
|
|
||||||
@@ -4245,6 +4260,16 @@ packages:
|
|||||||
resolution: {integrity: sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==}
|
resolution: {integrity: sha512-GrTZLRpmp6wIC2ztrWW9MjjTgSKccffgFagbNDOX95/dcjEcYZibYTeaOntySQLcdw1ztBoFkviiUvTMbb9MYg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
|
amqp-connection-manager@5.0.0:
|
||||||
|
resolution: {integrity: sha512-88yQzqa5RSBgnLl504XjvCQJ7d+osskdwvg35Lwm1LRbfLjNU9p7SQUMSP82BB7mseiq9tIUPJ3HE3eXQbpjEw==}
|
||||||
|
engines: {node: '>=10.0.0', npm: '>5.0.0'}
|
||||||
|
peerDependencies:
|
||||||
|
amqplib: '*'
|
||||||
|
|
||||||
|
amqplib@2.0.1:
|
||||||
|
resolution: {integrity: sha512-a3P2MgfCf9nzVis12VxWEn0dS6hcqve7dlEAhXDtIWR27BlhtMkILOc+H9aeHjDi6i6r94dYKc2Kx2OFe3avvg==}
|
||||||
|
engines: {node: '>=18'}
|
||||||
|
|
||||||
ansi-bgblack@0.1.1:
|
ansi-bgblack@0.1.1:
|
||||||
resolution: {integrity: sha512-tp8M/NCmSr6/skdteeo9UgJ2G1rG88X3ZVNZWXUxFw4Wh0PAGaAAWQS61sfBt/1QNcwMTY3EBKOMPujwioJLaw==}
|
resolution: {integrity: sha512-tp8M/NCmSr6/skdteeo9UgJ2G1rG88X3ZVNZWXUxFw4Wh0PAGaAAWQS61sfBt/1QNcwMTY3EBKOMPujwioJLaw==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
@@ -5674,6 +5699,10 @@ packages:
|
|||||||
resolution: {integrity: sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==}
|
resolution: {integrity: sha512-k8DaKGP6r1G30Lx8V4+pCsLzKr8vLmV2paqEj1Y55GdAgJuIqpRp5FfajGF8KtwMxCz9qJc6wUIJnm053d/WCw==}
|
||||||
engines: {node: '>=12'}
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
|
dotenv@17.4.2:
|
||||||
|
resolution: {integrity: sha512-nI4U3TottKAcAD9LLud4Cb7b2QztQMUEfHbvhTH09bqXTxnSie8WnjPALV/WMCrJZ6UV/qHJ6L03OqO3LcdYZw==}
|
||||||
|
engines: {node: '>=12'}
|
||||||
|
|
||||||
dunder-proto@1.0.1:
|
dunder-proto@1.0.1:
|
||||||
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
|
resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
|
||||||
engines: {node: '>= 0.4'}
|
engines: {node: '>= 0.4'}
|
||||||
@@ -8929,6 +8958,9 @@ packages:
|
|||||||
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
|
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
|
||||||
engines: {node: '>= 0.6.0'}
|
engines: {node: '>= 0.6.0'}
|
||||||
|
|
||||||
|
promise-breaker@6.0.0:
|
||||||
|
resolution: {integrity: sha512-BthzO9yTPswGf7etOBiHCVuugs2N01/Q/94dIPls48z2zCmrnDptUUZzfIb+41xq0MnYZ/BzmOd6ikDR4ibNZA==}
|
||||||
|
|
||||||
prompts@2.4.2:
|
prompts@2.4.2:
|
||||||
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
|
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
@@ -12818,7 +12850,7 @@ snapshots:
|
|||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
uid: 2.0.2
|
uid: 2.0.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/platform-express': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
'@nestjs/platform-express': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
||||||
|
|
||||||
'@nestjs/jwt@11.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))':
|
'@nestjs/jwt@11.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))':
|
||||||
@@ -12835,7 +12867,7 @@ snapshots:
|
|||||||
class-transformer: 0.5.1
|
class-transformer: 0.5.1
|
||||||
class-validator: 0.14.4
|
class-validator: 0.14.4
|
||||||
|
|
||||||
'@nestjs/microservices@11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)':
|
'@nestjs/microservices@11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
@@ -12843,6 +12875,9 @@ snapshots:
|
|||||||
reflect-metadata: 0.2.2
|
reflect-metadata: 0.2.2
|
||||||
rxjs: 7.8.2
|
rxjs: 7.8.2
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
|
optionalDependencies:
|
||||||
|
amqp-connection-manager: 5.0.0(amqplib@2.0.1)
|
||||||
|
amqplib: 2.0.1
|
||||||
|
|
||||||
'@nestjs/passport@11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)':
|
'@nestjs/passport@11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -12895,7 +12930,7 @@ snapshots:
|
|||||||
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
tslib: 2.8.1
|
tslib: 2.8.1
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/platform-express': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
'@nestjs/platform-express': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)
|
||||||
|
|
||||||
'@nestjs/throttler@6.5.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)':
|
'@nestjs/throttler@6.5.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)':
|
||||||
@@ -14473,7 +14508,7 @@ snapshots:
|
|||||||
'@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/jwt': 11.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))
|
'@nestjs/jwt': 11.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))
|
||||||
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/passport': 11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)
|
'@nestjs/passport': 11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)
|
||||||
'@nestjs/swagger': 11.4.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)
|
'@nestjs/swagger': 11.4.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)
|
||||||
'@nestjs/throttler': 6.5.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)
|
'@nestjs/throttler': 6.5.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)
|
||||||
@@ -14517,7 +14552,7 @@ snapshots:
|
|||||||
'@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/common': 11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/core': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/microservices@11.1.19)(@nestjs/platform-express@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/jwt': 11.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))
|
'@nestjs/jwt': 11.0.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))
|
||||||
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
'@nestjs/microservices': 11.1.19(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(amqp-connection-manager@5.0.0(amqplib@2.0.1))(amqplib@2.0.1)(reflect-metadata@0.2.2)(rxjs@7.8.2)
|
||||||
'@nestjs/passport': 11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)
|
'@nestjs/passport': 11.0.5(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(passport@0.7.0)
|
||||||
'@nestjs/swagger': 11.4.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)
|
'@nestjs/swagger': 11.4.2(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)
|
||||||
'@nestjs/throttler': 6.5.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)
|
'@nestjs/throttler': 6.5.0(@nestjs/common@11.1.19(class-transformer@0.5.1)(class-validator@0.14.4)(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.19)(reflect-metadata@0.2.2)
|
||||||
@@ -14841,6 +14876,10 @@ snapshots:
|
|||||||
'@turbo/windows-arm64@2.9.12':
|
'@turbo/windows-arm64@2.9.12':
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
|
'@types/amqplib@0.10.8':
|
||||||
|
dependencies:
|
||||||
|
'@types/node': 20.19.41
|
||||||
|
|
||||||
'@types/babel__core@7.20.5':
|
'@types/babel__core@7.20.5':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.29.3
|
'@babel/parser': 7.29.3
|
||||||
@@ -15956,6 +15995,13 @@ snapshots:
|
|||||||
longest: 1.0.1
|
longest: 1.0.1
|
||||||
repeat-string: 1.6.1
|
repeat-string: 1.6.1
|
||||||
|
|
||||||
|
amqp-connection-manager@5.0.0(amqplib@2.0.1):
|
||||||
|
dependencies:
|
||||||
|
amqplib: 2.0.1
|
||||||
|
promise-breaker: 6.0.0
|
||||||
|
|
||||||
|
amqplib@2.0.1: {}
|
||||||
|
|
||||||
ansi-bgblack@0.1.1:
|
ansi-bgblack@0.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-wrap: 0.1.0
|
ansi-wrap: 0.1.0
|
||||||
@@ -17615,6 +17661,8 @@ snapshots:
|
|||||||
|
|
||||||
dotenv@17.4.1: {}
|
dotenv@17.4.1: {}
|
||||||
|
|
||||||
|
dotenv@17.4.2: {}
|
||||||
|
|
||||||
dunder-proto@1.0.1:
|
dunder-proto@1.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
call-bind-apply-helpers: 1.0.2
|
call-bind-apply-helpers: 1.0.2
|
||||||
@@ -21473,6 +21521,8 @@ snapshots:
|
|||||||
|
|
||||||
process@0.11.10: {}
|
process@0.11.10: {}
|
||||||
|
|
||||||
|
promise-breaker@6.0.0: {}
|
||||||
|
|
||||||
prompts@2.4.2:
|
prompts@2.4.2:
|
||||||
dependencies:
|
dependencies:
|
||||||
kleur: 3.0.3
|
kleur: 3.0.3
|
||||||
|
|||||||
Reference in New Issue
Block a user