test: run unit and integration tests

This commit is contained in:
Elio Bischof
2023-05-25 17:11:36 +02:00
parent 5d36a54849
commit f40f7fde76
15 changed files with 272 additions and 54 deletions

View File

@@ -38,6 +38,25 @@ However, it might be easier to develop against your ZITADEL Cloud instance
if you don't have docker installed if you don't have docker installed
or have limited resources on your local machine. or have limited resources on your local machine.
### Testing
You can execute the following commands in the following directories:
- apps/login
- packages/zitadel-client
- packages/zitadel-server
- packages/zitadel-react
- packages/zitadel-next
- The projects root directory: all tests in the project are executed
```sh
# Run unit and integration tests once
pnpm run test -- --passWithNoTests
# Rerun unit and integration tests on file changes
pnpm run test:watch -- --passWithNoTests
```
### Developing Against Your Local ZITADEL Instance ### Developing Against Your Local ZITADEL Instance
```sh ```sh

View File

@@ -44,6 +44,8 @@ Each package and app is 100% [TypeScript](https://www.typescriptlang.org/).
- `pnpm generate` - Build proto stubs for server and client package - `pnpm generate` - Build proto stubs for server and client package
- `pnpm build` - Build all packages and the login app - `pnpm build` - Build all packages and the login app
- `pnpm test` - Test all packages and the login app
- `pnpm test:watch` - Rerun tests on file change
- `pnpm dev` - Develop all packages and the login app - `pnpm dev` - Develop all packages and the login app
- `pnpm lint` - Lint all packages - `pnpm lint` - Lint all packages
- `pnpm changeset` - Generate a changeset - `pnpm changeset` - Generate a changeset

View File

@@ -0,0 +1,8 @@
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
preset: 'ts-jest',
testEnvironment: 'node'
}
export default jestConfig

View File

@@ -2,13 +2,14 @@
"name": "@zitadel/login", "name": "@zitadel/login",
"private": true, "private": true,
"scripts": { "scripts": {
"test": "jest",
"test:watch": "jest --watch",
"build": "next build", "build": "next build",
"dev": "next dev", "dev": "next dev",
"lint": "next lint && prettier --check .", "lint": "next lint && prettier --check .",
"lint:fix": "prettier --write .", "lint:fix": "prettier --write .",
"lint-staged": "lint-staged", "lint-staged": "lint-staged",
"start": "next start", "start": "next start",
"test": "yarn prettier:check &nexarn lint",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next" "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf .next"
}, },
"git": { "git": {
@@ -58,8 +59,9 @@
"prettier-plugin-tailwindcss": "0.1.13", "prettier-plugin-tailwindcss": "0.1.13",
"tailwindcss": "3.2.4", "tailwindcss": "3.2.4",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"ts-proto": "^1.139.0", "ts-proto": "^1.139.0",
"typescript": "4.8.4", "typescript": "4.8.4",
"zitadel-tailwind-config": "workspace:*" "zitadel-tailwind-config": "workspace:*"
} }
} }

View File

@@ -1,16 +1,18 @@
{ {
"private": true, "private": true,
"scripts": { "scripts": {
"generate": "turbo run generate",
"prebuild": "turbo run generate",
"build": "turbo run build", "build": "turbo run build",
"test": "turbo run test",
"test:watch": "turbo run test:watch",
"dev": "turbo run dev --no-cache --continue", "dev": "turbo run dev --no-cache --continue",
"lint": "turbo run lint", "lint": "turbo run lint",
"clean": "turbo run clean && rm -rf node_modules", "clean": "turbo run clean && rm -rf node_modules",
"format": "prettier --write \"**/*.{ts,tsx,md}\"", "format": "prettier --write \"**/*.{ts,tsx,md}\"",
"changeset": "changeset", "changeset": "changeset",
"version-packages": "changeset version", "version-packages": "changeset version",
"release": "turbo run build --filter=login^... && changeset publish", "release": "turbo run build --filter=login^... && changeset publish"
"prebuild": "turbo run generate",
"generate": "turbo run generate"
}, },
"devDependencies": { "devDependencies": {
"@changesets/cli": "^2.22.0", "@changesets/cli": "^2.22.0",
@@ -20,4 +22,4 @@
"turbo": "^1.9.8" "turbo": "^1.9.8"
}, },
"packageManager": "pnpm@7.15.0" "packageManager": "pnpm@7.15.0"
} }

