1
0
mirror of https://github.com/immich-app/immich.git synced 2024-11-24 08:52:28 +02:00

chore(server) Update NestJs to V9 (#1312)

* chore(server) update nestjs to v9

* remove deadcode

* downgrade local-reverse-geocoder

* Added ignore script

* remove ignore script

* Fixed local-reverse-geocoder to a working version

* Fixed issue with eslint mismatch typescript version

* chore: remove unused package

Co-authored-by: Jason Rasmussen <jrasm91@gmail.com>
This commit is contained in:
Alex 2023-01-12 16:07:27 -06:00 committed by GitHub
parent 67c52c3764
commit 6db541c89b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 2039 additions and 1471 deletions

View File

@ -24,7 +24,9 @@ async function bootstrap() {
app.enableCors(); app.enableCors();
} }
app.useWebSocketAdapter(new RedisIoAdapter(app)); const redisIoAdapter = new RedisIoAdapter(app);
await redisIoAdapter.connectToRedis();
app.useWebSocketAdapter(redisIoAdapter);
const config = new DocumentBuilder() const config = new DocumentBuilder()
.setTitle('Immich') .setTitle('Immich')

View File

@ -1,31 +1,32 @@
import { IoAdapter } from '@nestjs/platform-socket.io'; import { IoAdapter } from '@nestjs/platform-socket.io';
import { RedisClient } from 'redis'; import { createClient } from 'redis';
import { ServerOptions } from 'socket.io'; import { ServerOptions } from 'socket.io';
import { createAdapter } from 'socket.io-redis'; import { createAdapter } from '@socket.io/redis-adapter';
const redisHost = process.env.REDIS_HOSTNAME || 'immich_redis'; const redisHost = process.env.REDIS_HOSTNAME || 'immich_redis';
const redisPort = parseInt(process.env.REDIS_PORT || '6379'); const redisPort = parseInt(process.env.REDIS_PORT || '6379');
const redisDb = parseInt(process.env.REDIS_DBINDEX || '0'); const redisDb = parseInt(process.env.REDIS_DBINDEX || '0');
const redisPassword = process.env.REDIS_PASSWORD || undefined; const redisPassword = process.env.REDIS_PASSWORD || undefined;
const redisSocket = process.env.REDIS_SOCKET || undefined; // const redisSocket = process.env.REDIS_SOCKET || undefined;
// const pubClient = createClient({ url: `redis://${redis_host}:6379` });
// const subClient = pubClient.duplicate();
const pubClient = new RedisClient({
host: redisHost,
port: redisPort,
db: redisDb,
password: redisPassword,
path: redisSocket,
});
const subClient = pubClient.duplicate();
const redisAdapter = createAdapter({ pubClient, subClient });
export class RedisIoAdapter extends IoAdapter { export class RedisIoAdapter extends IoAdapter {
private adapterConstructor: any;
async connectToRedis(): Promise<void> {
const pubClient = createClient({
url: `redis://${redisHost}:${redisPort}/${redisDb}`,
password: redisPassword,
});
const subClient = pubClient.duplicate();
await Promise.all([pubClient.connect(), subClient.connect()]);
this.adapterConstructor = createAdapter(pubClient, subClient);
}
createIOServer(port: number, options?: ServerOptions): any { createIOServer(port: number, options?: ServerOptions): any {
const server = super.createIOServer(port, options); const server = super.createIOServer(port, options);
server.adapter(redisAdapter); server.adapter(this.adapterConstructor);
return server; return server;
} }
} }

View File

