View maps, graphs, and tables of your save and compete in a casual, evergreen leaderboard of EU4 achievement speed runs. Upload and share your save with the world.

Overview

PDX Tools
Discord CI

PDX Tools is a modern EU4 save file analyzer that allow users to view maps, graphs, and data tables of their save all within the browser. If the user desires, they can upload the save and share it with the world, while also being elibigle to compete in achievement speedrun leaderboards.

PDX Tools has a modular structure and can be expanded to handle any game. Currently CK3, HOI4, and Imperator saves can also be analyzed, though functionality is limited to just melting (conversion of a binary save to plaintext).

If you'd like to contribute, you've come to the right place! This README should hopefully get you started on your journey. If you get stuck or have a bug report you can file it here or chat about it on the discord

Visual Studio Code (recommended)

The easiest way to contribute is through Visual Studio Code (vscode). After one has installed Docker on a machine, install the Remote - Containers vscode plugin. Opening this repo inside vscode will give a prompt to reopen the repo inside the container which will have the fully fleshed build environment.

After completing this step, copy or link your EU4 installation to assets/game-bundles and execute:

just asset-extraction "assets/game-bundles/Europa Universalis IV"

See build assets for more details.

After assets are successfully extracted, one can start developing

Manual Build Environment

Linux environment assumed (WSL on Windows untested but probably supported). The following applications must be installed in order to instantiate the dev environment.

Once the above dependencies are installed, the remaining dependencies can be installed with:

just setup

Build Assets

Paradox would be unhappy if the game assets and binary token files were uploaded here, so it is up to you to supply these. For incorporating game assets one will need

just asset-extraction /path/to/your/eu4/installation

Ironman saves

By default, ironman and binary files will be unparsable, but one can populate the token files in assets/tokens to incorporate binary parsing functionality.

Start Developing

To start the app:

just dev

This will compile everything and start the web server on two ports: 3001 and 3003. 3001 is plain HTTP and 3003 is HTTPS with a self signed certificate. Since some web features like brotli decoding only work over HTTPS in firefox, it is recommended to use the HTTPS endpoint.

Contributor Project Guide

A quick intro into how the repo is structured.

  • admin: (production use only) CLI used to prepare data offline to upload to production.
  • app: The main project directory, a Next.js project. This is where the API, frontend UI, and the bulk of the code live.
  • applib: Rust library that contains code shared between CLI clients and the backend of the app.
  • applib-node: N-API bindings for app backend to access Rust computations at native speed.
  • assets: (CI use only) Used to sync assets so that CI can build the repo.
  • blog: blog contents
  • create-bundle: (production use only) CLI to create asset bundle from game directory
  • eu4game: Rust library for computing EU4 achievements and for exposing information only found in game files.
  • map: Project that contains the WebGL2 map shaders and logic for interacting with shaders. It is a standalone module, so that contributors can quickly iterate on shader and WebGL2 implementations without instantiating a dev environment.
  • packager: CLI used to process game directory to extract and prepare assets
  • schemas: flatbuffer schema for communicating game data efficiently to the browser
  • tarsave: Utility crate that detects if a eu4 save file has been converted into a tarsave. A tarsave, much like it sounds, is a tarball with every file from a zip transferred into the archive. Tarsaves allow us to transfer the save over the network with a content encoding that can leverage the browser's natively implemented brotli decompression engine, which is faster at inflating than our Wasm zip decompression while having a much better compression ratio.
  • wasm-br: Wasm package that takes in a byte array, brotli deflates it, and returns the deflated bytes. This is a standalone package due to how large brotli encoding consumes. Brotli encoding is used when users upload and since most users don't upload, we only want to pay the price to load the brotli module when needed. Maybe one day browsers will expose a JS api so we can use a native brotli deflate implementation.
  • wasm-{{game}}: Wasm packages dedicated to translating the Rust logic into a Wasm (ie: browser) environment. Each game is a separate package so that users don't need to pay the cost of downloading the logic for every game if they only ever analzye one game.
  • wasm-detect: An under-utilized wasm package that was created as a way to identify save files from bytes. It is under-utilized as the logic is not implemented due to games being identified by file extension.