View File

@@ -0,0 +1,8 @@
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
preset: 'ts-jest',
testEnvironment: 'node'
}
export default jestConfig

View File

@@ -10,11 +10,14 @@
"dist/**" "dist/**"
], ],
"scripts": { "scripts": {
"generate": "buf generate https://github.com/zitadel/zitadel.git --path ./proto/zitadel",
"prebuild": "pnpm run generate",
"build": "tsup src/index.ts --format esm,cjs --dts", "build": "tsup src/index.ts --format esm,cjs --dts",
"test": "jest",
"test:watch": "jest --watch",
"dev": "tsup src/index.ts --format esm,cjs --watch --dts", "dev": "tsup src/index.ts --format esm,cjs --watch --dts",
"lint": "eslint \"src/**/*.ts*\"", "lint": "eslint \"src/**/*.ts*\"",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
"generate": "buf generate https://github.com/zitadel/zitadel.git --path ./proto/zitadel"
}, },
"devDependencies": { "devDependencies": {
"@bufbuild/buf": "^1.14.0", "@bufbuild/buf": "^1.14.0",
@@ -24,6 +27,7 @@
"eslint-config-zitadel": "workspace:*", "eslint-config-zitadel": "workspace:*",
"jest": "^29.5.0", "jest": "^29.5.0",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"ts-proto": "^1.139.0", "ts-proto": "^1.139.0",
"tsup": "^5.10.1", "tsup": "^5.10.1",
"typescript": "^4.9.3" "typescript": "^4.9.3"
@@ -36,4 +40,4 @@
"nice-grpc-web": "^3.2.3", "nice-grpc-web": "^3.2.3",
"protobufjs": "^7.2.3" "protobufjs": "^7.2.3"
} }
} }

View File

@@ -0,0 +1,8 @@
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
preset: 'ts-jest',
testEnvironment: 'node'
}
export default jestConfig

View File

@@ -11,6 +11,8 @@
], ],
"scripts": { "scripts": {
"build": "tsup src/index.tsx --format esm,cjs --dts --external react", "build": "tsup src/index.tsx --format esm,cjs --dts --external react",
"test": "jest",
"test:watch": "jest --watch",
"dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react", "dev": "tsup src/index.tsx --format esm,cjs --watch --dts --external react",
"lint": "eslint \"src/**/*.ts*\"", "lint": "eslint \"src/**/*.ts*\"",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist" "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
@@ -22,6 +24,7 @@
"eslint-config-zitadel": "workspace:*", "eslint-config-zitadel": "workspace:*",
"jest": "^29.5.0", "jest": "^29.5.0",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"tsup": "^5.10.1", "tsup": "^5.10.1",
"typescript": "^4.9.3" "typescript": "^4.9.3"
}, },
@@ -31,4 +34,4 @@
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"
} }
} }

View File

@@ -0,0 +1,8 @@
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
preset: 'ts-jest',
testEnvironment: 'node'
}
export default jestConfig

View File

@@ -13,6 +13,8 @@
}, },
"scripts": { "scripts": {
"build": "tsup", "build": "tsup",
"test": "jest",
"test:watch": "jest --watch",
"dev": "tsup --watch", "dev": "tsup --watch",
"lint": "eslint \"src/**/*.ts*\"", "lint": "eslint \"src/**/*.ts*\"",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist",
@@ -31,6 +33,7 @@
"sass": "^1.62.0", "sass": "^1.62.0",
"tailwindcss": "3.2.4", "tailwindcss": "3.2.4",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"tsup": "^5.10.1", "tsup": "^5.10.1",
"typescript": "^4.9.3", "typescript": "^4.9.3",
"zitadel-tailwind-config": "workspace:*" "zitadel-tailwind-config": "workspace:*"
@@ -41,4 +44,4 @@
"peerDependencies": { "peerDependencies": {
"react": "18.2.0" "react": "18.2.0"
} }
} }

View File

@@ -0,0 +1,8 @@
import type { JestConfigWithTsJest } from 'ts-jest'
const jestConfig: JestConfigWithTsJest = {
preset: 'ts-jest',
testEnvironment: 'node'
}
export default jestConfig

View File

