diff --git a/src/packages/fetch-engine/package.json b/src/packages/fetch-engine/package.json index 817408597307..ffc26285260d 100644 --- a/src/packages/fetch-engine/package.json +++ b/src/packages/fetch-engine/package.json @@ -11,6 +11,7 @@ "@types/node": "12.19.13", "@types/node-fetch": "2.5.7", "@types/progress": "2.0.3", + "@types/find-cache-dir": "^3.2.0", "@typescript-eslint/eslint-plugin": "4.13.0", "@typescript-eslint/parser": "4.13.0", "del": "6.0.0", diff --git a/src/packages/fetch-engine/src/__tests__/download.test.ts b/src/packages/fetch-engine/src/__tests__/download.test.ts index 952be43105ae..c2d702602847 100644 --- a/src/packages/fetch-engine/src/__tests__/download.test.ts +++ b/src/packages/fetch-engine/src/__tests__/download.test.ts @@ -193,7 +193,7 @@ describe('download', () => { 'query-engine': __dirname, }, }) - const dummyPath = e['query-engine'][Object.keys(e['query-engine'])[0]]! + const dummyPath = e['query-engine']![Object.keys(e['query-engine']!)[0]]! const targetPath = path.join( __dirname, getBinaryName('query-engine', 'marvin'), @@ -207,7 +207,7 @@ describe('download', () => { }, binaryTargets: ['marvin'] as any, // eslint-disable-line @typescript-eslint/no-explicit-any }) - expect(testResult['query-engine']['marvin']).toEqual(targetPath) + expect(testResult['query-engine']!['marvin']).toEqual(targetPath) }) test.skip('download all binaries & cache them', async () => { const baseDir = path.join(__dirname, 'all') diff --git a/src/packages/fetch-engine/src/cleanupCache.ts b/src/packages/fetch-engine/src/cleanupCache.ts index 673eed9fe56b..aeed41393f8d 100644 --- a/src/packages/fetch-engine/src/cleanupCache.ts +++ b/src/packages/fetch-engine/src/cleanupCache.ts @@ -4,8 +4,9 @@ import { getRootCacheDir } from './util' import rimraf from 'rimraf' import { promisify } from 'util' import pMap from 'p-map' -// import Debug from '@prisma/debug' -// const debug = Debug('cleanupCache') + +import Debug from '@prisma/debug' +const debug = Debug('cleanupCache') const del = promisify(rimraf) const readdir = promisify(fs.readdir) const stat = promisify(fs.stat) @@ -13,6 +14,10 @@ const stat = promisify(fs.stat) export async function cleanupCache(n = 5): Promise { try { const rootCacheDir = await getRootCacheDir() + if(!rootCacheDir){ + debug('no rootCacheDir found') + return + } const channel = 'master' const cacheDir = path.join(rootCacheDir, channel) const dirs = await readdir(cacheDir) diff --git a/src/packages/fetch-engine/src/download.ts b/src/packages/fetch-engine/src/download.ts index 837455d2b1c0..42a34546e478 100644 --- a/src/packages/fetch-engine/src/download.ts +++ b/src/packages/fetch-engine/src/download.ts @@ -67,7 +67,7 @@ type BinaryDownloadJob = { binaryTarget: string fileName: string targetFilePath: string - envVarPath: string + envVarPath: string | null } export async function download(options: DownloadOptions): Promise { @@ -75,7 +75,7 @@ export async function download(options: DownloadOptions): Promise { const platform = await getPlatform() const os = await getos() - if (['nixos'].includes(os.distro)) { + if (os.distro && ['nixos'].includes(os.distro)) { console.error( `${chalk.yellow('Warning')} Precompiled binaries are not available for ${ os.distro @@ -97,19 +97,18 @@ export async function download(options: DownloadOptions): Promise { } // merge options - options = { + const opts = { ...options, binaryTargets: options.binaryTargets ?? [platform], version: options.version ?? 'latest', - binaries: mapKeys(options.binaries, (key) => - engineTypeToBinaryType(key, platform), + binaries: mapKeys(options.binaries, (key) => engineTypeToBinaryType(key, platform), ), // just necessary to support both camelCase and hyphen-case } - const binaryJobs: Array = flatMap( - Object.entries(options.binaries), - ([binaryName, targetFolder]) => - options.binaryTargets.map((binaryTarget) => { + const binaryJobs = flatMap( + Object.entries(opts.binaries), + ([binaryName, targetFolder]: [string, string]) => + opts.binaryTargets.map((binaryTarget) => { const fileName = getBinaryName(binaryName, binaryTarget) return { binaryName, @@ -123,15 +122,15 @@ export async function download(options: DownloadOptions): Promise { ) if (process.env.BINARY_DOWNLOAD_VERSION) { - options.version = process.env.BINARY_DOWNLOAD_VERSION + opts.version = process.env.BINARY_DOWNLOAD_VERSION } - if (options.version === 'latest') { - options.version = await getLatestTag() + if (opts.version === 'latest') { + opts.version = await getLatestTag() } - if (options.printVersion) { - console.log(`version: ${options.version}`) + if (opts.printVersion) { + console.log(`version: ${opts.version}`) } // filter out files, which don't yet exist or have to be created @@ -139,14 +138,14 @@ export async function download(options: DownloadOptions): Promise { const needsToBeDownloaded = await binaryNeedsToBeDownloaded( job, platform, - options.version, - options.failSilent, + opts.version, + opts.failSilent, ) const isSupported = platforms.includes(job.binaryTarget as Platform) const shouldDownload = isSupported && !job.envVarPath && - (options.ignoreCache || needsToBeDownloaded) + (opts.ignoreCache || needsToBeDownloaded) if (needsToBeDownloaded && !isSupported) { throw new Error( `Unknown binaryTarget ${job.binaryTarget} and no custom binaries were provided`, @@ -163,8 +162,8 @@ export async function download(options: DownloadOptions): Promise { | undefined | ((sourcePath: string) => (progress: number) => void) - if (options.showProgress) { - const collectiveBar = getCollectiveBar(options) + if (opts.showProgress) { + const collectiveBar = getCollectiveBar(opts) finishBar = collectiveBar.finishBar setProgress = collectiveBar.setProgress } @@ -174,8 +173,8 @@ export async function download(options: DownloadOptions): Promise { binariesToDownload.map((job) => downloadBinary({ ...job, - version: options.version, - failSilent: options.failSilent, + version: opts.version, + failSilent: opts.failSilent, progressCb: setProgress ? setProgress(job.targetFilePath) : undefined, }), ), @@ -212,7 +211,7 @@ function getCollectiveBar( } { const bar = getBar( `Downloading Prisma engines for ${options.binaryTargets - .map((p) => chalk.bold(p)) + ?.map((p) => chalk.bold(p)) .join(' and ')}`, ) @@ -220,7 +219,7 @@ function getCollectiveBar( // Object.values is faster than Object.keys const numDownloads = Object.values(options.binaries).length * - Object.values(options.binaryTargets).length + Object.values(options?.binaryTargets ?? []).length const setProgress = (sourcePath: string) => (progress): void => { progressMap[sourcePath] = progress const progressValues = Object.values(progressMap) @@ -262,7 +261,7 @@ async function binaryNeedsToBeDownloaded( job: BinaryDownloadJob, nativePlatform: string, version: string, - failSilent: boolean, + failSilent?: boolean, ): Promise { const binaryPath = job.envVarPath ?? job.targetFilePath @@ -337,7 +336,7 @@ export function getBinaryName(binaryName: string, platform: string): string { type GetCachedBinaryOptions = BinaryDownloadJob & { version: string - failSilent: boolean + failSilent?: boolean } async function getCachedBinaryPath({ @@ -372,7 +371,7 @@ async function getCachedBinaryPath({ export function getBinaryEnvVarPath(binaryName: string): string | null { const envVar = binaryToEnvVar[binaryName] if (envVar && process.env[envVar]) { - const envVarPath = path.resolve(process.cwd(), process.env[envVar]) + const envVarPath = path.resolve(process.cwd(), process.env[envVar] as string) if (!fs.existsSync(envVarPath)) { throw new Error( `Env var ${chalk.bold( @@ -508,15 +507,15 @@ function engineTypeToBinaryType( return engineType } -function mapKeys( +function mapKeys( obj: T, - mapper: (key: keyof T) => string, + mapper: (key: K) => string, // eslint-disable-next-line @typescript-eslint/no-explicit-any -): any { +) { return Object.entries(obj).reduce((acc, [key, value]) => { - acc[mapper(key as keyof T)] = value + acc[mapper(key as K)] = value return acc - }, {}) + }, {} as Record) } export async function maybeCopyToTmp(file: string): Promise { diff --git a/src/packages/fetch-engine/src/downloadZip.ts b/src/packages/fetch-engine/src/downloadZip.ts index 78faf16cebd1..38eea855f0b2 100644 --- a/src/packages/fetch-engine/src/downloadZip.ts +++ b/src/packages/fetch-engine/src/downloadZip.ts @@ -61,7 +61,7 @@ export async function downloadZip( } const lastModified = resp.headers.get('last-modified')! - const size = parseFloat(resp.headers.get('content-length')) + const size = parseFloat(resp.headers.get('content-length') as string) const ws = fs.createWriteStream(partial) // eslint-disable-next-line @typescript-eslint/no-misused-promises, no-async-promise-executor diff --git a/src/packages/fetch-engine/src/flatMap.ts b/src/packages/fetch-engine/src/flatMap.ts index 5f9884f97803..91671cb9ee39 100644 --- a/src/packages/fetch-engine/src/flatMap.ts +++ b/src/packages/fetch-engine/src/flatMap.ts @@ -1,4 +1,5 @@ function flatten(array: T[]): [] { + // @ts-ignore return Array.prototype.concat.apply([], array) } diff --git a/src/packages/fetch-engine/src/getLatestTag.ts b/src/packages/fetch-engine/src/getLatestTag.ts index 8f1a2a197edb..ab042029f1ef 100644 --- a/src/packages/fetch-engine/src/getLatestTag.ts +++ b/src/packages/fetch-engine/src/getLatestTag.ts @@ -51,7 +51,7 @@ export async function getLatestTag(): Promise { } export function getAllUrls(branch: string, commit: string): string[] { - const urls = [] + const urls: string[] = [] const excludedPlatforms = [ 'freebsd', 'arm', @@ -96,7 +96,7 @@ export function getAllUrls(branch: string, commit: string): string[] { async function getFirstFinishedCommit( branch: string, commits: string[], -): Promise { +): Promise { for (const commit of commits) { const urls = getAllUrls(branch, commit) // TODO: potential to speed things up diff --git a/src/packages/fetch-engine/src/util.ts b/src/packages/fetch-engine/src/util.ts index 10d9d7b93585..a1f7080d6040 100644 --- a/src/packages/fetch-engine/src/util.ts +++ b/src/packages/fetch-engine/src/util.ts @@ -8,7 +8,7 @@ const debug = Debug('cache-dir') export async function getRootCacheDir(): Promise { if (os.platform() === 'win32') { - const cacheDir = await findCacheDir({ name: 'prisma', create: true }) + const cacheDir = findCacheDir({ name: 'prisma', create: true }) if (cacheDir) { return cacheDir } diff --git a/src/packages/fetch-engine/tsconfig.json b/src/packages/fetch-engine/tsconfig.json index f63642d8d64c..f951aa741c55 100644 --- a/src/packages/fetch-engine/tsconfig.json +++ b/src/packages/fetch-engine/tsconfig.json @@ -4,7 +4,7 @@ "lib": ["esnext"], "module": "commonjs", "target": "es2018", - "strict": false, + "strict": true, "esModuleInterop": true, "sourceMap": true, "noImplicitAny": false, diff --git a/src/packages/get-platform/tsconfig.json b/src/packages/get-platform/tsconfig.json index b21cc638aa2f..37b6abc6e164 100644 --- a/src/packages/get-platform/tsconfig.json +++ b/src/packages/get-platform/tsconfig.json @@ -3,7 +3,7 @@ "lib": ["esnext"], "module": "commonjs", "target": "es2018", - "strict": false, + "strict": true, "esModuleInterop": true, "sourceMap": true, "noImplicitAny": false, diff --git a/src/packages/tests/src/__tests__/__helpers__/integrationTest.ts b/src/packages/tests/src/__tests__/__helpers__/integrationTest.ts index e108e746cb81..ca474b70ef77 100644 --- a/src/packages/tests/src/__tests__/__helpers__/integrationTest.ts +++ b/src/packages/tests/src/__tests__/__helpers__/integrationTest.ts @@ -410,7 +410,7 @@ function makeDatasourceBlock(providerName: string, url: string) { * Create Prisma schema enabled features array of strings. */ function renderPreviewFeatures( - featureMatrix: Input['prismaClientSettings']['previewFeatures'] | undefined, + featureMatrix: PreviewFeature[] | undefined, ) { if (featureMatrix) { return `previewFeatures = [${featureMatrix.map( diff --git a/src/packages/tests/tsconfig.json b/src/packages/tests/tsconfig.json index 1db6dd17bb99..cfda78933651 100644 --- a/src/packages/tests/tsconfig.json +++ b/src/packages/tests/tsconfig.json @@ -3,7 +3,7 @@ "lib": ["esnext"], "module": "commonjs", "target": "es2018", - "strict": false, + "strict": true, "esModuleInterop": true, "sourceMap": true, "noImplicitAny": false, diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index 4a35d250f83c..e176fce8b73e 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -58,8 +58,8 @@ importers: '@timsuchanek/copy': 1.4.5 '@types/jest': 26.0.20 '@types/ws': 7.4.0 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 chalk: 4.1.0 checkpoint-client: 1.1.18 dotenv: 8.2.0 @@ -109,8 +109,8 @@ importers: '@timsuchanek/copy': 1.4.5 '@types/jest': 26.0.20 '@types/ws': 7.4.0 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 chalk: 4.1.0 checkpoint-client: 1.1.18 dotenv: 8.2.0 @@ -163,8 +163,8 @@ importers: '@types/js-levenshtein': 1.1.0 '@types/node': 12.19.13 '@types/pg': 7.14.7 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 arg: 5.0.0 chalk: 4.1.0 decimal.js: 10.2.1 @@ -222,8 +222,8 @@ importers: '@types/js-levenshtein': 1.1.0 '@types/node': 12.19.13 '@types/pg': 7.14.7 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 arg: 5.0.0 chalk: 4.1.0 decimal.js: 10.2.1 @@ -273,8 +273,8 @@ importers: devDependencies: '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 eslint: 7.17.0 eslint-config-prettier: 7.1.0_eslint@7.17.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.17.0 @@ -289,8 +289,8 @@ importers: specifiers: '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 debug: 4.3.2 eslint: 7.17.0 eslint-config-prettier: 7.1.0 @@ -317,12 +317,12 @@ importers: new-github-issue-url: 0.2.1 p-retry: 4.2.0 terminal-link: 2.1.1 - undici: 3.1.0 + undici: 3.2.0 devDependencies: '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 eslint: 7.17.0 eslint-config-prettier: 7.1.0_eslint@7.17.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.17.0 @@ -341,8 +341,8 @@ importers: '@prisma/get-platform': workspace:* '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 chalk: ^4.0.0 eslint: 7.17.0 eslint-config-prettier: 7.1.0 @@ -361,7 +361,7 @@ importers: terminal-link: ^2.1.1 ts-jest: 26.4.4 typescript: 4.1.3 - undici: 3.1.0 + undici: 3.2.0 packages/fetch-engine: dependencies: '@prisma/debug': link:../debug @@ -383,12 +383,13 @@ importers: tempy: 1.0.0 devDependencies: '@prisma/engines-version': 2.15.0-9.b96969f75cead65dcc63ca17d876eafdc8b3f64e + '@types/find-cache-dir': 3.2.0 '@types/jest': 26.0.20 '@types/node': 12.19.13 '@types/node-fetch': 2.5.7 '@types/progress': 2.0.3 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 del: 6.0.0 eslint: 7.17.0 eslint-config-prettier: 7.1.0_eslint@7.17.0 @@ -405,12 +406,13 @@ importers: '@prisma/debug': workspace:* '@prisma/engines-version': 2.15.0-9.b96969f75cead65dcc63ca17d876eafdc8b3f64e '@prisma/get-platform': workspace:* + '@types/find-cache-dir': ^3.2.0 '@types/jest': 26.0.20 '@types/node': 12.19.13 '@types/node-fetch': 2.5.7 '@types/progress': 2.0.3 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 chalk: ^4.0.0 del: 6.0.0 eslint: 7.17.0 @@ -447,8 +449,8 @@ importers: devDependencies: '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 eslint: 7.17.0 eslint-config-prettier: 7.1.0_eslint@7.17.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.17.0 @@ -465,8 +467,8 @@ importers: '@types/cross-spawn': ^6.0.1 '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 chalk: ^4.0.0 cross-spawn: ^7.0.2 eslint: 7.17.0 @@ -486,8 +488,8 @@ importers: devDependencies: '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 eslint: 7.17.0 eslint-config-prettier: 7.1.0_eslint@7.17.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.17.0 @@ -502,8 +504,8 @@ importers: '@prisma/debug': workspace:* '@types/jest': 26.0.20 '@types/node': 12.19.13 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 eslint: 7.17.0 eslint-config-prettier: 7.1.0 eslint-plugin-eslint-comments: 3.2.0 @@ -538,8 +540,8 @@ importers: '@types/pg': 7.14.7 '@types/prompts': 2.0.9 '@types/sqlite3': 3.1.6 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 chalk: 4.1.0 del: 6.0.0 eslint: 7.17.0 @@ -573,8 +575,8 @@ importers: '@types/pg': 7.14.7 '@types/prompts': 2.0.9 '@types/sqlite3': 3.1.6 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 chalk: 4.1.0 del: 6.0.0 diff: 4.0.2 @@ -682,8 +684,8 @@ importers: '@types/jest': 26.0.20 '@types/node': 12.19.13 '@types/tar': 4.0.4 - '@typescript-eslint/eslint-plugin': 4.12.0_343306961d6b60bcf6bd09d193a54461 - '@typescript-eslint/parser': 4.12.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/eslint-plugin': 4.13.0_b7210263e693dcacb9967ef540d4f052 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 eslint: 7.17.0 eslint-config-prettier: 7.1.0_eslint@7.17.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.17.0 @@ -706,8 +708,8 @@ importers: '@types/jest': 26.0.20 '@types/node': 12.19.13 '@types/tar': 4.0.4 - '@typescript-eslint/eslint-plugin': 4.12.0 - '@typescript-eslint/parser': 4.12.0 + '@typescript-eslint/eslint-plugin': 4.13.0 + '@typescript-eslint/parser': 4.13.0 archiver: ^4.0.0 arg: ^5.0.0 chalk: 4.1.0 @@ -1444,19 +1446,19 @@ packages: node: '>= 8' resolution: integrity: sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== - /@prisma/debug/2.15.0-dev.31: + /@prisma/debug/2.15.0-dev.41: dependencies: debug: 4.3.2 ms: 2.1.3 dev: true resolution: - integrity: sha512-JHcA3CGHECLGkFn0hT/aSoeoofEGT3P2XT+lDY5MOLgwULM5JaMRbd+IoqFIrxEBauyU4EVRLnrG5P8vROAVKA== - /@prisma/engine-core/2.15.0-dev.31: + integrity: sha512-b9y4uWtgv5fVI5StLZKhfKpfE1AqaKuZHLaqekBhAabN0g7cqPwlStbYUD+OldE4IFPT8Mz8c6vg23TabgAayg== + /@prisma/engine-core/2.15.0-dev.41: dependencies: - '@prisma/debug': 2.15.0-dev.31 + '@prisma/debug': 2.15.0-dev.41 '@prisma/engines': 2.15.0-9.b96969f75cead65dcc63ca17d876eafdc8b3f64e - '@prisma/generator-helper': 2.15.0-dev.31 - '@prisma/get-platform': 2.15.0-dev.31 + '@prisma/generator-helper': 2.15.0-dev.41 + '@prisma/get-platform': 2.15.0-dev.41 chalk: 4.1.0 execa: 5.0.0 get-stream: 6.0.0 @@ -1464,10 +1466,10 @@ packages: new-github-issue-url: 0.2.1 p-retry: 4.2.0 terminal-link: 2.1.1 - undici: 3.1.0 + undici: 3.2.0 dev: true resolution: - integrity: sha512-Qtjn9NALTLw2CFKSdkockBKVi6cdxCwPT/A5dG3bhtYLeIwnxwBuwo9qc1lNV0HvwZHGnJZIg2D/D1QEGPO3hA== + integrity: sha512-YhSIXy6EyAVn10GghlF/7UiFqrG8o0zO0o4QPKAoVdTTFpoG5esTiYGDan2mqMnVSovhhwvuPYvZRTz6/xKGRw== /@prisma/engines-version/2.15.0-9.b96969f75cead65dcc63ca17d876eafdc8b3f64e: resolution: integrity: sha512-t7HH6LJkeaBRvzeu18wgXMDLLNWx6f1A4D4HqOBnqUHarCLukyQYgwNZkeQuCaAFga4qqvKpDsZnAcxjbCJoQQ== @@ -1475,10 +1477,10 @@ packages: requiresBuild: true resolution: integrity: sha512-4GqEA+uCtQLSWw3uOKr2tCsh+QisnGRP35CrvTOxObpVLXmgc8z0OvpK0g8PPgECOQSLgtoUyrpgrrz6X4mUvQ== - /@prisma/fetch-engine/2.15.0-dev.31: + /@prisma/fetch-engine/2.15.0-dev.41: dependencies: - '@prisma/debug': 2.15.0-dev.31 - '@prisma/get-platform': 2.15.0-dev.31 + '@prisma/debug': 2.15.0-dev.41 + '@prisma/get-platform': 2.15.0-dev.41 chalk: 4.1.0 execa: 5.0.0 find-cache-dir: 3.3.1 @@ -1496,30 +1498,30 @@ packages: tempy: 1.0.0 dev: true resolution: - integrity: sha512-pX2RRziIGNRdoTIrN2iMbZctqUIvbL55Do60pMHUU2kDFk7I6OJzd5pPvd1PiZwgDkk/jti83l9Os5NTAmJOTw== - /@prisma/generator-helper/2.15.0-dev.31: + integrity: sha512-H92/UAYaUuUkHH0PbXtCc1rxYEWr6vsxgyLkfStZ5NWtCkC1/7hQGPFUgwZoIX1hgcYNAaBzN+ZPpUbxozFqIQ== + /@prisma/generator-helper/2.15.0-dev.41: dependencies: - '@prisma/debug': 2.15.0-dev.31 + '@prisma/debug': 2.15.0-dev.41 '@types/cross-spawn': 6.0.2 chalk: 4.1.0 cross-spawn: 7.0.3 dev: true resolution: - integrity: sha512-u1CbX+QM75RjC0GlOK0TWvDpl1BQgsPk6ehe+DHakHmPOrlwrrCo1oI/j/VmFqGejuhCgZpR4ukfl40ZXIXB5g== - /@prisma/get-platform/2.15.0-dev.31: + integrity: sha512-2rlccLv/AElOcYoF5aDs5tsgHvej3nl93bFu0jG/65yPKCXd95YAM1ZbLHBSrOXiP5+5sXzqzzlyAkI/zsFmrQ== + /@prisma/get-platform/2.15.0-dev.41: dependencies: - '@prisma/debug': 2.15.0-dev.31 + '@prisma/debug': 2.15.0-dev.41 dev: true resolution: - integrity: sha512-sHukFWht/yg/DEQVaFoycChKYrBinrXF2mlhwsQhTcu+BarRdL14oPVLKyVUHPqSlQDiKe9ngAd/Pgj7fMV7pw== - /@prisma/sdk/2.15.0-dev.31: + integrity: sha512-Y8MMcFLOEEk59/5YfNVOus9ED1vXhd/3lJUJdnz48vE+xnk/TYj6lHT33C1uAyAz/iVIYTWQdjDEMNW87F98XA== + /@prisma/sdk/2.15.0-dev.41: dependencies: - '@prisma/debug': 2.15.0-dev.31 - '@prisma/engine-core': 2.15.0-dev.31 + '@prisma/debug': 2.15.0-dev.41 + '@prisma/engine-core': 2.15.0-dev.41 '@prisma/engines': 2.15.0-9.b96969f75cead65dcc63ca17d876eafdc8b3f64e - '@prisma/fetch-engine': 2.15.0-dev.31 - '@prisma/generator-helper': 2.15.0-dev.31 - '@prisma/get-platform': 2.15.0-dev.31 + '@prisma/fetch-engine': 2.15.0-dev.41 + '@prisma/generator-helper': 2.15.0-dev.41 + '@prisma/get-platform': 2.15.0-dev.41 '@timsuchanek/copy': 1.4.5 archiver: 4.0.2 arg: 5.0.0 @@ -1551,10 +1553,10 @@ packages: url-parse: 1.4.7 dev: true resolution: - integrity: sha512-sCyspl3eanM4BklzDNUisCI64crcf/sPd+qn8MJi+FwoY1+zfreLVsLClADy2BuO8UzN8tkbJqDqa5cXgxmPSA== - /@prisma/studio-pcw/0.333.0_@prisma+sdk@2.15.0-dev.31: + integrity: sha512-tMBfVkmCFb6wEgG9X8pYhsTLbPkTPKKi+3CoHLUUVJh4/Q8Ycqd+Yg6wFfIXxIcK/d4un4kEXoy5EKstEg5dNw== + /@prisma/studio-pcw/0.333.0_@prisma+sdk@2.15.0-dev.41: dependencies: - '@prisma/sdk': 2.15.0-dev.31 + '@prisma/sdk': 2.15.0-dev.41 rimraf: 3.0.2 dev: true peerDependencies: @@ -1563,9 +1565,9 @@ packages: integrity: sha512-sTeVCcK0YpRI6QeeisgnafVn9o8O/bW4ZntJaHA4rHq7L7HZOk6zCIJ4mdXjUzALM6gOj2e9yh00JtEHsEfYlA== /@prisma/studio-server/0.333.0: dependencies: - '@prisma/sdk': 2.15.0-dev.31 + '@prisma/sdk': 2.15.0-dev.41 '@prisma/studio': 0.333.0 - '@prisma/studio-pcw': 0.333.0_@prisma+sdk@2.15.0-dev.31 + '@prisma/studio-pcw': 0.333.0_@prisma+sdk@2.15.0-dev.41 '@prisma/studio-types': 0.333.0 '@sentry/node': 5.15.5 checkpoint-client: 1.1.18 @@ -1770,6 +1772,10 @@ packages: dev: true resolution: integrity: sha512-mIenTfsIe586/yzsyfql69KRnA75S8SVXQbTLpDejRrjH0QSJcpu3AUOi/Vjnt9IOsXKxPhJfGpQUNMueIU1fQ== + /@types/find-cache-dir/3.2.0: + dev: true + resolution: + integrity: sha512-+JeT9qb2Jwzw72WdjU+TSvD5O1QRPWCeRpDJV+guiIq+2hwR0DFGw+nZNbTFjMIVe6Bf4GgAKeB/6Ytx6+MbeQ== /@types/geojson/7946.0.7: dev: true resolution: @@ -2014,6 +2020,31 @@ packages: optional: true resolution: integrity: sha512-wHKj6q8s70sO5i39H2g1gtpCXCvjVszzj6FFygneNFyIAxRvNSVz9GML7XpqrB9t7hNutXw+MHnLN/Ih6uyB8Q== + /@typescript-eslint/eslint-plugin/4.13.0_b7210263e693dcacb9967ef540d4f052: + dependencies: + '@typescript-eslint/experimental-utils': 4.13.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/parser': 4.13.0_eslint@7.17.0+typescript@4.1.3 + '@typescript-eslint/scope-manager': 4.13.0 + debug: 4.3.1 + eslint: 7.17.0 + functional-red-black-tree: 1.0.1 + lodash: 4.17.20 + regexpp: 3.1.0 + semver: 7.3.4 + tsutils: 3.18.0_typescript@4.1.3 + typescript: 4.1.3 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + '@typescript-eslint/parser': ^4.0.0 + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-ygqDUm+BUPvrr0jrXqoteMqmIaZ/bixYOc3A4BRwzEPTZPi6E+n44rzNZWaB0YvtukgP+aoj0i/fyx7FkM2p1w== /@typescript-eslint/eslint-plugin/4.9.0_2705378cb19c5349e92bb1dbd042259c: dependencies: '@typescript-eslint/experimental-utils': 4.9.0_eslint@7.15.0+typescript@4.0.3 @@ -2089,6 +2120,23 @@ packages: typescript: '*' resolution: integrity: sha512-MpXZXUAvHt99c9ScXijx7i061o5HEjXltO+sbYfZAAHxv3XankQkPaNi5myy0Yh0Tyea3Hdq1pi7Vsh0GJb0fA== + /@typescript-eslint/experimental-utils/4.13.0_eslint@7.17.0+typescript@4.1.3: + dependencies: + '@types/json-schema': 7.0.6 + '@typescript-eslint/scope-manager': 4.13.0 + '@typescript-eslint/types': 4.13.0 + '@typescript-eslint/typescript-estree': 4.13.0_typescript@4.1.3 + eslint: 7.17.0 + eslint-scope: 5.1.1 + eslint-utils: 2.1.0 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + eslint: '*' + typescript: '*' + resolution: + integrity: sha512-/ZsuWmqagOzNkx30VWYV3MNB/Re/CGv/7EzlqZo5RegBN8tMuPaBgNK6vPBCQA8tcYrbsrTdbx3ixMRRKEEGVw== /@typescript-eslint/experimental-utils/4.9.0_eslint@7.15.0+typescript@4.0.3: dependencies: '@types/json-schema': 7.0.6 @@ -2125,6 +2173,25 @@ packages: optional: true resolution: integrity: sha512-9XxVADAo9vlfjfoxnjboBTxYOiNY93/QuvcPgsiKvHxW6tOZx1W4TvkIQ2jB3k5M0pbFP5FlXihLK49TjZXhuQ== + /@typescript-eslint/parser/4.13.0_eslint@7.17.0+typescript@4.1.3: + dependencies: + '@typescript-eslint/scope-manager': 4.13.0 + '@typescript-eslint/types': 4.13.0 + '@typescript-eslint/typescript-estree': 4.13.0_typescript@4.1.3 + debug: 4.3.1 + eslint: 7.17.0 + typescript: 4.1.3 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-KO0J5SRF08pMXzq9+abyHnaGQgUJZ3Z3ax+pmqz9vl81JxmTTOUfQmq7/4awVfq09b6C4owNlOgOwp61pYRBSg== /@typescript-eslint/parser/4.9.0_eslint@7.15.0+typescript@4.0.3: dependencies: '@typescript-eslint/scope-manager': 4.9.0 @@ -2162,6 +2229,15 @@ packages: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: integrity: sha512-QVf9oCSVLte/8jvOsxmgBdOaoe2J0wtEmBr13Yz0rkBNkl5D8bfnf6G4Vhox9qqMIoG7QQoVwd2eG9DM/ge4Qg== + /@typescript-eslint/scope-manager/4.13.0: + dependencies: + '@typescript-eslint/types': 4.13.0 + '@typescript-eslint/visitor-keys': 4.13.0 + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-UpK7YLG2JlTp/9G4CHe7GxOwd93RBf3aHO5L+pfjIrhtBvZjHKbMhBXTIQNkbz7HZ9XOe++yKrXutYm5KmjWgQ== /@typescript-eslint/scope-manager/4.9.0: dependencies: '@typescript-eslint/types': 4.9.0 @@ -2183,6 +2259,12 @@ packages: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: integrity: sha512-N2RhGeheVLGtyy+CxRmxdsniB7sMSCfsnbh8K/+RUIXYYq3Ub5+sukRCjVE80QerrUBvuEvs4fDhz5AW/pcL6g== + /@typescript-eslint/types/4.13.0: + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-/+aPaq163oX+ObOG00M0t9tKkOgdv9lq0IQv/y4SqGkAXmhFmCfgsELV7kOCTb2vVU5VOmVwXBXJTDr353C1rQ== /@typescript-eslint/types/4.9.0: dev: true engines: @@ -2252,6 +2334,27 @@ packages: optional: true resolution: integrity: sha512-gZkFcmmp/CnzqD2RKMich2/FjBTsYopjiwJCroxqHZIY11IIoN0l5lKqcgoAPKHt33H2mAkSfvzj8i44Jm7F4w== + /@typescript-eslint/typescript-estree/4.13.0_typescript@4.1.3: + dependencies: + '@typescript-eslint/types': 4.13.0 + '@typescript-eslint/visitor-keys': 4.13.0 + debug: 4.3.1 + globby: 11.0.2 + is-glob: 4.0.1 + lodash: 4.17.20 + semver: 7.3.4 + tsutils: 3.18.0_typescript@4.1.3 + typescript: 4.1.3 + dev: true + engines: + node: ^10.12.0 || >=12.0.0 + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + resolution: + integrity: sha512-9A0/DFZZLlGXn5XA349dWQFwPZxcyYyCFX5X88nWs2uachRDwGeyPz46oTsm9ZJE66EALvEns1lvBwa4d9QxMg== /@typescript-eslint/typescript-estree/4.9.0_typescript@4.0.3: dependencies: '@typescript-eslint/types': 4.9.0 @@ -2291,6 +2394,15 @@ packages: node: ^8.10.0 || ^10.13.0 || >=11.10.1 resolution: integrity: sha512-hVpsLARbDh4B9TKYz5cLbcdMIOAoBYgFPCSP9FFS/liSF+b33gVNq8JHY3QGhHNVz85hObvL7BEYLlgx553WCw== + /@typescript-eslint/visitor-keys/4.13.0: + dependencies: + '@typescript-eslint/types': 4.13.0 + eslint-visitor-keys: 2.0.0 + dev: true + engines: + node: ^8.10.0 || ^10.13.0 || >=11.10.1 + resolution: + integrity: sha512-6RoxWK05PAibukE7jElqAtNMq+RWZyqJ6Q/GdIxaiUj2Ept8jh8+FUVlbq9WxMYxkmEOPvCE5cRSyupMpwW31g== /@typescript-eslint/visitor-keys/4.9.0: dependencies: '@typescript-eslint/types': 4.9.0 @@ -8799,9 +8911,9 @@ packages: dev: true resolution: integrity: sha512-21rQzss/XPMjolTiIezSu3JAjgagXKROtNrYFEOWK109qY1Uv2tVjPTZ1ci2HgvQDA16gHYSthQIJfB+XId/rQ== - /undici/3.1.0: + /undici/3.2.0: resolution: - integrity: sha512-Iom4aBVv6YEsiXDnd1MIDsyKSWaa+l/ZoJUlnFYbp+6f0rs4K0d1Ohb+A/Z2ZxSks/m+nk1rgmCcm84DM3THWA== + integrity: sha512-lBvV7jZirNtDbDmnDJTLbfFDJO6VDav76XRqILfeERlSnAWeYn5pAo6JdPc7OM55RiBZdsh8ucRG9TNfDrDnhg== /union-value/1.0.1: dependencies: arr-union: 3.1.0