diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..9ef4b02f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,165 @@ +version: 2 +updates: + # ============================================================================ + # NPM ECOSYSTEM - Main Application & Library + # ============================================================================ + + # Main App (Frontend) + - package-ecosystem: "npm" + directory: "/app" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + groups: + react-ecosystem: + patterns: + - "react" + - "react-dom" + - "@types/react" + - "@types/react-dom" + typescript-eslint: + patterns: + - "@typescript-eslint/parser" + - "@typescript-eslint/eslint-plugin" + labels: + - "dependencies" + - "javascript" + + # Library (utopia-ui) + - package-ecosystem: "npm" + directory: "/lib" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + groups: + react-ecosystem: + patterns: + - "react" + - "react-dom" + - "@types/react" + - "@types/react-dom" + tiptap: + patterns: + - "@tiptap/core" + - "@tiptap/extension-*" + - "@tiptap/pm" + - "@tiptap/react" + - "@tiptap/starter-kit" + typescript-eslint: + patterns: + - "@typescript-eslint/parser" + - "@typescript-eslint/eslint-plugin" + labels: + - "dependencies" + - "javascript" + + # Backend Extensions + - package-ecosystem: "npm" + directory: "/backend/extensions" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + labels: + - "dependencies" + - "javascript" + + # Cypress E2E Tests + - package-ecosystem: "npm" + directory: "/cypress" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + labels: + - "dependencies" + - "javascript" + # ============================================================================ + # NPM ECOSYSTEM - Library Examples (Lower Priority) + # ============================================================================ + + # Example 1: Basic Map + - package-ecosystem: "npm" + directory: "/lib/examples/1-basic-map" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + groups: + react-ecosystem: + patterns: + - "react" + - "react-dom" + - "@types/react" + - "@types/react-dom" + labels: + - "dependencies" + - "javascript" + + # Example 2: Static Layers + - package-ecosystem: "npm" + directory: "/lib/examples/2-static-layers" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + groups: + react-ecosystem: + patterns: + - "react" + - "react-dom" + - "@types/react" + - "@types/react-dom" + labels: + - "dependencies" + - "javascript" + + # Example 3: Tags + - package-ecosystem: "npm" + directory: "/lib/examples/3-tags" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + groups: + react-ecosystem: + patterns: + - "react" + - "react-dom" + - "@types/react" + - "@types/react-dom" + labels: + - "dependencies" + - "javascript" + + # ============================================================================ + # GITHUB ACTIONS ECOSYSTEM + # ============================================================================ + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "wednesday" + time: "03:00" + timezone: "Europe/Berlin" + open-pull-requests-limit: 99 + labels: + - "dependencies" + - "github_actions" diff --git a/.github/workflows/test.lint.pr.yml b/.github/workflows/test.lint.pr.yml index 8e24a2c7..61cf293b 100644 --- a/.github/workflows/test.lint.pr.yml +++ b/.github/workflows/test.lint.pr.yml @@ -32,6 +32,8 @@ jobs: backend app lib + deps + deps-dev docu docker release @@ -76,4 +78,4 @@ jobs: # special "[WIP]" prefix to indicate this state. This will avoid the # validation of the PR title and the pull request checks remain pending. # Note that a second check will be reported if this is enabled. - wip: true \ No newline at end of file + wip: true diff --git a/README.md b/README.md index 1efb28dc..7a251ac2 100644 --- a/README.md +++ b/README.md @@ -23,8 +23,23 @@ Utopia Map is made for networks and initiatives that aim to connect people in r Clone the repository and get started with the following commands: +**Start docker** ```bash -npm install +docker compose up -d +``` +**Initialize backend** + +```bash +sudo chmod 777 -R ./data/ +cd backend/ +./push.sh +./seed.sh +``` +After this the frontend is running on http://localhost:8080 and the backend on http://localhost:8055 + +**Start dev server** +```bash +cd app/ npm run dev ``` diff --git a/backend/directus-config/development/snapshot/fields/maps/zoom_offset.json b/backend/directus-config/development/snapshot/fields/maps/zoom_offset.json index 39200271..9db861be 100644 --- a/backend/directus-config/development/snapshot/fields/maps/zoom_offset.json +++ b/backend/directus-config/development/snapshot/fields/maps/zoom_offset.json @@ -28,7 +28,7 @@ "name": "zoom_offset", "table": "maps", "data_type": "integer", - "default_value": -1, + "default_value": 0, "max_length": null, "numeric_precision": 32, "numeric_scale": 0, diff --git a/cypress/package-lock.json b/cypress/package-lock.json index be2827b4..0890d175 100644 --- a/cypress/package-lock.json +++ b/cypress/package-lock.json @@ -13,7 +13,7 @@ "@types/node": "^24.5.2", "cypress": "^15.3.0", "cypress-split": "^1.24.23", - "eslint": "^9.36.0", + "eslint": "^9.39.1", "eslint-plugin-cypress": "^5.1.1", "mochawesome": "^7.1.4", "mochawesome-merge": "^4.3.0", @@ -422,11 +422,13 @@ } }, "node_modules/@eslint/config-array": { - "version": "0.21.0", + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/object-schema": "^2.1.6", + "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" }, @@ -435,15 +437,22 @@ } }, "node_modules/@eslint/config-helpers": { - "version": "0.3.1", + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@eslint/core": { - "version": "0.15.2", + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -476,7 +485,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.36.0", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", "dev": true, "license": "MIT", "engines": { @@ -487,7 +498,9 @@ } }, "node_modules/@eslint/object-schema": { - "version": "2.1.6", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -495,11 +508,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.15.2", + "@eslint/core": "^0.17.0", "levn": "^0.4.1" }, "engines": { @@ -744,6 +759,8 @@ }, "node_modules/@types/json-schema": { "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", "dev": true, "license": "MIT" }, @@ -2408,23 +2425,24 @@ } }, "node_modules/eslint": { - "version": "9.36.0", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.36.0", - "@eslint/plugin-kit": "^0.3.5", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", diff --git a/cypress/package.json b/cypress/package.json index 522c64a3..a622149c 100644 --- a/cypress/package.json +++ b/cypress/package.json @@ -26,7 +26,7 @@ "@types/node": "^24.5.2", "cypress": "^15.3.0", "cypress-split": "^1.24.23", - "eslint": "^9.36.0", + "eslint": "^9.39.1", "eslint-plugin-cypress": "^5.1.1", "mochawesome": "^7.1.4", "mochawesome-merge": "^4.3.0", diff --git a/package-lock.json b/package-lock.json index 891eb22a..3ef40bba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9206,9 +9206,9 @@ "license": "MIT" }, "node_modules/happy-dom": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.0.0.tgz", - "integrity": "sha512-GkWnwIFxVGCf2raNrxImLo397RdGhLapj5cT3R2PT7FwL62Ze1DROhzmYW7+J3p9105DYMVenEejEbnq5wA37w==", + "version": "20.0.10", + "resolved": "https://registry.npmjs.org/happy-dom/-/happy-dom-20.0.10.tgz", + "integrity": "sha512-6umCCHcjQrhP5oXhrHQQvLB0bwb1UzHAHdsXy+FjtKoYjUhmNZsQL8NivwM1vDvNEChJabVrUYxUnp/ZdYmy2g==", "dev": true, "license": "MIT", "dependencies": { @@ -10355,9 +10355,9 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, "license": "MIT", "dependencies": { @@ -15313,10 +15313,10 @@ } }, "node_modules/tar": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz", - "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==", - "license": "ISC", + "version": "7.5.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.2.tgz", + "integrity": "sha512-7NyxrTE4Anh8km8iEy7o0QYPs+0JKBTj5ZaqHg6B39erLg0qYXN3BijtShwbsNSvQ+LN75+KV+C4QR/f6Gwnpg==", + "license": "BlueOak-1.0.0", "dependencies": { "@isaacs/fs-minipass": "^4.0.0", "chownr": "^3.0.0", @@ -16345,9 +16345,9 @@ } }, "node_modules/vite": { - "version": "6.3.6", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.3.6.tgz", - "integrity": "sha512-0msEVHJEScQbhkbVTb/4iHZdJ6SXp/AvxL2sjwYQFfBqleHtnCqv1J3sa9zbWz/6kW1m9Tfzn92vW+kZ1WV6QA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", "license": "MIT", "dependencies": { "esbuild": "^0.25.0",