@@ -11,12 +11,14 @@
"dist/**" "dist/**"
], ],
"scripts": { "scripts": {
"generate": "buf generate https://github.com/zitadel/zitadel.git --path ./proto/zitadel",
"prebuild": "pnpm run generate",
"build": "tsup --dts", "build": "tsup --dts",
"test": "jest",
"test:watch": "jest --watch",
"dev": "tsup --dts --watch", "dev": "tsup --dts --watch",
"lint": "eslint \"src/**/*.ts*\"", "lint": "eslint \"src/**/*.ts*\"",
"clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist", "clean": "rm -rf .turbo && rm -rf node_modules && rm -rf dist"
"prebuild": "pnpm run generate",
"generate": "buf generate https://github.com/zitadel/zitadel.git --path ./proto/zitadel"
}, },
"devDependencies": { "devDependencies": {
"@bufbuild/buf": "^1.14.0", "@bufbuild/buf": "^1.14.0",
@@ -26,6 +28,7 @@
"eslint-config-zitadel": "workspace:*", "eslint-config-zitadel": "workspace:*",
"jest": "^29.5.0", "jest": "^29.5.0",
"ts-jest": "^29.1.0", "ts-jest": "^29.1.0",
"ts-node": "^10.9.1",
"ts-proto": "^1.139.0", "ts-proto": "^1.139.0",
"tsup": "^5.10.1", "tsup": "^5.10.1",
"typescript": "^4.9.3" "typescript": "^4.9.3"
@@ -40,4 +43,4 @@
"nice-grpc-common": "^2.0.2", "nice-grpc-common": "^2.0.2",
"protobufjs": "^7.2.3" "protobufjs": "^7.2.3"
} }
} }

186
pnpm-lock.yaml generated
View File

