chore(deps): update typeorm

This commit is contained in:
renovate[bot] 2022-06-25 13:48:25 +00:00 committed by Julian Tölle
parent 9900bc641d
commit ef84800ce8
22 changed files with 232 additions and 242 deletions

308
package-lock.json generated
View file

@ -21,7 +21,7 @@
"@nestjs/serve-static": "2.2.2", "@nestjs/serve-static": "2.2.2",
"@nestjs/swagger": "5.2.1", "@nestjs/swagger": "5.2.1",
"@nestjs/terminus": "8.0.8", "@nestjs/terminus": "8.0.8",
"@nestjs/typeorm": "8.0.4", "@nestjs/typeorm": "8.1.4",
"@opentelemetry/api": "1.0.4", "@opentelemetry/api": "1.0.4",
"@opentelemetry/context-async-hooks": "1.0.1", "@opentelemetry/context-async-hooks": "1.0.1",
"@opentelemetry/exporter-prometheus": "0.27.0", "@opentelemetry/exporter-prometheus": "0.27.0",
@ -46,7 +46,7 @@
"nest-raven": "8.1.0", "nest-raven": "8.1.0",
"nestjs-otel": "3.0.4", "nestjs-otel": "3.0.4",
"nestjs-pino": "2.6.0", "nestjs-pino": "2.6.0",
"nestjs-typeorm-paginate": "2.6.3", "nestjs-typeorm-paginate": "4.0.1",
"passport": "0.6.0", "passport": "0.6.0",
"passport-jwt": "4.0.0", "passport-jwt": "4.0.0",
"passport-spotify": "2.0.0", "passport-spotify": "2.0.0",
@ -57,7 +57,7 @@
"rimraf": "3.0.2", "rimraf": "3.0.2",
"rxjs": "7.5.5", "rxjs": "7.5.5",
"swagger-ui-express": "4.4.0", "swagger-ui-express": "4.4.0",
"typeorm": "0.2.41" "typeorm": "0.3.6"
}, },
"devDependencies": { "devDependencies": {
"@nestjs/cli": "8.2.8", "@nestjs/cli": "8.2.8",
@ -846,7 +846,7 @@
"version": "0.8.1", "version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true, "devOptional": true,
"dependencies": { "dependencies": {
"@jridgewell/trace-mapping": "0.3.9" "@jridgewell/trace-mapping": "0.3.9"
}, },
@ -1468,7 +1468,7 @@
"version": "3.0.7", "version": "3.0.7",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
"integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=6.0.0" "node": ">=6.0.0"
} }
@ -1477,13 +1477,13 @@
"version": "1.4.13", "version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
"integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==",
"dev": true "devOptional": true
}, },
"node_modules/@jridgewell/trace-mapping": { "node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9", "version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true, "devOptional": true,
"dependencies": { "dependencies": {
"@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10" "@jridgewell/sourcemap-codec": "^1.4.10"
@ -1785,14 +1785,6 @@
"rxjs": "^6.0.0 || ^7.2.0" "rxjs": "^6.0.0 || ^7.2.0"
} }
}, },
"node_modules/@nestjs/config/node_modules/dotenv": {
"version": "16.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
"integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==",
"engines": {
"node": ">=12"
}
},
"node_modules/@nestjs/core": { "node_modules/@nestjs/core": {
"version": "8.4.7", "version": "8.4.7",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.4.7.tgz", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.4.7.tgz",
@ -2064,9 +2056,9 @@
} }
}, },
"node_modules/@nestjs/typeorm": { "node_modules/@nestjs/typeorm": {
"version": "8.0.4", "version": "8.1.4",
"resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-8.0.4.tgz", "resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-8.1.4.tgz",
"integrity": "sha512-l1Fv+XicVFs7j4EKTq32lJ6QomYLlXZwvug9zcts6IBDVd8rYYBPy28pyBMDzLtnm0zD4tcW298rpylL7eTZtQ==", "integrity": "sha512-hKv0Y9PG7YkHQfjsrNqM1s/VajlT7Mla8gaoblmuLzgMKsOQFsZXSHlXNxXZ8CA4aCPeDUiXtvqc4zocadGiIQ==",
"dependencies": { "dependencies": {
"uuid": "8.3.2" "uuid": "8.3.2"
}, },
@ -2075,7 +2067,7 @@
"@nestjs/core": "^8.0.0", "@nestjs/core": "^8.0.0",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"rxjs": "^7.2.0", "rxjs": "^7.2.0",
"typeorm": "^0.2.34" "typeorm": "^0.3.0"
} }
}, },
"node_modules/@nodelib/fs.scandir": { "node_modules/@nodelib/fs.scandir": {
@ -2836,25 +2828,25 @@
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz",
"integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==", "integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==",
"dev": true "devOptional": true
}, },
"node_modules/@tsconfig/node12": { "node_modules/@tsconfig/node12": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz",
"integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==", "integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==",
"dev": true "devOptional": true
}, },
"node_modules/@tsconfig/node14": { "node_modules/@tsconfig/node14": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz",
"integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==", "integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==",
"dev": true "devOptional": true
}, },
"node_modules/@tsconfig/node16": { "node_modules/@tsconfig/node16": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true "devOptional": true
}, },
"node_modules/@types/babel__core": { "node_modules/@types/babel__core": {
"version": "7.1.19", "version": "7.1.19",
@ -3180,11 +3172,6 @@
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
"dev": true "dev": true
}, },
"node_modules/@types/zen-observable": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
"integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
},
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.29.0", "version": "5.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz",
@ -3560,7 +3547,7 @@
"version": "8.7.1", "version": "8.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
"integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true, "devOptional": true,
"bin": { "bin": {
"acorn": "bin/acorn" "acorn": "bin/acorn"
}, },
@ -3776,7 +3763,7 @@
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true "devOptional": true
}, },
"node_modules/argparse": { "node_modules/argparse": {
"version": "1.0.10", "version": "1.0.10",
@ -4808,7 +4795,7 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true "devOptional": true
}, },
"node_modules/cron": { "node_modules/cron": {
"version": "2.0.0", "version": "2.0.0",
@ -5012,7 +4999,7 @@
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=0.3.1" "node": ">=0.3.1"
} }
@ -5072,11 +5059,11 @@
} }
}, },
"node_modules/dotenv": { "node_modules/dotenv": {
"version": "8.6.0", "version": "16.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==",
"engines": { "engines": {
"node": ">=10" "node": ">=12"
} }
}, },
"node_modules/dotenv-expand": { "node_modules/dotenv-expand": {
@ -6648,14 +6635,14 @@
} }
}, },
"node_modules/glob": { "node_modules/glob": {
"version": "7.1.7", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": { "dependencies": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
"inherits": "2", "inherits": "2",
"minimatch": "^3.0.4", "minimatch": "^3.1.1",
"once": "^1.3.0", "once": "^1.3.0",
"path-is-absolute": "^1.0.0" "path-is-absolute": "^1.0.0"
}, },
@ -9062,7 +9049,7 @@
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true "devOptional": true
}, },
"node_modules/makeerror": { "node_modules/makeerror": {
"version": "1.0.12", "version": "1.0.12",
@ -9309,31 +9296,12 @@
} }
}, },
"node_modules/nestjs-typeorm-paginate": { "node_modules/nestjs-typeorm-paginate": {
"version": "2.6.3", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/nestjs-typeorm-paginate/-/nestjs-typeorm-paginate-2.6.3.tgz", "resolved": "https://registry.npmjs.org/nestjs-typeorm-paginate/-/nestjs-typeorm-paginate-4.0.1.tgz",
"integrity": "sha512-YxrqG3n7OXTjbSKqqceGhQc5MSaUKz8mCiT1gn3+wwYrrLCDS6B5QKGBm3NTx3GqZg16p48amlFGNH8MCHKvqw==", "integrity": "sha512-7rV+2UcaeSztHJFp5nXxJ/nax0GLUHFBO/TXW+oOVX+9YtUSaXknvDap33IENa151URCwgJh0jQ15RH9SLPIuw==",
"hasInstallScript": true,
"dependencies": {
"chalk": "^4.1.2"
},
"peerDependencies": { "peerDependencies": {
"@nestjs/common": "^6.1.1 || ^5.6.2 || ^7.0.0 || ^8.0.0", "@nestjs/common": "^6.1.1 || ^5.6.2 || ^7.0.0 || ^8.0.0",
"typeorm": "^0.2.12" "typeorm": "^0.3.0"
}
},
"node_modules/nestjs-typeorm-paginate/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
},
"funding": {
"url": "https://github.com/chalk/chalk?sponsor=1"
} }
}, },
"node_modules/node-emoji": { "node_modules/node-emoji": {
@ -11733,7 +11701,7 @@
"version": "10.8.1", "version": "10.8.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz",
"integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==",
"dev": true, "devOptional": true,
"dependencies": { "dependencies": {
"@cspotcode/source-map-support": "^0.8.0", "@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7", "@tsconfig/node10": "^1.0.7",
@ -11776,7 +11744,7 @@
"version": "8.2.0", "version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=0.4.0" "node": ">=0.4.0"
} }
@ -11927,51 +11895,62 @@
} }
}, },
"node_modules/typeorm": { "node_modules/typeorm": {
"version": "0.2.41", "version": "0.3.6",
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz", "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.6.tgz",
"integrity": "sha512-/d8CLJJxKPgsnrZWiMyPI0rz2MFZnBQrnQ5XP3Vu3mswv2WPexb58QM6BEtmRmlTMYN5KFWUz8SKluze+wS9xw==", "integrity": "sha512-DRqgfqcelMiGgWSMbBmVoJNFN2nPNA3EeY2gC324ndr2DZoGRTb9ILtp2oGVGnlA+cu5zgQ6it5oqKFNkte7Aw==",
"dependencies": { "dependencies": {
"@sqltools/formatter": "^1.2.2", "@sqltools/formatter": "^1.2.2",
"app-root-path": "^3.0.0", "app-root-path": "^3.0.0",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"cli-highlight": "^2.1.11", "cli-highlight": "^2.1.11",
"debug": "^4.3.1", "date-fns": "^2.28.0",
"dotenv": "^8.2.0", "debug": "^4.3.3",
"glob": "^7.1.6", "dotenv": "^16.0.0",
"js-yaml": "^4.0.0", "glob": "^7.2.0",
"js-yaml": "^4.1.0",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"sha.js": "^2.4.11", "sha.js": "^2.4.11",
"tslib": "^2.1.0", "tslib": "^2.3.1",
"uuid": "^8.3.2",
"xml2js": "^0.4.23", "xml2js": "^0.4.23",
"yargs": "^17.0.1", "yargs": "^17.3.1"
"zen-observable-ts": "^1.0.0"
}, },
"bin": { "bin": {
"typeorm": "cli.js" "typeorm": "cli.js",
"typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js",
"typeorm-ts-node-esm": "cli-ts-node-esm.js"
},
"engines": {
"node": ">= 12.9.0"
}, },
"funding": { "funding": {
"url": "https://opencollective.com/typeorm" "url": "https://opencollective.com/typeorm"
}, },
"peerDependencies": { "peerDependencies": {
"@sap/hana-client": "*", "@google-cloud/spanner": "^5.18.0",
"better-sqlite3": "*", "@sap/hana-client": "^2.11.14",
"hdb-pool": "*", "better-sqlite3": "^7.1.2",
"ioredis": "*", "hdb-pool": "^0.1.6",
"ioredis": "^4.28.3",
"mongodb": "^3.6.0", "mongodb": "^3.6.0",
"mssql": "*", "mssql": "^6.3.1",
"mysql2": "*", "mysql2": "^2.2.5",
"oracledb": "*", "oracledb": "^5.1.0",
"pg": "*", "pg": "^8.5.1",
"pg-native": "*", "pg-native": "^3.0.0",
"pg-query-stream": "*", "pg-query-stream": "^4.0.0",
"redis": "*", "redis": "^3.1.1 || ^4.0.0",
"sql.js": "*", "sql.js": "^1.4.0",
"sqlite3": "*", "sqlite3": "^5.0.2",
"typeorm-aurora-data-api-driver": "*" "ts-node": "^10.7.0",
"typeorm-aurora-data-api-driver": "^2.0.0"
}, },
"peerDependenciesMeta": { "peerDependenciesMeta": {
"@google-cloud/spanner": {
"optional": true
},
"@sap/hana-client": { "@sap/hana-client": {
"optional": true "optional": true
}, },
@ -12014,6 +11993,9 @@
"sqlite3": { "sqlite3": {
"optional": true "optional": true
}, },
"ts-node": {
"optional": true
},
"typeorm-aurora-data-api-driver": { "typeorm-aurora-data-api-driver": {
"optional": true "optional": true
} }
@ -12113,7 +12095,7 @@
"version": "4.7.4", "version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"dev": true, "devOptional": true,
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",
"tsserver": "bin/tsserver" "tsserver": "bin/tsserver"
@ -12211,7 +12193,7 @@
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true "devOptional": true
}, },
"node_modules/v8-to-istanbul": { "node_modules/v8-to-istanbul": {
"version": "8.1.1", "version": "8.1.1",
@ -12635,7 +12617,7 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true, "devOptional": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -12651,20 +12633,6 @@
"funding": { "funding": {
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
},
"node_modules/zen-observable": {
"version": "0.8.15",
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
"integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
},
"node_modules/zen-observable-ts": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
"integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
"dependencies": {
"@types/zen-observable": "0.8.3",
"zen-observable": "0.8.15"
}
} }
}, },
"dependencies": { "dependencies": {
@ -13243,7 +13211,7 @@
"version": "0.8.1", "version": "0.8.1",
"resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
"integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
"dev": true, "devOptional": true,
"requires": { "requires": {
"@jridgewell/trace-mapping": "0.3.9" "@jridgewell/trace-mapping": "0.3.9"
} }
@ -13735,19 +13703,19 @@
"version": "3.0.7", "version": "3.0.7",
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
"integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==", "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
"dev": true "devOptional": true
}, },
"@jridgewell/sourcemap-codec": { "@jridgewell/sourcemap-codec": {
"version": "1.4.13", "version": "1.4.13",
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
"integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==", "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==",
"dev": true "devOptional": true
}, },
"@jridgewell/trace-mapping": { "@jridgewell/trace-mapping": {
"version": "0.3.9", "version": "0.3.9",
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
"integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
"dev": true, "devOptional": true,
"requires": { "requires": {
"@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10" "@jridgewell/sourcemap-codec": "^1.4.10"
@ -13947,13 +13915,6 @@
"dotenv-expand": "8.0.3", "dotenv-expand": "8.0.3",
"lodash": "4.17.21", "lodash": "4.17.21",
"uuid": "8.3.2" "uuid": "8.3.2"
},
"dependencies": {
"dotenv": {
"version": "16.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
"integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ=="
}
} }
}, },
"@nestjs/core": { "@nestjs/core": {
@ -14099,9 +14060,9 @@
} }
}, },
"@nestjs/typeorm": { "@nestjs/typeorm": {
"version": "8.0.4", "version": "8.1.4",
"resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-8.0.4.tgz", "resolved": "https://registry.npmjs.org/@nestjs/typeorm/-/typeorm-8.1.4.tgz",
"integrity": "sha512-l1Fv+XicVFs7j4EKTq32lJ6QomYLlXZwvug9zcts6IBDVd8rYYBPy28pyBMDzLtnm0zD4tcW298rpylL7eTZtQ==", "integrity": "sha512-hKv0Y9PG7YkHQfjsrNqM1s/VajlT7Mla8gaoblmuLzgMKsOQFsZXSHlXNxXZ8CA4aCPeDUiXtvqc4zocadGiIQ==",
"requires": { "requires": {
"uuid": "8.3.2" "uuid": "8.3.2"
} }
@ -14656,25 +14617,25 @@
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.7.tgz",
"integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==", "integrity": "sha512-aBvUmXLQbayM4w3A8TrjwrXs4DZ8iduJnuJLLRGdkWlyakCf1q6uHZJBzXoRA/huAEknG5tcUyQxN3A+In5euQ==",
"dev": true "devOptional": true
}, },
"@tsconfig/node12": { "@tsconfig/node12": {
"version": "1.0.7", "version": "1.0.7",
"resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.7.tgz",
"integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==", "integrity": "sha512-dgasobK/Y0wVMswcipr3k0HpevxFJLijN03A8mYfEPvWvOs14v0ZlYTR4kIgMx8g4+fTyTFv8/jLCIfRqLDJ4A==",
"dev": true "devOptional": true
}, },
"@tsconfig/node14": { "@tsconfig/node14": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.0.tgz",
"integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==", "integrity": "sha512-RKkL8eTdPv6t5EHgFKIVQgsDapugbuOptNd9OOunN/HAkzmmTnZELx1kNCK0rSdUYGmiFMM3rRQMAWiyp023LQ==",
"dev": true "devOptional": true
}, },
"@tsconfig/node16": { "@tsconfig/node16": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
"integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
"dev": true "devOptional": true
}, },
"@types/babel__core": { "@types/babel__core": {
"version": "7.1.19", "version": "7.1.19",
@ -15000,11 +14961,6 @@
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==",
"dev": true "dev": true
}, },
"@types/zen-observable": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
"integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
},
"@typescript-eslint/eslint-plugin": { "@typescript-eslint/eslint-plugin": {
"version": "5.29.0", "version": "5.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.29.0.tgz",
@ -15285,7 +15241,7 @@
"version": "8.7.1", "version": "8.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
"integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true "devOptional": true
}, },
"acorn-globals": { "acorn-globals": {
"version": "6.0.0", "version": "6.0.0",
@ -15439,7 +15395,7 @@
"version": "4.1.3", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
"integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
"dev": true "devOptional": true
}, },
"argparse": { "argparse": {
"version": "1.0.10", "version": "1.0.10",
@ -16206,7 +16162,7 @@
"version": "1.1.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
"integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
"dev": true "devOptional": true
}, },
"cron": { "cron": {
"version": "2.0.0", "version": "2.0.0",
@ -16363,7 +16319,7 @@
"version": "4.0.2", "version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
"dev": true "devOptional": true
}, },
"diff-sequences": { "diff-sequences": {
"version": "27.5.1", "version": "27.5.1",
@ -16407,9 +16363,9 @@
} }
}, },
"dotenv": { "dotenv": {
"version": "8.6.0", "version": "16.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
"integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ=="
}, },
"dotenv-expand": { "dotenv-expand": {
"version": "8.0.3", "version": "8.0.3",
@ -17608,14 +17564,14 @@
} }
}, },
"glob": { "glob": {
"version": "7.1.7", "version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"requires": { "requires": {
"fs.realpath": "^1.0.0", "fs.realpath": "^1.0.0",
"inflight": "^1.0.4", "inflight": "^1.0.4",
"inherits": "2", "inherits": "2",
"minimatch": "^3.0.4", "minimatch": "^3.1.1",
"once": "^1.3.0", "once": "^1.3.0",
"path-is-absolute": "^1.0.0" "path-is-absolute": "^1.0.0"
} }
@ -19414,7 +19370,7 @@
"version": "1.3.6", "version": "1.3.6",
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
"integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
"dev": true "devOptional": true
}, },
"makeerror": { "makeerror": {
"version": "1.0.12", "version": "1.0.12",
@ -19601,23 +19557,10 @@
"requires": {} "requires": {}
}, },
"nestjs-typeorm-paginate": { "nestjs-typeorm-paginate": {
"version": "2.6.3", "version": "4.0.1",
"resolved": "https://registry.npmjs.org/nestjs-typeorm-paginate/-/nestjs-typeorm-paginate-2.6.3.tgz", "resolved": "https://registry.npmjs.org/nestjs-typeorm-paginate/-/nestjs-typeorm-paginate-4.0.1.tgz",
"integrity": "sha512-YxrqG3n7OXTjbSKqqceGhQc5MSaUKz8mCiT1gn3+wwYrrLCDS6B5QKGBm3NTx3GqZg16p48amlFGNH8MCHKvqw==", "integrity": "sha512-7rV+2UcaeSztHJFp5nXxJ/nax0GLUHFBO/TXW+oOVX+9YtUSaXknvDap33IENa151URCwgJh0jQ15RH9SLPIuw==",
"requires": { "requires": {}
"chalk": "^4.1.2"
},
"dependencies": {
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
}
}
}, },
"node-emoji": { "node-emoji": {
"version": "1.11.0", "version": "1.11.0",
@ -21409,7 +21352,7 @@
"version": "10.8.1", "version": "10.8.1",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.1.tgz",
"integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==", "integrity": "sha512-Wwsnao4DQoJsN034wePSg5nZiw4YKXf56mPIAeD6wVmiv+RytNSWqc2f3fKvcUoV+Yn2+yocD71VOfQHbmVX4g==",
"dev": true, "devOptional": true,
"requires": { "requires": {
"@cspotcode/source-map-support": "^0.8.0", "@cspotcode/source-map-support": "^0.8.0",
"@tsconfig/node10": "^1.0.7", "@tsconfig/node10": "^1.0.7",
@ -21430,7 +21373,7 @@
"version": "8.2.0", "version": "8.2.0",
"resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
"integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
"dev": true "devOptional": true
} }
} }
}, },
@ -21553,26 +21496,27 @@
} }
}, },
"typeorm": { "typeorm": {
"version": "0.2.41", "version": "0.3.6",
"resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.2.41.tgz", "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.6.tgz",
"integrity": "sha512-/d8CLJJxKPgsnrZWiMyPI0rz2MFZnBQrnQ5XP3Vu3mswv2WPexb58QM6BEtmRmlTMYN5KFWUz8SKluze+wS9xw==", "integrity": "sha512-DRqgfqcelMiGgWSMbBmVoJNFN2nPNA3EeY2gC324ndr2DZoGRTb9ILtp2oGVGnlA+cu5zgQ6it5oqKFNkte7Aw==",
"requires": { "requires": {
"@sqltools/formatter": "^1.2.2", "@sqltools/formatter": "^1.2.2",
"app-root-path": "^3.0.0", "app-root-path": "^3.0.0",
"buffer": "^6.0.3", "buffer": "^6.0.3",
"chalk": "^4.1.0", "chalk": "^4.1.0",
"cli-highlight": "^2.1.11", "cli-highlight": "^2.1.11",
"debug": "^4.3.1", "date-fns": "^2.28.0",
"dotenv": "^8.2.0", "debug": "^4.3.3",
"glob": "^7.1.6", "dotenv": "^16.0.0",
"js-yaml": "^4.0.0", "glob": "^7.2.0",
"js-yaml": "^4.1.0",
"mkdirp": "^1.0.4", "mkdirp": "^1.0.4",
"reflect-metadata": "^0.1.13", "reflect-metadata": "^0.1.13",
"sha.js": "^2.4.11", "sha.js": "^2.4.11",
"tslib": "^2.1.0", "tslib": "^2.3.1",
"uuid": "^8.3.2",
"xml2js": "^0.4.23", "xml2js": "^0.4.23",
"yargs": "^17.0.1", "yargs": "^17.3.1"
"zen-observable-ts": "^1.0.0"
}, },
"dependencies": { "dependencies": {
"argparse": { "argparse": {
@ -21636,7 +21580,7 @@
"version": "4.7.4", "version": "4.7.4",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz",
"integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==",
"dev": true "devOptional": true
}, },
"uid2": { "uid2": {
"version": "0.0.3", "version": "0.0.3",
@ -21712,7 +21656,7 @@
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
"integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
"dev": true "devOptional": true
}, },
"v8-to-istanbul": { "v8-to-istanbul": {
"version": "8.1.1", "version": "8.1.1",
@ -22026,27 +21970,13 @@
"version": "3.1.1", "version": "3.1.1",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
"integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
"dev": true "devOptional": true
}, },
"yocto-queue": { "yocto-queue": {
"version": "0.1.0", "version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"dev": true "dev": true
},
"zen-observable": {
"version": "0.8.15",
"resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
"integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
},
"zen-observable-ts": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz",
"integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==",
"requires": {
"@types/zen-observable": "0.8.3",
"zen-observable": "0.8.15"
}
} }
} }
} }

