Commit graph

223 commits

Author SHA1 Message Date
Tilman Vatteroth
dccd58f0c1 fix: remove subpath support for HD_BASE_URL
With this commit we drop the subpath support which results in the constraint that HedgeDoc must always run on the root of a domain. This makes a lot of things in testing, rendering and security much easier.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-08-13 20:38:53 +02:00
renovate[bot]
41b0deba19 chore(deps): update dependency eslint to v8.47.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-12 11:05:01 +02:00
renovate[bot]
27a0914069 chore(deps): update typescript-eslint monorepo to v6.3.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-10 21:06:09 +02:00
renovate[bot]
236562cd9d chore(deps): update linters
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 11:55:34 +00:00
renovate[bot]
c8e1a99ad1 chore(deps): update dependency eslint-config-prettier to v9
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-06 13:40:55 +02:00
renovate[bot]
4c0e8fe669 chore(deps): update dependency eslint-config-prettier to v8.10.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 17:54:01 +02:00
renovate[bot]
2ff3cd2b14 chore(deps): update typescript-eslint monorepo to v6.2.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-31 21:17:13 +02:00
Tilman Vatteroth
8e2d59ff3c fix(commons): replace microbundle with bash based compile script
The commons package ships wrong types because it is refering to the same files for the ESM and the CJS build.
See https://arethetypeswrong.github.io/?p=%40mrdrogdrog%2Foptional%401.1.0

This happens because microbundle can handle the generation of `.mjs` and `.cjs` from files itself but delegates the generation of types entirely to typescript by running it once. Microbundle uses the "type" field from the package.json to know if a `.js` file is meant to be mjs or cjs and generates the other type by using the specific file extension `.cjs` and `.mjs` (so if your package is a `type: module`, then `.js` file are interpreted as ECMAModule and if you have a commonjs file you need to name it `.cjs`).  But this causes a problem with typescript. If you use typescript with the newer module resolver then it expects the type declarations to be named exactly like the file you wanna import. So if you have a `.js` file it will try to look up types in a `.d.ts` file. If it is resolving a `.mjs` file it is looking for a `.d.mts` file.

This clashes with the types generated by microbundle because you can't use a `.mjs` file with a `.d.ts` file.

Running typescript multiple times can also be complicated.
When generating type declaration files, typescript takes a look at the source file extension. So a `.mts` file will generate a `.mjs` and a `.d.mts` file. A `.ts` will generate a `.js` and `.d.ts` file. It doesn't matter if you run microbundle on `.ts`, `.mts` or `.cjs` files, it will only generate the type declarations once.

How do you get the other type declaration? To solve this problem you either have to run typescript multiple times and manipulate the input or output data to have correct `.d.mts` / `.d.cts` files AND imports... or do what this PR changes.