@ -9,7 +9,9 @@ const logger = new Logger('ImmichMicroservice');
async function bootstrap() { async function bootstrap() {
const app = await NestFactory.create(MicroservicesModule); const app = await NestFactory.create(MicroservicesModule);
app.useWebSocketAdapter(new RedisIoAdapter(app)); const redisIoAdapter = new RedisIoAdapter(app);
await redisIoAdapter.connectToRedis();
app.useWebSocketAdapter(redisIoAdapter);
await app.listen(3002, () => { await app.listen(3002, () => {
const envName = (process.env.NODE_ENV || 'development').toUpperCase(); const envName = (process.env.NODE_ENV || 'development').toUpperCase();

View File

@ -4,6 +4,7 @@
"/user": { "/user": {
"get": { "get": {
"operationId": "getAllUsers", "operationId": "getAllUsers",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "isAll", "name": "isAll",
@ -40,6 +41,7 @@
}, },
"post": { "post": {
"operationId": "createUser", "operationId": "createUser",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -74,6 +76,7 @@
}, },
"put": { "put": {
"operationId": "updateUser", "operationId": "updateUser",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -110,6 +113,7 @@
"/user/info/{userId}": { "/user/info/{userId}": {
"get": { "get": {
"operationId": "getUserById", "operationId": "getUserById",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "userId", "name": "userId",
@ -140,6 +144,7 @@
"/user/me": { "/user/me": {
"get": { "get": {
"operationId": "getMyUserInfo", "operationId": "getMyUserInfo",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -166,6 +171,7 @@
"/user/count": { "/user/count": {
"get": { "get": {
"operationId": "getUserCount", "operationId": "getUserCount",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "admin", "name": "admin",
@ -197,6 +203,7 @@
"/user/{userId}": { "/user/{userId}": {
"delete": { "delete": {
"operationId": "deleteUser", "operationId": "deleteUser",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "userId", "name": "userId",
@ -232,6 +239,7 @@
"/user/{userId}/restore": { "/user/{userId}/restore": {
"post": { "post": {
"operationId": "restoreUser", "operationId": "restoreUser",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "userId", "name": "userId",
@ -267,6 +275,7 @@
"/user/profile-image": { "/user/profile-image": {
"post": { "post": {
"operationId": "createProfileImage", "operationId": "createProfileImage",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -304,6 +313,7 @@
"/user/profile-image/{userId}": { "/user/profile-image/{userId}": {
"get": { "get": {
"operationId": "getProfileImage", "operationId": "getProfileImage",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "userId", "name": "userId",
@ -334,6 +344,7 @@
"/api-key": { "/api-key": {
"post": { "post": {
"operationId": "createKey", "operationId": "createKey",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -363,6 +374,7 @@
}, },
"get": { "get": {
"operationId": "getKeys", "operationId": "getKeys",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -387,6 +399,7 @@
"/api-key/{id}": { "/api-key/{id}": {
"get": { "get": {
"operationId": "getKey", "operationId": "getKey",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -415,6 +428,7 @@
}, },
"put": { "put": {
"operationId": "updateKey", "operationId": "updateKey",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -453,6 +467,7 @@
}, },
"delete": { "delete": {
"operationId": "deleteKey", "operationId": "deleteKey",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -476,6 +491,7 @@
"/asset/upload": { "/asset/upload": {
"post": { "post": {
"operationId": "uploadFile", "operationId": "uploadFile",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -513,6 +529,7 @@
"/asset/download/{assetId}": { "/asset/download/{assetId}": {
"get": { "get": {
"operationId": "downloadFile", "operationId": "downloadFile",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "isThumb", "name": "isThumb",
@ -566,6 +583,7 @@
"/asset/download-files": { "/asset/download-files": {
"post": { "post": {
"operationId": "downloadFiles", "operationId": "downloadFiles",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -602,6 +620,7 @@
"/asset/download-library": { "/asset/download-library": {
"get": { "get": {
"operationId": "downloadLibrary", "operationId": "downloadLibrary",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "skip", "name": "skip",
@ -637,6 +656,7 @@
"/asset/file/{assetId}": { "/asset/file/{assetId}": {
"get": { "get": {
"operationId": "serveFile", "operationId": "serveFile",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "isThumb", "name": "isThumb",
@ -690,6 +710,7 @@
"/asset/thumbnail/{assetId}": { "/asset/thumbnail/{assetId}": {
"get": { "get": {
"operationId": "getAssetThumbnail", "operationId": "getAssetThumbnail",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "assetId", "name": "assetId",
@ -733,6 +754,7 @@
"/asset/curated-objects": { "/asset/curated-objects": {
"get": { "get": {
"operationId": "getCuratedObjects", "operationId": "getCuratedObjects",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -762,6 +784,7 @@
"/asset/curated-locations": { "/asset/curated-locations": {
"get": { "get": {
"operationId": "getCuratedLocations", "operationId": "getCuratedLocations",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -791,6 +814,7 @@
"/asset/search-terms": { "/asset/search-terms": {
"get": { "get": {
"operationId": "getAssetSearchTerms", "operationId": "getAssetSearchTerms",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -820,6 +844,7 @@
"/asset/search": { "/asset/search": {
"post": { "post": {
"operationId": "searchAsset", "operationId": "searchAsset",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -859,6 +884,7 @@
"/asset/count-by-time-bucket": { "/asset/count-by-time-bucket": {
"post": { "post": {
"operationId": "getAssetCountByTimeBucket", "operationId": "getAssetCountByTimeBucket",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -895,6 +921,7 @@
"/asset/count-by-user-id": { "/asset/count-by-user-id": {
"get": { "get": {
"operationId": "getAssetCountByUserId", "operationId": "getAssetCountByUserId",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -959,6 +986,7 @@
}, },
"delete": { "delete": {
"operationId": "deleteAsset", "operationId": "deleteAsset",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -998,6 +1026,7 @@
"/asset/time-bucket": { "/asset/time-bucket": {
"post": { "post": {
"operationId": "getAssetByTimeBucket", "operationId": "getAssetByTimeBucket",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -1232,6 +1261,7 @@
"/share": { "/share": {
"get": { "get": {
"operationId": "getAllSharedLinks", "operationId": "getAllSharedLinks",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -1256,6 +1286,7 @@
"/share/me": { "/share/me": {
"get": { "get": {
"operationId": "getMySharedLink", "operationId": "getMySharedLink",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -1277,6 +1308,7 @@
"/share/{id}": { "/share/{id}": {
"get": { "get": {
"operationId": "getSharedLinkById", "operationId": "getSharedLinkById",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -1305,6 +1337,7 @@
}, },
"delete": { "delete": {
"operationId": "removeSharedLink", "operationId": "removeSharedLink",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -1333,6 +1366,7 @@
}, },
"patch": { "patch": {
"operationId": "editSharedLink", "operationId": "editSharedLink",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -1373,6 +1407,7 @@
"/album/count-by-user-id": { "/album/count-by-user-id": {
"get": { "get": {
"operationId": "getAlbumCountByUserId", "operationId": "getAlbumCountByUserId",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -1399,6 +1434,7 @@
"/album": { "/album": {
"post": { "post": {
"operationId": "createAlbum", "operationId": "createAlbum",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -1433,6 +1469,7 @@
}, },
"get": { "get": {
"operationId": "getAllAlbums", "operationId": "getAllAlbums",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "shared", "name": "shared",
@ -1480,6 +1517,7 @@
"/album/{albumId}/users": { "/album/{albumId}/users": {
"put": { "put": {
"operationId": "addUsersToAlbum", "operationId": "addUsersToAlbum",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1525,6 +1563,7 @@
"/album/{albumId}/assets": { "/album/{albumId}/assets": {
"put": { "put": {
"operationId": "addAssetsToAlbum", "operationId": "addAssetsToAlbum",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1568,6 +1607,7 @@
}, },
"delete": { "delete": {
"operationId": "removeAssetFromAlbum", "operationId": "removeAssetFromAlbum",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1613,6 +1653,7 @@
"/album/{albumId}": { "/album/{albumId}": {
"get": { "get": {
"operationId": "getAlbumInfo", "operationId": "getAlbumInfo",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1646,6 +1687,7 @@
}, },
"delete": { "delete": {
"operationId": "deleteAlbum", "operationId": "deleteAlbum",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1672,6 +1714,7 @@
}, },
"patch": { "patch": {
"operationId": "updateAlbumInfo", "operationId": "updateAlbumInfo",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1717,6 +1760,7 @@
"/album/{albumId}/user/{userId}": { "/album/{albumId}/user/{userId}": {
"delete": { "delete": {
"operationId": "removeUserFromAlbum", "operationId": "removeUserFromAlbum",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1753,6 +1797,7 @@
"/album/{albumId}/download": { "/album/{albumId}/download": {
"get": { "get": {
"operationId": "downloadArchive", "operationId": "downloadArchive",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "albumId", "name": "albumId",
@ -1796,6 +1841,7 @@
"/album/create-shared-link": { "/album/create-shared-link": {
"post": { "post": {
"operationId": "createAlbumSharedLink", "operationId": "createAlbumSharedLink",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -1832,6 +1878,7 @@
"/tag": { "/tag": {
"post": { "post": {
"operationId": "create", "operationId": "create",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -1861,6 +1908,7 @@
}, },
"get": { "get": {
"operationId": "findAll", "operationId": "findAll",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -1885,6 +1933,7 @@
"/tag/{id}": { "/tag/{id}": {
"get": { "get": {
"operationId": "findOne", "operationId": "findOne",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -1913,6 +1962,7 @@
}, },
"patch": { "patch": {
"operationId": "update", "operationId": "update",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -1951,6 +2001,7 @@
}, },
"delete": { "delete": {
"operationId": "delete", "operationId": "delete",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "id", "name": "id",
@ -1974,6 +2025,7 @@
"/auth/login": { "/auth/login": {
"post": { "post": {
"operationId": "login", "operationId": "login",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2005,6 +2057,7 @@
"/auth/admin-sign-up": { "/auth/admin-sign-up": {
"post": { "post": {
"operationId": "adminSignUp", "operationId": "adminSignUp",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2039,6 +2092,7 @@
"/auth/validateToken": { "/auth/validateToken": {
"post": { "post": {
"operationId": "validateAccessToken", "operationId": "validateAccessToken",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"201": { "201": {
@ -2065,6 +2119,7 @@
"/auth/change-password": { "/auth/change-password": {
"post": { "post": {
"operationId": "changePassword", "operationId": "changePassword",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2101,6 +2156,7 @@
"/auth/logout": { "/auth/logout": {
"post": { "post": {
"operationId": "logout", "operationId": "logout",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"201": { "201": {
@ -2122,6 +2178,7 @@
"/oauth/mobile-redirect": { "/oauth/mobile-redirect": {
"get": { "get": {
"operationId": "mobileRedirect", "operationId": "mobileRedirect",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2136,6 +2193,7 @@
"/oauth/config": { "/oauth/config": {
"post": { "post": {
"operationId": "generateConfig", "operationId": "generateConfig",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2167,6 +2225,7 @@
"/oauth/callback": { "/oauth/callback": {
"post": { "post": {
"operationId": "callback", "operationId": "callback",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2198,6 +2257,7 @@
"/oauth/link": { "/oauth/link": {
"post": { "post": {
"operationId": "link", "operationId": "link",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2229,6 +2289,7 @@
"/oauth/unlink": { "/oauth/unlink": {
"post": { "post": {
"operationId": "unlink", "operationId": "unlink",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"201": { "201": {
@ -2251,6 +2312,7 @@
"post": { "post": {
"operationId": "createDeviceInfo", "operationId": "createDeviceInfo",
"description": "@deprecated", "description": "@deprecated",
"deprecated": true,
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2286,6 +2348,7 @@
"patch": { "patch": {
"operationId": "updateDeviceInfo", "operationId": "updateDeviceInfo",
"description": "@deprecated", "description": "@deprecated",
"deprecated": true,
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2320,6 +2383,7 @@
}, },
"put": { "put": {
"operationId": "upsertDeviceInfo", "operationId": "upsertDeviceInfo",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2356,6 +2420,7 @@
"/server-info": { "/server-info": {
"get": { "get": {
"operationId": "getServerInfo", "operationId": "getServerInfo",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2377,6 +2442,7 @@
"/server-info/ping": { "/server-info/ping": {
"get": { "get": {
"operationId": "pingServer", "operationId": "pingServer",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2398,6 +2464,7 @@
"/server-info/version": { "/server-info/version": {
"get": { "get": {
"operationId": "getServerVersion", "operationId": "getServerVersion",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2419,6 +2486,7 @@
"/server-info/stats": { "/server-info/stats": {
"get": { "get": {
"operationId": "getStats", "operationId": "getStats",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2440,6 +2508,7 @@
"/jobs": { "/jobs": {
"get": { "get": {
"operationId": "getAllJobsStatus", "operationId": "getAllJobsStatus",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2466,6 +2535,7 @@
"/jobs/{jobId}": { "/jobs/{jobId}": {
"get": { "get": {
"operationId": "getJobStatus", "operationId": "getJobStatus",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "jobId", "name": "jobId",
@ -2499,6 +2569,7 @@
}, },
"put": { "put": {
"operationId": "sendJobCommand", "operationId": "sendJobCommand",
"description": "",
"parameters": [ "parameters": [
{ {
"name": "jobId", "name": "jobId",
@ -2544,6 +2615,7 @@
"/system-config": { "/system-config": {
"get": { "get": {
"operationId": "getConfig", "operationId": "getConfig",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2568,6 +2640,7 @@
}, },
"put": { "put": {
"operationId": "updateConfig", "operationId": "updateConfig",
"description": "",
"parameters": [], "parameters": [],
"requestBody": { "requestBody": {
"required": true, "required": true,
@ -2604,6 +2677,7 @@
"/system-config/defaults": { "/system-config/defaults": {
"get": { "get": {
"operationId": "getDefaults", "operationId": "getDefaults",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {
@ -2630,6 +2704,7 @@
"/system-config/storage-template-options": { "/system-config/storage-template-options": {
"get": { "get": {
"operationId": "getStorageTemplateOptions", "operationId": "getStorageTemplateOptions",
"description": "",
"parameters": [], "parameters": [],
"responses": { "responses": {
"200": { "200": {

3337
server/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -34,24 +34,24 @@
"api:generate": "bash ./bin/generate-open-api.sh" "api:generate": "bash ./bin/generate-open-api.sh"
}, },
"dependencies": { "dependencies": {
"@nestjs/bull": "^0.5.5", "@nestjs/bull": "^0.6.2",
"@nestjs/common": "^8.4.7", "@nestjs/common": "^9.2.1",
"@nestjs/config": "^2.1.0", "@nestjs/config": "^2.2.0",
"@nestjs/core": "^8.4.7", "@nestjs/core": "^9.2.1",
"@nestjs/jwt": "^8.0.1", "@nestjs/jwt": "^10.0.1",
"@nestjs/mapped-types": "*", "@nestjs/mapped-types": "1.2.0",
"@nestjs/passport": "^8.2.2", "@nestjs/passport": "^9.0.0",
"@nestjs/platform-express": "^8.4.7", "@nestjs/platform-express": "^9.2.1",
"@nestjs/platform-socket.io": "^8.4.7", "@nestjs/platform-socket.io": "^9.2.1",
"@nestjs/schedule": "^2.0.1", "@nestjs/schedule": "^2.1.0",
"@nestjs/swagger": "^5.2.1", "@nestjs/swagger": "^6.1.4",
"@nestjs/typeorm": "^8.1.4", "@nestjs/typeorm": "^9.0.1",
"@nestjs/websockets": "^8.4.7", "@nestjs/websockets": "^9.2.1",
"@socket.io/redis-adapter": "^7.1.0", "@socket.io/redis-adapter": "^8.0.1",
"archiver": "^5.3.1", "archiver": "^5.3.1",
"axios": "^0.26.0", "axios": "^0.26.0",
"bcrypt": "^5.0.1", "bcrypt": "^5.0.1",
"bull": "^4.4.0", "bull": "^4.10.2",
"class-transformer": "^0.5.1", "class-transformer": "^0.5.1",
"class-validator": "^0.13.2", "class-validator": "^0.13.2",
"cookie-parser": "^1.4.6", "cookie-parser": "^1.4.6",
@ -63,9 +63,10 @@
"geo-tz": "^7.0.2", "geo-tz": "^7.0.2",
"handlebars": "^4.7.7", "handlebars": "^4.7.7",
"i18n-iso-countries": "^7.5.0", "i18n-iso-countries": "^7.5.0",
"ioredis": "^5.2.4",
"jest-when": "^3.5.2", "jest-when": "^3.5.2",
"joi": "^17.5.0", "joi": "^17.5.0",
"local-reverse-geocoder": "^0.12.5", "local-reverse-geocoder": "0.12.5",
"lodash": "^4.17.21", "lodash": "^4.17.21",
"luxon": "^3.0.3", "luxon": "^3.0.3",
"mv": "^2.1.1", "mv": "^2.1.1",
@ -75,22 +76,20 @@
"passport-custom": "^1.1.1", "passport-custom": "^1.1.1",
"passport-http-header-strategy": "^1.1.0", "passport-http-header-strategy": "^1.1.0",
"passport-jwt": "^4.0.0", "passport-jwt": "^4.0.0",
"pg": "^8.7.1", "pg": "^8.8.0",
"redis": "^3.1.2", "redis": "^4.5.1",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",
"rxjs": "^7.2.0", "rxjs": "^7.2.0",
"sanitize-filename": "^1.6.3", "sanitize-filename": "^1.6.3",
"sharp": "^0.28.0", "sharp": "^0.28.0",
"socket.io-redis": "^6.1.1",
"swagger-ui-express": "^4.4.0",
"systeminformation": "^5.11.0", "systeminformation": "^5.11.0",
"typeorm": "^0.3.6" "typeorm": "^0.3.11"
}, },
"devDependencies": { "devDependencies": {
"@nestjs/cli": "^8.2.8", "@nestjs/cli": "^9.1.8",
"@nestjs/schematics": "^8.0.11", "@nestjs/schematics": "^9.0.4",
"@nestjs/testing": "^8.4.7", "@nestjs/testing": "^9.2.1",
"@openapitools/openapi-generator-cli": "2.5.1", "@openapitools/openapi-generator-cli": "2.5.1",
"@types/archiver": "^5.3.1", "@types/archiver": "^5.3.1",
"@types/bcrypt": "^5.0.0", "@types/bcrypt": "^5.0.0",
@ -109,9 +108,9 @@
"@types/passport-jwt": "^3.0.6", "@types/passport-jwt": "^3.0.6",
"@types/sharp": "^0.30.2", "@types/sharp": "^0.30.2",
"@types/supertest": "^2.0.11", "@types/supertest": "^2.0.11",
"@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/eslint-plugin": "^5.48.1",
"@typescript-eslint/parser": "^5.0.0", "@typescript-eslint/parser": "^5.48.1",
"eslint": "^8.0.1", "eslint": "^8.31.0",
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"eslint-plugin-prettier": "^4.0.0", "eslint-plugin-prettier": "^4.0.0",
"jest": "^27.2.5", "jest": "^27.2.5",
@ -122,7 +121,7 @@
"ts-loader": "^9.2.3", "ts-loader": "^9.2.3",
"ts-node": "^10.0.0", "ts-node": "^10.0.0",
"tsconfig-paths": "^3.10.1", "tsconfig-paths": "^3.10.1",
"typescript": "^4.3.5" "typescript": "^4.9.4"
}, },
"jest": { "jest": {
"clearMocks": true, "clearMocks": true,