@@ -118,7 +118,7 @@ importers:
version: 1.11.3 version: 1.11.3
jest: jest:
specifier: ^29.5.0 specifier: ^29.5.0
version: 29.5.0(@types/node@18.11.9) version: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
lint-staged: lint-staged:
specifier: 13.0.3 specifier: 13.0.3
version: 13.0.3 version: 13.0.3
@@ -133,10 +133,13 @@ importers:
version: 0.1.13(prettier@2.8.0) version: 0.1.13(prettier@2.8.0)
tailwindcss: tailwindcss:
specifier: 3.2.4 specifier: 3.2.4
version: 3.2.4(postcss@8.4.21) version: 3.2.4(postcss@8.4.21)(ts-node@10.9.1)
ts-jest: ts-jest:
specifier: ^29.1.0 specifier: ^29.1.0
version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3) version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3)
ts-node:
specifier: ^10.9.1
version: 10.9.1(@types/node@18.11.9)(typescript@4.8.4)
ts-proto: ts-proto:
specifier: ^1.139.0 specifier: ^1.139.0
version: 1.146.0 version: 1.146.0
@@ -191,16 +194,19 @@ importers:
version: link:../eslint-config-zitadel version: link:../eslint-config-zitadel
jest: jest:
specifier: ^29.5.0 specifier: ^29.5.0
version: 29.5.0(@types/node@18.11.9) version: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
ts-jest: ts-jest:
specifier: ^29.1.0 specifier: ^29.1.0
version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3) version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3)
ts-node:
specifier: ^10.9.1
version: 10.9.1(@types/node@18.11.9)(typescript@4.9.3)
ts-proto: ts-proto:
specifier: ^1.139.0 specifier: ^1.139.0
version: 1.146.0 version: 1.146.0
tsup: tsup:
specifier: ^5.10.1 specifier: ^5.10.1
version: 5.12.9(postcss@8.4.21)(typescript@4.9.3) version: 5.12.9(postcss@8.4.21)(ts-node@10.9.1)(typescript@4.9.3)
typescript: typescript:
specifier: ^4.9.3 specifier: ^4.9.3
version: 4.9.3 version: 4.9.3
@@ -225,13 +231,16 @@ importers:
version: link:../eslint-config-zitadel version: link:../eslint-config-zitadel
jest: jest:
specifier: ^29.5.0 specifier: ^29.5.0
version: 29.5.0(@types/node@18.11.9) version: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
ts-jest: ts-jest:
specifier: ^29.1.0 specifier: ^29.1.0
version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3) version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3)
ts-node:
specifier: ^10.9.1
version: 10.9.1(@types/node@18.11.9)(typescript@4.9.3)
tsup: tsup:
specifier: ^5.10.1 specifier: ^5.10.1
version: 5.12.9(postcss@8.4.21)(typescript@4.9.3) version: 5.12.9(postcss@8.4.21)(ts-node@10.9.1)(typescript@4.9.3)
typescript: typescript:
specifier: ^4.9.3 specifier: ^4.9.3
version: 4.9.3 version: 4.9.3
@@ -265,7 +274,7 @@ importers:
version: link:../eslint-config-zitadel version: link:../eslint-config-zitadel
jest: jest:
specifier: ^29.5.0 specifier: ^29.5.0
version: 29.5.0(@types/node@18.11.9) version: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
postcss: postcss:
specifier: 8.4.21 specifier: 8.4.21
version: 8.4.21 version: 8.4.21
@@ -274,13 +283,16 @@ importers:
version: 1.62.0 version: 1.62.0
tailwindcss: tailwindcss:
specifier: 3.2.4 specifier: 3.2.4
version: 3.2.4(postcss@8.4.21) version: 3.2.4(postcss@8.4.21)(ts-node@10.9.1)
ts-jest: ts-jest:
specifier: ^29.1.0 specifier: ^29.1.0
version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3) version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3)
ts-node:
specifier: ^10.9.1
version: 10.9.1(@types/node@18.11.9)(typescript@4.9.3)
tsup: tsup:
specifier: ^5.10.1 specifier: ^5.10.1
version: 5.12.9(postcss@8.4.21)(typescript@4.9.3) version: 5.12.9(postcss@8.4.21)(ts-node@10.9.1)(typescript@4.9.3)
typescript: typescript:
specifier: ^4.9.3 specifier: ^4.9.3
version: 4.9.3 version: 4.9.3
@@ -323,16 +335,19 @@ importers:
version: link:../eslint-config-zitadel version: link:../eslint-config-zitadel
jest: jest:
specifier: ^29.5.0 specifier: ^29.5.0
version: 29.5.0(@types/node@18.11.9) version: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
ts-jest: ts-jest:
specifier: ^29.1.0 specifier: ^29.1.0
version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3) version: 29.1.0(@babel/core@7.21.8)(esbuild@0.14.54)(jest@29.5.0)(typescript@4.9.3)
ts-node:
specifier: ^10.9.1
version: 10.9.1(@types/node@18.11.9)(typescript@4.9.3)
ts-proto: ts-proto:
specifier: ^1.139.0 specifier: ^1.139.0
version: 1.146.0 version: 1.146.0
tsup: tsup:
specifier: ^5.10.1 specifier: ^5.10.1
version: 5.12.9(postcss@8.4.21)(typescript@4.9.3) version: 5.12.9(postcss@8.4.21)(ts-node@10.9.1)(typescript@4.9.3)
typescript: typescript:
specifier: ^4.9.3 specifier: ^4.9.3
version: 4.9.3 version: 4.9.3
@@ -344,7 +359,7 @@ importers:
version: 0.5.3(tailwindcss@3.2.4) version: 0.5.3(tailwindcss@3.2.4)
tailwindcss: tailwindcss:
specifier: ^3.2.4 specifier: ^3.2.4
version: 3.2.4(postcss@8.4.21) version: 3.2.4(postcss@8.4.21)(ts-node@10.9.1)
packages/zitadel-tsconfig: {} packages/zitadel-tsconfig: {}
@@ -939,6 +954,12 @@ packages:
prettier: 2.8.0 prettier: 2.8.0
dev: true dev: true
/@cspotcode/source-map-support@0.8.1:
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/trace-mapping': 0.3.9
/@esbuild/linux-loong64@0.14.54: /@esbuild/linux-loong64@0.14.54:
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==} resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
engines: {node: '>=12'} engines: {node: '>=12'}
@@ -1045,7 +1066,7 @@ packages:
slash: 3.0.0 slash: 3.0.0
dev: true dev: true
/@jest/core@29.5.0: /@jest/core@29.5.0(ts-node@10.9.1):
resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==} resolution: {integrity: sha512-28UzQc7ulUrOQw1IsN/kv1QES3q2kkbl/wGslyhAclqZ/8cMdB5M68BffkIdSJgKBUt50d3hbwJ92XESlE7LiQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies: peerDependencies:
@@ -1066,7 +1087,7 @@ packages:
exit: 0.1.2 exit: 0.1.2
graceful-fs: 4.2.10 graceful-fs: 4.2.10
jest-changed-files: 29.5.0 jest-changed-files: 29.5.0
jest-config: 29.5.0(@types/node@18.11.9) jest-config: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
jest-haste-map: 29.5.0 jest-haste-map: 29.5.0
jest-message-util: 29.5.0 jest-message-util: 29.5.0
jest-regex-util: 29.4.3 jest-regex-util: 29.4.3
@@ -1274,6 +1295,12 @@ packages:
'@jridgewell/resolve-uri': 3.1.0 '@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14 '@jridgewell/sourcemap-codec': 1.4.14
/@jridgewell/trace-mapping@0.3.9:
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
dependencies:
'@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.15
/@manypkg/find-root@1.1.0: /@manypkg/find-root@1.1.0:
resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
dependencies: dependencies:
@@ -1625,7 +1652,19 @@ packages:
tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1'
dependencies: dependencies:
mini-svg-data-uri: 1.4.4 mini-svg-data-uri: 1.4.4
tailwindcss: 3.2.4(postcss@8.4.21) tailwindcss: 3.2.4(postcss@8.4.21)(ts-node@10.9.1)
/@tsconfig/node10@1.0.9:
resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
/@tsconfig/node12@1.0.11:
resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
/@tsconfig/node14@1.0.3:
resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
/@tsconfig/node16@1.0.4:
resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
/@types/babel__core@7.20.0: /@types/babel__core@7.20.0:
resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==}
@@ -1884,11 +1923,20 @@ packages:
resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
/acorn-walk@8.2.0:
resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
engines: {node: '>=0.4.0'}
/acorn@7.4.1: /acorn@7.4.1:
resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
engines: {node: '>=0.4.0'} engines: {node: '>=0.4.0'}
hasBin: true hasBin: true
/acorn@8.8.2:
resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
engines: {node: '>=0.4.0'}
hasBin: true
/agent-base@6.0.2: /agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'} engines: {node: '>= 6.0.0'}
@@ -1995,6 +2043,9 @@ packages:
readable-stream: 3.6.2 readable-stream: 3.6.2
dev: true dev: true
/arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
/arg@5.0.2: /arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@@ -2491,6 +2542,9 @@ packages:
requiresBuild: true requiresBuild: true
dev: false dev: false
/create-require@1.1.1:
resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
/cross-spawn@5.1.0: /cross-spawn@5.1.0:
resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==} resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
dependencies: dependencies:
@@ -2700,6 +2754,10 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true dev: true
/diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
/dir-glob@3.0.1: /dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@@ -4111,7 +4169,7 @@ packages:
- supports-color - supports-color
dev: true dev: true
/jest-cli@29.5.0(@types/node@18.11.9): /jest-cli@29.5.0(@types/node@18.11.9)(ts-node@10.9.1):
resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==} resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true hasBin: true
@@ -4121,14 +4179,14 @@ packages:
node-notifier: node-notifier:
optional: true optional: true
dependencies: dependencies:
'@jest/core': 29.5.0 '@jest/core': 29.5.0(ts-node@10.9.1)
'@jest/test-result': 29.5.0 '@jest/test-result': 29.5.0
'@jest/types': 29.5.0 '@jest/types': 29.5.0
chalk: 4.1.2 chalk: 4.1.2
exit: 0.1.2 exit: 0.1.2
graceful-fs: 4.2.10 graceful-fs: 4.2.10
import-local: 3.1.0 import-local: 3.1.0
jest-config: 29.5.0(@types/node@18.11.9) jest-config: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
jest-util: 29.5.0 jest-util: 29.5.0
jest-validate: 29.5.0 jest-validate: 29.5.0
prompts: 2.4.2 prompts: 2.4.2
@@ -4139,7 +4197,7 @@ packages:
- ts-node - ts-node
dev: true dev: true
/jest-config@29.5.0(@types/node@18.11.9): /jest-config@29.5.0(@types/node@18.11.9)(ts-node@10.9.1):
resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==} resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
peerDependencies: peerDependencies:
@@ -4174,6 +4232,7 @@ packages:
pretty-format: 29.5.0 pretty-format: 29.5.0
slash: 3.0.0 slash: 3.0.0
strip-json-comments: 3.1.1 strip-json-comments: 3.1.1
ts-node: 10.9.1(@types/node@18.11.9)(typescript@4.9.3)
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
@@ -4464,7 +4523,7 @@ packages:
supports-color: 8.1.1 supports-color: 8.1.1
dev: true dev: true
/jest@29.5.0(@types/node@18.11.9): /jest@29.5.0(@types/node@18.11.9)(ts-node@10.9.1):
resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==} resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
hasBin: true hasBin: true
@@ -4474,10 +4533,10 @@ packages:
node-notifier: node-notifier:
optional: true optional: true
dependencies: dependencies:
'@jest/core': 29.5.0 '@jest/core': 29.5.0(ts-node@10.9.1)
'@jest/types': 29.5.0 '@jest/types': 29.5.0
import-local: 3.1.0 import-local: 3.1.0
jest-cli: 29.5.0(@types/node@18.11.9) jest-cli: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
transitivePeerDependencies: transitivePeerDependencies:
- '@types/node' - '@types/node'
- supports-color - supports-color
@@ -4754,7 +4813,6 @@ packages:
/make-error@1.3.6: /make-error@1.3.6:
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
dev: true
/makeerror@1.0.12: /makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
@@ -5393,7 +5451,7 @@ packages:
camelcase-css: 2.0.1 camelcase-css: 2.0.1
postcss: 8.4.21 postcss: 8.4.21
/postcss-load-config@3.1.4(postcss@8.4.21): /postcss-load-config@3.1.4(postcss@8.4.21)(ts-node@10.9.1):
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
peerDependencies: peerDependencies:
@@ -5407,6 +5465,7 @@ packages:
dependencies: dependencies:
lilconfig: 2.0.6 lilconfig: 2.0.6
postcss: 8.4.21 postcss: 8.4.21
ts-node: 10.9.1(@types/node@18.11.9)(typescript@4.8.4)
yaml: 1.10.2 yaml: 1.10.2
/postcss-nested@6.0.0(postcss@8.4.21): /postcss-nested@6.0.0(postcss@8.4.21):
@@ -6181,7 +6240,7 @@ packages:
string-width: 4.2.3 string-width: 4.2.3
strip-ansi: 6.0.1 strip-ansi: 6.0.1
/tailwindcss@3.2.4(postcss@8.4.21): /tailwindcss@3.2.4(postcss@8.4.21)(ts-node@10.9.1):
resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==} resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==}
engines: {node: '>=12.13.0'} engines: {node: '>=12.13.0'}
hasBin: true hasBin: true
@@ -6205,7 +6264,7 @@ packages:
postcss: 8.4.21 postcss: 8.4.21
postcss-import: 14.1.0(postcss@8.4.21) postcss-import: 14.1.0(postcss@8.4.21)
postcss-js: 4.0.1(postcss@8.4.21) postcss-js: 4.0.1(postcss@8.4.21)
postcss-load-config: 3.1.4(postcss@8.4.21) postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.1)
postcss-nested: 6.0.0(postcss@8.4.21) postcss-nested: 6.0.0(postcss@8.4.21)
postcss-selector-parser: 6.0.11 postcss-selector-parser: 6.0.11
postcss-value-parser: 4.2.0 postcss-value-parser: 4.2.0
@@ -6355,7 +6414,7 @@ packages:
bs-logger: 0.2.6 bs-logger: 0.2.6
esbuild: 0.14.54 esbuild: 0.14.54
fast-json-stable-stringify: 2.1.0 fast-json-stable-stringify: 2.1.0
jest: 29.5.0(@types/node@18.11.9) jest: 29.5.0(@types/node@18.11.9)(ts-node@10.9.1)
jest-util: 29.5.0 jest-util: 29.5.0
json5: 2.2.3 json5: 2.2.3
lodash.memoize: 4.1.2 lodash.memoize: 4.1.2
@@ -6365,6 +6424,67 @@ packages:
yargs-parser: 21.1.1 yargs-parser: 21.1.1
dev: true dev: true
/ts-node@10.9.1(@types/node@18.11.9)(typescript@4.8.4):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
'@swc/core': '>=1.2.50'
'@swc/wasm': '>=1.2.50'
'@types/node': '*'
typescript: '>=2.7'
peerDependenciesMeta:
'@swc/core':
optional: true
'@swc/wasm':
optional: true
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.9
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 18.11.9
acorn: 8.8.2
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
typescript: 4.8.4
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
/ts-node@10.9.1(@types/node@18.11.9)(typescript@4.9.3):
resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
hasBin: true
peerDependencies:
'@swc/core': '>=1.2.50'
'@swc/wasm': '>=1.2.50'
'@types/node': '*'
typescript: '>=2.7'
peerDependenciesMeta:
'@swc/core':
optional: true
'@swc/wasm':
optional: true
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.9
'@tsconfig/node12': 1.0.11
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.4
'@types/node': 18.11.9
acorn: 8.8.2
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
typescript: 4.9.3
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
dev: true
/ts-poet@6.4.1: /ts-poet@6.4.1:
resolution: {integrity: sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==} resolution: {integrity: sha512-AjZEs4h2w4sDfwpHMxQKHrTlNh2wRbM5NRXmLz0RiH+yPGtSQFbe9hBpNocU8vqVNgfh0BIOiXR80xDz3kKxUQ==}
dependencies: dependencies:
@@ -6407,7 +6527,7 @@ packages:
/tslib@2.4.1: /tslib@2.4.1:
resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==}
/tsup@5.12.9(postcss@8.4.21)(typescript@4.9.3): /tsup@5.12.9(postcss@8.4.21)(ts-node@10.9.1)(typescript@4.9.3):
resolution: {integrity: sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==} resolution: {integrity: sha512-dUpuouWZYe40lLufo64qEhDpIDsWhRbr2expv5dHEMjwqeKJS2aXA/FPqs1dxO4T6mBojo7rvo3jP9NNzaKyDg==}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@@ -6431,7 +6551,7 @@ packages:
globby: 11.1.0 globby: 11.1.0
joycon: 3.1.1 joycon: 3.1.1
postcss: 8.4.21 postcss: 8.4.21
postcss-load-config: 3.1.4(postcss@8.4.21) postcss-load-config: 3.1.4(postcss@8.4.21)(ts-node@10.9.1)
resolve-from: 5.0.0 resolve-from: 5.0.0
rollup: 2.79.1 rollup: 2.79.1
source-map: 0.8.0-beta.0 source-map: 0.8.0-beta.0
@@ -6572,7 +6692,6 @@ packages:
resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==} resolution: {integrity: sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==}
engines: {node: '>=4.2.0'} engines: {node: '>=4.2.0'}
hasBin: true hasBin: true
dev: true
/typescript@4.9.3: /typescript@4.9.3:
resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==}
@@ -6610,6 +6729,9 @@ packages:
/util-deprecate@1.0.2: /util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
/v8-compile-cache-lib@3.0.1:
resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
/v8-compile-cache@2.3.0: /v8-compile-cache@2.3.0:
resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==}
@@ -6841,6 +6963,10 @@ packages:
yargs-parser: 21.1.1 yargs-parser: 21.1.1
dev: true dev: true
/yn@3.1.1:
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
engines: {node: '>=6'}
/yocto-queue@0.1.0: /yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'} engines: {node: '>=10'}

View File

@@ -2,16 +2,25 @@
"$schema": "https://turbo.build/schema.json", "$schema": "https://turbo.build/schema.json",
"pipeline": { "pipeline": {
"generate": { "generate": {
"outputs": ["src/proto/**"], "outputs": [
"src/proto/**"
],
"cache": true "cache": true
}, },
"build": { "build": {
"outputs": ["dist/**", ".next/**", "!.next/cache/**"], "outputs": [
"dependsOn": ["generate", "^build"] "dist/**",
".next/**",
"!.next/cache/**"
],
"dependsOn": [
"generate",
"^build"
]
}, },
"test": { "test": {},
"outputs": ["coverage/**"], "test:watch": {
"dependsOn": [] "cache": false
}, },
"lint": {}, "lint": {},
"dev": { "dev": {
@@ -22,6 +31,11 @@
"cache": false "cache": false
} }
}, },
"globalDependencies": ["**/.env.*local"], "globalDependencies": [
"globalEnv": ["ZITADEL_API_URL", "ZITADEL_SERVICE_USER_TOKEN"] "**/.env.*local"
} ],
"globalEnv": [
"ZITADEL_API_URL",
"ZITADEL_SERVICE_USER_TOKEN"
]
}