Commit graph

523 commits

Author SHA1 Message Date
David Mehren
8daffbb11b build(backend): add nestjs-typed eslint plugin
Signed-off-by: David Mehren <git@herrmehren.de>
2023-07-09 21:12:56 +02:00
renovate[bot]
526e9b5f94 chore(deps): update dependency @types/node to v20.4.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-08 05:00:29 +00:00
renovate[bot]
34360be0dd chore(deps): update dependency @types/node to v20.4.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-07 10:48:06 +02:00
renovate[bot]
8db1105522 chore(deps): update test packages to v29.6.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 18:07:12 +02:00
Yannick Bungers
f362d27d3f Move session entity to sessions folder
Signed-off-by: Yannick Bungers <git@innay.de>
2023-07-06 12:07:44 +02:00
Tilman Vatteroth
eeef0ea025 test: add mocked message transporter
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
25ee20c15d refactor: rename ready function to match its intent
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
renovate[bot]
ddb43c8691 chore(deps): update dependency @nestjs/cli to v10.1.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 14:06:08 +02:00
renovate[bot]
bd06c2e3cb chore(deps): update test packages to v29.6.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 21:00:35 +02:00
renovate[bot]
45b96a2e24 chore(deps): update typescript-eslint monorepo to v5.61.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 20:36:25 +02:00
renovate[bot]
7dce3f2ccb fix(deps): update dependency @nestjs/swagger to v7.1.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 20:35:55 +02:00
renovate[bot]
6ef55b66a5 chore(deps): update dependency @nestjs/cli to v10.1.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 16:34:47 +00:00
renovate[bot]
dcf6e9053f chore(deps): update dependency @nestjs/cli to v10.1.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-04 09:02:48 +00:00
renovate[bot]
178e054938 chore(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-03 09:26:39 +00:00
renovate[bot]
1d3a4df622 chore(deps): update dependency @nestjs/cli to v10.1.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 22:14:06 +02:00
renovate[bot]
14c42fc09e chore(deps): update yarn to v3.6.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 22:13:54 +02:00
renovate[bot]
b20e29b4d7 chore(deps): update dependency eslint to v8.44.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 22:11:35 +02:00
renovate[bot]
5aeee5e118 chore(deps): update dependency @types/node to v20.3.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-01 06:59:39 +00:00
renovate[bot]
2276b4205d chore(deps): update dependency ts-jest to v29.1.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-30 10:51:59 +00:00
renovate[bot]
1c4b253811 fix(deps): update dependency node-fetch to v2.6.12
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 22:32:33 +00:00
renovate[bot]
b25634eda2 fix(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 19:20:12 +00:00
renovate[bot]
00692d8760 chore(deps): update dependency typescript to v5.1.6
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-29 01:13:48 +00:00
Tilman Vatteroth
f4a1999a8b fix(communication): send ready event when both sides are ready
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-28 21:50:48 +02:00
renovate[bot]
e6b9afc686 fix(deps): update dependency @nestjs/swagger to v7.0.11
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 20:04:29 +02:00
renovate[bot]
e8c959268a chore(deps): update dependency typescript to v5.1.5
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 04:37:04 +00:00
renovate[bot]
905bcd0e9d fix(deps): update dependency @nestjs/swagger to v7.0.10
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 15:40:16 +02:00
Tilman Vatteroth
bb54746ccf fix(backend): prevent realtime connections getting prepared for closed websocket
The setAdapter function checks if the websocket is closed.
If this is the case then an error is thrown and the whole process will be canceled. If the adapter isn't set before the realtime connection object is prepared then the connection will subscribe to all the events and THEN the process will be canceled. Because the MessageTransporter has no adapter (and won't get one), the connection will never get a disconnect event and clean up.

This causes the flood of "cant send message over closed websocket" messages.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-27 15:19:49 +02:00
renovate[bot]
f15aed3ed3 fix(deps): update dependency @nestjs/swagger to v7.0.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 11:47:46 +02:00
renovate[bot]
dcb79b91cd fix(deps): update dependency @nestjs/swagger to v7.0.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-27 11:33:15 +02:00
renovate[bot]
b14e711fac chore(deps): update typescript-eslint monorepo to v5.60.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 22:16:42 +00:00
renovate[bot]
28f04f461c chore(deps): update dependency @types/node to v20.3.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 21:43:45 +00:00
renovate[bot]
85ba675507 fix(deps): update dependency pg to v8.11.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 19:26:13 +00:00
renovate[bot]
25fb9344af chore(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-26 16:19:08 +00:00
renovate[bot]
9b1fbea77e chore(deps): update dependency yjs to v13.6.6
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-25 23:10:44 +02:00
David Mehren
4d50f2ec33 fix(backend): immediately use our custom logger
While the DI and database initialization is running, NestJSs default logger is normally used. Our custom logger was only being initialized after DI setup is complete.
Errors encountered during DI setup were buffered and only printed after DI init was complete, or the app exited on error.
This led to the app not printing anything for a minute in certain cases.

This commit replaces the initial logger with our ConsoleLoggerService that logs everything.
After DI init is complete, that logger is replaced with a normal instance of ConsoleLoggerService that uses the real config from DI.

Fixes https://github.com/hedgedoc/hedgedoc/issues/4306

Signed-off-by: David Mehren <git@herrmehren.de>
2023-06-25 21:49:01 +02:00
renovate[bot]
e28b4183db chore(deps): update dependency @types/node to v20.3.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-25 14:44:47 +02:00
renovate[bot]
b8bb690a0e chore(deps): update dependency yjs to v13.6.5
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-23 15:44:40 +02:00
renovate[bot]
1496155b36 fix(deps): update dependency @nestjs/swagger to v7.0.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-22 14:18:53 +00:00
renovate[bot]
cd4d20d09e chore(deps): update node.js to 77516e1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-22 05:01:55 +00:00
renovate[bot]
b7c9c80745 chore(deps): update node.js to 2bc2b33
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 20:24:22 +02:00
Tilman Vatteroth
cf02c35b49 fix: save created revision on realtime note destroy
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-21 14:17:25 +02:00
Avinash
b3eb6e4339 feat: increased test coverage for authService
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-06-21 14:07:00 +02:00
Avinash
239e21f4cb refactor: removed unused userServices
Signed-off-by: Avinash <avinash.kumar.cs92@gmail.com>
2023-06-21 14:07:00 +02:00
renovate[bot]
74164e1a72 fix(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 12:32:33 +02:00
Tilman Vatteroth
f32bd44091 fix: add @types/markdown-it to backend dev dependencies
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-21 07:28:01 +02:00
renovate[bot]
1fbb5c3b69 fix(deps): update dependency typeorm to v0.3.17
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-21 01:46:58 +00:00
Tilman Vatteroth
c25c0fac92 fix: don't save revisions on creation
sometimes we create revisions for notes that don't exist yet. If we try to persist a revision that is referring to a non-existing note the whole attempt crashes.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
Tilman Vatteroth
bb355feddc fix: improve and adjust tests
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
Tilman Vatteroth
eb986b1504 test: improve select query mock builder
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
Tilman Vatteroth
f95f5406be fix: make other services use the revision create method
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
Tilman Vatteroth
7161ffd5f2 fix: adjust seeding to new revision create signature
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
Tilman Vatteroth
e84096b5dc feat: generate metadata from content on revision creation
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
Tilman Vatteroth
90df9a4e32 feat: move title and description to revision entity
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-20 11:44:38 +02:00
renovate[bot]
9605b46831 chore(deps): update typescript-eslint monorepo to v5.60.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 19:48:45 +02:00
renovate[bot]
73c9079568 chore(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 19:45:48 +02:00
renovate[bot]
068c44afde chore(deps): update dependency eslint-plugin-jest to v27.2.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-19 17:30:57 +00:00
renovate[bot]
00a7af234c chore(deps): update dependency eslint to v8.43.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 16:23:02 +02:00
renovate[bot]
d0f6bd69f9 fix(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 16:20:40 +02:00
Tilman Vatteroth
ac825edbe3 fix: replace RouterModule from nest-router with @nestjs/core
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-16 23:00:06 +02:00
renovate[bot]
cf34a19494 chore(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-16 23:00:06 +02:00
renovate[bot]
fdfa978299 fix(deps): update dependency yjs to v13.6.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 16:58:24 +00:00
renovate[bot]
d1e15131a1 chore(deps): update node.js to 0a8a2a2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 14:09:52 +00:00
renovate[bot]
fecb5bb993 fix(deps): update dependency @nestjs/config to v2.3.4
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-14 17:49:34 +00:00
renovate[bot]
cc815d76f3 chore(deps): update typescript-eslint monorepo to v5.59.11
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-12 21:17:16 +00:00
renovate[bot]
07676e09e0 fix(deps): update nestjs packages
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-12 16:10:27 +00:00
renovate[bot]
a5472a923d chore(deps): update node.js to 4962384
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-11 18:29:54 +02:00
renovate[bot]
806da7b95e fix(deps): update dependency @nestjs/schedule to v2.2.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 16:29:17 +02:00
renovate[bot]
cc22d9c05c chore(deps): update definitelytyped
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-09 09:03:45 +02:00
renovate[bot]
cffab443c0 fix(deps): update dependency yjs to v13.6.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-08 12:01:28 +02:00
renovate[bot]
4254d63a73 fix(deps): update zxcvbn-ts
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 19:15:01 +02:00
renovate[bot]
c278df59dc chore(deps): update dependency @types/pg to v8.10.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-06 10:18:47 +00:00
renovate[bot]
972fc6fb00 chore(deps): update typescript-eslint monorepo to v5.59.9
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 22:27:45 +02:00
Philip Molares
0a8945d934 feat(backend): handle username always in lowercase
This should make all usernames of new users into lowercase. Usernames are also searched in the DB as lowercase.

Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-04 21:55:19 +02:00
renovate[bot]
9625900d1c chore(deps): update node.js to 59ac653
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-04 20:43:09 +02:00
renovate[bot]
16b60ddde7 chore(deps): update dependency typescript to v5.1.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-03 11:14:03 +02:00
renovate[bot]
1f292de377 chore(deps): update node.js to f3fe00f
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-03 11:13:04 +02:00
renovate[bot]
222d4b23ae chore(deps): update dependency eslint to v8.42.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-03 11:12:54 +02:00
Tilman Vatteroth
753c6e593f refactor: remove isomorphic-ws
The package caused some issues while working on other features.
Mostly because bundlers have been unable to determine the correct
websocket constructor.
So I replaced it with a more object-oriented approach.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-02 17:40:25 +02:00
renovate[bot]
fd78605657 chore(deps): update yarn to v3.6.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-02 08:36:15 +02:00
renovate[bot]
c9b98f6185 chore(deps): update dependency @types/jest to v29.5.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-31 20:54:58 +02:00
Tilman Vatteroth
d1ce1cb3e4 refactor: turn random word list source from json to ts
This prevents future import issues

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-30 09:17:05 +02:00
renovate[bot]
e510a41496 chore(deps): update typescript-eslint monorepo to v5.59.8
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 22:50:19 +00:00
renovate[bot]
2cb5b91d76 fix(deps): update definitelytyped
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-24 21:22:34 +02:00
renovate[bot]
c67e9bef60 fix(deps): update dependency minio to v7.1.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-24 21:08:48 +02:00
renovate[bot]
763cd62bfd fix(deps): update nestjs packages to v9.4.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-24 00:34:30 +00:00
renovate[bot]
0b025a41ab chore(deps): update typescript-eslint monorepo to v5.59.7
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-23 17:28:56 +00:00
renovate[bot]
d7663e3090 chore(deps): update dependency eslint to v8.41.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-21 19:47:03 +02:00
Tilman Vatteroth
11ccd678de test: add test for permissions guard
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
a852c79947 refactor: replace permission check methods with ordered permission enum
This commit replaces the "mayWrite", "mayRead" and "checkPermissionOnNote"
functions with one that returns a sortable permission value.
This is done because many places in the code need to do actions based on the fact if
the user has no, read or write access. If done with the may-functions then the permission
data need to be looked through multiple times.

Also, the whole check code is split into more functions that are tested separately and make it easier
to understand the process.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
4e298cccfb refactor: make class fields of permissions guard read-only
They're only read and never written after the construction

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
6e0e63688b refactor: allow only one required permission in require-permission decorator
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
9ca6485219 refactor: extract permission metadata key
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
488238d854 refactor: rename "Permissions" enum to "RequiredPermission"
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
6b73016583 refactor: rename "Permissions" decorator to "RequirePermission"
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
4c384cc8de test: add test for get note interceptor
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
b1dc383a7a refactor: use "extractNoteFromRequest" in permission guard
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
ab5aebc9c4 refactor: extract "extract note from request" logic into separate function
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
65fb110a1e refactor: move permissions decorator and guard into permissions directory
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
Tilman Vatteroth
22f0abbfbe fix: remove redundant permission guard annotations
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-19 19:10:45 +02:00
renovate[bot]
4b44277660 fix(deps): update dependency rimraf to v5.0.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-18 03:43:38 +00:00