View file

@ -37,7 +37,7 @@
"@nestjs/serve-static": "2.2.2", "@nestjs/serve-static": "2.2.2",
"@nestjs/swagger": "5.2.1", "@nestjs/swagger": "5.2.1",
"@nestjs/terminus": "8.0.8", "@nestjs/terminus": "8.0.8",
"@nestjs/typeorm": "8.0.4", "@nestjs/typeorm": "8.1.4",
"@opentelemetry/api": "1.0.4", "@opentelemetry/api": "1.0.4",
"@opentelemetry/context-async-hooks": "1.0.1", "@opentelemetry/context-async-hooks": "1.0.1",
"@opentelemetry/exporter-prometheus": "0.27.0", "@opentelemetry/exporter-prometheus": "0.27.0",
@ -62,7 +62,7 @@
"nest-raven": "8.1.0", "nest-raven": "8.1.0",
"nestjs-otel": "3.0.4", "nestjs-otel": "3.0.4",
"nestjs-pino": "2.6.0", "nestjs-pino": "2.6.0",
"nestjs-typeorm-paginate": "2.6.3", "nestjs-typeorm-paginate": "4.0.1",
"passport": "0.6.0", "passport": "0.6.0",
"passport-jwt": "4.0.0", "passport-jwt": "4.0.0",
"passport-spotify": "2.0.0", "passport-spotify": "2.0.0",
@ -73,7 +73,7 @@
"rimraf": "3.0.2", "rimraf": "3.0.2",
"rxjs": "7.5.5", "rxjs": "7.5.5",
"swagger-ui-express": "4.4.0", "swagger-ui-express": "4.4.0",
"typeorm": "0.2.41" "typeorm": "0.3.6"
}, },
"devDependencies": { "devDependencies": {
"@nestjs/cli": "8.2.8", "@nestjs/cli": "8.2.8",

View file

@ -1,5 +1,6 @@
/* eslint-disable max-classes-per-file */ /* eslint-disable max-classes-per-file */
import { EntityRepository, Repository, SelectQueryBuilder } from "typeorm"; import { Repository, SelectQueryBuilder } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { User } from "../users/user.entity"; import { User } from "../users/user.entity";
import { AuthSession } from "./auth-session.entity"; import { AuthSession } from "./auth-session.entity";

View file

@ -2,8 +2,8 @@ import { MiddlewareConsumer, Module, NestModule } from "@nestjs/common";
import { ConfigService } from "@nestjs/config"; import { ConfigService } from "@nestjs/config";
import { JwtModule } from "@nestjs/jwt"; import { JwtModule } from "@nestjs/jwt";
import { PassportModule } from "@nestjs/passport"; import { PassportModule } from "@nestjs/passport";
import { TypeOrmModule } from "@nestjs/typeorm";
import { CookieParserMiddleware } from "../cookie-parser"; import { CookieParserMiddleware } from "../cookie-parser";
import { TypeOrmRepositoryModule } from "../database/entity-repository/typeorm-repository.module";
import { UsersModule } from "../users/users.module"; import { UsersModule } from "../users/users.module";
import { AuthSessionRepository } from "./auth-session.repository"; import { AuthSessionRepository } from "./auth-session.repository";
import { AuthController } from "./auth.controller"; import { AuthController } from "./auth.controller";
@ -14,7 +14,7 @@ import { SpotifyStrategy } from "./strategies/spotify.strategy";
@Module({ @Module({
imports: [ imports: [
TypeOrmModule.forFeature([AuthSessionRepository]), TypeOrmRepositoryModule.for([AuthSessionRepository]),
PassportModule.register({ defaultStrategy: "jwt" }), PassportModule.register({ defaultStrategy: "jwt" }),
JwtModule.registerAsync({ JwtModule.registerAsync({
useFactory: (config: ConfigService) => ({ useFactory: (config: ConfigService) => ({

View file

@ -248,7 +248,7 @@ describe("AuthService", () => {
beforeEach(() => { beforeEach(() => {
session = { id: "AUTH_SESSION" } as AuthSession; session = { id: "AUTH_SESSION" } as AuthSession;
authSessionRepository.findOne = jest.fn().mockResolvedValue(session); authSessionRepository.findOneBy = jest.fn().mockResolvedValue(session);
}); });
it("returns the session", async () => { it("returns the session", async () => {
@ -256,10 +256,10 @@ describe("AuthService", () => {
session session
); );
expect(authSessionRepository.findOne).toHaveBeenCalledTimes(1); expect(authSessionRepository.findOneBy).toHaveBeenCalledTimes(1);
expect(authSessionRepository.findOne).toHaveBeenLastCalledWith( expect(authSessionRepository.findOneBy).toHaveBeenLastCalledWith({
"AUTH_SESSION" id: "AUTH_SESSION",
); });
}); });
}); });

View file

@ -98,7 +98,7 @@ export class AuthService {
} }
async findSession(id: string): Promise<AuthSession> { async findSession(id: string): Promise<AuthSession> {
return this.authSessionRepository.findOne(id); return this.authSessionRepository.findOneBy({ id });
} }
async findUser(id: string): Promise<User> { async findUser(id: string): Promise<User> {

View file

@ -0,0 +1,4 @@
This module restores the classes-based custom Repository functionality from
typeorm v0.2.
Directly adapted from anchan828: https://gist.github.com/anchan828/9e569f076e7bc18daf21c652f7c3d012

View file

@ -0,0 +1,7 @@
import { SetMetadata } from "@nestjs/common";
export const TYPEORM_ENTITY_REPOSITORY = "TYPEORM_ENTITY_REPOSITORY";
export function EntityRepository(entity: Function): ClassDecorator {
return SetMetadata(TYPEORM_ENTITY_REPOSITORY, entity);
}

View file

@ -0,0 +1,3 @@
import { EntityRepository } from "./entity-repository.decorator";
export { EntityRepository };

View file

@ -0,0 +1,39 @@
import { DynamicModule, Provider } from "@nestjs/common";
import { getDataSourceToken } from "@nestjs/typeorm";
import { DataSource } from "typeorm";
import { TYPEORM_ENTITY_REPOSITORY } from "./entity-repository.decorator";
export class TypeOrmRepositoryModule {
public static for<T extends new (...args: any[]) => any>(
repositories: T[]
): DynamicModule {
const providers: Provider[] = [];
for (const repository of repositories) {
const entity = Reflect.getMetadata(TYPEORM_ENTITY_REPOSITORY, repository);
if (!entity) {
continue;
}
providers.push({
inject: [getDataSourceToken()],
provide: repository,
useFactory: (dataSource: DataSource): typeof repository => {
const baseRepository = dataSource.getRepository<any>(entity);
return new repository(
baseRepository.target,
baseRepository.manager,
baseRepository.queryRunner
);
},
});
}
return {
exports: providers,
module: TypeOrmRepositoryModule,
providers,
};
}
}

View file

@ -1,5 +1,6 @@
/* eslint-disable max-classes-per-file */ /* eslint-disable max-classes-per-file */
import { EntityRepository, Repository, SelectQueryBuilder } from "typeorm"; import { Repository, SelectQueryBuilder } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { Interval } from "../reports/interval"; import { Interval } from "../reports/interval";
import { User } from "../users/user.entity"; import { User } from "../users/user.entity";
import { import {
@ -57,13 +58,13 @@ export class ListenRepository extends Repository<Listen> {
if (!insertedRowIdentifier) { if (!insertedRowIdentifier) {
// We did not insert a new listen, it already existed // We did not insert a new listen, it already existed
return { return {
listen: await this.findOne({ where: { user, track, playedAt } }), listen: await this.findOneBy({ user, track, playedAt }),
isDuplicate: true, isDuplicate: true,
}; };
} }
return { return {
listen: await this.findOne(insertedRowIdentifier.id), listen: await this.findOneBy({ id: insertedRowIdentifier.id }),
isDuplicate: false, isDuplicate: false,
}; };
} }

View file

@ -1,11 +1,11 @@
import { Module } from "@nestjs/common"; import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm"; import { TypeOrmRepositoryModule } from "../database/entity-repository/typeorm-repository.module";
import { ListenRepository } from "./listen.repository"; import { ListenRepository } from "./listen.repository";
import { ListensController } from "./listens.controller"; import { ListensController } from "./listens.controller";
import { ListensService } from "./listens.service"; import { ListensService } from "./listens.service";
@Module({ @Module({
imports: [TypeOrmModule.forFeature([ListenRepository])], imports: [TypeOrmRepositoryModule.for([ListenRepository])],
providers: [ListensService], providers: [ListensService],
exports: [ListensService], exports: [ListensService],
controllers: [ListensController], controllers: [ListensController],

View file

@ -1,4 +1,5 @@
import { EntityRepository, Repository } from "typeorm"; import { Repository } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { Album } from "./album.entity"; import { Album } from "./album.entity";
@EntityRepository(Album) @EntityRepository(Album)

View file

@ -1,4 +1,5 @@
import { EntityRepository, Repository } from "typeorm"; import { Repository } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { Artist } from "./artist.entity"; import { Artist } from "./artist.entity";
@EntityRepository(Artist) @EntityRepository(Artist)

View file

@ -1,4 +1,5 @@
import { EntityRepository, Repository } from "typeorm"; import { Repository } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { Genre } from "./genre.entity"; import { Genre } from "./genre.entity";
@EntityRepository(Genre) @EntityRepository(Genre)

View file

@ -1,5 +1,5 @@
import { Module } from "@nestjs/common"; import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm"; import { TypeOrmRepositoryModule } from "../database/entity-repository/typeorm-repository.module";
import { AlbumRepository } from "./album.repository"; import { AlbumRepository } from "./album.repository";
import { ArtistRepository } from "./artist.repository"; import { ArtistRepository } from "./artist.repository";
import { GenreRepository } from "./genre.repository"; import { GenreRepository } from "./genre.repository";
@ -8,7 +8,7 @@ import { TrackRepository } from "./track.repository";
@Module({ @Module({
imports: [ imports: [
TypeOrmModule.forFeature([ TypeOrmRepositoryModule.for([
AlbumRepository, AlbumRepository,
ArtistRepository, ArtistRepository,
GenreRepository, GenreRepository,

View file

@ -54,15 +54,15 @@ describe("MusicLibraryService", () => {
const artist = { const artist = {
id: "ARTIST", id: "ARTIST",
}; };
artistRepository.findOne = jest.fn().mockResolvedValue(artist); artistRepository.findOneBy = jest.fn().mockResolvedValue(artist);
await expect( await expect(
service.findArtist({ spotify: { id: "spotify_artist" } }) service.findArtist({ spotify: { id: "spotify_artist" } })
).resolves.toEqual(artist); ).resolves.toEqual(artist);
expect(artistRepository.findOne).toHaveBeenCalledTimes(1); expect(artistRepository.findOneBy).toHaveBeenCalledTimes(1);
expect(artistRepository.findOne).toHaveBeenCalledWith({ expect(artistRepository.findOneBy).toHaveBeenCalledWith({
where: { spotify: { id: "spotify_artist" } }, spotify: { id: "spotify_artist" },
}); });
}); });
}); });
@ -195,15 +195,15 @@ describe("MusicLibraryService", () => {
const album = { const album = {
id: "ALBUM", id: "ALBUM",
}; };
albumRepository.findOne = jest.fn().mockResolvedValue(album); albumRepository.findOneBy = jest.fn().mockResolvedValue(album);
await expect( await expect(
service.findAlbum({ spotify: { id: "spotify_album" } }) service.findAlbum({ spotify: { id: "spotify_album" } })
).resolves.toEqual(album); ).resolves.toEqual(album);
expect(albumRepository.findOne).toHaveBeenCalledTimes(1); expect(albumRepository.findOneBy).toHaveBeenCalledTimes(1);
expect(albumRepository.findOne).toHaveBeenCalledWith({ expect(albumRepository.findOneBy).toHaveBeenCalledWith({
where: { spotify: { id: "spotify_album" } }, spotify: { id: "spotify_album" },
}); });
}); });
}); });
@ -284,15 +284,15 @@ describe("MusicLibraryService", () => {
id: "GENRE", id: "GENRE",
name: "Foo", name: "Foo",
}; };
genreRepository.findOne = jest.fn().mockResolvedValue(genre); genreRepository.findOneBy = jest.fn().mockResolvedValue(genre);
await expect(service.findGenre({ name: "Foo" })).resolves.toEqual( await expect(service.findGenre({ name: "Foo" })).resolves.toEqual(
genre genre
); );
expect(genreRepository.findOne).toHaveBeenCalledTimes(1); expect(genreRepository.findOneBy).toHaveBeenCalledTimes(1);
expect(genreRepository.findOne).toHaveBeenCalledWith({ expect(genreRepository.findOneBy).toHaveBeenCalledWith({
where: { name: "Foo" }, name: "Foo",
}); });
}); });
}); });
@ -369,15 +369,15 @@ describe("MusicLibraryService", () => {
const track = { const track = {
id: "TRACK", id: "TRACK",
}; };
trackRepository.findOne = jest.fn().mockResolvedValue(track); trackRepository.findOneBy = jest.fn().mockResolvedValue(track);
await expect( await expect(
service.findTrack({ spotify: { id: "spotify_track" } }) service.findTrack({ spotify: { id: "spotify_track" } })
).resolves.toEqual(track); ).resolves.toEqual(track);
expect(trackRepository.findOne).toHaveBeenCalledTimes(1); expect(trackRepository.findOneBy).toHaveBeenCalledTimes(1);
expect(trackRepository.findOne).toHaveBeenCalledWith({ expect(trackRepository.findOneBy).toHaveBeenCalledWith({
where: { spotify: { id: "spotify_track" } }, spotify: { id: "spotify_track" },
}); });
}); });
}); });

View file

@ -28,8 +28,8 @@ export class MusicLibraryService {
) {} ) {}
async findArtist(query: FindArtistDto): Promise<Artist | undefined> { async findArtist(query: FindArtistDto): Promise<Artist | undefined> {
return this.artistRepository.findOne({ return this.artistRepository.findOneBy({
where: { spotify: { id: query.spotify.id } }, spotify: { id: query.spotify.id },
}); });
} }
@ -81,8 +81,8 @@ export class MusicLibraryService {
} }
async findAlbum(query: FindAlbumDto): Promise<Album | undefined> { async findAlbum(query: FindAlbumDto): Promise<Album | undefined> {
return this.albumRepository.findOne({ return this.albumRepository.findOneBy({
where: { spotify: { id: query.spotify.id } }, spotify: { id: query.spotify.id },
}); });
} }
@ -112,8 +112,8 @@ export class MusicLibraryService {
} }
async findGenre(query: FindGenreDto): Promise<Genre | undefined> { async findGenre(query: FindGenreDto): Promise<Genre | undefined> {
return this.genreRepository.findOne({ return this.genreRepository.findOneBy({
where: { name: query.name }, name: query.name,
}); });
} }
@ -141,8 +141,8 @@ export class MusicLibraryService {
} }
async findTrack(query: FindTrackDto): Promise<Track | undefined> { async findTrack(query: FindTrackDto): Promise<Track | undefined> {
return this.trackRepository.findOne({ return this.trackRepository.findOneBy({
where: { spotify: { id: query.spotify.id } }, spotify: { id: query.spotify.id },
}); });
} }

