diff --git a/scripts/lint.ts b/scripts/lint.ts index 486937135bb8..925daddefc66 100644 --- a/scripts/lint.ts +++ b/scripts/lint.ts @@ -19,7 +19,7 @@ async function main() { } } - let packages = [] + let packages = [] as string[] if (args['--staged']) { packages = await getStagedPackages() } else { diff --git a/src/packages/cli/fixtures/test.sh b/src/packages/cli/fixtures/test.sh index a052fd708aee..afe5d8df2966 100755 --- a/src/packages/cli/fixtures/test.sh +++ b/src/packages/cli/fixtures/test.sh @@ -4,7 +4,7 @@ # # Test version command # -VERSION=$(node ./dist/bin.js --version) +VERSION=$(node ./build/index.js --version) if [[ ${VERSION} != *"@prisma/client"* ]]; then echo "prisma --version is broken" exit 1 @@ -14,7 +14,7 @@ fi # Test custom generator path # cd ./fixtures/custom\ generator -GENERATE_RESULT=$(node ../../dist/bin.js generate) +GENERATE_RESULT=$(node ../../build/index.js generate) if [[ ${GENERATE_RESULT} != *"onGenerate"* ]]; then echo "custom generators are broken" echo $GENERATE_RESULT @@ -26,7 +26,7 @@ cd ../.. # Test introspection output with warnings # cd fixtures/introspection-warnings -INTROSPECTION=$(node ../../dist/bin.js introspect --url=file:./warnings.db 2>&1) +INTROSPECTION=$(node ../../build/index.js introspect --url=file:./warnings.db 2>&1) if [[ ${INTROSPECTION} != *"column_name_that_becomes_empty_string"* ]]; then echo "prisma introspect column_name_that_becomes_empty_string is broken" echo $INTROSPECTION @@ -46,13 +46,13 @@ cd ../../ # Test generate output command # cd fixtures/project/subdir -GENERATE=$(node ../../../dist/bin.js generate) +GENERATE=$(node ../../../build/index.js generate) if [[ ${GENERATE} != *"Generated "* ]]; then echo "prisma generate is broken" exit 1 fi -GENERATE_DENYLIST=$(node ../../../dist/bin.js generate --schema=denylist.prisma 2>&1) +GENERATE_DENYLIST=$(node ../../../build/index.js generate --schema=denylist.prisma 2>&1) if [[ ${GENERATE_DENYLIST} != *"Error validating model \"public\""* ]]; then echo "prisma generate denylist is broken" exit 1 @@ -64,14 +64,14 @@ fi # Relative path GENERATE_RELATIVE_SCHEMA_PATH="./schema.prisma" -GENERATE_RELATIVE_SCHEMA=$(node ../../../dist/bin.js generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH) +GENERATE_RELATIVE_SCHEMA=$(node ../../../build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH) if [[ ${GENERATE_RELATIVE_SCHEMA} != *"Generated "* ]]; then echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_PATH is broken" exit 1 fi # Same case but should fail! GENERATE_RELATIVE_SCHEMA_INVALID_PATH="./invalid.prisma" -GENERATE_RELATIVE_SCHEMA_INVALID=$(node ../../../dist/bin.js generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH 2>&1 > /dev/null) +GENERATE_RELATIVE_SCHEMA_INVALID=$(node ../../../build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH 2>&1 > /dev/null) if [[ ${GENERATE_RELATIVE_SCHEMA_INVALID} != *"Provided --schema at $GENERATE_RELATIVE_SCHEMA_INVALID_PATH doesn't exist."* ]]; then echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_INVALID_PATH is broken (should fail)" exit 1 @@ -79,14 +79,14 @@ fi # Absolute path GENERATE_ABSOLUTE_SCHEMA_PATH="$(pwd)/schema.prisma" -GENERATE_ABSOLUTE_SCHEMA=$(node ../../../dist/bin.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH) +GENERATE_ABSOLUTE_SCHEMA=$(node ../../../build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH) if [[ ${GENERATE_ABSOLUTE_SCHEMA} != *"Generated "* ]]; then echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_PATH is broken" exit 1 fi # Same case but should fail! GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH="$(pwd)/invalid.prisma" -GENERATE_ABSOLUTE_SCHEMA_INVALID=$(node ../../../dist/bin.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH 2>&1 > /dev/null) +GENERATE_ABSOLUTE_SCHEMA_INVALID=$(node ../../../build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH 2>&1 > /dev/null) if [[ ${GENERATE_ABSOLUTE_SCHEMA_INVALID} != *"Provided --schema at $GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH doesn't exist"* ]]; then echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_INVALID_PATH is broken (should fail)" exit 1 @@ -105,14 +105,14 @@ cd fixtures/project/ && yarn postinstall cd ../.. # Relative path GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH="./fixtures/project/subdir/schema.prisma" -GENERATE_RELATIVE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./dist/bin.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH) +GENERATE_RELATIVE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH) if [[ ${GENERATE_RELATIVE_SCHEMA_FROM_PARENT} != *"Generated "* ]]; then echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_PATH is broken" exit 1 fi # Same case but should fail! GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH="./fixtures/project/subdir/invalid.prisma" -GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID=$(node ./dist/bin.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null) +GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID=$(node ./build/index.js generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null) if [[ ${GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID} != *"Provided --schema at $GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH doesn't exist."* ]]; then echo "prisma generate --schema=$GENERATE_RELATIVE_SCHEMA_FROM_PARENT_INVALID_PATH is broken (should fail)" exit 1 @@ -120,14 +120,14 @@ fi # Absolute path GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH="$(pwd)/fixtures/project/subdir/schema.prisma" -GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./dist/bin.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH) +GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT=$(SQLITE_URL=file:dev.db node ./build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH) if [[ ${GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT} != *"Generated "* ]]; then echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_PATH is broken" exit 1 fi # Same case but should fail! GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH="$(pwd)/fixtures/project/subdir/invalid.prisma" -GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID=$(node ./dist/bin.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null) +GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID=$(node ./build/index.js generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH 2>&1 > /dev/null) if [[ ${GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID} != *"Provided --schema at $GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH doesn't exist."* ]]; then echo "prisma generate --schema=$GENERATE_ABSOLUTE_SCHEMA_FROM_PARENT_INVALID_PATH is broken (should fail)" exit 1 diff --git a/src/packages/cli/helpers/build.js b/src/packages/cli/helpers/build.js index 0831bf63cb9a..d007fd88a4e8 100644 --- a/src/packages/cli/helpers/build.js +++ b/src/packages/cli/helpers/build.js @@ -9,40 +9,37 @@ const { promisify } = require('util') const copyFile = promisify(fs.copyFile) const lineReplace = require('line-replace') +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + bundle: true, + tsconfig: 'tsconfig.build.json' +} + async function main() { const before = Date.now() await makeDir('./build') - await Promise.all([ - run('node ./helpers/copy-prisma-client.js'), - run('tsc --build tsconfig.build.json', true), - ]) + await run('node ./helpers/copy-prisma-client.js') await Promise.all([ esbuild.build({ - platform: 'node', - bundle: true, - target: 'node12', - outfile: 'build/index.js', + ...ESBUILD_DEFAULT, entryPoints: ['src/bin.ts'], + outfile: 'build/index.js', external: ['@prisma/engines', '_http_common'], }), esbuild.build({ - platform: 'node', - bundle: true, - minify: true, - target: ['node12'], - outfile: 'preinstall/index.js', + ...ESBUILD_DEFAULT, entryPoints: ['scripts/preinstall.js'], + outfile: 'preinstall/index.js', }), esbuild.build({ - platform: 'node', - bundle: true, - minify: true, - target: ['node12'], - outfile: 'install/index.js', + ...ESBUILD_DEFAULT, entryPoints: ['scripts/install.js'], + outfile: 'install/index.js', + minify: true, }), copy({ from: path.join( diff --git a/src/packages/cli/package.json b/src/packages/cli/package.json index e9d9e6c950da..1d410ecb2e92 100644 --- a/src/packages/cli/package.json +++ b/src/packages/cli/package.json @@ -71,6 +71,7 @@ "@prisma/studio-server": "0.417.0", "@timsuchanek/copy": "1.4.5", "@types/jest": "26.0.24", + "@types/rimraf": "3.0.1", "@types/ws": "7.4.7", "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", @@ -110,6 +111,8 @@ "typescript": "4.3.5" }, "scripts": { + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "test:commands": "./fixtures/test.sh && jest --maxConcurrency=1", "test-update": "pnpm run test:commands -- -u", "test": "pnpm run test:commands", @@ -119,7 +122,6 @@ "lint": "eslint --cache --fix --ext .ts .", "lint-ci": "eslint --ext .ts .", "tsc": "tsc -d -p tsconfig.build.json && bash scripts/copy-runtime-dist.sh", - "build": "node helpers/build.js", "prepublishOnly": "pnpm run build", "preinstall": "node scripts/preinstall-entry.js", "precommit": "lint-staged" diff --git a/src/packages/cli/src/Init.ts b/src/packages/cli/src/Init.ts index 44fb88aaff7f..392ed997c676 100644 --- a/src/packages/cli/src/Init.ts +++ b/src/packages/cli/src/Init.ts @@ -79,6 +79,8 @@ export const defaultPort = (provider: ConnectorType) => { case 'postgresql': return 5432 } + + return undefined } export const defaultURL = ( @@ -276,12 +278,9 @@ export class Init implements Command { } try { - fs.writeFileSync( - path.join(outputDir, ".gitignore"), - defaultGitIgnore() - ); + fs.writeFileSync(path.join(outputDir, '.gitignore'), defaultGitIgnore()) } catch (error) { - console.error("Failed to write .gitignore file, reason: ", error); + console.error('Failed to write .gitignore file, reason: ', error) } const steps: string[] = [] diff --git a/src/packages/cli/tsconfig.build.json b/src/packages/cli/tsconfig.build.json index 9e33a7b821c6..e0244d8566d7 100644 --- a/src/packages/cli/tsconfig.build.json +++ b/src/packages/cli/tsconfig.build.json @@ -1,15 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "../../../tsconfig.build.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "emitDeclarationOnly": true }, - "exclude": [ - "dist", - "build", - "runtime", - "examples", - "src/__tests__", - "fixtures", - "**/node_modules/**" - ] + "include": ["src"], } diff --git a/src/packages/cli/tsconfig.eslint.json b/src/packages/cli/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/cli/tsconfig.eslint.json +++ b/src/packages/cli/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/cli/tsconfig.json b/src/packages/cli/tsconfig.json index a003a80f599d..618c6c3e97b5 100644 --- a/src/packages/cli/tsconfig.json +++ b/src/packages/cli/tsconfig.json @@ -1,16 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext", "esnext.asynciterable", "dom"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "rootDir": "src", - "declaration": true, - "skipLibCheck": true, - "incremental": true - }, - "exclude": ["scripts", "src/__tests__", "**/tmp-*"] + "extends": "../../../tsconfig.json" } diff --git a/src/packages/client/.eslintignore b/src/packages/client/.eslintignore index 56eb8c45c112..801970943aea 100644 --- a/src/packages/client/.eslintignore +++ b/src/packages/client/.eslintignore @@ -1,19 +1,10 @@ /node_modules -/dist /generator-build +/declaration /runtime -/runtime-dist -/fixtures -/index.d.ts -/scripts/ -sandbox +/sandbox -/src/byline.ts -/src/__tests__/generation/node_modules +generated-dmmf.ts /src/__tests__/types -/src/__tests__/runtime-tests /src/__tests__/benchmarks -/src/sandbox -generated-dmmf.ts /src/__tests__/__helpers__/dmmf-types.ts - diff --git a/src/packages/client/.gitignore b/src/packages/client/.gitignore index 1b1e8174d291..584a36c636a5 100644 --- a/src/packages/client/.gitignore +++ b/src/packages/client/.gitignore @@ -1,32 +1,8 @@ -node_modules -dist -build -runtime -runtime-browser -runtime-browser-dist +/node_modules +/declaration +/generator-build +/runtime -download -generator -cli -.DS_Store -!src/runtime -yarn-error.log -src/utils/transformed-dmmf.json -*-dmmf.json -*-dmmf-raw.json -db -query-engine* -test.sh -try-getConfig.ts -generator-build -@prisma -getConfig.sh -migrations -/schema.prisma -/dmmf.json -try-getDmmf.ts -write-test -prisma-client-*.tgz -*.tsbuildinfo pnpm-lock.yaml -*.zip +*.tsbuildinfo +.DS_Store diff --git a/src/packages/client/.npmignore b/src/packages/client/.npmignore index 63532ceb0643..e69de29bb2d1 100644 --- a/src/packages/client/.npmignore +++ b/src/packages/client/.npmignore @@ -1,2 +0,0 @@ -runtime/prisma -runtime/schema-inferrer-bin \ No newline at end of file diff --git a/src/packages/client/helpers/build.js b/src/packages/client/helpers/build.js index 58f6588bf3a5..62d080f2dcb3 100644 --- a/src/packages/client/helpers/build.js +++ b/src/packages/client/helpers/build.js @@ -1,82 +1,46 @@ const execa = require('execa') -const fs = require('fs') -const chalk = require('chalk') -const { promisify } = require('util') const esbuild = require('esbuild') -const copyFile = promisify(fs.copyFile) -async function main() { - const before = Date.now() - - // do the job for typescript - if ( - !fs.existsSync('./runtime-dist') && - fs.existsSync('./tsconfig.runtime.tsbuildinfo') - ) { - try { - console.log('unlinking') - fs.unlinkSync('./tsconfig.tsbuildinfo') - } catch (e) { - console.error(e) - // - } - } +const ESBUILD_DEFAULT = { + bundle: true, + platform: 'node', + target: 'node12', + external: ['_http_common'], + tsconfig: 'tsconfig.build.json', +} +async function build() { await Promise.all([ - run('tsc --build tsconfig.runtime.json', true), - run('tsc --build tsconfig.json', true), esbuild.build({ - platform: 'node', - bundle: true, - target: 'node12', + ...ESBUILD_DEFAULT, + entryPoints: ['src/generation/generator.ts'], outfile: 'generator-build/index.js', - entryPoints: ['src/generator.ts'], - external: ['_http_common'] }), - ]) - - await Promise.all([ esbuild.build({ - platform: 'node', - bundle: true, - target: 'node12', - outdir: 'runtime', + ...ESBUILD_DEFAULT, entryPoints: ['src/runtime/index.ts'], - external: ['_http_common'] + outfile: 'runtime/index.js', }), esbuild.build({ - platform: 'node', - bundle: true, - format: 'cjs', - target: ['chrome58', 'firefox57', 'safari11', 'edge16'], - outdir: 'runtime', + ...ESBUILD_DEFAULT, entryPoints: ['src/runtime/index-browser.ts'], - external: ['_http_common'] + outfile: 'runtime/index-browser.js', + target: ['chrome58', 'firefox57', 'safari11', 'edge16'], + format: 'cjs', }), - run('rollup -c'), ]) - await Promise.all([ - copyFile('./scripts/backup-index.js', 'index.js'), - copyFile('./scripts/backup-index-browser.js', 'index-browser.js'), - copyFile('./scripts/backup-index.d.ts', 'index.d.ts'), - ]) - - const after = Date.now() - console.log( - chalk.blueBright( - `\nDone with client build in ${chalk.bold( - ((after - before) / 1000).toFixed(1), - )}s`, - ), - ) + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + await run('rollup -c') + } } function run(command, preferLocal = true) { return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) } -main().catch((e) => { +build().catch((e) => { console.error(e) process.exit(1) }) diff --git a/src/packages/client/package.json b/src/packages/client/package.json index 46a51b5f18e1..ef3fa75790a8 100644 --- a/src/packages/client/package.json +++ b/src/packages/client/package.json @@ -32,10 +32,12 @@ "maintainers": [ "Tim Suchanek ", "Joël Galeran ", - "William Luke " + "William Luke ", + "Pierre-Antoine Mills " ], "bugs": "https://github.com/prisma/prisma/issues", "scripts": { + "dev": "DEV=true node helpers/build.js", "build": "node helpers/build.js", "test": "jest", "format": "prettier --write .", diff --git a/src/packages/client/rollup.config.js b/src/packages/client/rollup.config.js index 215ec70bbcd7..c49c02ec832b 100644 --- a/src/packages/client/rollup.config.js +++ b/src/packages/client/rollup.config.js @@ -2,7 +2,7 @@ import dts from 'rollup-plugin-dts' const config = [ { - input: './runtime-dist/index.d.ts', + input: 'declaration/index.d.ts', output: [{ file: 'runtime/index.d.ts', format: 'es' }], plugins: [ dts({ @@ -11,7 +11,7 @@ const config = [ ], }, { - input: './runtime-dist/index-browser.d.ts', + input: 'declaration/index-browser.d.ts', output: [{ file: 'runtime/index-browser.d.ts', format: 'es' }], plugins: [ dts({ diff --git a/src/packages/client/scripts/default-index.d.ts b/src/packages/client/scripts/default-index.d.ts index f8dae23ec330..43559940f201 100644 --- a/src/packages/client/scripts/default-index.d.ts +++ b/src/packages/client/scripts/default-index.d.ts @@ -35,13 +35,12 @@ export declare type dmmf = any /** * Get the type of the value, that the Promise holds. */ -export declare type PromiseType< - T extends PromiseLike -> = T extends PromiseLike ? U : T +export declare type PromiseType> = + T extends PromiseLike ? U : T /** * Get the return type of a function which returns a Promise. */ export declare type PromiseReturnType< - T extends (...args: any) => Promise + T extends (...args: any) => Promise, > = PromiseType> diff --git a/src/packages/client/src/byline.ts b/src/packages/client/src/byline.ts index 35ef4abd5ec9..704fc83d01ec 100644 --- a/src/packages/client/src/byline.ts +++ b/src/packages/client/src/byline.ts @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-this-alias */ // Copyright (C) 2011-2015 John Hewson // // Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/src/packages/client/src/generator.ts b/src/packages/client/src/generation/generator.ts similarity index 89% rename from src/packages/client/src/generator.ts rename to src/packages/client/src/generation/generator.ts index b4c8a969746e..651024cd0fac 100755 --- a/src/packages/client/src/generator.ts +++ b/src/packages/client/src/generation/generator.ts @@ -2,14 +2,14 @@ import Debug from '@prisma/debug' import { enginesVersion } from '@prisma/engines-version' import { generatorHandler } from '@prisma/generator-helper' import { parseEnvValue } from '@prisma/sdk' -import { generateClient } from './generation/generateClient' -import { getDMMF } from './generation/getDMMF' -import { externalToInternalDmmf } from './runtime/externalToInternalDmmf' +import { generateClient } from './generateClient' +import { getDMMF } from './getDMMF' +import { externalToInternalDmmf } from '../runtime/externalToInternalDmmf' const debug = Debug('prisma:client:generator') // As specced in https://github.com/prisma/specs/tree/master/generators -const pkg = require('../package.json') +const pkg = require('../../package.json') const clientVersion = pkg.version if (require.main === module) { diff --git a/src/packages/client/tsconfig.build.json b/src/packages/client/tsconfig.build.json new file mode 100644 index 000000000000..26ec95585c73 --- /dev/null +++ b/src/packages/client/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.build.json", + "compilerOptions": { + "outDir": "declaration", + "emitDeclarationOnly": true + }, + "include": ["src/runtime"], +} diff --git a/src/packages/client/tsconfig.eslint.json b/src/packages/client/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/client/tsconfig.eslint.json +++ b/src/packages/client/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/client/tsconfig.json b/src/packages/client/tsconfig.json index 3d3b80db1f4e..421c801d8b57 100644 --- a/src/packages/client/tsconfig.json +++ b/src/packages/client/tsconfig.json @@ -1,37 +1,9 @@ { - "compilerOptions": { - "lib": [ - "esnext" - ], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, // TODO Can't let TS shoot itself on the foot - "outDir": "dist", - "rootDir": "src", - "declaration": true, - "incremental": true, - "noUncheckedIndexedAccess": false, // TODO Can't let TS shoot itself on the foot - "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true - }, + "extends": "../../../tsconfig.json", "exclude": [ - "dist", - "build", - "cli", - "fixtures", - "runtime", - "runtime-dist", - "generator", - "src/__tests__/generation/node_modules", - "src/__tests__/types", - "src/__tests__/benchmarks", - "src/__tests__/runtime-tests", + "node_modules", + "declaration", "generator-build", - "sandbox", - "index.d.ts", - "scripts/backup-index.d.ts" + "runtime" ] } \ No newline at end of file diff --git a/src/packages/client/tsconfig.runtime.json b/src/packages/client/tsconfig.runtime.json deleted file mode 100644 index e167497b4241..000000000000 --- a/src/packages/client/tsconfig.runtime.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "compilerOptions": { - "lib": ["esnext", "esnext.asynciterable"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "outDir": "runtime-dist", - "rootDir": "src/runtime", - "declaration": true, - "incremental": true, - "skipDefaultLibCheck": true, - "tsBuildInfoFile": "tsconfig.runtime.tsbuildinfo" - }, - "include": ["src/runtime"], - "exclude": [ - "dist", - "build", - "cli", - "examples", - "runtime", - "src/fixtures", - "src/__tests__", - "**/node_modules", - "**/.*/" - ] -} diff --git a/src/packages/debug/helpers/build.js b/src/packages/debug/helpers/build.js new file mode 100644 index 000000000000..b3e4be635b3a --- /dev/null +++ b/src/packages/debug/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }) + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/debug/package.json b/src/packages/debug/package.json index d82265077064..b7faf79778a1 100644 --- a/src/packages/debug/package.json +++ b/src/packages/debug/package.json @@ -10,19 +10,24 @@ "maintainers": [ "Tim Suchanek ", "Joël Galeran ", - "William Luke " + "William Luke ", + "Pierre-Antoine Mills " ], "bugs": "https://github.com/prisma/prisma/issues", "devDependencies": { + "@types/debug": "4.1.7", "@types/jest": "26.0.24", "@types/node": "12.20.17", "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", + "esbuild": "0.12.16", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-jest": "24.4.0", "eslint-plugin-prettier": "3.4.0", + "execa": "5.1.1", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "prettier": "2.3.2", @@ -31,7 +36,8 @@ "typescript": "4.3.5" }, "scripts": { - "build": "tsc -d", + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "prepublishOnly": "pnpm run build", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", diff --git a/src/packages/debug/src/index.ts b/src/packages/debug/src/index.ts index ab18b160a8d2..bbbd68620d1c 100644 --- a/src/packages/debug/src/index.ts +++ b/src/packages/debug/src/index.ts @@ -1,12 +1,12 @@ -import DebugLib from 'debug' +import 'debug' import DebugNode from './node' const cache: any[] = [] const MAX_LOGS = 100 -export default function Debug(namespace: string): DebugLib.Debugger { - const debug: DebugLib.Debugger = DebugNode(namespace, (...args) => { +export default function Debug(namespace: string): debug.Debugger { + const debug: debug.Debugger = DebugNode(namespace, (...args) => { cache.push(args) // keeping 100 logs is just a heuristic. The real truncating comes later if (cache.length > MAX_LOGS) { @@ -24,8 +24,6 @@ Debug.enable = (namespace: string): void => { Debug.enabled = (namespace: string): boolean => DebugNode.enabled(namespace) -export declare type Debugger = DebugLib.Debugger - // https://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers // we need some space for other characters, so we go for 30k here export function getLogs(numChars = 7500): string { diff --git a/src/packages/debug/tsconfig.build.json b/src/packages/debug/tsconfig.build.json new file mode 100644 index 000000000000..e0244d8566d7 --- /dev/null +++ b/src/packages/debug/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.build.json", + "compilerOptions": { + "outDir": "dist", + "emitDeclarationOnly": true + }, + "include": ["src"], +} diff --git a/src/packages/debug/tsconfig.eslint.json b/src/packages/debug/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/debug/tsconfig.eslint.json +++ b/src/packages/debug/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/debug/tsconfig.json b/src/packages/debug/tsconfig.json index 66993f6569c9..618c6c3e97b5 100644 --- a/src/packages/debug/tsconfig.json +++ b/src/packages/debug/tsconfig.json @@ -1,16 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "outDir": "dist", - "rootDir": "src", - "declaration": true, - "incremental": true - }, - "exclude": ["dist", "build", "src/__tests__", "scripts", "sandbox"] + "extends": "../../../tsconfig.json" } diff --git a/src/packages/engine-core/helpers/build.js b/src/packages/engine-core/helpers/build.js new file mode 100644 index 000000000000..b3e4be635b3a --- /dev/null +++ b/src/packages/engine-core/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }) + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/engine-core/package.json b/src/packages/engine-core/package.json index eed276525115..2c94e23d549c 100644 --- a/src/packages/engine-core/package.json +++ b/src/packages/engine-core/package.json @@ -10,7 +10,8 @@ "maintainers": [ "Tim Suchanek ", "Joël Galeran ", - "William Luke " + "William Luke ", + "Pierre-Antoine Mills " ], "bugs": "https://github.com/prisma/prisma/issues", "devDependencies": { @@ -18,11 +19,13 @@ "@types/node": "12.20.17", "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", + "esbuild": "0.12.16", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-jest": "24.4.0", "eslint-plugin-prettier": "3.4.0", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "prettier": "2.3.2", @@ -31,7 +34,8 @@ "typescript": "4.3.5" }, "scripts": { - "build": "tsc -d", + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "prepublishOnly": "npm run build", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", diff --git a/src/packages/engine-core/tsconfig.build.json b/src/packages/engine-core/tsconfig.build.json new file mode 100644 index 000000000000..e0244d8566d7 --- /dev/null +++ b/src/packages/engine-core/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.build.json", + "compilerOptions": { + "outDir": "dist", + "emitDeclarationOnly": true + }, + "include": ["src"], +} diff --git a/src/packages/engine-core/tsconfig.eslint.json b/src/packages/engine-core/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/engine-core/tsconfig.eslint.json +++ b/src/packages/engine-core/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/engine-core/tsconfig.json b/src/packages/engine-core/tsconfig.json index 4e0055942833..e0244d8566d7 100644 --- a/src/packages/engine-core/tsconfig.json +++ b/src/packages/engine-core/tsconfig.json @@ -1,15 +1,8 @@ { + "extends": "../../../tsconfig.build.json", "compilerOptions": { - "lib": ["esnext"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, "outDir": "dist", - "rootDir": "src", - "declaration": true + "emitDeclarationOnly": true }, - "exclude": ["dist", "build", "src/__tests__"] + "include": ["src"], } diff --git a/src/packages/generator-helper/helpers/build.js b/src/packages/generator-helper/helpers/build.js new file mode 100644 index 000000000000..b3e4be635b3a --- /dev/null +++ b/src/packages/generator-helper/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }) + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/generator-helper/package.json b/src/packages/generator-helper/package.json index c0ac19999230..8da3e92371dc 100644 --- a/src/packages/generator-helper/package.json +++ b/src/packages/generator-helper/package.json @@ -21,7 +21,8 @@ "cross-spawn": "^7.0.2" }, "scripts": { - "build": "tsc -d", + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "prepublishOnly": "pnpm run build && pnpm run test", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", @@ -34,11 +35,13 @@ "@types/node": "12.20.17", "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", + "esbuild": "0.12.16", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-jest": "24.4.0", "eslint-plugin-prettier": "3.4.0", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "prettier": "2.3.2", diff --git a/src/packages/generator-helper/tsconfig.build.json b/src/packages/generator-helper/tsconfig.build.json new file mode 100644 index 000000000000..e0244d8566d7 --- /dev/null +++ b/src/packages/generator-helper/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.build.json", + "compilerOptions": { + "outDir": "dist", + "emitDeclarationOnly": true + }, + "include": ["src"], +} diff --git a/src/packages/generator-helper/tsconfig.eslint.json b/src/packages/generator-helper/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/generator-helper/tsconfig.eslint.json +++ b/src/packages/generator-helper/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/generator-helper/tsconfig.json b/src/packages/generator-helper/tsconfig.json index 148e3cef6071..618c6c3e97b5 100644 --- a/src/packages/generator-helper/tsconfig.json +++ b/src/packages/generator-helper/tsconfig.json @@ -1,16 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext", "esnext.asynciterable"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "outDir": "dist", - "rootDir": "src", - "declaration": true, - "incremental": true - }, - "exclude": ["dist", "build", "src/__tests__", "src/sandbox"] + "extends": "../../../tsconfig.json" } diff --git a/src/packages/integration-tests/helpers/build.js b/src/packages/integration-tests/helpers/build.js new file mode 100644 index 000000000000..b3e4be635b3a --- /dev/null +++ b/src/packages/integration-tests/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }) + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/integration-tests/package.json b/src/packages/integration-tests/package.json index 599cffe7a8c6..4a81b9d68078 100644 --- a/src/packages/integration-tests/package.json +++ b/src/packages/integration-tests/package.json @@ -21,6 +21,7 @@ "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", "decimal.js": "10.3.1", + "esbuild": "0.12.16", "escape-string-regexp": "4.0.0", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", @@ -29,6 +30,7 @@ "eslint-plugin-prettier": "3.4.0", "execa": "5.1.1", "fs-jetpack": "4.1.0", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "mariadb": "2.5.4", @@ -48,6 +50,8 @@ "verror": "1.10.0" }, "scripts": { + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "jest": "jest", "test:integration": "jest integration --maxConcurrency=8 --verbose", "test:sqlite": "jest integration.sqlite --verbose", @@ -55,7 +59,6 @@ "test:mysql": "jest integration.mysql --maxConcurrency=8 --verbose", "test:mariadb": "jest integration.mariadb --maxConcurrency=8 --verbose", "test:mssql": "jest integration.mssql --maxConcurrency=8 --verbose", - "build": "tsc -d", "prepublishOnly": "pnpm run build", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", diff --git a/src/packages/integration-tests/src/__tests__/__helpers__/integrationTest.ts b/src/packages/integration-tests/src/__tests__/__helpers__/integrationTest.ts index fa9895662900..513b7a91b506 100644 --- a/src/packages/integration-tests/src/__tests__/__helpers__/integrationTest.ts +++ b/src/packages/integration-tests/src/__tests__/__helpers__/integrationTest.ts @@ -5,7 +5,7 @@ import { FSJetpack } from 'fs-jetpack/types' import path from 'path' import hash from 'string-hash' import VError, { MultiError } from 'verror' -import { getTestClient } from '@prisma/client/dist/utils/getTestClient' +import { getTestClient } from '../../../../client/src/utils/getTestClient' process.setMaxListeners(200) diff --git a/src/packages/integration-tests/tsconfig.build.json b/src/packages/integration-tests/tsconfig.build.json new file mode 100644 index 000000000000..e0244d8566d7 --- /dev/null +++ b/src/packages/integration-tests/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.build.json", + "compilerOptions": { + "outDir": "dist", + "emitDeclarationOnly": true + }, + "include": ["src"], +} diff --git a/src/packages/integration-tests/tsconfig.eslint.json b/src/packages/integration-tests/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/integration-tests/tsconfig.eslint.json +++ b/src/packages/integration-tests/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/integration-tests/tsconfig.json b/src/packages/integration-tests/tsconfig.json index 0f64380b6910..618c6c3e97b5 100644 --- a/src/packages/integration-tests/tsconfig.json +++ b/src/packages/integration-tests/tsconfig.json @@ -1,16 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "outDir": "dist", - "rootDir": "src", - "declaration": true, - "incremental": true - }, - "exclude": ["dist", "build", "scripts", "src/__tests__", "sandbox"] + "extends": "../../../tsconfig.json" } diff --git a/src/packages/migrate/helpers/build.js b/src/packages/migrate/helpers/build.js new file mode 100644 index 000000000000..b3e4be635b3a --- /dev/null +++ b/src/packages/migrate/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }) + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/migrate/package.json b/src/packages/migrate/package.json index 9d7ebf4f874b..d7b868c13d35 100644 --- a/src/packages/migrate/package.json +++ b/src/packages/migrate/package.json @@ -28,12 +28,14 @@ "@typescript-eslint/parser": "4.28.5", "chalk": "4.1.1", "del": "6.0.0", + "esbuild": "0.12.16", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-jest": "24.4.0", "eslint-plugin-prettier": "3.4.0", "fs-jetpack": "4.1.0", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "make-dir": "3.1.0", @@ -69,13 +71,14 @@ "strip-indent": "^3.0.0" }, "scripts": { + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "run": "node dist/bin.js", "precommit": "lint-staged", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", "lint-ci": "eslint --ext .ts .", "test": "jest --forceExit", - "build": "tsc -d -p tsconfig.build.json", "prepublishOnly": "pnpm run build" }, "files": [ diff --git a/src/packages/migrate/src/commands/DbPull.ts b/src/packages/migrate/src/commands/DbPull.ts index 7fe6a51b0d73..37fbbafbb9f2 100644 --- a/src/packages/migrate/src/commands/DbPull.ts +++ b/src/packages/migrate/src/commands/DbPull.ts @@ -303,6 +303,8 @@ Or run this command with the ${chalk.green( } return message } + + return undefined } const introspectionWarningsMessage = diff --git a/src/packages/migrate/src/utils/ensureDatabaseExists.ts b/src/packages/migrate/src/utils/ensureDatabaseExists.ts index edd7176c3653..e8ed0e1e2bb8 100644 --- a/src/packages/migrate/src/utils/ensureDatabaseExists.ts +++ b/src/packages/migrate/src/utils/ensureDatabaseExists.ts @@ -153,6 +153,8 @@ export async function ensureDatabaseExists( schemaDir, ) } + + return undefined } export async function interactivelyCreateDatabase( diff --git a/src/packages/migrate/src/utils/seed.ts b/src/packages/migrate/src/utils/seed.ts index 02982d0f98e2..c92a0e78c0eb 100644 --- a/src/packages/migrate/src/utils/seed.ts +++ b/src/packages/migrate/src/utils/seed.ts @@ -192,6 +192,8 @@ To install them run: ${chalk.green( }) } } + + return undefined } export async function getScriptsFromPackageJson(cwd: string = process.cwd()) { diff --git a/src/packages/migrate/tsconfig.build.json b/src/packages/migrate/tsconfig.build.json index 279568eddfd2..e0244d8566d7 100644 --- a/src/packages/migrate/tsconfig.build.json +++ b/src/packages/migrate/tsconfig.build.json @@ -1,14 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "../../../tsconfig.build.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "emitDeclarationOnly": true }, - "exclude": [ - "dist", - "build", - "src/__tests__", - "fixtures", - "fixtures_old", - "tmp" - ] + "include": ["src"], } diff --git a/src/packages/migrate/tsconfig.eslint.json b/src/packages/migrate/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/migrate/tsconfig.eslint.json +++ b/src/packages/migrate/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/migrate/tsconfig.json b/src/packages/migrate/tsconfig.json index e3465a48811b..618c6c3e97b5 100644 --- a/src/packages/migrate/tsconfig.json +++ b/src/packages/migrate/tsconfig.json @@ -1,15 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext", "esnext.asynciterable"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "rootDir": "src", - "declaration": true, - "resolveJsonModule": true, - "incremental": true - } + "extends": "../../../tsconfig.json" } diff --git a/src/packages/react-prisma/helpers/build.js b/src/packages/react-prisma/helpers/build.js new file mode 100644 index 000000000000..b3e4be635b3a --- /dev/null +++ b/src/packages/react-prisma/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }) + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/react-prisma/package.json b/src/packages/react-prisma/package.json index 9b4c2ac64a61..cd8edef95d0b 100644 --- a/src/packages/react-prisma/package.json +++ b/src/packages/react-prisma/package.json @@ -8,26 +8,29 @@ "repository": "git@github.com:prisma/prisma.git", "homepage": "https://www.prisma.io", "devDependencies": { + "@prisma/client": "workspace:*", "@types/jest": "26.0.24", "@types/node": "14.17.6", "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", + "esbuild": "0.12.16", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-jest": "24.4.0", "eslint-plugin-prettier": "3.4.0", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "prettier": "2.3.2", + "react": "17.0.0", "strip-ansi": "7.0.0", "ts-jest": "27.0.4", - "typescript": "4.3.5", - "react": "^17.0.0", - "@prisma/client": "workspace:*" + "typescript": "4.3.5" }, "scripts": { - "build": "tsc -d", + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "prepublishOnly": "pnpm run build", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", @@ -46,7 +49,7 @@ ] }, "peerDependencies": { - "react": "^17.0.0", - "@prisma/client": "*" + "@prisma/client": "*", + "react": "^17.0.0" } } diff --git a/src/packages/react-prisma/test.js b/src/packages/react-prisma/test.js new file mode 100644 index 000000000000..c14050e5f09a --- /dev/null +++ b/src/packages/react-prisma/test.js @@ -0,0 +1 @@ +console.log(process.env.DEV) \ No newline at end of file diff --git a/src/packages/react-prisma/tsconfig.build.json b/src/packages/react-prisma/tsconfig.build.json new file mode 100644 index 000000000000..e0244d8566d7 --- /dev/null +++ b/src/packages/react-prisma/tsconfig.build.json @@ -0,0 +1,8 @@ +{ + "extends": "../../../tsconfig.build.json", + "compilerOptions": { + "outDir": "dist", + "emitDeclarationOnly": true + }, + "include": ["src"], +} diff --git a/src/packages/react-prisma/tsconfig.eslint.json b/src/packages/react-prisma/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/react-prisma/tsconfig.eslint.json +++ b/src/packages/react-prisma/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/react-prisma/tsconfig.json b/src/packages/react-prisma/tsconfig.json index 66993f6569c9..618c6c3e97b5 100644 --- a/src/packages/react-prisma/tsconfig.json +++ b/src/packages/react-prisma/tsconfig.json @@ -1,16 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "outDir": "dist", - "rootDir": "src", - "declaration": true, - "incremental": true - }, - "exclude": ["dist", "build", "src/__tests__", "scripts", "sandbox"] + "extends": "../../../tsconfig.json" } diff --git a/src/packages/sdk/.eslintignore b/src/packages/sdk/.eslintignore index 3cab9f0a16b4..0960b933d1dd 100644 --- a/src/packages/sdk/.eslintignore +++ b/src/packages/sdk/.eslintignore @@ -1,4 +1,4 @@ node_modules -dist +/dist src/utils/byline.ts src/highlight/prism.ts \ No newline at end of file diff --git a/src/packages/sdk/helpers/build.js b/src/packages/sdk/helpers/build.js new file mode 100644 index 000000000000..1f75fbc7e896 --- /dev/null +++ b/src/packages/sdk/helpers/build.js @@ -0,0 +1,36 @@ +const execa = require('execa') +const esbuild = require('esbuild') +const glob = require('glob') + +const ESBUILD_DEFAULT = { + platform: 'node', + target: 'node12', + sourcemap: 'external', + format: 'cjs', + outdir: 'dist', + tsconfig: 'tsconfig.build.json' +} + +async function build() { + await Promise.all([ + esbuild.build({ + ...ESBUILD_DEFAULT, + entryPoints: glob.sync('./src/**/*.{j,t}s', { + ignore: './src/__tests__/**/*.{j,t}s' + }), + }), + ]) + + if (process.env.DEV !== 'true') { + await run('tsc --build tsconfig.build.json') + } +} + +function run(command, preferLocal = true) { + return execa.command(command, { preferLocal, shell: true, stdio: 'inherit' }) +} + +build().catch((e) => { + console.error(e) + process.exit(1) +}) diff --git a/src/packages/sdk/package.json b/src/packages/sdk/package.json index 0ae4f061f297..cd8f4151c469 100644 --- a/src/packages/sdk/package.json +++ b/src/packages/sdk/package.json @@ -8,12 +8,14 @@ "author": "Tim Suchanek ", "maintainers": [ "Tim Suchanek ", - "Joël Galeran " + "Joël Galeran ", + "Pierre-Antoine Mills " ], "bugs": "https://github.com/prisma/prisma/issues", "license": "Apache-2.0", "scripts": { - "build": "tsc -d -p tsconfig.build.json", + "dev": "DEV=true node helpers/build.js", + "build": "node helpers/build.js", "prepublishOnly": "pnpm run build && pnpm run test", "format": "prettier --write .", "lint": "eslint --cache --fix --ext .ts .", @@ -34,11 +36,13 @@ "@types/tar": "4.0.5", "@typescript-eslint/eslint-plugin": "4.28.5", "@typescript-eslint/parser": "4.28.5", + "esbuild": "0.12.16", "eslint": "7.31.0", "eslint-config-prettier": "8.3.0", "eslint-plugin-eslint-comments": "3.2.0", "eslint-plugin-jest": "24.4.0", "eslint-plugin-prettier": "3.4.0", + "glob": "7.1.7", "jest": "27.0.6", "lint-staged": "11.1.1", "prettier": "2.3.2", diff --git a/src/packages/sdk/src/utils/getEnvPaths.ts b/src/packages/sdk/src/utils/getEnvPaths.ts index 62af657186de..094eefca902d 100644 --- a/src/packages/sdk/src/utils/getEnvPaths.ts +++ b/src/packages/sdk/src/utils/getEnvPaths.ts @@ -59,6 +59,8 @@ function getProjectRootEnvPath( debug(`skipping package.json at ${pkgPath}`) } } + + return undefined }, opts) if (!pkgJsonPath) { diff --git a/src/packages/sdk/tsconfig.build.json b/src/packages/sdk/tsconfig.build.json index 4ff65471f47a..e0244d8566d7 100644 --- a/src/packages/sdk/tsconfig.build.json +++ b/src/packages/sdk/tsconfig.build.json @@ -1,7 +1,8 @@ { - "extends": "./tsconfig.json", + "extends": "../../../tsconfig.build.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist", + "emitDeclarationOnly": true }, - "exclude": ["dist", "build", "src/__tests__", "sandbox"] + "include": ["src"], } diff --git a/src/packages/sdk/tsconfig.eslint.json b/src/packages/sdk/tsconfig.eslint.json index 2f038bd3f1ef..fc8520e73765 100644 --- a/src/packages/sdk/tsconfig.eslint.json +++ b/src/packages/sdk/tsconfig.eslint.json @@ -1,5 +1,3 @@ { - "extends": "./tsconfig", - "include": ["src"], - "exclude": [] + "extends": "./tsconfig.json" } diff --git a/src/packages/sdk/tsconfig.json b/src/packages/sdk/tsconfig.json index b28b41a71a4c..618c6c3e97b5 100644 --- a/src/packages/sdk/tsconfig.json +++ b/src/packages/sdk/tsconfig.json @@ -1,14 +1,3 @@ { - "compilerOptions": { - "lib": ["esnext", "esnext.asynciterable"], - "module": "commonjs", - "target": "es2018", - "strict": true, - "esModuleInterop": true, - "sourceMap": true, - "noImplicitAny": false, - "rootDir": "src", - "declaration": true, - "incremental": true - } + "extends": "../../../tsconfig.json" } diff --git a/src/pnpm-lock.yaml b/src/pnpm-lock.yaml index be2d247b1764..4b84ec2c5b71 100644 --- a/src/pnpm-lock.yaml +++ b/src/pnpm-lock.yaml @@ -63,9 +63,10 @@ importers: '@prisma/studio-server': 0.417.0 '@timsuchanek/copy': 1.4.5 '@types/jest': 26.0.24 + '@types/rimraf': 3.0.1 '@types/ws': 7.4.7 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 chalk: 4.1.1 checkpoint-client: 1.1.20 dotenv: 10.0.0 @@ -85,12 +86,12 @@ importers: is-installed-globally: 0.4.0 jest: 27.0.6 line-replace: 2.0.1 - lint-staged: 11.1.0 + lint-staged: 11.1.1 log-update: 4.0.0 make-dir: 3.1.0 node-fetch: 2.6.1 open: 7.4.2 - pg: 8.6.0 + pg: 8.7.1 pkg-up: 3.1.0 prettier: 2.3.2 replace-string: 3.1.0 @@ -98,7 +99,7 @@ importers: rimraf: 3.0.2 strip-ansi: 6.0.0 tempy: 1.0.1 - ts-jest: 27.0.3 + ts-jest: 27.0.4 typescript: 4.3.5 dependencies: '@prisma/engines': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 @@ -113,9 +114,10 @@ importers: '@prisma/studio-server': 0.417.0 '@timsuchanek/copy': 1.4.5 '@types/jest': 26.0.24 + '@types/rimraf': 3.0.1 '@types/ws': 7.4.7 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 chalk: 4.1.1 checkpoint-client: 1.1.20 dotenv: 10.0.0 @@ -124,7 +126,7 @@ importers: eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca execa: 5.1.1 fast-deep-equal: 3.1.3 @@ -135,12 +137,12 @@ importers: is-installed-globally: 0.4.0 jest: 27.0.6_ts-node@10.1.0 line-replace: 2.0.1 - lint-staged: 11.1.0 + lint-staged: 11.1.1 log-update: 4.0.0 make-dir: 3.1.0 node-fetch: 2.6.1 open: 7.4.2 - pg: 8.6.0 + pg: 8.7.1 pkg-up: 3.1.0 prettier: 2.3.2 replace-string: 3.1.0 @@ -148,7 +150,7 @@ importers: rimraf: 3.0.2 strip-ansi: 6.0.0 tempy: 1.0.1 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 typescript: 4.3.5 packages/client: @@ -169,8 +171,8 @@ importers: '@types/mssql': 6.0.8 '@types/node': 12.20.17 '@types/pg': 8.6.1 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 arg: 5.0.0 chalk: 4.1.1 decimal.js: 10.3.1 @@ -191,17 +193,17 @@ importers: jest: 27.0.6 js-levenshtein: 1.1.6 klona: 2.0.4 - lint-staged: 11.1.0 + lint-staged: 11.1.1 make-dir: 3.1.0 mariadb: 2.5.4 mssql: 7.1.3 - pg: 8.6.0 + pg: 8.7.1 pkg-up: 3.1.0 pluralize: 8.0.0 prettier: 2.3.2 replace-string: 3.1.0 rimraf: 3.0.2 - rollup: 2.53.3 + rollup: 2.55.0 rollup-plugin-dts: 3.0.2 sort-keys: 4.2.0 source-map-support: 0.5.19 @@ -209,7 +211,7 @@ importers: stacktrace-parser: 0.1.10 strip-ansi: 6.0.0 strip-indent: 3.0.0 - ts-jest: 27.0.3 + ts-jest: 27.0.4 ts-node: 10.1.0 tsd: 0.17.0 typescript: 4.3.5 @@ -231,8 +233,8 @@ importers: '@types/mssql': 6.0.8 '@types/node': 12.20.17 '@types/pg': 8.6.1 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 arg: 5.0.0 chalk: 4.1.1 decimal.js: 10.3.1 @@ -241,7 +243,7 @@ importers: eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca execa: 5.1.1 flat-map-polyfill: 0.3.8 @@ -253,66 +255,74 @@ importers: jest: 27.0.6_ts-node@10.1.0 js-levenshtein: 1.1.6 klona: 2.0.4 - lint-staged: 11.1.0 + lint-staged: 11.1.1 make-dir: 3.1.0 mariadb: 2.5.4 mssql: 7.1.3 - pg: 8.6.0 + pg: 8.7.1 pkg-up: 3.1.0 pluralize: 8.0.0 prettier: 2.3.2 replace-string: 3.1.0 rimraf: 3.0.2 - rollup: 2.53.3 - rollup-plugin-dts: 3.0.2_rollup@2.53.3+typescript@4.3.5 + rollup: 2.55.0 + rollup-plugin-dts: 3.0.2_rollup@2.55.0+typescript@4.3.5 sort-keys: 4.2.0 source-map-support: 0.5.19 sql-template-tag: 4.0.0 stacktrace-parser: 0.1.10 strip-ansi: 6.0.0 strip-indent: 3.0.0 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 ts-node: 10.1.0_6a5e1f2f9646ad83684ea4da8a674e6d tsd: 0.17.0 typescript: 4.3.5 packages/debug: specifiers: + '@types/debug': 4.1.7 '@types/jest': 26.0.24 '@types/node': 12.20.17 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 debug: 4.3.2 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0 eslint-plugin-eslint-comments: 3.2.0 eslint-plugin-jest: 24.4.0 eslint-plugin-prettier: 3.4.0 + execa: 5.1.1 + glob: 7.1.7 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 ms: ^2.1.3 prettier: 2.3.2 strip-ansi: 6.0.0 - ts-jest: 27.0.3 + ts-jest: 27.0.4 typescript: 4.3.5 dependencies: debug: 4.3.2 ms: 2.1.3 devDependencies: + '@types/debug': 4.1.7 '@types/jest': 26.0.24 '@types/node': 12.20.17 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca + execa: 5.1.1 + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 strip-ansi: 6.0.0 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 typescript: 4.3.5 packages/engine-core: @@ -323,9 +333,10 @@ importers: '@prisma/get-platform': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 '@types/jest': 26.0.24 '@types/node': 12.20.17 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 chalk: ^4.0.0 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0 eslint-plugin-eslint-comments: 3.2.0 @@ -333,15 +344,16 @@ importers: eslint-plugin-prettier: 3.4.0 execa: ^5.0.0 get-stream: ^6.0.0 + glob: 7.1.7 indent-string: ^4.0.0 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 new-github-issue-url: ^0.2.1 p-retry: ^4.2.0 prettier: 2.3.2 strip-ansi: 6.0.0 terminal-link: ^2.1.1 - ts-jest: 27.0.3 + ts-jest: 27.0.4 typescript: 4.3.5 undici: 3.3.6 dependencies: @@ -360,18 +372,20 @@ importers: devDependencies: '@types/jest': 26.0.24 '@types/node': 12.20.17 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 strip-ansi: 6.0.0 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 typescript: 4.3.5 packages/generator-helper: @@ -380,19 +394,21 @@ importers: '@types/cross-spawn': ^6.0.1 '@types/jest': 26.0.24 '@types/node': 12.20.17 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 chalk: ^4.0.0 cross-spawn: ^7.0.2 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0 eslint-plugin-eslint-comments: 3.2.0 eslint-plugin-jest: 24.4.0 eslint-plugin-prettier: 3.4.0 + glob: 7.1.7 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 - ts-jest: 27.0.3 + ts-jest: 27.0.4 ts-node: 10.1.0 typescript: 4.3.5 dependencies: @@ -403,17 +419,19 @@ importers: devDependencies: '@types/jest': 26.0.24 '@types/node': 12.20.17 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 ts-node: 10.1.0_6a5e1f2f9646ad83684ea4da8a674e6d typescript: 4.3.5 @@ -429,9 +447,10 @@ importers: '@types/node': 12.20.17 '@types/pg': 8.6.1 '@types/sqlite3': 3.1.7 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 decimal.js: 10.3.1 + esbuild: 0.12.16 escape-string-regexp: 4.0.0 eslint: 7.31.0 eslint-config-prettier: 8.3.0 @@ -440,11 +459,12 @@ importers: eslint-plugin-prettier: 3.4.0 execa: 5.1.1 fs-jetpack: 4.1.0 + glob: 7.1.7 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 mariadb: 2.5.4 mssql: 7.1.3 - pg: 8.6.0 + pg: 8.7.1 prettier: 2.3.2 replace-string: 3.1.0 segfault-handler: 1.3.0 @@ -453,7 +473,7 @@ importers: string-hash: 1.1.3 strip-ansi: 6.0.0 tempy: 1.0.1 - ts-jest: 27.0.3 + ts-jest: 27.0.4 ts-node: 10.1.0 typescript: 4.3.5 verror: 1.10.0 @@ -468,22 +488,24 @@ importers: '@types/node': 12.20.17 '@types/pg': 8.6.1 '@types/sqlite3': 3.1.7 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 decimal.js: 10.3.1 + esbuild: 0.12.16 escape-string-regexp: 4.0.0 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca execa: 5.1.1 fs-jetpack: 4.1.0 + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 mariadb: 2.5.4 mssql: 7.1.3 - pg: 8.6.0 + pg: 8.7.1 prettier: 2.3.2 replace-string: 3.1.0 segfault-handler: 1.3.0 @@ -492,7 +514,7 @@ importers: string-hash: 1.1.3 strip-ansi: 6.0.0 tempy: 1.0.1 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 ts-node: 10.1.0_6a5e1f2f9646ad83684ea4da8a674e6d typescript: 4.3.5 verror: 1.10.0 @@ -510,10 +532,11 @@ importers: '@types/pg': 8.6.1 '@types/prompts': 2.0.14 '@types/sqlite3': 3.1.7 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 chalk: 4.1.1 del: 6.0.0 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0 eslint-plugin-eslint-comments: 3.2.0 @@ -521,18 +544,19 @@ importers: eslint-plugin-prettier: 3.4.0 execa: ^5.0.0 fs-jetpack: 4.1.0 + glob: 7.1.7 global-dirs: ^3.0.0 has-yarn: ^2.1.0 indent-string: ^4.0.0 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 log-update: ^4.0.0 make-dir: 3.1.0 mariadb: 2.5.4 mock-stdin: 1.0.0 new-github-issue-url: ^0.2.1 open: ^7.0.3 - pg: 8.6.0 + pg: 8.7.1 pkg-up: ^3.1.0 prettier: 2.3.2 prompts: ^2.3.2 @@ -542,7 +566,7 @@ importers: strip-ansi: ^6.0.0 strip-indent: ^3.0.0 tempy: 1.0.1 - ts-jest: 27.0.3 + ts-jest: 27.0.4 typescript: 4.3.5 dependencies: '@prisma/debug': link:../debug @@ -569,63 +593,69 @@ importers: '@types/pg': 8.6.1 '@types/prompts': 2.0.14 '@types/sqlite3': 3.1.7 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 chalk: 4.1.1 del: 6.0.0 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca fs-jetpack: 4.1.0 + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 make-dir: 3.1.0 mariadb: 2.5.4 mock-stdin: 1.0.0 - pg: 8.6.0 + pg: 8.7.1 prettier: 2.3.2 sqlite-async: 1.1.1 sqlite3: 5.0.2 tempy: 1.0.1 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 typescript: 4.3.5 packages/react-prisma: specifiers: '@prisma/client': workspace:* '@types/jest': 26.0.24 - '@types/node': 14.17.5 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@types/node': 14.17.6 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0 eslint-plugin-eslint-comments: 3.2.0 eslint-plugin-jest: 24.4.0 eslint-plugin-prettier: 3.4.0 + glob: 7.1.7 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 - react: ^17.0.0 + react: 17.0.0 strip-ansi: 7.0.0 ts-jest: 27.0.4 typescript: 4.3.5 devDependencies: '@prisma/client': link:../client '@types/jest': 26.0.24 - '@types/node': 14.17.5 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@types/node': 14.17.6 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 - react: 17.0.2 + react: 17.0.0 strip-ansi: 7.0.0 ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 typescript: 4.3.5 @@ -644,14 +674,15 @@ importers: '@types/resolve': 1.20.1 '@types/shell-quote': 1.7.1 '@types/tar': 4.0.5 - '@typescript-eslint/eslint-plugin': 4.28.4 - '@typescript-eslint/parser': 4.28.4 + '@typescript-eslint/eslint-plugin': 4.28.5 + '@typescript-eslint/parser': 4.28.5 archiver: ^4.0.0 arg: ^5.0.0 chalk: 4.1.1 checkpoint-client: 1.1.20 cli-truncate: ^2.1.0 dotenv: ^10.0.0 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0 eslint-plugin-eslint-comments: 3.2.0 @@ -659,12 +690,13 @@ importers: eslint-plugin-prettier: 3.4.0 execa: ^5.0.0 find-up: 5.0.0 + glob: 7.1.7 global-dirs: ^3.0.0 globby: ^11.0.0 has-yarn: ^2.1.0 is-ci: ^3.0.0 jest: 27.0.6 - lint-staged: 11.1.0 + lint-staged: 11.1.1 make-dir: ^3.0.2 node-fetch: 2.6.1 p-map: ^4.0.0 @@ -682,7 +714,7 @@ importers: tempy: ^1.0.0 terminal-link: ^2.1.1 tmp: 0.2.1 - ts-jest: 27.0.3 + ts-jest: 27.0.4 ts-node: 10.1.0 typescript: 4.3.5 dependencies: @@ -727,17 +759,19 @@ importers: '@types/resolve': 1.20.1 '@types/shell-quote': 1.7.1 '@types/tar': 4.0.5 - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 + esbuild: 0.12.16 eslint: 7.31.0 eslint-config-prettier: 8.3.0_eslint@7.31.0 eslint-plugin-eslint-comments: 3.2.0_eslint@7.31.0 - eslint-plugin-jest: 24.4.0_fc5326c9e782cff3be563ae5197052dc + eslint-plugin-jest: 24.4.0_ac7033cc4dfbdac1051fc5c687b09618 eslint-plugin-prettier: 3.4.0_19f511d6aa08b367b6cb59e8f50291ca + glob: 7.1.7 jest: 27.0.6_ts-node@10.1.0 - lint-staged: 11.1.0 + lint-staged: 11.1.1 prettier: 2.3.2 - ts-jest: 27.0.3_jest@27.0.6+typescript@4.3.5 + ts-jest: 27.0.4_52cc4273aa16028085013af47e479e10 ts-node: 10.1.0_6a5e1f2f9646ad83684ea4da8a674e6d typescript: 4.3.5 @@ -1572,8 +1606,8 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/debug/2.29.0-dev.1: - resolution: {integrity: sha512-j9osKce1ellaB/I1qn21eAg09WNkRMwPSmrKBjQRRGO8gO7qNNC6vLxDmPaYUyHWaFfESY7EEXoKsuD3i9F70w==} + /@prisma/debug/2.29.0-dev.5: + resolution: {integrity: sha512-qjtrPtYkwEGJJ1h7XprMHaTmholjhyt1q8dLU/TDILSVTSiCoj77t68cVWbsPDPfD+Kb6HJkKXgcu9mWGDk20g==} dependencies: debug: 4.3.2 ms: 2.1.3 @@ -1581,12 +1615,12 @@ packages: - supports-color dev: true - /@prisma/engine-core/2.29.0-dev.1: - resolution: {integrity: sha512-c9jmoppUK6XKcFka8rIXDVzJ4TpDCEfR8r/hSlSCYV51BiS+G90SBu1bPmV13ucQi2Y/Csn+aMcwb+uS/p5+uA==} + /@prisma/engine-core/2.29.0-dev.5: + resolution: {integrity: sha512-JRgTiIMewCR9BGJWBg17yoR0p63F5xChYZS3riwXevo9esIyAh98VT4cnhfrr84gBmZKeUQCEBmXN0ma2sC6nw==} dependencies: - '@prisma/debug': 2.29.0-dev.1 + '@prisma/debug': 2.29.0-dev.5 '@prisma/engines': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 - '@prisma/generator-helper': 2.29.0-dev.1 + '@prisma/generator-helper': 2.29.0-dev.5 '@prisma/get-platform': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 chalk: 4.1.1 execa: 5.1.1 @@ -1630,10 +1664,10 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/generator-helper/2.29.0-dev.1: - resolution: {integrity: sha512-Ht7QMS++lNBqjbO4aGaLLVvSe3lHENB0s4jagbOrWgNHTFTs6WarNfns5XyqvpQ+YcjTUQxyuMmWL8pj/3kMeA==} + /@prisma/generator-helper/2.29.0-dev.5: + resolution: {integrity: sha512-hImMQ9BJhI0YUIPEN4L50Whh+O8F+zUbi8/Q160TPEdGZ7zCpqg4bicfs7hbK6b/q0ihBDU62HfZharDmYr5wA==} dependencies: - '@prisma/debug': 2.29.0-dev.1 + '@prisma/debug': 2.29.0-dev.5 '@types/cross-spawn': 6.0.2 chalk: 4.1.1 cross-spawn: 7.0.3 @@ -1648,14 +1682,14 @@ packages: transitivePeerDependencies: - supports-color - /@prisma/sdk/2.29.0-dev.1: - resolution: {integrity: sha512-NH0wpCrRGgTwohHZcxJOlAy6yWQgwWWpl5iOFquO921YLR5vfV+5qYSGNmMVIYOjrETX/F07plX4vWNd4z4WdQ==} + /@prisma/sdk/2.29.0-dev.5: + resolution: {integrity: sha512-Px3OP2mENrG3oDm7AvODAEiuqneiZXAvXtsXNlV6Zehepkd5+QaNof6E7OxO2I/8049DDKpUveNq0y2f3xAiaw==} dependencies: - '@prisma/debug': 2.29.0-dev.1 - '@prisma/engine-core': 2.29.0-dev.1 + '@prisma/debug': 2.29.0-dev.5 + '@prisma/engine-core': 2.29.0-dev.5 '@prisma/engines': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 '@prisma/fetch-engine': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 - '@prisma/generator-helper': 2.29.0-dev.1 + '@prisma/generator-helper': 2.29.0-dev.5 '@prisma/get-platform': 2.28.0-17.89facabd0366f63911d089156a7a70125bfbcd27 '@timsuchanek/copy': 1.4.5 archiver: 4.0.2 @@ -1680,7 +1714,7 @@ packages: string-width: 4.2.2 strip-ansi: 6.0.0 strip-indent: 3.0.0 - tar: 6.1.0 + tar: 6.1.2 temp-dir: 2.0.0 temp-write: 4.0.0 tempy: 1.0.1 @@ -1690,13 +1724,13 @@ packages: - supports-color dev: true - /@prisma/studio-pcw/0.417.0_@prisma+sdk@2.29.0-dev.1: + /@prisma/studio-pcw/0.417.0_@prisma+sdk@2.29.0-dev.5: resolution: {integrity: sha512-3idGkeUiifHLyIlF0uP+TZco1V3Cm/gvCSbVFEJDLkrwPf4Qfq4jO8h9ayV1zksrcm7/iK+U/W4e0QQCbfRrRw==} peerDependencies: '@prisma/client': '*' '@prisma/sdk': '*' dependencies: - '@prisma/sdk': 2.29.0-dev.1 + '@prisma/sdk': 2.29.0-dev.5 debug: 4.3.1 lodash: 4.17.21 transitivePeerDependencies: @@ -1706,8 +1740,8 @@ packages: /@prisma/studio-server/0.417.0: resolution: {integrity: sha512-09bxlpzDnRRrQNgINTHO/Q6aNT+PrloGMzzmF8isGXGattXwmw9H9LDwPrzYyYOSu3/9KvohDPOO9jLpU7wfHw==} dependencies: - '@prisma/sdk': 2.29.0-dev.1 - '@prisma/studio-pcw': 0.417.0_@prisma+sdk@2.29.0-dev.1 + '@prisma/sdk': 2.29.0-dev.5 + '@prisma/studio-pcw': 0.417.0_@prisma+sdk@2.29.0-dev.5 '@prisma/studio-transports': 0.417.0 '@sentry/node': 6.2.5 checkpoint-client: 1.1.20 @@ -1716,7 +1750,6 @@ packages: express: 4.17.1 untildify: 4.0.0 transitivePeerDependencies: - - '@prisma/client' - supports-color dev: true @@ -1909,7 +1942,7 @@ packages: /@types/cross-spawn/6.0.2: resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - '@types/node': 12.20.16 + '@types/node': 16.4.6 /@types/debug/4.1.7: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} @@ -1932,6 +1965,13 @@ packages: resolution: {integrity: sha512-1rkryxURpr6aWP7R786/UQOkJ3PcpQiWkAXBmdWc7ryFWqN6a4xfK7BtjXvFBKO9LjQ+MWQSWxYeZX1OApnArA==} dev: true + /@types/glob/7.1.4: + resolution: {integrity: sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==} + dependencies: + '@types/minimatch': 3.0.5 + '@types/node': 16.4.6 + dev: true + /@types/graceful-fs/4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: @@ -1973,6 +2013,10 @@ packages: resolution: {integrity: sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==} dev: true + /@types/minimatch/3.0.5: + resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} + dev: true + /@types/minimist/1.2.2: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: true @@ -2003,6 +2047,7 @@ packages: /@types/node/12.20.16: resolution: {integrity: sha512-6CLxw83vQf6DKqXxMPwl8qpF8I7THFZuIwLt4TnNsumxkp1VsRZWT8txQxncT/Rl2UojTsFzWgDG4FRMwafrlA==} + dev: true /@types/node/12.20.17: resolution: {integrity: sha512-so8EHl4S6MmatPS0f9sE1ND94/ocbcEshW5OpyYthRqeRpiYyW2uXYTo/84kmfdfeNrDycARkvuiXl6nO40NGg==} @@ -2012,10 +2057,17 @@ packages: resolution: {integrity: sha512-bjqH2cX/O33jXT/UmReo2pM7DIJREPMnarixbQ57DOOzzFaI6D2+IcwaJQaJpv0M1E9TIhPCYVxrkcityLjlqA==} dev: true + /@types/node/14.17.6: + resolution: {integrity: sha512-iBxsxU7eswQDGhlr3AiamBxOssaYxbM+NKXVil8jg9yFXvrfEFbDumLD/2dMTB+zYyg7w+Xjt8yuxfdbUHAtcQ==} + dev: true + /@types/node/16.4.1: resolution: {integrity: sha512-UW7cbLqf/Wu5XH2RKKY1cHwUNLicIDRLMraYKz+HHAerJ0ZffUEk+fMnd8qU2JaS6cAy0r8tsaf7yqHASf/Y0Q==} dev: true + /@types/node/16.4.6: + resolution: {integrity: sha512-FKyawK3o5KL16AwbeFajen8G4K3mmqUrQsehn5wNKs8IzlKHE8TfnSmILXVMVziAEcnB23u1RCFU1NT6hSyr7Q==} + /@types/node/8.10.66: resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==} dev: true @@ -2058,6 +2110,13 @@ packages: /@types/retry/0.12.1: resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} + /@types/rimraf/3.0.1: + resolution: {integrity: sha512-CAoSlbco40aKZ0CkelBF2g3JeN6aioRaTVnqSX5pWsn/WApm6IDxI4e4tD9D0dY/meCkyyleP1IQDVN13F4maA==} + dependencies: + '@types/glob': 7.1.4 + '@types/node': 16.4.6 + dev: true + /@types/shell-quote/1.7.1: resolution: {integrity: sha512-SWZ2Nom1pkyXCDohRSrkSKvDh8QOG9RfAsrt5/NsPQC4UQJ55eG0qClA40I+Gkez4KTQ0uDUT8ELRXThf3J5jw==} dev: true @@ -2119,8 +2178,8 @@ packages: '@types/yargs-parser': 20.2.1 dev: true - /@typescript-eslint/eslint-plugin/4.28.4_b1648df9f9ba40bdeef3710a5a5af353: - resolution: {integrity: sha512-s1oY4RmYDlWMlcV0kKPBaADn46JirZzvvH7c2CtAqxCY96S538JRBAzt83RrfkDheV/+G/vWNK0zek+8TB3Gmw==} + /@typescript-eslint/eslint-plugin/4.28.5_514553717ff968e20f6d1c6e521f8616: + resolution: {integrity: sha512-m31cPEnbuCqXtEZQJOXAHsHvtoDi9OVaeL5wZnO2KZTnkvELk+u6J6jHg+NzvWQxk+87Zjbc4lJS4NHmgImz6Q==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: '@typescript-eslint/parser': ^4.0.0 @@ -2130,9 +2189,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/experimental-utils': 4.28.4_eslint@7.31.0+typescript@4.3.5 - '@typescript-eslint/parser': 4.28.4_eslint@7.31.0+typescript@4.3.5 - '@typescript-eslint/scope-manager': 4.28.4 + '@typescript-eslint/experimental-utils': 4.28.5_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/parser': 4.28.5_eslint@7.31.0+typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.28.5 debug: 4.3.2 eslint: 7.31.0 functional-red-black-tree: 1.0.1 @@ -2162,8 +2221,26 @@ packages: - typescript dev: true - /@typescript-eslint/parser/4.28.4_eslint@7.31.0+typescript@4.3.5: - resolution: {integrity: sha512-4i0jq3C6n+og7/uCHiE6q5ssw87zVdpUj1k6VlVYMonE3ILdFApEzTWgppSRG4kVNB/5jxnH+gTeKLMNfUelQA==} + /@typescript-eslint/experimental-utils/4.28.5_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-bGPLCOJAa+j49hsynTaAtQIWg6uZd8VLiPcyDe4QPULsvQwLHGLSGKKcBN8/lBxIX14F74UEMK2zNDI8r0okwA==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + eslint: '*' + dependencies: + '@types/json-schema': 7.0.8 + '@typescript-eslint/scope-manager': 4.28.5 + '@typescript-eslint/types': 4.28.5 + '@typescript-eslint/typescript-estree': 4.28.5_typescript@4.3.5 + eslint: 7.31.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0_eslint@7.31.0 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + + /@typescript-eslint/parser/4.28.5_eslint@7.31.0+typescript@4.3.5: + resolution: {integrity: sha512-NPCOGhTnkXGMqTznqgVbA5LqVsnw+i3+XA1UKLnAb+MG1Y1rP4ZSK9GX0kJBmAZTMIktf+dTwXToT6kFwyimbw==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -2172,9 +2249,9 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 4.28.4 - '@typescript-eslint/types': 4.28.4 - '@typescript-eslint/typescript-estree': 4.28.4_typescript@4.3.5 + '@typescript-eslint/scope-manager': 4.28.5 + '@typescript-eslint/types': 4.28.5 + '@typescript-eslint/typescript-estree': 4.28.5_typescript@4.3.5 debug: 4.3.2 eslint: 7.31.0 typescript: 4.3.5 @@ -2190,11 +2267,24 @@ packages: '@typescript-eslint/visitor-keys': 4.28.4 dev: true + /@typescript-eslint/scope-manager/4.28.5: + resolution: {integrity: sha512-PHLq6n9nTMrLYcVcIZ7v0VY1X7dK309NM8ya9oL/yG8syFINIMHxyr2GzGoBYUdv3NUfCOqtuqps0ZmcgnZTfQ==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.28.5 + '@typescript-eslint/visitor-keys': 4.28.5 + dev: true + /@typescript-eslint/types/4.28.4: resolution: {integrity: sha512-3eap4QWxGqkYuEmVebUGULMskR6Cuoc/Wii0oSOddleP4EGx1tjLnZQ0ZP33YRoMDCs5O3j56RBV4g14T4jvww==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} dev: true + /@typescript-eslint/types/4.28.5: + resolution: {integrity: sha512-MruOu4ZaDOLOhw4f/6iudyks/obuvvZUAHBDSW80Trnc5+ovmViLT2ZMDXhUV66ozcl6z0LJfKs1Usldgi/WCA==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dev: true + /@typescript-eslint/typescript-estree/4.28.4_typescript@4.3.5: resolution: {integrity: sha512-z7d8HK8XvCRyN2SNp+OXC2iZaF+O2BTquGhEYLKLx5k6p0r05ureUtgEfo5f6anLkhCxdHtCf6rPM1p4efHYDQ==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2216,6 +2306,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree/4.28.5_typescript@4.3.5: + resolution: {integrity: sha512-FzJUKsBX8poCCdve7iV7ShirP8V+ys2t1fvamVeD1rWpiAnIm550a+BX/fmTHrjEpQJ7ZAn+Z7ZZwJjytk9rZw==} + engines: {node: ^10.12.0 || >=12.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 4.28.5 + '@typescript-eslint/visitor-keys': 4.28.5 + debug: 4.3.2 + globby: 11.0.4 + is-glob: 4.0.1 + semver: 7.3.5 + tsutils: 3.21.0_typescript@4.3.5 + typescript: 4.3.5 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/visitor-keys/4.28.4: resolution: {integrity: sha512-NIAXAdbz1XdOuzqkJHjNKXKj8QQ4cv5cxR/g0uQhCYf/6//XrmfpaYsM7PnBcNbfvTDLUkqQ5TPNm1sozDdTWg==} engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} @@ -2224,6 +2335,14 @@ packages: eslint-visitor-keys: 2.1.0 dev: true + /@typescript-eslint/visitor-keys/4.28.5: + resolution: {integrity: sha512-dva/7Rr+EkxNWdJWau26xU/0slnFlkh88v3TsyTgRS/IIYFi5iIfpCFM4ikw0vQTFUR9FYSSyqgK4w64gsgxhg==} + engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} + dependencies: + '@typescript-eslint/types': 4.28.5 + eslint-visitor-keys: 2.1.0 + dev: true + /abab/2.0.5: resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==} dev: true @@ -3213,6 +3332,12 @@ packages: dependencies: is-arrayish: 0.2.1 + /esbuild/0.12.16: + resolution: {integrity: sha512-XqI9cXP2bmQ6MREIqrYBb13KfYFSERsV1+e5jSVWps8dNlLZK+hln7d0mznzDIpfISsg/AgQW0DW3kSInXWhrg==} + hasBin: true + requiresBuild: true + dev: true + /esbuild/0.8.53: resolution: {integrity: sha512-GIaYGdMukH58hu+lf07XWAeESBYFAsz8fXnrylHDCbBXKOSNtFmoYA8PhSeSF+3/qzeJ0VjzV9AkLURo5yfu3g==} hasBin: true @@ -3287,7 +3412,7 @@ packages: ignore: 5.1.8 dev: true - /eslint-plugin-jest/24.4.0_fc5326c9e782cff3be563ae5197052dc: + /eslint-plugin-jest/24.4.0_ac7033cc4dfbdac1051fc5c687b09618: resolution: {integrity: sha512-8qnt/hgtZ94E9dA6viqfViKBfkJwFHXgJmTWlMGDgunw1XJEGqm3eiPjDsTanM3/u/3Az82nyQM9GX7PM/QGmg==} engines: {node: '>=10'} peerDependencies: @@ -3297,7 +3422,7 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 4.28.4_b1648df9f9ba40bdeef3710a5a5af353 + '@typescript-eslint/eslint-plugin': 4.28.5_514553717ff968e20f6d1c6e521f8616 '@typescript-eslint/experimental-utils': 4.28.4_eslint@7.31.0+typescript@4.3.5 eslint: 7.31.0 transitivePeerDependencies: @@ -3476,7 +3601,7 @@ packages: cross-spawn: 7.0.3 get-stream: 6.0.1 human-signals: 2.1.0 - is-stream: 2.0.0 + is-stream: 2.0.1 merge-stream: 2.0.0 npm-run-path: 4.0.1 onetime: 5.1.2 @@ -4225,6 +4350,10 @@ packages: resolution: {integrity: sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==} engines: {node: '>=8'} + /is-stream/2.0.1: + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} + /is-typedarray/1.0.0: resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} dev: true @@ -4720,7 +4849,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.0.6 - '@types/node': 12.20.16 + '@types/node': 16.4.6 chalk: 4.1.1 graceful-fs: 4.2.6 is-ci: 3.0.0 @@ -5003,8 +5132,8 @@ packages: /lines-and-columns/1.1.6: resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=} - /lint-staged/11.1.0: - resolution: {integrity: sha512-pzwEf+NKbTauAlk7gPPwTfulRXESEPZCSFXYfg20F220UOObebxu5uL5mkr9csQLNOM2Ydfrt3DJXakzAL7aaQ==} + /lint-staged/11.1.1: + resolution: {integrity: sha512-eTNGe6i78PSUUH2BZi1gZmGmNfb8IeN4z2OzMYxSZ1qnP1WXKn1E7D+OHwLbRDm/wQINnzIj0bsKJ6lLVSuZiQ==} hasBin: true dependencies: chalk: 4.1.1 @@ -5793,12 +5922,12 @@ packages: engines: {node: '>=4.0.0'} dev: true - /pg-pool/3.3.0_pg@8.6.0: - resolution: {integrity: sha512-0O5huCql8/D6PIRFAlmccjphLYWC+JIzvUhSzXSpGaf+tjTZc4nn+Lr7mLXBbFJfvwbP0ywDv73EiaBsxn7zdg==} + /pg-pool/3.4.1_pg@8.7.1: + resolution: {integrity: sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==} peerDependencies: pg: '>=8.0' dependencies: - pg: 8.6.0 + pg: 8.7.1 dev: true /pg-protocol/1.5.0: @@ -5816,8 +5945,8 @@ packages: postgres-interval: 1.2.0 dev: true - /pg/8.6.0: - resolution: {integrity: sha512-qNS9u61lqljTDFvmk/N66EeGq3n6Ujzj0FFyNMGQr6XuEv4tgNTXvJQTfJdcvGit5p5/DWPu+wj920hAJFI+QQ==} + /pg/8.7.1: + resolution: {integrity: sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==} engines: {node: '>= 8.0.0'} peerDependencies: pg-native: '>=2.0.0' @@ -5828,7 +5957,7 @@ packages: buffer-writer: 2.0.0 packet-reader: 1.0.0 pg-connection-string: 2.5.0 - pg-pool: 3.3.0_pg@8.6.0 + pg-pool: 3.4.1_pg@8.7.1 pg-protocol: 1.5.0 pg-types: 2.2.0 pgpass: 1.0.4 @@ -6069,8 +6198,8 @@ packages: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} dev: true - /react/17.0.2: - resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} + /react/17.0.0: + resolution: {integrity: sha512-rG9bqS3LMuetoSUKHN8G3fMNuQOePKDThK6+2yXFWtoeTDLVNh/QCaxT+Jr+rNf4lwNXpx+atdn3Aa0oi8/6eQ==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 @@ -6260,7 +6389,7 @@ packages: dependencies: glob: 7.1.7 - /rollup-plugin-dts/3.0.2_rollup@2.53.3+typescript@4.3.5: + /rollup-plugin-dts/3.0.2_rollup@2.55.0+typescript@4.3.5: resolution: {integrity: sha512-hswlsdWu/x7k5pXzaLP6OvKRKcx8Bzprksz9i9mUe72zvt8LvqAb/AZpzs6FkLgmyRaN8B6rUQOVtzA3yEt9Yw==} engines: {node: '>=v12.22.1'} peerDependencies: @@ -6268,14 +6397,14 @@ packages: typescript: ^4.2.4 dependencies: magic-string: 0.25.7 - rollup: 2.53.3 + rollup: 2.55.0 typescript: 4.3.5 optionalDependencies: '@babel/code-frame': 7.14.5 dev: true - /rollup/2.53.3: - resolution: {integrity: sha512-79QIGP5DXz5ZHYnCPi3tLz+elOQi6gudp9YINdaJdjG0Yddubo6JRFUM//qCZ0Bap/GJrsUoEBVdSOc4AkMlRA==} + /rollup/2.55.0: + resolution: {integrity: sha512-Atc3QqelKzrKwRkqnSdq0d2Mi8e0iGuL+kZebKMZ4ysyWHD5hw9VfVCAuODIW5837RENV8LXcbAEHurYf+ArvA==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: @@ -6769,6 +6898,19 @@ packages: minizlib: 2.1.2 mkdirp: 1.0.4 yallist: 4.0.0 + dev: false + + /tar/6.1.2: + resolution: {integrity: sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q==} + engines: {node: '>= 10'} + dependencies: + chownr: 2.0.0 + fs-minipass: 2.1.0 + minipass: 3.1.3 + minizlib: 2.1.2 + mkdirp: 1.0.4 + yallist: 4.0.0 + dev: true /tarn/3.0.1: resolution: {integrity: sha512-6usSlV9KyHsspvwu2duKH+FMUhqJnAh6J5J/4MITl8s94iSUQTLkJggdiewKv4RyARQccnigV48Z+khiuVZDJw==} @@ -6811,7 +6953,7 @@ packages: engines: {node: '>=8'} dependencies: graceful-fs: 4.2.6 - is-stream: 2.0.0 + is-stream: 2.0.1 make-dir: 3.1.0 temp-dir: 1.0.0 uuid: 3.4.0 @@ -6924,28 +7066,6 @@ packages: engines: {node: '>=8'} dev: true - /ts-jest/27.0.3_jest@27.0.6+typescript@4.3.5: - resolution: {integrity: sha512-U5rdMjnYam9Ucw+h0QvtNDbc5+88nxt7tbIvqaZUhFrfG4+SkWhMXjejCLVGcpILTPuV+H3W/GZDZrnZFpPeXw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - hasBin: true - peerDependencies: - jest: ^27.0.0 - typescript: '>=3.8 <5.0' - dependencies: - bs-logger: 0.2.6 - buffer-from: 1.1.1 - fast-json-stable-stringify: 2.1.0 - jest: 27.0.6_ts-node@10.1.0 - jest-util: 27.0.6 - json5: 2.2.0 - lodash: 4.17.21 - make-error: 1.3.6 - mkdirp: 1.0.4 - semver: 7.3.5 - typescript: 4.3.5 - yargs-parser: 20.2.9 - dev: true - /ts-jest/27.0.4_52cc4273aa16028085013af47e479e10: resolution: {integrity: sha512-c4E1ECy9Xz2WGfTMyHbSaArlIva7Wi2p43QOMmCqjSSjHP06KXv+aT+eSY+yZMuqsMi3k7pyGsGj2q5oSl5WfQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 000000000000..b62162c32b05 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "es2018", + "module": "commonjs", + "lib": ["esnext"], + "esModuleInterop": true, + "sourceMap": true, + "declaration": true, + + "strict": true, + "noImplicitAny": false, + "noUncheckedIndexedAccess": false, + "noImplicitReturns": true, + "noFallthroughCasesInSwitch": true, + "skipDefaultLibCheck": true + }, + "exclude": [ + "**/dist", + "**/node_modules", + "**/src/__tests__" + ] +} diff --git a/tsconfig.json b/tsconfig.json index 37e761d64d6d..2a87f32a412b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,25 @@ { + "extends": "./tsconfig.build.json", "compilerOptions": { - "target": "es2018", - "module": "commonjs", - "esModuleInterop": true, - "lib": ["esnext"] - } + "baseUrl": "./src/packages", + "paths": { + "@prisma/client": ["client/src/runtime"], + "@prisma/sdk": ["sdk/src"], + "@prisma/migrate": ["migrate/src"], + "@prisma/generator-helper": ["generator-helper/src"], + "@prisma/engine-core": ["engine-core/src"], + "@prisma/debug": ["debug/src"], + "@prisma/cli": ["cli/src"], + "@prisma/get-platform": ["../../../engines-wrapper/packages/get-platform/src"], + "@prisma/fetch-engine": ["../../../engines-wrapper/packages/fetch-engine/src"], + "@prisma/engines": ["../../../engines-wrapper/packages/engines/src"], + "@prisma/engines-version": ["../../../engines-wrapper/packages/engines-version/src"] + } + }, + "include": ["**/*"], + "exclude": [ + "**/dist", + "**/build", + "**/node_modules" + ] }