init db with migration, create users table

This commit is contained in:
Paul Coral
2025-07-28 08:16:34 +02:00
parent 8b327dcb18
commit c3881d7ff7
24 changed files with 494 additions and 23 deletions

268
pnpm-lock.yaml generated
View File

@@ -22,6 +22,12 @@ importers:
'@nestjs/platform-express':
specifier: ^11.0.1
version: 11.1.3(@nestjs/common@11.1.3(reflect-metadata@0.2.2)(rxjs@7.8.2))(@nestjs/core@11.1.3)
kysely:
specifier: ^0.28.3
version: 0.28.3
pg:
specifier: ^8.16.3
version: 8.16.3
reflect-metadata:
specifier: ^0.2.2
version: 0.2.2
@@ -29,7 +35,7 @@ importers:
specifier: ^7.8.1
version: 7.8.2
zod:
specifier: ^3.22.3
specifier: ^3.25.76
version: 3.25.76
devDependencies:
'@eslint/eslintrc':
@@ -62,6 +68,9 @@ importers:
'@types/node':
specifier: ^22.10.7
version: 22.16.3
'@types/pg':
specifier: ^8.15.4
version: 8.15.4
'@types/supertest':
specifier: ^6.0.2
version: 6.0.3
@@ -91,7 +100,7 @@ importers:
version: 7.1.3
ts-jest:
specifier: ^29.2.5
version: 29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.3)(ts-node@10.9.2(@swc/core@1.12.11)(@types/node@22.16.3)(typescript@5.7.3)))(typescript@5.7.3)
version: 29.4.0(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.3)(ts-node@10.9.2(@swc/core@1.12.11)(@types/node@22.16.3)(typescript@5.7.3)))(typescript@5.7.3)
ts-loader:
specifier: ^9.5.2
version: 9.5.2(typescript@5.7.3)(webpack@5.99.6(@swc/core@1.12.11))
@@ -111,7 +120,7 @@ importers:
packages/common:
dependencies:
zod:
specifier: ^3.22.3
specifier: ^3.25.76
version: 3.25.76
packages:
@@ -1019,6 +1028,9 @@ packages:
'@types/node@22.16.3':
resolution: {integrity: sha512-sr4Xz74KOUeYadexo1r8imhRtlVXcs+j3XK3TcoiYk7B1t3YRVJgtaD3cwX73NYb71pmVuMLNRhJ9XKdoDB74g==}
'@types/pg@8.15.4':
resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==}
'@types/qs@6.14.0':
resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
@@ -2399,6 +2411,10 @@ packages:
resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==}
engines: {node: '>=6'}
kysely@0.28.3:
resolution: {integrity: sha512-svKnkSH72APRdjfVCCOknxaC9Eb3nA2StHG9d5/sKOqRvHRp2Dtf1XwDvc92b4B5v6LV+EAGWXQbZ5jMOvHaDw==}
engines: {node: '>=20.0.0'}
leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@@ -2706,6 +2722,40 @@ packages:
pend@1.2.0:
resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
pg-cloudflare@1.2.7:
resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==}
pg-connection-string@2.9.1:
resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==}
pg-int8@1.0.1:
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
engines: {node: '>=4.0.0'}
pg-pool@3.10.1:
resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==}
peerDependencies:
pg: '>=8.0'
pg-protocol@1.10.3:
resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==}
pg-types@2.2.0:
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
engines: {node: '>=4'}
pg@8.16.3:
resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==}
engines: {node: '>= 16.0.0'}
peerDependencies:
pg-native: '>=3.0.1'
peerDependenciesMeta:
pg-native:
optional: true
pgpass@1.0.5:
resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==}
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -2732,6 +2782,22 @@ packages:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
postgres-array@2.0.0:
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
engines: {node: '>=4'}
postgres-bytea@1.0.0:
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
engines: {node: '>=0.10.0'}
postgres-date@1.0.7:
resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
engines: {node: '>=0.10.0'}
postgres-interval@1.2.0:
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
engines: {node: '>=0.10.0'}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -2975,6 +3041,10 @@ packages:
resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
engines: {node: '>= 8'}
split2@4.2.0:
resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==}
engines: {node: '>= 10.x'}
sprintf-js@1.0.3:
resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
@@ -3561,36 +3631,78 @@ snapshots:
dependencies:
'@babel/types': 7.28.1
'@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -3601,41 +3713,89 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.10)':
dependencies:
'@babel/core': 7.26.10
'@babel/helper-plugin-utils': 7.27.1
optional: true
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -4462,6 +4622,12 @@ snapshots:
dependencies:
undici-types: 6.21.0
'@types/pg@8.15.4':
dependencies:
'@types/node': 22.16.3
pg-protocol: 1.10.3
pg-types: 2.2.0
'@types/qs@6.14.0': {}
'@types/range-parser@1.2.7': {}
@@ -4830,6 +4996,20 @@ snapshots:
b4a@1.6.7: {}
babel-jest@29.7.0(@babel/core@7.26.10):
dependencies:
'@babel/core': 7.26.10
'@jest/transform': 29.7.0
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 6.1.1
babel-preset-jest: 29.6.3(@babel/core@7.26.10)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
transitivePeerDependencies:
- supports-color
optional: true
babel-jest@29.7.0(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -4860,6 +5040,26 @@ snapshots:
'@types/babel__core': 7.20.5
'@types/babel__traverse': 7.20.7
babel-preset-current-node-syntax@1.1.0(@babel/core@7.26.10):
dependencies:
'@babel/core': 7.26.10
'@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.10)
'@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.26.10)
'@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.10)
'@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.10)
'@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.26.10)
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.10)
'@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.10)
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.10)
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.10)
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.10)
'@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.10)
'@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.10)
'@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.10)
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.10)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.10)
optional: true
babel-preset-current-node-syntax@1.1.0(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -4879,6 +5079,13 @@ snapshots:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
babel-preset-jest@29.6.3(@babel/core@7.26.10):
dependencies:
'@babel/core': 7.26.10
babel-plugin-jest-hoist: 29.6.3
babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.10)
optional: true
babel-preset-jest@29.6.3(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -6152,6 +6359,8 @@ snapshots:
kleur@3.0.3: {}
kysely@0.28.3: {}
leven@3.1.0: {}
levn@0.4.1:
@@ -6406,6 +6615,41 @@ snapshots:
pend@1.2.0: {}
pg-cloudflare@1.2.7:
optional: true
pg-connection-string@2.9.1: {}
pg-int8@1.0.1: {}
pg-pool@3.10.1(pg@8.16.3):
dependencies:
pg: 8.16.3
pg-protocol@1.10.3: {}
pg-types@2.2.0:
dependencies:
pg-int8: 1.0.1
postgres-array: 2.0.0
postgres-bytea: 1.0.0
postgres-date: 1.0.7
postgres-interval: 1.2.0
pg@8.16.3:
dependencies:
pg-connection-string: 2.9.1
pg-pool: 3.10.1(pg@8.16.3)
pg-protocol: 1.10.3
pg-types: 2.2.0
pgpass: 1.0.5
optionalDependencies:
pg-cloudflare: 1.2.7
pgpass@1.0.5:
dependencies:
split2: 4.2.0
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -6424,6 +6668,16 @@ snapshots:
pluralize@8.0.0: {}
postgres-array@2.0.0: {}
postgres-bytea@1.0.0: {}
postgres-date@1.0.7: {}
postgres-interval@1.2.0:
dependencies:
xtend: 4.0.2
prelude-ls@1.2.1: {}
prettier-linter-helpers@1.0.0:
@@ -6670,6 +6924,8 @@ snapshots:
source-map@0.7.4: {}
split2@4.2.0: {}
sprintf-js@1.0.3: {}
stack-utils@2.0.6:
@@ -6838,7 +7094,7 @@ snapshots:
dependencies:
typescript: 5.7.3
ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.28.0))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.3)(ts-node@10.9.2(@swc/core@1.12.11)(@types/node@22.16.3)(typescript@5.7.3)))(typescript@5.7.3):
ts-jest@29.4.0(@babel/core@7.26.10)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.10))(jest-util@29.7.0)(jest@29.7.0(@types/node@22.16.3)(ts-node@10.9.2(@swc/core@1.12.11)(@types/node@22.16.3)(typescript@5.7.3)))(typescript@5.7.3):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
@@ -6852,10 +7108,10 @@ snapshots:
typescript: 5.7.3
yargs-parser: 21.1.1
optionalDependencies:
'@babel/core': 7.28.0
'@babel/core': 7.26.10
'@jest/transform': 29.7.0
'@jest/types': 29.6.3
babel-jest: 29.7.0(@babel/core@7.28.0)
babel-jest: 29.7.0(@babel/core@7.26.10)
jest-util: 29.7.0
ts-loader@9.5.2(typescript@5.7.3)(webpack@5.99.6(@swc/core@1.12.11)):