View file

@ -1,4 +1,5 @@
import { EntityRepository, Repository } from "typeorm"; import { Repository } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { Track } from "./track.entity"; import { Track } from "./track.entity";
@EntityRepository(Track) @EntityRepository(Track)

View file

@ -1,4 +1,5 @@
import { EntityRepository, Repository } from "typeorm"; import { Repository } from "typeorm";
import { EntityRepository } from "../database/entity-repository";
import { User } from "./user.entity"; import { User } from "./user.entity";
@EntityRepository(User) @EntityRepository(User)

View file

@ -1,11 +1,11 @@
import { Module } from "@nestjs/common"; import { Module } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { UserRepository } from "./user.repository"; import { UserRepository } from "./user.repository";
import { UsersService } from "./users.service"; import { UsersService } from "./users.service";
import { UsersController } from "./users.controller"; import { UsersController } from "./users.controller";
import { TypeOrmRepositoryModule } from "../database/entity-repository/typeorm-repository.module";
@Module({ @Module({
imports: [TypeOrmModule.forFeature([UserRepository])], imports: [TypeOrmRepositoryModule.for([UserRepository])],
providers: [UsersService], providers: [UsersService],
exports: [UsersService], exports: [UsersService],
controllers: [UsersController], controllers: [UsersController],

View file

@ -9,7 +9,7 @@ export class UsersService {
constructor(private readonly userRepository: UserRepository) {} constructor(private readonly userRepository: UserRepository) {}
async findById(id: string): Promise<User> { async findById(id: string): Promise<User> {
const user = await this.userRepository.findOne(id); const user = await this.userRepository.findOneBy({ id });
if (!user) { if (!user) {
throw new NotFoundException("UserNotFound"); throw new NotFoundException("UserNotFound");
@ -23,8 +23,8 @@ export class UsersService {
} }
async createOrUpdate(data: CreateOrUpdateDto): Promise<User> { async createOrUpdate(data: CreateOrUpdateDto): Promise<User> {
let user = await this.userRepository.findOne({ let user = await this.userRepository.findOneBy({
where: { spotify: { id: data.spotify.id } }, spotify: { id: data.spotify.id },
}); });
if (!user) { if (!user) {