Switch esbuild to SWC

This commit is contained in:
Nicolas Meienberger 2022-07-06 23:03:45 +02:00
parent 774ce22dcd
commit 33e0343ba8
12 changed files with 271 additions and 66 deletions

View file

@ -12,8 +12,8 @@ services:
- 5432:5432
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USERNAME: tipi
POSTGRES_DBNAME: tipi
POSTGRES_USER: tipi
POSTGRES_DB: tipi
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d tipi -U tipi" ]
interval: 5s
@ -26,7 +26,7 @@ services:
build:
context: .
dockerfile: Dockerfile.dev
command: /bin/sh -c "cd /api && npm run dev"
command: /bin/sh -c "cd /api && npm run build && npm run dev"
depends_on:
tipi-db:
condition: service_healthy
@ -45,9 +45,9 @@ services:
JWT_SECRET: ${JWT_SECRET}
ROOT_FOLDER_HOST: ${ROOT_FOLDER_HOST}
NGINX_PORT: ${NGINX_PORT}
POSTGRES_PASSWORD: tipi
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USERNAME: tipi
POSTGRES_DBNAME: ${POSTGRES_DBNAME}
POSTGRES_DBNAME: tipi
POSTGRES_HOST: tipi-db
networks:
- tipi_main_network

View file

@ -26,8 +26,8 @@ services:
- 5432:5432
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USERNAME: tipi
POSTGRES_DBNAME: tipi
POSTGRES_USER: tipi
POSTGRES_DB: tipi
healthcheck:
test: [ "CMD-SHELL", "pg_isready -d tipi -U tipi" ]
interval: 5s

View file

@ -0,0 +1,15 @@
{
"jsc": {
"parser": {
"syntax": "typescript",
"tsx": false,
"decorators": true,
"dynamicImport": true
},
"target": "es2022"
},
"module": {
"type": "es6"
},
"isModule": true
}

View file

@ -1,12 +1,14 @@
import { DataSource } from 'typeorm';
export default new DataSource({
export const connectionSource = new DataSource({
type: 'postgres',
host: 'localhost',
port: 5432,
username: 'postgres',
password: 'postgres',
database: 'test-db',
entities: ['src/modules/**/*.entity.ts'],
migrations: ['src/config/migrations/*.ts'],
database: 'postgres',
logging: true,
synchronize: false,
entities: [process.cwd() + '/src/modules/**/*.entity.ts'],
migrations: [process.cwd() + '/src/config/migrations/*.ts'],
});

View file

@ -3,7 +3,7 @@
"version": "0.3.1",
"description": "",
"exports": "./dist/server.js",
"type": "commonjs",
"type": "module",
"engines": {
"node": ">=14.16"
},
@ -13,12 +13,13 @@
"lint:fix": "eslint . --ext .ts --fix",
"test": "jest --colors",
"test:watch": "jest --watch",
"build": "esbuild --bundle src/server.ts --outdir=dist --allow-overwrite --sourcemap --platform=node --analyze=verbose --external:./node_modules/* --format=esm",
"build:watch": "esbuild --bundle src/server.ts --outdir=dist --allow-overwrite --sourcemap --platform=node --external:./node_modules/* --format=esm --watch",
"start:dev": "NODE_ENV=development nodemon --trace-deprecation --trace-warnings --watch dist dist/server.js",
"build": "rm -rf dist && swc ./src -d dist",
"build:watch": "swc ./src -d dist --watch",
"start:dev": "NODE_ENV=development && nodemon --experimental-specifier-resolution=node --trace-deprecation --trace-warnings --watch dist dist/server.js",
"dev": "concurrently \"npm run build:watch\" \"npm run start:dev\"",
"start": "NODE_ENV=production node dist/server.js",
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js -d ormconfig.ts"
"start": "NODE_ENV=production && node --experimental-specifier-resolution=node dist/server.js",
"typeorm": "node --experimental-specifier-resolution=node --loader ts-node/esm ./node_modules/typeorm/cli.js -d ormconfig.ts",
"migration:generate": "npm run typeorm migration:generate ./src/config/migrations/$npm_config_name"
},
"author": "",
"license": "ISC",
@ -55,6 +56,8 @@
},
"devDependencies": {
"@faker-js/faker": "^7.3.0",
"@swc/cli": "^0.1.57",
"@swc/core": "^1.2.210",
"@types/compression": "^1.7.2",
"@types/cookie-parser": "^1.4.3",
"@types/cors": "^2.8.12",
@ -71,7 +74,6 @@
"@typescript-eslint/eslint-plugin": "^5.18.0",
"@typescript-eslint/parser": "^5.22.0",
"concurrently": "^7.1.0",
"esbuild": "^0.14.38",
"eslint": "^8.13.0",
"eslint-config-airbnb-typescript": "^17.0.0",
"eslint-config-prettier": "^8.5.0",
@ -83,7 +85,6 @@
"rimraf": "^3.0.2",
"ts-jest": "^28.0.2",
"ts-node": "^10.8.2",
"tsconfig-paths": "^4.0.0",
"typescript": "4.6.4"
}
}

