I don't think this has been a problem but it messes up the dev environment
if you want to link all of draupnir's dependencies like matrix-protection-suite,
interface-manager and so on.
We introduce a new interface `ManagementRoomDetail`, and our implementation of this has immediate access to the room members and room state.
Immediately, this allows us to warn when the management room is public.
In the future, it gives us a nice place to decide things like decide whether membership of the management room is enough to be considered a moderator, introduce more redundancy in access control, and give capabilities a way to determine who is a moderator (and avoid enacting consequences against them).
* Move management room to its own folder so we can start introspecting on it.
* Add ManagementRoomDetail.ts
This is just used to track who is a moderator and whether the
management room is public.
* Update ManagementRoomOutput to depend on ManagementRoomDetail.
This should allow us to implement the feature that warns when
the management room is public.
* Send a warning if the management room is public.
Fixes https://github.com/the-draupnir-project/Draupnir/issues/413.
* Update to MPS 1.7.0 so we can get the join rule event.
* Update matrix-appservice-bridge and use our own alias for matrix-bot-sdk
* Bump node version to support matrix-appservice-bridge
* Bump node version in CI
* Fix comments
* Add changelog entry
* pre-commit autoupdate
* pre-commit: check executables have shebangs and shebang files are executable
* .pre-commit-config.yaml: also add check for illegal windows names
* {package.json,.pre-commit-config.yaml}: fix yarn-lint
* prettier --write for yarn-lint pre-commit hook to pass
* package.json: unquiet eslint
* Initial attempt at this, but I don't like it.
We've managed to cnofuse rendering/command layer again just because
we started with the rendering rather than the command lol.
* Remove side effects from config renderers.
* Improve rendering of persistent configs in safe mode.
We should really also expand by default, and array properties in
details instead. Otherwise a new user might not expand by default and
might not know what's wrong.
* Remove <details> from configs themselves.
* Color blind indicators for config status.
* When config are bodged just render their reasons on the same line.
* Hide stack trace behind details.
* Update for MPS 1.6.0.
* Update to @the-draupnir-project/interface-manager@2.0.0.
The interface has been changed in `interface-manager` so that we can't forget them.
Means that our little error renderer works again.
* Update to MPS v1.2.1.
This will allow us to use `describeProtectedRoomsSet` in unit tests.
* Update to @the-draupnir-project/interface-manager@1.1.1.
This allows for better type inference from the command and also for
partial keywords to be provided to commands as arguments.
* Unit test the DraupnirKickCommand.
We split out some utility types from the matrix-protection-suite into a library https://github.com/the-draupnir-project/matrix-basic-types
I can't believe that like the extra lines from
```
import {
} from ...
```
are adding up so much but whatever.
* Move to @the-draupnir-project/basic-matrix-types.
* Whoopsie missed a test.
* Migrate to eslint-9 strictTypeChecked & typescript 5.
* Update to MPS 0.23.0.
Required for strict type checks.
* Looks like we found a test that was complete garbage, amazing really.
* FIXUP
* Well, the command handler was bugged previously...
The command handler used to always only return the command
without the prefix due to an operator precedence bug.
This meant that when we made the order of operations explicit,
we were now including the prefix of the command in the copy.
So when we parsed arguments the code wasn't expecting the prefix
to be there.
* update to MPS 0.23.1.
MPS 0.23.0 was bugged because we didn't enable
`noUncheckedIndexedAccess` while upgrading to typescript 5.
* Make sure eslint runs on all ts files.
* eslint fixes.
* enable `noUncheckedIndexedAccess` & `exactOptionalPropertyTypes`.
* eslint ignores is clearly not understood by me.
* Update SuperCoolStream for eslint and ts5.
* stricter eslint done i thinks
* Whoops, added on .only somewhere.
* Update MPS.
* fix broken test realted things.
* Well I guess that part of getMessagesByUserIn was part of the interface.
* Fix redactionCommandTest.
* Account for escapeHTML in tests.
* Fix tests.
* stuff not matching with .editorconfig fixes.
* Fix appservice webAPI test.
* Update for MPS 0.23.3.
* Setup Yarn Classic through Corepack
* pre-commit: use corepack and silence warnings, add .eslintignore's
* .github/workflows/mjolnir.yml: use yarn through corepack
* mx-tester.yml: use corepack
* mx-tester.yml & package.json: replace references to npx and call corepack more
At least yarn build didn't break locally for me, so I think it's supported here too
* rm & gitignore .yarnrc
* mx-tester.yml & package.json: return to npx since yarn dlx doesn't exist in classic