It runs typescript multiple times but places the complied files in different directories. It then places a package.json in both directories which declares if `.js` is commonjs or ESM.
This way the resolver is happy because it can import `.js` files according to the package.json content and typescript is happy because it can find type declarations. And because package.json files are inheriting properties from other package.json files no necessary file is missing.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-30 14:56:29 +02:00
renovate[bot]
3a1da59c16 fix(deps): update dependency @mrdrogdrog/optional to v1.2.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-30 11:51:05 +02:00
renovate[bot]
b016f7127d chore(deps): update linters
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-29 09:35:29 +02:00
renovate[bot]
6327f7fa16 chore(deps): update test packages to v29.6.2
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-27 10:56:59 +00:00
renovate[bot]
117d42b543 chore(deps): update typescript-eslint monorepo to v6.2.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-24 20:39:36 +02:00
Tilman Vatteroth
34bf8f16b1 fix: format code
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-19 12:36:32 +02:00
renovate[bot]
d75d406e67 chore(deps): update typescript-eslint monorepo to v6
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 12:36:32 +02:00
renovate[bot]
ea2cac3f9f chore(deps): update dependency yjs to v13.6.7
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 10:25:34 +00:00
renovate[bot]
b42a6629ec chore(deps): update linters
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-16 10:51:51 +02:00
renovate[bot]
7d7c93d554 chore(deps): update dependency eslint to v8.45.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-16 10:41:43 +02:00
renovate[bot]
a0b9f72636 chore(deps): update dependency eslint-plugin-jest to v27.2.3
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-13 17:50:26 +00:00
renovate[bot]
b6ef68d081 chore(deps): update typescript-eslint monorepo to v5.62.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-10 20:49:06 +02:00
renovate[bot]
41c7cbfb75 chore(deps): update dependency @jest/types to v29.6.1
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-06 20:20:46 +00: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
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
233fb263c7 fix: don't allow message sending before both sides are ready
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
57f7734f7f fix: add docs to sendMessage
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
823b8e5ad5 fix: don't block message receiving even despite the ready state
This shouldn't be handled here. If both sides are following the protocol then there shouldn't be any messages before this side hasn't sent the ready answer.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
e99a9f4855 fix: increase resend interval of READY_REQUEST
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
930e91195c fix: send one ready request immediately
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
9f1e0e48e3 fix: clear interval variable after deleting timer
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-07-06 12:07:03 +02:00
Tilman Vatteroth
ad04bb78a2 refactor: clean up y-doc sync adapter code
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]
88bd420318 chore(deps): update dependency @jest/types to v29.6.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-05 14:06:32 +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]
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]
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]
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]
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]
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]
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
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
Tilman Vatteroth
3fe98e7f58 fix: move js-yaml dependencies to commons package
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-06-21 07:28:01 +02:00
Tilman Vatteroth
20197d36df refactor(commons): remove redundant method
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]
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]
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]
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]
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]
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
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]
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
Tilman Vatteroth
4d9792bcb9 refactor: reorganize files in commons package
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-31 23:42:46 +02:00
Tilman Vatteroth
e5911b09c1 refactor: reorder commons index.ts
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-30 09:17:05 +02:00
Tilman Vatteroth
0b06bcf67b fix: correct iso6391
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-30 09:17:05 +02:00
Tilman Vatteroth
db43e1db3f refactor: move frontmatter parser into commons package
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-30 09:17:05 +02:00
Tilman Vatteroth
4d0a2cb79e refactor: change return type of frontmatter extractor to use undefined
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-30 09:17:05 +02:00
Tilman Vatteroth
77f858bff8 fix: remove redundant note detail props
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]
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
renovate[bot]
500ab6d8b9 chore(deps): update typescript-eslint monorepo to v5.59.6
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-16 10:01:00 +00:00
Tilman Vatteroth
d29e840bc6 fix(realtime): allow realtime user status updates from users that have read-only access
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 20:33:23 +02:00
Tilman Vatteroth
eebbb79d08 fix: retrieve read-only state for y-doc-sync-server-adapter from connection
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-05-09 12:33:09 +02:00
renovate[bot]
6698f49af5 chore(deps): update typescript-eslint monorepo to v5.59.5
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-08 21:48:54 +02:00
renovate[bot]
d734163e5f chore(deps): update dependency eslint to v8.40.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-06 17:29:35 +02:00
renovate[bot]
122d3e6354 fix(deps): update dependency yjs to v13.6.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-04 17:24:04 +02:00
renovate[bot]
993d0e8b7e chore(deps): update yarn to v3.5.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-02 05:55:25 +00:00
renovate[bot]
d1df704d22 chore(deps): update typescript-eslint monorepo to v5.59.2
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-05-02 02:40:39 +00:00
renovate[bot]
138278bb13 chore(deps): update typescript-eslint monorepo to v5.59.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-25 09:31:21 +02:00
renovate[bot]
745247c04f chore(deps): update dependency eslint to v8.39.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 20:25:57 +02:00
renovate[bot]
fa7b262ad1 fix(deps): update dependency yjs to v13.6.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 20:25:43 +02:00
renovate[bot]
777e9d7015 chore(deps): update dependency prettier to v2.8.8
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-23 14:46:32 +00:00
renovate[bot]
b962676dad fix(deps): update dependency yjs to v13.5.53
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-19 16:15:35 +02:00
renovate[bot]
07c7c97b86 chore(deps): update typescript-eslint monorepo to v5.59.0
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-18 10:19:15 +02:00
Tilman Vatteroth
3962cafa5d feat: move title extraction into commons package
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-04-16 20:05:24 +02:00
renovate[bot]
d1498a4861 fix(deps): update dependency reveal.js to v4.5.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-13 14:41:24 +02:00
renovate[bot]
1c58a732e4 chore(deps): update typescript-eslint monorepo to v5.58.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-10 20:48:24 +02:00
renovate[bot]
2f200078ef chore(deps): update dependency eslint to v8.38.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-08 14:53:57 +02:00
renovate[bot]
143da53e46 chore(deps): update dependency typescript to v5.0.4
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-07 22:21:41 +02:00
Philip Molares
c2f41118b6 feat: check permissions in realtime code and frontend
Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-04-06 22:54:50 +02:00
renovate[bot]
5d9e220e1f chore(deps): update typescript-eslint monorepo to v5.57.1
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-03 20:20:47 +02:00
renovate[bot]
266eaf29e6 chore(deps): update dependency ts-jest to v29.1.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-04-03 20:06:05 +02:00
renovate[bot]
84ab3ecc58 fix(deps): update dependency yjs to v13.5.52
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-03 17:08:10 +00:00
renovate[bot]
ae58cab019 chore(deps): update dependency typescript to v5.0.3
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-03-31 15:43:28 +02:00
renovate[bot]
d0f2b0a471 chore(deps): update dependency eslint to v8.37.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-03-29 15:09:22 +02:00
Tilman Vatteroth
598fc8ee11 feat(realtime): synchronize and show realtime activity state
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-29 01:16:43 +02:00
renovate[bot]
4d749fb480 chore(deps): update typescript-eslint monorepo to v5.57.0
Signed-off-by: Renovate Bot <bot@renovateapp.com>
2023-03-27 19:58:01 +02:00
Tilman Vatteroth
ef699a9123 fix: disconnect websocket if trying to send over closed connection
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-26 17:36:25 +02:00
Philip Molares
8e57188ab5 refactor(common): extract frontmatter code into commons
Signed-off-by: Philip Molares <philip.molares@udo.edu>
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-26 14:58:38 +02:00
Philip Molares
8bd7fd1be8 refactor(common): extract frontmatter code into commons
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-03-26 14:58:38 +02:00
Tilman Vatteroth
a78ac5f097 fix: use correct callback on websocket error
the error event of the websocket occurs if the connection is already closed.
Therefore, the disconnect call does nothing and the transporter won't throw the disconnected event.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-26 12:25:40 +02:00
Philip Molares
4956a99ced refactor(frontend/commons): rename .test files to .spec
Signed-off-by: Philip Molares <philip.molares@udo.edu>
2023-03-25 15:02:29 +01:00
Tilman Vatteroth
24b7514e25 feat: submit own style index on realtime user state set
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-25 13:11:40 +01:00
Tilman Vatteroth
a826677225 refactor: save ydoc state in the database, so it can be restored easier
By storing the ydoc state in the database we can reconnect lost clients easier
and enable offline editing because we continue using the crdt data that has been
used by the client before the connection loss.

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-24 16:03:55 +01:00
Tilman Vatteroth
3a06f84af1 refactor: reimplement realtime-communication
This commit refactors a lot of things that are not easy to separate.
It replaces the binary protocol of y-protocols with json.
It introduces event based message processing.
It implements our own code mirror plugins for synchronisation of content and remote cursors

Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-03-24 14:06:03 +01:00