This PR mainly refactors the code by extracting a "core" package which
is then used by the "backend" and "frontend" apps.
Apart from this the PR also contains several smaller changes like fixing
dependabot, upgrading dependencies, aligned "package.json" files, added
tests, ...
addresses step 1 of #32closes#136
---------
Co-authored-by: Marco Pasqualetti <marco.pasqualetti@live.com>
Bumps [jsdom](https://github.com/jsdom/jsdom) from 28.0.0 to 28.1.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jsdom/jsdom/releases">jsdom's
releases</a>.</em></p>
<blockquote>
<h2>Version 28.1.0</h2>
<ul>
<li>Added <code>blob.text()</code>, <code>blob.arrayBuffer()</code>, and
<code>blob.bytes()</code> methods.</li>
<li>Improved <code>getComputedStyle()</code> to account for CSS
specificity when multiple rules apply. (asamuzaK)</li>
<li>Improved synchronous <code>XMLHttpRequest</code> performance by
using a persistent worker thread, avoiding ~400ms of setup overhead on
every synchronous request after the first one.</li>
<li>Improved performance of <code>node.getRootNode()</code>,
<code>node.isConnected</code>, and <code>event.dispatchEvent()</code> by
caching the root node of document-connected trees.</li>
<li>Fixed <code>getComputedStyle()</code> to correctly handle
<code>!important</code> priority. (asamuzaK)</li>
<li>Fixed <code>document.getElementById()</code> to return the first
element in tree order when multiple elements share the same ID.</li>
<li>Fixed <code><svg></code> elements to no longer incorrectly
proxy event handlers to the <code>Window</code>.</li>
<li>Fixed <code>FileReader</code> event timing and
<code>fileReader.result</code> state to more closely follow the
spec.</li>
<li>Fixed a potential hang when synchronous <code>XMLHttpRequest</code>
encountered dispatch errors.</li>
<li>Fixed compatibility with environments where Node.js's built-in
<code>fetch()</code> has been used before importing jsdom, by working
around undici v6/v7 incompatibilities.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/jsdom/jsdom/blob/main/Changelog.md">jsdom's
changelog</a>.</em></p>
<blockquote>
<h2>28.1.0</h2>
<ul>
<li>Added <code>blob.text()</code>, <code>blob.arrayBuffer()</code>, and
<code>blob.bytes()</code> methods.</li>
<li>Improved <code>getComputedStyle()</code> to account for CSS
specificity when multiple rules apply. (asamuzaK)</li>
<li>Improved synchronous <code>XMLHttpRequest</code> performance by
using a persistent worker thread, avoiding ~400ms of setup overhead on
every synchronous request after the first one.</li>
<li>Improved performance of <code>node.getRootNode()</code>,
<code>node.isConnected</code>, and <code>event.dispatchEvent()</code> by
caching the root node of document-connected trees.</li>
<li>Fixed <code>getComputedStyle()</code> to correctly handle
<code>!important</code> priority. (asamuzaK)</li>
<li>Fixed <code>document.getElementById()</code> to return the first
element in tree order when multiple elements share the same ID.</li>
<li>Fixed <code><svg></code> elements to no longer incorrectly
proxy event handlers to the <code>Window</code>.</li>
<li>Fixed <code>FileReader</code> event timing and
<code>fileReader.result</code> state to more closely follow the
spec.</li>
<li>Fixed a potential hang when synchronous <code>XMLHttpRequest</code>
encountered dispatch errors.</li>
<li>Fixed compatibility with environments where Node.js's built-in
<code>fetch()</code> has been used before importing jsdom, by working
around undici v6/v7 incompatibilities.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jsdom/jsdom/commit/12949b524ca234c15146dbbcc2aa756deb20fa03"><code>12949b5</code></a>
Version 28.1.0</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/ce4c58fac40002e024d32f50d11c6e9c5deaff89"><code>ce4c58f</code></a>
Apply CSS specificity when computing styles</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/7ed55a024e7fc1c9dcdbef81ad0399f83147c67b"><code>7ed55a0</code></a>
Skip single-byte-decoder encoding tests on Node 20</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/f3b1973ca073e163d817a0cf4fb3b94f34a8bcc5"><code>f3b1973</code></a>
Generalize node version conditions in test expectations</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/853c596a0688b1b4c9bc2455401eccb9a71debdc"><code>853c596</code></a>
Rewrite getElementById ID caching for tree-order correctness</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/5fbfde654e32c7da63f7d64a27deddcfcbe5188b"><code>5fbfde6</code></a>
Fix potential sync XHR worker hang from unhandled dispatch errors</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/82df38f756a9b47b595da021ca121f70f1430bca"><code>82df38f</code></a>
Cache the root node for document-connected trees</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/ed7c5c05209e59b5bcbaf7b44a0c38cd776e39b5"><code>ed7c5c0</code></a>
Add documentation comment to create-event-accessor.js</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/b4562e9e8f14d4194bdf21fc6682247d50505f0f"><code>b4562e9</code></a>
Simplify Window.js installEventHandlers</li>
<li><a
href="https://github.com/jsdom/jsdom/commit/7da340fc6ef29cf502bc9df92999dd619512fde1"><code>7da340f</code></a>
Centralize "determine the target of an event handler"</li>
<li>Additional commits viewable in <a
href="https://github.com/jsdom/jsdom/compare/28.0.0...28.1.0">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
- add a few tests
- re-organize tests to allow testing with different env vars and
creating a combined coverage report
- extract test data into separate files, because importing data from
testA in testB leads to weird jest errors
- remove `dotenv` because it's not being used
- "GitHub Trends" -> "GitHub Stats Extended"
I deleted most workflows from apps/backend/.github/workflows because imo
we don't need them in the near future. I updated and moved two workflows
which we do need. Only the codeQL workflow is left behind, because I
don't have an opinion yet whether it should be removed or kept.
Bumps
[@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core)
from 2.0.2 to 3.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md"><code>@actions/core</code>'s
changelog</a>.</em></p>
<blockquote>
<h2>3.0.0</h2>
<ul>
<li><strong>Breaking change</strong>: Package is now ESM-only
<ul>
<li>CommonJS consumers must use dynamic <code>import()</code> instead of
<code>require()</code></li>
</ul>
</li>
</ul>
<h2>2.0.3</h2>
<ul>
<li>Bump <code>@actions/http-client</code> to <code>3.0.2</code></li>
</ul>
<h2>2.0.1</h2>
<ul>
<li>Bump <code>@actions/exec</code> from 1.1.1 to 2.0.0 <a
href="https://redirect.github.com/actions/toolkit/pull/2199">#2199</a></li>
</ul>
<h2>2.0.0</h2>
<ul>
<li>Add support for Node 24 <a
href="https://redirect.github.com/actions/toolkit/pull/2110">#2110</a></li>
<li>Bump <code>@actions/http-client</code> from 2.0.1 to 3.0.0</li>
</ul>
<h2>1.11.1</h2>
<ul>
<li>Fix uses of <code>crypto.randomUUID</code> on Node 18 and earlier <a
href="https://redirect.github.com/actions/toolkit/pull/1842">#1842</a></li>
</ul>
<h3>1.11.0</h3>
<ul>
<li>Add platform info utilities <a
href="https://redirect.github.com/actions/toolkit/pull/1551">#1551</a></li>
<li>Remove dependency on <code>uuid</code> package <a
href="https://redirect.github.com/actions/toolkit/pull/1824">#1824</a></li>
</ul>
<h3>1.10.1</h3>
<ul>
<li>Fix error message reference in oidc utils <a
href="https://redirect.github.com/actions/toolkit/pull/1511">#1511</a></li>
</ul>
<h3>1.10.0</h3>
<ul>
<li><code>saveState</code> and <code>setOutput</code> now use
environment files if available <a
href="https://redirect.github.com/actions/toolkit/pull/1178">#1178</a></li>
<li><code>getMultilineInput</code> now correctly trims whitespace by
default <a
href="https://redirect.github.com/actions/toolkit/pull/1185">#1185</a></li>
</ul>
<h3>1.9.1</h3>
<ul>
<li>Randomize delimiter when calling
<code>core.exportVariable</code></li>
</ul>
<h3>1.9.0</h3>
<ul>
<li>Added <code>toPosixPath</code>, <code>toWin32Path</code> and
<code>toPlatformPath</code> utilities <a
href="https://redirect.github.com/actions/toolkit/pull/1102">#1102</a></li>
</ul>
<h3>1.8.2</h3>
<ul>
<li>Update to v2.0.1 of <code>@actions/http-client</code> <a
href="https://redirect.github.com/actions/toolkit/pull/1087">#1087</a></li>
</ul>
<h3>1.8.1</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/core">compare
view</a></li>
</ul>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps
[@actions/github](https://github.com/actions/toolkit/tree/HEAD/packages/github)
from 6.0.1 to 9.0.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/toolkit/blob/main/packages/github/RELEASES.md"><code>@actions/github</code>'s
changelog</a>.</em></p>
<blockquote>
<h3>9.0.0</h3>
<ul>
<li><strong>Breaking change</strong>: Package is now ESM-only
<ul>
<li>CommonJS consumers must use dynamic <code>import()</code> instead of
<code>require()</code></li>
<li>Example: <code>const { getOctokit, context } = await
import('@actions/github')</code></li>
</ul>
</li>
<li>Fix TypeScript compilation by migrating to ESM, enabling proper
imports from <code>@octokit/core/types</code></li>
</ul>
<h3>8.0.1</h3>
<ul>
<li>Update <code>undici</code> to <code>6.23.0</code></li>
<li>Update <code>@actions/http-client</code> to <code>3.0.2</code></li>
</ul>
<h3>8.0.0</h3>
<ul>
<li>Update <a
href="https://github.com/octokit"><code>@octokit</code></a>
dependencies
<ul>
<li><code>@octokit/core</code> ^7.0.6</li>
<li><code>@octokit/plugin-paginate-rest</code> ^14.0.0</li>
<li><code>@octokit/plugin-rest-endpoint-methods</code> ^17.0.0</li>
<li><code>@octokit/request</code> ^10.0.7</li>
<li><code>@octokit/request-error</code> ^7.1.0</li>
</ul>
</li>
<li><strong>Breaking change</strong>: Minimum Node.js version is now 20
(previously 18)</li>
</ul>
<h3>7.0.0</h3>
<ul>
<li>Update to v3.0.1 of <code>@actions/http-client</code></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/actions/toolkit/commits/HEAD/packages/github">compare
view</a></li>
</ul>
</details>
<details>
<summary>Maintainer changes</summary>
<p>This version was pushed to npm by [GitHub Actions](<a
href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a>
Actions), a new releaser for <code>@actions/github</code> since your
current version.</p>
</details>
<br />
[](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>