View file

@ -1,9 +1,4 @@
import * as dotenv from 'dotenv';
import path from 'path';
import { DataSourceOptions } from 'typeorm';
import App from '../modules/apps/app.entity';
import User from '../modules/auth/user.entity';
import { __prod__ } from './constants/constants';
interface IConfig {
logs: {
@ -11,7 +6,6 @@ interface IConfig {
LOGS_APP: string;
LOGS_ERROR: string;
};
typeorm: DataSourceOptions;
NODE_ENV: string;
ROOT_FOLDER: string;
JWT_SECRET: string;
@ -36,10 +30,6 @@ const {
TIPI_VERSION = '',
ROOT_FOLDER_HOST = '',
NGINX_PORT = '80',
POSTGRES_DBNAME = '',
POSTGRES_HOST = '',
POSTGRES_USERNAME = '',
POSTGRES_PASSWORD = '',
} = process.env;
const config: IConfig = {
@ -48,18 +38,6 @@ const config: IConfig = {
LOGS_APP,
LOGS_ERROR,
},
typeorm: {
type: 'postgres',
host: POSTGRES_HOST,
database: POSTGRES_DBNAME,
username: POSTGRES_USERNAME,
password: POSTGRES_PASSWORD,
port: 5432,
logging: !__prod__,
synchronize: !__prod__,
entities: [App, User],
migrations: [path.join(__dirname, './migrations/*')],
},
NODE_ENV,
ROOT_FOLDER: '/tipi',
JWT_SECRET,

View file

@ -0,0 +1,27 @@
import * as dotenv from 'dotenv';
import { DataSource } from 'typeorm';
import App from '../modules/apps/app.entity';
import User from '../modules/auth/user.entity';
import { __prod__ } from './constants/constants';
if (process.env.NODE_ENV !== 'production') {
dotenv.config({ path: '.env.dev' });
} else {
dotenv.config({ path: '.env' });
}
const { POSTGRES_DBNAME = '', POSTGRES_HOST = '', POSTGRES_USERNAME = '', POSTGRES_PASSWORD = '' } = process.env;
console.log('PRODUCTION =>', __prod__);
export default new DataSource({
type: 'postgres',
host: POSTGRES_HOST,
database: POSTGRES_DBNAME,
username: POSTGRES_USERNAME,
password: POSTGRES_PASSWORD,
port: 5432,
logging: !__prod__,
synchronize: !__prod__,
entities: [App, User],
migrations: [process.cwd() + '/dist/config/migrations/*.js'],
});

View file

@ -0,0 +1,21 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class Initial1657122167397 implements MigrationInterface {
name = 'Initial1657122167397';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TABLE "user" ("id" SERIAL NOT NULL, "username" character varying NOT NULL, "password" character varying NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "UQ_78a916df40e02a9deb1c4b75edb" UNIQUE ("username"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`,
);
await queryRunner.query(`CREATE TYPE "public"."app_status_enum" AS ENUM('running', 'stopped', 'installing', 'uninstalling', 'stopping', 'starting', 'missing')`);
await queryRunner.query(
`CREATE TABLE "app" ("id" character varying NOT NULL, "status" "public"."app_status_enum" NOT NULL DEFAULT 'stopped', "lastOpened" TIMESTAMP WITH TIME ZONE DEFAULT now(), "numOpened" integer NOT NULL DEFAULT '0', "config" jsonb NOT NULL, "createdAt" TIMESTAMP NOT NULL DEFAULT now(), "updatedAt" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "UQ_9478629fc093d229df09e560aea" UNIQUE ("id"), CONSTRAINT "PK_9478629fc093d229df09e560aea" PRIMARY KEY ("id"))`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE "app"`);
await queryRunner.query(`DROP TYPE "public"."app_status_enum"`);
await queryRunner.query(`DROP TABLE "user"`);
}
}

View file

@ -1,7 +1,7 @@
import session from 'express-session';
import config from '../../config';
import SessionFileStore from 'session-file-store';
import { COOKIE_MAX_AGE, __prod__ } from '../../config/constants/constants';
import { COOKIE_MAX_AGE } from '../../config/constants/constants';
const getSessionMiddleware = () => {
const FileStore = SessionFileStore(session);
@ -9,7 +9,7 @@ const getSessionMiddleware = () => {
return session({
name: 'qid',
store: new FileStore(),
cookie: { maxAge: COOKIE_MAX_AGE, secure: __prod__, sameSite: 'lax', httpOnly: true },
cookie: { maxAge: COOKIE_MAX_AGE, secure: false, sameSite: 'lax', httpOnly: true },
secret: config.JWT_SECRET,
resave: false,
saveUninitialized: false,

View file

@ -2,7 +2,6 @@ import 'reflect-metadata';
import express from 'express';
import { ApolloServerPluginLandingPageGraphQLPlayground as Playground } from 'apollo-server-core';
import config from './config';
import { DataSource } from 'typeorm';
import { ApolloServer } from 'apollo-server-express';
import { createSchema } from './schema';
import { ApolloLogs } from './config/logger/apollo.logger';
@ -12,6 +11,7 @@ import getSessionMiddleware from './core/middlewares/sessionMiddleware';
import { MyContext } from './types';
import { __prod__ } from './config/constants/constants';
import cors from 'cors';
import datasource from './config/datasource';
const main = async () => {
try {
@ -36,11 +36,10 @@ const main = async () => {
);
app.use(getSessionMiddleware());
const AppDataSource = new DataSource(config.typeorm);
await AppDataSource.initialize();
await datasource.initialize();
if (__prod__) {
await AppDataSource.runMigrations();
await datasource.runMigrations();
}
const schema = await createSchema();
@ -49,7 +48,7 @@ const main = async () => {
const plugins = [ApolloLogs];
if (__prod__) {
if (!__prod__) {
plugins.push(Playground({ settings: { 'request.credentials': 'include' } }));
}

View file

@ -1,22 +1,24 @@
{
"compilerOptions": {
"target": "es2018",
"lib": ["es2018", "esnext.asynciterable"],
"module": "es2022",
"lib": ["es2021", "ESNext.AsyncIterable"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "commonjs",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": false,
"jsx": "preserve",
"incremental": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"outDir": "./dist"
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.cjs", "jest.config.cjs", "ormconfig.js"],
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", "**/*.cjs", "jest.config.cjs"],
"exclude": ["node_modules"]
}

View file

@ -128,6 +128,8 @@ importers:
packages/system-api:
specifiers:
'@faker-js/faker': ^7.3.0
'@swc/cli': ^0.1.57
'@swc/core': ^1.2.210
'@types/compression': ^1.7.2
'@types/cookie-parser': ^1.4.3
'@types/cors': ^2.8.12
@ -182,7 +184,6 @@ importers:
tcp-port-used: ^1.0.2
ts-jest: ^28.0.2
ts-node: ^10.8.2
tsconfig-paths: ^4.0.0
type-graphql: ^1.1.1
typeorm: ^0.3.6
typescript: 4.6.4
@ -219,6 +220,8 @@ importers:
winston: 3.7.2
devDependencies:
'@faker-js/faker': 7.3.0
'@swc/cli': 0.1.57_@swc+core@1.2.210
'@swc/core': 1.2.210
'@types/compression': 1.7.2
'@types/cookie-parser': 1.4.3
'@types/cors': 2.8.12
@ -246,8 +249,7 @@ importers:
prettier: 2.6.2
rimraf: 3.0.2
ts-jest: 28.0.2_k4xvjffwcpckmnpd5fcvxvnd24
ts-node: 10.8.2_l47be6km5p57gglrggidw5gsgm
tsconfig-paths: 4.0.0
ts-node: 10.8.2_uva6s4l7h33czpzezvop6ux5pe
typescript: 4.6.4
packages:
@ -3228,6 +3230,161 @@ packages:
resolution: {integrity: sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==}
dev: false
/@swc/cli/0.1.57_@swc+core@1.2.210:
resolution: {integrity: sha512-HxM8TqYHhAg+zp7+RdTU69bnkl4MWdt1ygyp6BDIPjTiaJVH6Dizn2ezbgDS8mnFZI1FyhKvxU/bbaUs8XhzQg==}
engines: {node: '>= 12.13'}
hasBin: true
peerDependencies:
'@swc/core': ^1.2.66
chokidar: ^3.5.1
peerDependenciesMeta:
chokidar:
optional: true
dependencies:
'@swc/core': 1.2.210
commander: 7.2.0
fast-glob: 3.2.11
slash: 3.0.0
source-map: 0.7.4
dev: true
/@swc/core-android-arm-eabi/1.2.210:
resolution: {integrity: sha512-JGPcCM9XixJIbCHP/fbI79pXTuU9C3V6AxolTy0zEhgNe7r59CiSVcGWN5t5dgkEuwApAxN2iNjJRmz4z+ALAg==}
engines: {node: '>=10'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@swc/core-android-arm64/1.2.210:
resolution: {integrity: sha512-oP2b8LjZiMNrzOnoC/mVomksSiqQDrIsm4LxPAGTK1fWnbtITLF/Wj/St1wnUu98jZf5kvQP9AH3p2d3J6UaDA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/@swc/core-darwin-arm64/1.2.210:
resolution: {integrity: sha512-7PEHF1AHRpVcMtttfOVtyjZq73VUVaLsBnTWUqdFv1toRu42n+CmnXm3brmnSwyi7TTtCU/nahunWNmBbJeG8A==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-darwin-x64/1.2.210:
resolution: {integrity: sha512-FEPSgnzRy7X9SaDWtAQKfoodttG90GOyTKqBC/915SPhvuprSf3/PpX2NP63E44/GVgEoNzmNGGiUzbL5k70Dg==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/@swc/core-freebsd-x64/1.2.210:
resolution: {integrity: sha512-nehrNTikTfY4H08VUjp20/U5/bt4PC/hi8Zthjz1A0evcIdA0WHajByFj0um/0lYmdF1K6T7A9UuaoOwPEAZ0A==}
engines: {node: '>=10'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm-gnueabihf/1.2.210:
resolution: {integrity: sha512-vbSQxZcPBJC2WqVWHZhZIPpv+8xoNug/Qv6FLFPcl735MeNRzgciKC1LlXuy6DNA0RqoCPPyzaK2jnwJyq4bSw==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-gnu/1.2.210:
resolution: {integrity: sha512-gfItagFmC06q5Uu7WHf/O3n1yKhA7uAo9VPUcNDKKrOh/WSkMI2dxtoeo4u5xOuJWKWedGCcdyJw46uhpYST0w==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-arm64-musl/1.2.210:
resolution: {integrity: sha512-3nlNHIYiuppJBB+bbaxLfGN/mnofaVvKVEwUQ9HPtghY87zFIsKl1RfNQtxcOlcarcWya1XAMSk9NXv2dFHWDg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-gnu/1.2.210:
resolution: {integrity: sha512-BmhfneSvUzIufUhPaql3YvoWlSrNZiAhpL3c5fPrfQxADywkZLljgh0kckxpeCi5R8iWIUlNSPFmo589QS2Jsg==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-linux-x64-musl/1.2.210:
resolution: {integrity: sha512-0VT7FeF4Vc/u0oxVLplF/0hcApE+fwC4Njf49SFyvszgAMc9a+fyUNBX2NSqIrTQFwmifRcpQOeXDT8Edy0g6w==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-arm64-msvc/1.2.210:
resolution: {integrity: sha512-MwM35TtzMX7GS424y/Bk0CrwWsYRfZ/WX15QAi/Yz+fnPCDLtFNknRC7gAaTpDeqywu6dsXUFyErzK1FC8l8YA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-ia32-msvc/1.2.210:
resolution: {integrity: sha512-KpofYa0wqd8urFLrdsz0yQU2YkF7NEDU3+IzqUNnxwamlaEFg/C3l6rTgmiihHXIZuYQS9di4YwykyMVVXutOA==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core-win32-x64-msvc/1.2.210:
resolution: {integrity: sha512-bUhY0bK8s+B6LSdbNu9L0RKrO/rWrXICtIZyHZolUZKo326hfQ0Iwx+N/xuh6jYpON0RaY9pR0HAyaCDHugoRA==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/@swc/core/1.2.210:
resolution: {integrity: sha512-euiCxnx+dCnE6iDGM04hIvcLS2LADVgIDo0OGnxqRce4SwUNHZi/KcRxIT04YtJd3BdO5v+l4K8RHIx4jvn+TA==}
engines: {node: '>=10'}
hasBin: true
optionalDependencies:
'@swc/core-android-arm-eabi': 1.2.210
'@swc/core-android-arm64': 1.2.210
'@swc/core-darwin-arm64': 1.2.210
'@swc/core-darwin-x64': 1.2.210
'@swc/core-freebsd-x64': 1.2.210
'@swc/core-linux-arm-gnueabihf': 1.2.210
'@swc/core-linux-arm64-gnu': 1.2.210
'@swc/core-linux-arm64-musl': 1.2.210
'@swc/core-linux-x64-gnu': 1.2.210
'@swc/core-linux-x64-musl': 1.2.210
'@swc/core-win32-arm64-msvc': 1.2.210
'@swc/core-win32-ia32-msvc': 1.2.210
'@swc/core-win32-x64-msvc': 1.2.210
dev: true
/@szmarczak/http-timer/1.1.2:
resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
engines: {node: '>=6'}
@ -4984,6 +5141,11 @@ packages:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: false
/commander/7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
dev: true
/common-tags/1.8.2:
resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
engines: {node: '>=4.0.0'}
@ -7856,7 +8018,7 @@ packages:
pretty-format: 28.1.0
slash: 3.0.0
strip-json-comments: 3.1.1
ts-node: 10.8.2_l47be6km5p57gglrggidw5gsgm
ts-node: 10.8.2_uva6s4l7h33czpzezvop6ux5pe
transitivePeerDependencies:
- supports-color
dev: true
@ -10785,6 +10947,11 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/source-map/0.7.4:
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
engines: {node: '>= 8'}
dev: true
/space-separated-tokens/2.0.1:
resolution: {integrity: sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw==}
dev: false
@ -11308,7 +11475,7 @@ packages:
resolution: {integrity: sha512-DEQrfv6l7IvN2jlzc/VTdZJYsWUnQNCsueYjMkC/iXoEoi5fNan6MjeDqkvhfzbmHgdz9UxDUluX3V5HdjTydQ==}
dev: true
/ts-node/10.8.2_l47be6km5p57gglrggidw5gsgm:
/ts-node/10.8.2_uva6s4l7h33czpzezvop6ux5pe:
resolution: {integrity: sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==}
hasBin: true
peerDependencies:
@ -11323,6 +11490,7 @@ packages:
optional: true
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@swc/core': 1.2.210
'@tsconfig/node10': 1.0.9
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
@ -11364,14 +11532,6 @@ packages:
strip-bom: 3.0.0
dev: true
/tsconfig-paths/4.0.0:
resolution: {integrity: sha512-SLBg2GBKlR6bVtMgJJlud/o3waplKtL7skmLkExomIiaAtLGtVsoXIqP3SYdjbcH9lq/KVv7pMZeCBpLYOit6Q==}
dependencies:
json5: 2.2.1
minimist: 1.2.6
strip-bom: 3.0.0
dev: true
/tslib/1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
@ -11519,7 +11679,7 @@ packages:
pg: 8.7.3
reflect-metadata: 0.1.13
sha.js: 2.4.11
ts-node: 10.8.2_l47be6km5p57gglrggidw5gsgm
ts-node: 10.8.2_uva6s4l7h33czpzezvop6ux5pe
tslib: 2.4.0
uuid: 8.3.2
xml2js: 0.4.23