Part of #229910.
Unfortunately this is a little hacky because upstream doesn't intend to
support it for 2.5, but only for 3.0 which isn't out yet, however nodejs-16
will get out of maintenance during the support-span of NixOS 23.05[1].
The only breaking change is that `extract-files` uses a deprecated way
of exposing modules, I went through the list of other breaking
changes in v17 and v18[2][3] and couldn't spot any usage of removed
features, also local testing didn't reveal further issues.
Unfortunately fixing that breakage turned out to be non-trivial.
Currently, `extract-files@9.0.0` is used with the problematic portions
in its `package.json`, however it's only a transitive dependency of
`@graphql-tools/url-loader` & `apollo-upload-client`. Unfortunately, the
versions of that in use require v9 and don't work with a newer version of
`extract-files` with the problem fixed[4]. Also, upgrading the
dependencies in question is not a feasible option because `graphql-tools`
was split up into multiple smaller packages in v8 and also some of the
APIs in use in `wiki.js` were dropped there[5], so this would also be
very time-consuming and non-trivial to fix.
Since this was the only issue, I decided to go down the hacky route and
patch the problem in `package.json` of `extract-files` manually during
our `patchPhase`.
[1] https://github.com/requarks/wiki/discussions/6388
[2] https://nodejs.org/en/blog/release/v17.0.0
[3] https://nodejs.org/en/blog/release/v18.0.0
[4] Upon local testing, this broke with the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './public/extractFiles' is not defined by "exports" in /wiki/node_modules/extract-files/package.json
[5] For instance `SchemaDirectiveVisitor` in
`server/graph/directives/auth`.
Version increase: compatible with keycloak 21
changelog:
feat: adds support for Keycloak 21 (thanks @ghenadiibatalski )
fix: realm names are now shown again instead of ids (thanks @diversit )
other fixes and improvements (thanks @claudiunicolaa , @douph1 , @uberspot)
It panics when running with Go 1.20 with the following error:
```
panic: Something in this program imports go4.org/unsafe/assume-no-moving-gc
to declare that it assumes a non-moving garbage collector,
but your version of go4.org/unsafe/assume-no-moving-gc hasn't been updated
to assert that it's safe against the go1.20 runtime.
If you want to risk it, run with environment variable
ASSUME_NO_MOVING_GC_UNSAFE_RISK_IT_WITH=go1.20 set.
Notably, if go1.20 adds a moving garbage collector,
this program is unsafe to use.
```