Commit graph

168 commits

Author SHA1 Message Date
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