diff --git a/.forgejo/workflows/test.yaml b/.forgejo/workflows/test.yaml
index 33df8d8..7c48ad6 100644
--- a/.forgejo/workflows/test.yaml
+++ b/.forgejo/workflows/test.yaml
@@ -19,3 +19,4 @@ jobs:
- run: npm ci
- run: npm run build --if-present
- run: npm test
+ - run: npm run lint
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index c41d085..8d6b548 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -19,3 +19,4 @@ jobs:
- run: npm ci
- run: npm run build --if-present
- run: npm test
+ - run: npm run lint
diff --git a/.vscode/settings.json b/.vscode/settings.json
index d46602a..65fe597 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,7 +1,7 @@
{
"vitest.commandLine": "npx vitest",
"editor.codeActionsOnSave": {
- "source.fixAll.eslint": true
+ "source.fixAll.eslint": "explicit"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"git.ignoreLimitWarning": true,
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..4fc4ea1
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,31 @@
+# Contributing to Profectus
+
+Thank you for considering contributing to Profectus! We appreciate your interest in improving our project. Please take a moment to review the following guidelines to streamline the contribution process.
+
+## Getting Started
+
+For detailed instructions on setting up local development environment, please refer to the [Setup Guide](https://moddingtree.com/guide/getting-started/setup).
+
+## Issue Reporting
+
+If you encounter a bug or have a suggestion for improvement, please open an issue on Incremental Social. Provide as much detail as possible, including an example repo or steps to reproduce the issue if applicable.
+
+## Contributing
+
+Make sure to open your PR on [Incremental Social](https://code.incremental.social/profectus/Profectus) - the GitHub repo is just a mirror!
+
+### Code Review
+
+All PRs must be reviewed and approved by at least one of the project maintainers before merging. Please be patient during the review process and be open to feedback.
+
+### Testing
+
+Ensure that your changes pass all existing tests and, if applicable, add new tests to cover the changes you've made. Run `npm run test` to run all the tests.
+
+### Code Style
+
+We use ESLint and Prettier to enforce consistent code style throughout the project. Before submitting a PR, run `npm run lint:fix` to automatically fix any linting issues.
+
+## License
+
+By contributing to Profectus, you agree that your contributions will be licensed under the project's [LICENSE](./LICENSE).
diff --git a/package-lock.json b/package-lock.json
index f747006..d3c50e2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -23,6 +23,7 @@
"is-plain-object": "^5.0.0",
"lz-string": "^1.4.4",
"nanoevents": "^6.0.2",
+ "unofficial-galaxy-sdk": "git+https://code.incremental.social/thepaperpilot/unofficial-galaxy-sdk.git#1.0.1",
"vite": "^2.9.12",
"vite-plugin-pwa": "^0.12.0",
"vite-tsconfig-paths": "^3.5.0",
@@ -6878,6 +6879,10 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/unofficial-galaxy-sdk": {
+ "version": "1.0",
+ "resolved": "git+https://code.incremental.social/thepaperpilot/unofficial-galaxy-sdk.git#97d6da6636a2fc38c14aa893d4b336ccc22314af"
+ },
"node_modules/upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
diff --git a/package.json b/package.json
index 3c1c415..eeeecf0 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,9 @@
"preview": "vite preview",
"test": "vitest run",
"testw": "vitest",
- "serve": "vite preview --host"
+ "serve": "vite preview --host",
+ "lint": "eslint src --max-warnings 0",
+ "lint:fix": "eslint --fix --max-warnings 0 src"
},
"dependencies": {
"@fontsource/material-icons": "^4.5.4",
@@ -27,6 +29,7 @@
"is-plain-object": "^5.0.0",
"lz-string": "^1.4.4",
"nanoevents": "^6.0.2",
+ "unofficial-galaxy-sdk": "git+https://code.incremental.social/thepaperpilot/unofficial-galaxy-sdk.git#1.0.1",
"vite": "^2.9.12",
"vite-plugin-pwa": "^0.12.0",
"vite-tsconfig-paths": "^3.5.0",
diff --git a/src/App.vue b/src/App.vue
index 6a365ef..7e7a0aa 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -8,6 +8,7 @@
+
@@ -16,10 +17,11 @@
diff --git a/src/components/saves/CloudSaveResolver.vue b/src/components/saves/CloudSaveResolver.vue
new file mode 100644
index 0000000..9a2b823
--- /dev/null
+++ b/src/components/saves/CloudSaveResolver.vue
@@ -0,0 +1,228 @@
+
+
+
+
+
Cloud {{ pluralizedSave }} loaded!
+
+
+
+
+ Upon loading, your cloud {{ pluralizedSave }}
+ {{ conflictingSaves.length > 1 ? "appear" : "appears" }} to be out of sync with your
+ local {{ pluralizedSave }}. Which
+ {{ pluralizedSave }}
+ do you want to keep?
+
+
+
+
+
+ Cloud
+ (more recent)
+ (more playtime)
+
+
+
+
+
+ Local
+ (more recent)
+ (more playtime)
+
+
+
+
+
Both
+
Keep Both
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/Save.vue b/src/components/saves/Save.vue
similarity index 75%
rename from src/components/Save.vue
rename to src/components/saves/Save.vue
index 77d2988..8c1809b 100644
--- a/src/components/Save.vue
+++ b/src/components/saves/Save.vue
@@ -1,7 +1,7 @@
-