Comments
  • Add options to display more elements in the tables.

    Add options to display more elements in the tables.

    Hello o/

    There is this at the moment of writing this option for "Wars and Battles".

    However, those tables miss this option:

    • Army Casualties
    • Navy Casualties
    • Last Month's Income
    • Last Month's Expense
    • Accumulated Expense

    Discord: Wagi#1940

    Wagi

    opened by TheWagi 6
  • Warn user if map is not supported

    Warn user if map is not supported

    In case the map is not supported (for whatever reason), we can show this information to the user on the front page already. We can check basic webgl requirements on the landing page, that doesn't require any resources.

    enhancement 
    opened by crschnick 5
  • Don't install dev dependencies globally (npm i -g)

    Don't install dev dependencies globally (npm i -g)

    Hi, I would like to ask whether it would be possible to not install dev dependencies globally as just setup fails for me without superuser privileges on Fedora 35.

    pdx-tools] (master)$ just setup
    ++ mktemp -d
    + MY_TMP=/tmp/tmp.I305SUyBw3
    + trap 'rm -rf -- "$MY_TMP"' EXIT
    + npm install -g [email protected]
    npm ERR! code EACCES
    npm ERR! syscall mkdir
    npm ERR! path /usr/local/lib/node_modules/wasm-pack
    npm ERR! errno -13
    npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/wasm-pack'
    npm ERR!  [Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/wasm-pack'] {
    npm ERR!   errno: -13,
    npm ERR!   code: 'EACCES',
    npm ERR!   syscall: 'mkdir',
    npm ERR!   path: '/usr/local/lib/node_modules/wasm-pack'
    npm ERR! }
    npm ERR! 
    npm ERR! The operation was rejected by your operating system.
    npm ERR! It is likely you do not have the permissions to access this file as the current user
    npm ERR! 
    npm ERR! If you believe this might be a permissions issue, please double-check the
    npm ERR! permissions of the file and its containing directories, or try running
    npm ERR! the command again as root/Administrator.
    
    opened by tkasparek 3
  • Bump minimist from 1.2.5 to 1.2.6 in /src/app

    Bump minimist from 1.2.5 to 1.2.6 in /src/app

    Bumps minimist from 1.2.5 to 1.2.6.

    Commits

    Dependabot compatibility score

    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 2
  • Flickering on map resize

    Flickering on map resize

    When resizing the window, the map flickers and the background is visible for short periods. Maybe we should make the background black or use the map sea color as the background.

    map 
    opened by crschnick 2
  • MacOS Big Sur Safari 15.2 map issues so far

    MacOS Big Sur Safari 15.2 map issues so far

    This is how the map looks like for me on Big Sur + Safari 15.2: image

    Issues for so far:

    • Some tooltips are too short
    • Weird sea color (Might be safari changing the color, maybe we can disable this somehow)
    • When terrain rendering is disabled, the map gets drawn twice on startup (also happens on other browsers now that I checked)

    Furthermore, I still get these errors in the console: image

    map 
    opened by crschnick 2
  • Terrain rendering is disabled by default

    Terrain rendering is disabled by default

    Terrain rendering makes the map look nicer but it doesn't have a huge performance impact unless you are running on a potato. So I would enable it by default

    map suggestion 
    opened by crschnick 2
  • Safari 15 Wegbl 2 Metal Failure

    Safari 15 Wegbl 2 Metal Failure

    Safari 15 gained support for webgl2, however Safari 15 users are receiving the following error:

    Link failed: Internal error compiling shader with Metal backend. Please submit this shader, or website as a bug to https://bugs.webkit.org

    I believe this is the only thing stopping Safari compatibility, which would be a nice to have.

    Maybe a future contributor who has an iOS device could troubleshoot this or report the bug to webkit 😄

    The standalone map directory, which contains the webgl shaders for reference

    opened by nickbabcock 2
  • Bump loader-utils from 2.0.2 to 2.0.3 in /src/docs

    Bump loader-utils from 2.0.2 to 2.0.3 in /src/docs

    Bumps loader-utils from 2.0.2 to 2.0.3.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump next from 12.2.3 to 12.2.4 in /src/app

    Bump next from 12.2.3 to 12.2.4 in /src/app

    Bumps next from 12.2.3 to 12.2.4.

    Release notes

    Sourced from next's releases.

    v12.2.4

    Core Changes

    • Fix error message typos: #38894
    • Update to latest version of @​vercel/nft: #38878
    • fix(#38090): add missing analyticsId to config schema: #38911
    • Ensure hash on initial request is preserved in new router: #38913
    • Remove unnecessary assertions: #38899
    • Clear unnecessary code: #38900
    • fix: Impl attachRequestMeta in base server to handle meta differently in edge and node servers: #38932
    • feat: enhance warning messages about unanalyzable config field: #38907
    • fix: fix generateEtags type inside schema: #38936
    • Refactor router reducer: #38983
    • Add state comparison to router: #38422
    • update webpack: #38988
    • Update config schema for empty basePath: #38998
    • Add handling for prefetching onTouchStart and initial mobile testing : #38805
    • Add additional comments to new router: #38986
    • Update config-schema for relay field to be less strict: #39010
    • Add config for opting out of optimistic client cache behavior: #38774
    • Fix tracing edge-runtime dependencies: #39009
    • Ensure dangerouslyAllowSVG is passed correctly: #39031
    • Handle getStaticPaths error inside worker to avoid serializing: #39032
    • chore: enable swc externalHelpers when pre-compile: #38182
    • Update to use HEAD request for On-Demand ISR: #39038
    • chore: Clean up imports and unused code: #39044
    • Replace node-sass test dependency with sass: #39053
    • Add comments in new router reducer: #39025
    • Add additional comments for reducer/cachenode: #39065
    • fix: print Request & Response properties: #38903
    • fix: show asPath on large page data warning: #39071
    • Remove RSC rendering from render: #39045
    • Ensure query is updated correctly with shallow and middleware: #39086
    • Update pre-compiled to fix check: #39089
    • Fix unhandled rejections with edge runtime: #39091
    • feat(next-swc): Update swc: #39055
    • Collect telemetry for next/future/image: #39046
    • [Script] Adds onReady prop to next/script: #38849
    • Ensure we hard navigate for failed _next/data with middleware: #39148
    • Refactor Flight plugins to use types.: #39136
    • Fix middleware + afterFiles SSG rewrite case: #39153
    • Update swc minifier: #39158
    • Fix incorrect component cache for middleware cases: #39159
    • Add shared dynamic api: #39163
    • Add exportPathMap config type/schema field: #39171
    • Fix default error style overrides: #39169
    • refactor: return single middleware from getMiddleware in dev server: #39177
    • fix(#11930): rewritten api routes can correctly handle cors in dev mode: #38937
    • refactor: simplify middleware execution: #39192
    • Add missing @​napi-rs/cli devDependency to next-swc: #39164

    ... (truncated)

    Commits

    Dependabot compatibility score

    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump undici from 5.8.0 to 5.8.2 in /src/app

    Bump undici from 5.8.0 to 5.8.2 in /src/app

    Bumps undici from 5.8.0 to 5.8.2.

    Release notes

    Sourced from undici's releases.

    v5.8.2

    ⚠️ Security Release ⚠️

    • CRLF Injection in Nodejs ‘undici’ via Content-Type GHSA-f772-66g8-q5h3 CVE-2022-35948
    • undici.request vulnerable to SSRF using absolute URL on pathname GHSA-8qr4-xgw6-wmr3 CVE-2022-35949

    What's Changed

    New Contributors

    Full Changelog: https://github.com/nodejs/undici/compare/v5.8.1...v5.8.2

    v5.8.1

    What's Changed

    New Contributors

    Full Changelog: https://github.com/nodejs/undici/compare/v5.8.0...v5.8.1

    Commits
    • 52d1ce5 Bumped v5.8.2
    • 66165d6 Merge pull request from GHSA-f772-66g8-q5h3
    • 124f7eb Merge pull request from GHSA-8qr4-xgw6-wmr3
    • aef314c feat(webidl): better error message for ByteString converter (#1591)
    • 2f4b3b6 docs: mock different endpoints in a single file (#1589)
    • e1e1638 5.8.1
    • c1dd24a fix: make mock headers case-insensitive (#1585)
    • 1822ee6 docs: Fix DiagnosticsChannel sidebar link (#1582)
    • dd613ef fix: follow signal.reason in Request (#1580)
    • 40af2c0 fix: fetch a long base64 url will crash and nothing happens (close: #1574) (#...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 1
  • Bump json5 from 2.2.1 to 2.2.2 in /src/docs

    Bump json5 from 2.2.1 to 2.2.2 in /src/docs

    Bumps json5 from 2.2.1 to 2.2.2.

    Release notes

    Sourced from json5's releases.

    v2.2.2

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Changelog

    Sourced from json5's changelog.

    v2.2.2 [code, diff]

    • Fix: Properties with the name __proto__ are added to objects and arrays. (#199) This also fixes a prototype pollution vulnerability reported by Jonathan Gregson! (#295).
    Commits
    • 14f8cb1 2.2.2
    • 10cc7ca docs: update CHANGELOG for v2.2.2
    • 7774c10 fix: add proto to objects and arrays
    • edde30a Readme: slight tweak to intro
    • 97286f8 Improve example in readme
    • d720b4f Improve readme (e.g. explain JSON5 better!) (#291)
    • 910ce25 docs: fix spelling of Aseem
    • 2aab4dd test: require tap as t in cli tests
    • 6d42686 test: remove mocha syntax from tests
    • 4798b9d docs: update installation and usage for modules
    • Additional commits viewable in compare view

    Dependabot compatibility score

    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Update to ffmpeg 0.11 from 0.10

    Update to ffmpeg 0.11 from 0.10

    0.11 allows us to self host the wasm payload much easier (will need to check that we don't exceed the cloudflare file size limit on the wasm payload, as it is 8MB gzipped).

    Blocked on https://github.com/ffmpegwasm/ffmpeg.wasm/issues/451

    opened by nickbabcock 0
  • Bump minimatch, recursive-readdir and serve-handler in /src/docs

    Bump minimatch, recursive-readdir and serve-handler in /src/docs

    Bumps minimatch, recursive-readdir and serve-handler. These dependencies needed to be updated together. Updates minimatch from 3.0.4 to 3.1.2

    Commits

    Updates recursive-readdir from 2.2.2 to 2.2.3

    Changelog

    Sourced from recursive-readdir's changelog.

    v2.2.3 - Mon, 19 Sep 2016 21:55:22 GMT

    v2.1.0 - Mon, 19 Sep 2016 21:55:22 GMT

    v2.0.0 - Wed, 06 Apr 2016 04:31:02 GMT

    v1.3.0 - Wed, 14 Oct 2015 14:35:55 GMT

    v1.2.1 - Wed, 14 Jan 2015 16:49:55 GMT

    Commits
    Maintainer changes

    This version was pushed to npm by bnb, a new releaser for recursive-readdir since your current version.


    Updates serve-handler from 6.1.3 to 6.1.5

    Release notes

    Sourced from serve-handler's releases.

    6.1.5

    Patches

    • Fix publish action: #189
    • Ensure npm run prepublish gets executed: #190

    6.1.4

    Patches

    • Bump lodash from 4.17.15 to 4.17.19: #124
    • Bump codecov from 3.7.0 to 3.7.1: #126
    • Bump node-fetch from 2.1.2 to 2.6.1: #131
    • Update minimatch from 3.0.4 to 3.1.2: #180

    Credits

    Huge thanks to @​kachkaev for helping!

    Commits
    Maintainer changes

    This version was pushed to npm by vercel-release-bot, a new releaser for serve-handler since your current version.


    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Bump loader-utils from 2.0.2 to 2.0.4 in /src/docs

    Bump loader-utils from 2.0.2 to 2.0.4 in /src/docs

    Bumps loader-utils from 2.0.2 to 2.0.4.

    Release notes

    Sourced from loader-utils's releases.

    v2.0.4

    2.0.4 (2022-11-11)

    Bug Fixes

    v2.0.3

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Changelog

    Sourced from loader-utils's changelog.

    2.0.4 (2022-11-11)

    Bug Fixes

    2.0.3 (2022-10-20)

    Bug Fixes

    • security: prototype pollution exploit (#217) (a93cf6f)
    Commits

    Dependabot compatibility score

    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 commands and options

    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 merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @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)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • Make uploaded save private

    Make uploaded save private

    Hello o/

    The ability to decide whether a save is publicly available or private. The ability to share a private save to other accounts or via link.

    Discord: Wagi#1940

    Wagi

    suggestion 
    opened by TheWagi 2
Graphs/networks turned into tables

(IMP NOTE FOR CONTRIBUTORS: PLEASE DON'T FORMAT THE CODE, IT'S DIFFICULT FOR ME TO FIND THE CHANGES. THANK YOU!) Graph to Table You must have seen gra

null 12 Oct 20, 2022
A leaderboard created using Leaderboard API service, Webpack, and Gitflow. The user can add a new score and refresh to see his ranking in the leaderboard.

Leaderboard A leaderboard created using Leaderboard API service, webpack, and gitflow. The user can add a new score and refresh to see his ranking in

ABDUL ALI 13 Dec 26, 2022
It's a simple Leaderboard with the functionality to add and view leaderboard with API calls

It's a simple Leaderboard with the functionality to add and view leaderboard with API calls. This project follows GitFlow instead of GitHub flow and it's built with JavaScript, CSS and HTML.

Robertson Arthur 4 Jul 6, 2022
An Obsidian plugin to paste Excel tables as Markdown tables in Obsidian editor.

Obsidian Excel to Markdown Table An Obsidian plugin to paste Excel tables as Markdown tables in Obsidian editor. Demo You can paste the copied Excel d

Ganessh Kumar 108 Jan 4, 2023
An open-source boat display cockpit for navigation, speed, heading, and tide tables running on Raspberry Pi and accessible as a webapp through any smartphone.

An open-source boat display cockpit for navigation, speed, heading, and tide tables running on Raspberry Pi and accessible as a webapp through any smartphone

Andy 44 Dec 30, 2022
A type speed checking website which lets you check your typing speed and shows the real-tme leaderboards with mongodb as DB and express as backend

This is a Next.js project bootstrapped with create-next-app. Getting Started First, run the development server: npm run dev # or yarn dev Open http://

Sreehari jayaraj 8 Mar 27, 2022
Social media platform that hosts community-driven challenges where everyone can play and compete

Komo A social media platform that hosts community-driven challenges where everyone can play and compete. How To Install Komo TBA Preview Home Screen A

null 2 Jun 13, 2022
Upload or Upload & Publish your bundle (apk or aab) to Huawei AppGallery with ConnectApi

appgallery-publisher Upload/Publish your bundle (apk or aab) to AppGallery automatically with appgallery-publisher Usage Single Javascript File Bash F

Mustafa Yiğit 17 Sep 19, 2022
A free e-library for developer to read and upload ebooks they would like to share with the community and help other developers grow.

Techlib ?? Techlib A free e-library for developer to read and upload ebooks they would like to share with the community and help other developers grow

Paschal 20 Dec 15, 2022
Easy and simple way to share data via mobile’s built-in share module.

React-Mobile-Share Provides an easy and simple way to share data (such as text, url and media) via mobile’s built-in share module. It is based on Web

EncoreSky Technologies 36 Dec 28, 2022
Write "hello world" in your native language, code "hello world" in your favorite programming language!

Hello World, All languages! ?? ?? Write "hello world" in your native language, code "hello world" in your favorite language! #hacktoberfest2022 How to

Carolina Calixto 6 Dec 13, 2022
A social network where you can share posts, view your profile metrics and follow other users.

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

Rui Neto 16 Aug 21, 2022
PAC-MAN Leaderboard includes the Leaderboard API. You can add your name and score, and see other player's scores.

PAC-MAN Leaderboard includes the Leaderboard API. You can add your name and score, and see other player's scores.

Pedro Guerreiro 7 Oct 26, 2022
GameLand is an online gaming web application that allows users to view different kind of games available and share their views on each game.

GameLand is an online gaming web application that allows users to view different kind of games available and share their views on each game.Users can like and make reservations to play online. Built with HTML/CSS , JAVASCRIPT,API.

tarike bouari 6 Sep 9, 2022
The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service. Build with Html, CSS, JS, API, and Webpack.

The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service. Build with Html, CSS, JS, API, and Webpack.

Kyrillos Hany 9 Mar 11, 2022
The Leaderboard App displays scores submitted by different players, allows you to submit your score and all data is preserved in the Leaderboard API service.

Leaderboard The Leaderboard App displays scores submitted by different players, allows you to submit your score and all data is preserved in the Leade

Jonathan Kayizzi 6 Nov 9, 2022
The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service. Built with Html, CSS and JavaScript

Leaderboard App ?? Table of Contents ?? About the Project ?? Built With Tech Stack Key Features ?? Live Demo ?? Getting Started Setup Prerequisites In

Tetteh Kodjo-Sarso 4 Mar 21, 2023
The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service.

Leaderboard The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved tha

Jihane Haddad 5 Feb 10, 2022
The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved thanks to the external Leaderboard API service.

Leaderboard The leaderboard website displays scores submitted by different players. It also allows you to submit your score. All data is preserved tha

Regiss Mukubiza 2 Apr 8, 2022