diff --git a/.github/workflows/validation_delaguardo.yml b/.github/workflows/validation_delaguardo.yml index a59791a6..ce9e54ac 100644 --- a/.github/workflows/validation_delaguardo.yml +++ b/.github/workflows/validation_delaguardo.yml @@ -23,10 +23,10 @@ jobs: - name: Install clojure tools uses: DeLaGuardo/setup-clojure@12.5 with: - cli: 1.11.4.1474 # Clojure CLI based on tools.deps - bb: 1.3.191 # Babashka - clj-kondo: 2024.08.01 # Clj-kondo - cljfmt: 0.10.2 # cljfmt + cli: 1.12.0.1479 # Clojure CLI based on tools.deps + bb: 1.4.192 # Babashka + clj-kondo: 2024.09.27 # Clj-kondo + cljfmt: 0.13.0 # cljfmt zprint: 1.2.9 # zprint - name: Cache clojure dependencies uses: actions/cache@v4 diff --git a/bb.edn b/bb.edn index cedbeb2f..35762559 100644 --- a/bb.edn +++ b/bb.edn @@ -1,4 +1,4 @@ -{:deps {org.clojars.hephaistox/automaton-build #:mvn{:version "3.2.0-44-la"}} +{:deps {org.clojars.hephaistox/automaton-build #:mvn{:version "3.2.2-la"}} :paths [] :tasks {-base-deps {:doc "Dependencies for a task using bb" diff --git a/build_config.edn b/build_config.edn deleted file mode 100644 index bec954c7..00000000 --- a/build_config.edn +++ /dev/null @@ -1,21 +0,0 @@ -{:app-name "automaton-web" - :task-shared {:gha {} - :publication {:as-lib org.clojars.hephaistox/automaton-web - :deploy-to :clojars - :env {:la {} - :production {}} - :frontend {:css {} - :run-aliases - [:automaton-web-portfolio :browser-test :ltest]} - :license {} - :repo "git@github.com:hephaistox/automaton-web.git"} - :repl-aliases [:common-test :env-development-repl :build]} - :tasks - {:clean - {:dirs [".cpcache/" ".clj-kondo/.cache/" "tmp/" "target/" "node_modules/" ".shadow-cljs/builds/"]} - :lfe-css {} - :lfe-test {} - :lfe-watch {} - :reports {:forbiddenwords-words #{"automaton-build" "landing" "tap>"}} - :update-deps {:exclude-libs #{"com.taoensso/encore" "org.clojars.hephaistox/automaton-build@*-*" - "org.clojars.hephaistox/automaton-core@*-*"}}}} diff --git a/deps.edn b/deps.edn index 309772aa..0428c34d 100644 --- a/deps.edn +++ b/deps.edn @@ -1,6 +1,5 @@ {:aliases - {:antq {:deps {com.github.liquidz/antq {:git/url "https://github.com/Kaspazza/antq" - :sha "a2606c7dc0edfae1990e367242b28accf2ded115"}} + {:antq {:deps {com.github.liquidz/antq {:mvn/version "2.10.1241"}} :main-opts ["-m" "antq.core"]} :cljs-deps {:extra-deps {clj-commons/pushy #:mvn{:version "0.3.10"} cljsjs/highlight #:mvn{:version "11.7.0-0"} @@ -9,18 +8,18 @@ com.taoensso/sente #:mvn{:version "1.19.2"} com.taoensso/tempura #:mvn{:version "1.5.3"} lambdaisland/uri #:mvn{:version "1.19.155"} - metosin/reitit #:mvn{:version "0.7.1"} - metosin/reitit-frontend #:mvn{:version "0.7.1"} + metosin/reitit #:mvn{:version "0.7.2"} + metosin/reitit-frontend #:mvn{:version "0.7.2"} re-frame/re-frame #:mvn{:version "1.4.3"} reagent/reagent #:mvn{:version "1.2.0"} - thheller/shadow-cljs #:mvn{:version "2.28.12"}} + thheller/shadow-cljs #:mvn{:version "2.28.15"}} :extra-paths ["src/cljs/" "src/cljc/" "resources/"]} :cljs-dev-deps {:extra-deps {binaryage/devtools #:mvn{:version "1.0.7"} day8.re-frame/http-fx #:mvn{:version "0.2.4"} day8.re-frame/re-frame-10x #:mvn{:version "1.9.9"} day8.re-frame/tracing #:mvn{:version "0.6.2"} - no.cjohansen/portfolio #:mvn{:version "2024.06.30"}} + no.cjohansen/portfolio #:mvn{:version "2024.09.25"}} :extra-paths ["test/cljs/" "test/cljc/" "env/development/src/cljc/" "env/development/src/cljs/"]} :common-test {:exec-fn cognitect.test-runner.api/test @@ -33,10 +32,9 @@ :deploy {:exec-args {:installer :remote} :exec-fn deps-deploy.deps-deploy/deploy :extra-deps {slipset/deps-deploy {:exclusions [org.slf4j/slf4j-nop] - :git/url "https://github.com/Kaspazza/deps-deploy" - :sha "7b4b72d124f788c9e4a876e0ba55899fd9091f1d"}}} + :mvn/version "0.2.2"}}} :env-development-repl - {:extra-deps {org.clojars.hephaistox/automaton-core #:mvn{:version "1.5.0-35-la"} + {:extra-deps {org.clojars.hephaistox/automaton-core #:mvn{:version "1.5.2-la"} org.clojure/core.async #:mvn{:version "1.6.681"}} :extra-paths ["env/development/resources/" "env/development/src/clj/" "env/development/src/cljc/"] @@ -58,10 +56,10 @@ hiccup/hiccup #:mvn{:version "2.0.0-RC3"} http-kit/http-kit #:mvn{:version "2.8.0"} metosin/muuntaja #:mvn{:version "0.6.10"} - metosin/reitit #:mvn{:version "0.7.1"} + metosin/reitit #:mvn{:version "0.7.2"} metosin/ring-http-response #:mvn{:version "0.9.4"} mount/mount #:mvn{:version "0.1.19"} - org.clojars.hephaistox/automaton-core #:mvn{:version "1.5.0-35-la"} + org.clojars.hephaistox/automaton-core #:mvn{:version "1.5.2-la"} ring-cors/ring-cors #:mvn{:version "0.1.13"} ring/ring #:mvn{:version "1.12.2"} ring/ring-anti-forgery #:mvn{:version "1.3.1"} diff --git a/package-lock.json b/package-lock.json index b72875b6..4d47c1b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,26 +9,26 @@ "version": "1.0.0", "license": "MIT", "dependencies": { - "@headlessui/react": "^2.1.3", - "@sentry/react": "^8.26.0", + "@headlessui/react": "^2.1.8", + "@sentry/react": "^8.32.0", "autoprefixer": "^10.4.20", "axe-core": "^4.10.0", "create-react-class": "^15.7.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^6.26.1" + "react-router-dom": "^6.26.2" }, "devDependencies": { "@hephaistox/tailwind-config": "github:hephaistox/tailwind-config#f8da71dcc315ac6f3652695a92495ea3f5298d13", - "@tailwindcss/forms": "^0.5.7", + "@tailwindcss/forms": "^0.5.9", "highlight.js": "^11.10.0", "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-cljs-test": "^0.1.0", "marked": "7.0.0", - "shadow-cljs": "^2.28.12", + "shadow-cljs": "^2.28.15", "snabbdom": "^3.6.2", - "tailwindcss": "^3.4.10" + "tailwindcss": "^3.4.13" } }, "node_modules/@alloc/quick-lru": { @@ -108,9 +108,9 @@ "license": "MIT" }, "node_modules/@headlessui/react": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.3.tgz", - "integrity": "sha512-Nt+NlnQbVvMHVZ/QsST6DNyfG8VWqjOYY3eZpp0PrRKpmZw+pzhwQ1F6wtNaW4jnudeC2a5MJC70vbGVcETNIg==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-2.1.8.tgz", + "integrity": "sha512-uajqVkAcVG/wHwG9Fh5PFMcFpf2VxM4vNRNKxRjuK009kePVur8LkuuygHfIE+2uZ7z7GnlTtYsyUe6glPpTLg==", "license": "MIT", "dependencies": { "@floating-ui/react": "^0.26.16", @@ -422,113 +422,113 @@ } }, "node_modules/@remix-run/router": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.1.tgz", - "integrity": "sha512-S45oynt/WH19bHbIXjtli6QmwNYvaz+vtnubvNpNDvUOoA/OWh6j1OikIP3G+v5GHdxyC6EXoChG3HgYGEUfcg==", + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz", + "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==", "license": "MIT", "engines": { "node": ">=14.0.0" } }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.26.0.tgz", - "integrity": "sha512-O2Tj+WK33/ZVp5STnz6ZL0OO+/Idk2KqsH0ITQkQmyZ2z0kdzWOeqK7s7q3/My6rB1GfPcyqPcBBv4dVv92FYQ==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.32.0.tgz", + "integrity": "sha512-DpUGhk5O1OVjT0fo9wsbEdO1R/S9gGBRDtn9+FFVeRtieJHwXpeZiLK+tZhTOvaILmtSoTPUEY3L5sK4j5Xq9g==", "license": "MIT", "dependencies": { - "@sentry/core": "8.26.0", - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0" + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.26.0.tgz", - "integrity": "sha512-hQtw1gg8n6ERK1UH47F7ZI1zOsbhu0J2VX+TrnkpaQR2FgxDW1oe9Ja6oCV4CQKuR4w+1ZI/Kj4imSt0K33kEw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.32.0.tgz", + "integrity": "sha512-XB7hiVJQW1tNzpoXIHbvm3rjipIt7PZiJJtFg2vxaqu/FzdgOcYqQiwIKivJVAKuRZ9rIeJtK1jdXQFOc/TRJA==", "license": "MIT", "dependencies": { - "@sentry/core": "8.26.0", - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0" + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.26.0.tgz", - "integrity": "sha512-JDY7W2bswlp5c3483lKP4kcb75fHNwGNfwD8x8FsY9xMjv7nxeXjLpR5cCEk1XqPq2+n6w4j7mJOXhEXGiUIKg==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.32.0.tgz", + "integrity": "sha512-yiEUnn2yyo1AIQIFNeRX3tdK8fmyKIkxdFS1WiVQmeYI/hFwYBTZPly0FcO/g3xnRMSA2tvrS+hZEaaXfK4WhA==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.26.0", - "@sentry/core": "8.26.0", - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0" + "@sentry-internal/browser-utils": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.26.0.tgz", - "integrity": "sha512-2CFQW6f9aJHIo/DqmqYa9PaYoLn1o36ywc0h8oyGrD4oPCbrnE5F++PmTdc71GBODu41HBn/yoCTLmxOD+UjpA==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.32.0.tgz", + "integrity": "sha512-oBbhtDBkD+5z/T0NVJ5VenBWAid/S9QdVrod/UqxVqU7F8N+E9/INFQI48zCWr4iVlUMcszJPDElvJEsMDvvBQ==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "8.26.0", - "@sentry/core": "8.26.0", - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0" + "@sentry-internal/replay": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/browser": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.26.0.tgz", - "integrity": "sha512-e5s6eKlwLZWzTwQcBwqyAGZMMuQROW9Z677VzwkSyREWAIkKjfH2VBxHATnNGc0IVkNHjD7iH3ixo3C0rLKM3w==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.32.0.tgz", + "integrity": "sha512-AEKFj64g4iYwEMRvVcxiY0FswmClRXCP1IEvCqujn8OBS8AjMOr1z/RwYieEs0D90yNNB3YEqF8adrKENblJmw==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.26.0", - "@sentry-internal/feedback": "8.26.0", - "@sentry-internal/replay": "8.26.0", - "@sentry-internal/replay-canvas": "8.26.0", - "@sentry/core": "8.26.0", - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0" + "@sentry-internal/browser-utils": "8.32.0", + "@sentry-internal/feedback": "8.32.0", + "@sentry-internal/replay": "8.32.0", + "@sentry-internal/replay-canvas": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/core": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.26.0.tgz", - "integrity": "sha512-g/tVmTZD4GNbLFf++hKJfBpcCAtduFEMLnbfa9iT/QEZjlmP+EzY+GsH9bafM5VsNe8DiOUp+kJKWtShzlVdBA==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.32.0.tgz", + "integrity": "sha512-+xidTr0lZ0c755tq4k75dXPEb8PA+qvIefW3U9+dQMORLokBrYoKYMf5zZTG2k/OfSJS6OSxatUj36NFuCs3aA==", "license": "MIT", "dependencies": { - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0" + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry/react": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.26.0.tgz", - "integrity": "sha512-dYoC0xzcqq8zmNMFoTWidhA7mVd3RDz/nAUn6C8yK/hkKA7bUknYCkhpESGLZfHaGwSKzeXRXKd/o/cgUVM9eA==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.32.0.tgz", + "integrity": "sha512-YljqK+k80XOvyXjK2p2neTncRcSuwlpL7qHtNgwR1MHx18FEi7HXlnm13J4g3kxao4ORMxlCXCEPNXlLT+vqQg==", "license": "MIT", "dependencies": { - "@sentry/browser": "8.26.0", - "@sentry/core": "8.26.0", - "@sentry/types": "8.26.0", - "@sentry/utils": "8.26.0", + "@sentry/browser": "8.32.0", + "@sentry/core": "8.32.0", + "@sentry/types": "8.32.0", + "@sentry/utils": "8.32.0", "hoist-non-react-statics": "^3.3.2" }, "engines": { @@ -539,21 +539,21 @@ } }, "node_modules/@sentry/types": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.26.0.tgz", - "integrity": "sha512-zKmh6SWsJh630rpt7a9vP4Cm4m1C2gDTUqUiH565CajCL/4cePpNWYrNwalSqsOSL7B9OrczA1+n6a6XvND+ng==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-8.32.0.tgz", + "integrity": "sha512-hxckvN2MzS5SgGDgVQ0/QpZXk13Vrq4BtZLwXhPhyeTmZtUiUfWvcL5TFQqLinfKdTKPe9q2MxeAJ0D4LalhMg==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/utils": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.26.0.tgz", - "integrity": "sha512-xvlPU9Hd2BlyT+FhWHGNwnxWqdVRk2AHnDtVcW4Ma0Ri5EwS+uy4Jeik5UkSv8C5RVb9VlxFmS8LN3I1MPJsLw==", + "version": "8.32.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-8.32.0.tgz", + "integrity": "sha512-t1WVERhgmYURxbBj9J4/H2P2X+VKqm7B3ce9iQyrZbdf5NekhcU4jHIecPUWCPHjQkFIqkVTorqeBmDTlg/UmQ==", "license": "MIT", "dependencies": { - "@sentry/types": "8.26.0" + "@sentry/types": "8.32.0" }, "engines": { "node": ">=14.18" @@ -576,16 +576,16 @@ } }, "node_modules/@tailwindcss/forms": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.7.tgz", - "integrity": "sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==", + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/@tailwindcss/forms/-/forms-0.5.9.tgz", + "integrity": "sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==", "dev": true, "license": "MIT", "dependencies": { "mini-svg-data-uri": "^1.2.3" }, "peerDependencies": { - "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1" + "tailwindcss": ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20" } }, "node_modules/@tanstack/react-virtual": { @@ -862,9 +862,9 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "license": "MIT", "dependencies": { @@ -876,7 +876,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -2591,9 +2591,9 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "license": "MIT", "dependencies": { @@ -3293,13 +3293,13 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -3417,12 +3417,12 @@ "license": "MIT" }, "node_modules/react-router": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.1.tgz", - "integrity": "sha512-kIwJveZNwp7teQRI5QmwWo39A5bXRyqpH0COKKmPnyD2vBvDwgFXSqDUYtt1h+FEyfnE8eXr7oe0MxRzVwCcvQ==", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz", + "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1" + "@remix-run/router": "1.19.2" }, "engines": { "node": ">=14.0.0" @@ -3432,13 +3432,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.26.1", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.1.tgz", - "integrity": "sha512-veut7m41S1fLql4pLhxeSW3jlqs+4MtjRLj0xvuCEXsxusJCbs6I8yn9BxzzDX2XDgafrccY6hwjmd/bL54tFw==", + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz", + "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==", "license": "MIT", "dependencies": { - "@remix-run/router": "1.19.1", - "react-router": "6.26.1" + "@remix-run/router": "1.19.2", + "react-router": "6.26.2" }, "engines": { "node": ">=14.0.0" @@ -3703,9 +3703,9 @@ } }, "node_modules/shadow-cljs": { - "version": "2.28.12", - "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.28.12.tgz", - "integrity": "sha512-/L/bBaJ/46bzB78bKAirvF/EiH7aTxGXLemfWptyungLoh8MwqPUR4c+cDFaPkUIbm8RfqbsyZngoAHE2mvL2Q==", + "version": "2.28.15", + "resolved": "https://registry.npmjs.org/shadow-cljs/-/shadow-cljs-2.28.15.tgz", + "integrity": "sha512-yK5QDwtOixKAo3WqgMd+0SP7HI2/YvQ5CpwtvwEScqHUqysz/1P6xQrFtGttCcAT2Zo32UuJxD8rCMoqBuwprw==", "dev": true, "license": "ISC", "dependencies": { @@ -4208,9 +4208,9 @@ "license": "MIT" }, "node_modules/tailwindcss": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.10.tgz", - "integrity": "sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==", + "version": "3.4.13", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz", + "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==", "dev": true, "license": "MIT", "dependencies": { @@ -4463,22 +4463,6 @@ "node": ">= 0.4" } }, - "node_modules/url/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/util": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", diff --git a/package.json b/package.json index d73d5abb..38728ee5 100644 --- a/package.json +++ b/package.json @@ -8,27 +8,27 @@ "version": "1.0.0", "author": "Hephaistox ", "dependencies": { - "@headlessui/react": "^2.1.3", - "@sentry/react": "^8.26.0", + "@headlessui/react": "^2.1.8", + "@sentry/react": "^8.32.0", "autoprefixer": "^10.4.20", "axe-core": "^4.10.0", "create-react-class": "^15.7.0", "react": "^18.3.1", "react-dom": "^18.3.1", - "react-router-dom": "^6.26.1" + "react-router-dom": "^6.26.2" }, "workspaces": [], "devDependencies": { "@hephaistox/tailwind-config": "github:hephaistox/tailwind-config#f8da71dcc315ac6f3652695a92495ea3f5298d13", - "@tailwindcss/forms": "^0.5.7", + "@tailwindcss/forms": "^0.5.9", "highlight.js": "^11.10.0", "karma": "^6.4.4", "karma-chrome-launcher": "^3.2.0", "karma-cljs-test": "^0.1.0", "marked": "7.0.0", - "shadow-cljs": "^2.28.12", + "shadow-cljs": "^2.28.15", "snabbdom": "^3.6.2", - "tailwindcss": "^3.4.10" + "tailwindcss": "^3.4.13" }, "devDependenciesComments": { "marked": "marked can't be updated to 7.0.1 or higher, untill this issue is done in closure-compiler: https://github.com/google/closure-compiler/issues/2731" diff --git a/project.edn b/project.edn index 3fb2f427..b8fcb1e9 100644 --- a/project.edn +++ b/project.edn @@ -9,8 +9,7 @@ :frontend {:css "resources/css/custom.css" :run-aliases [:automaton-web-portfolio :browser-test :ltest]} :publication - {:as-lib org.clojars.hephaistox/automaton-web - :base-branch "main" + {:base-branch "main" :clojars true :compiled-css-path "resources/public/css/compiled/styles.css" :css-files ["resources/css/custom.css" "resources/css/main.css"] @@ -18,5 +17,4 @@ [:antq :codox :env-development-repl :env-development-test :common-test :cljs-dev-deps :deploy] :la-branch "la" :pom-xml-license {:name "CC BY-NC 4.0" - :url "https://creativecommons.org/licenses/by-nc/4.0/deed.en"} - :repo-url "git@github.com:hephaistox/automaton-web.git"}} + :url "https://creativecommons.org/licenses/by-nc/4.0/deed.en"}}} diff --git a/src/clj/automaton_web/pages/admin.clj b/src/clj/automaton_web/pages/admin.clj deleted file mode 100644 index b9622641..00000000 --- a/src/clj/automaton_web/pages/admin.clj +++ /dev/null @@ -1,247 +0,0 @@ -#_{:heph-ignore {:forbidden-words ["automaton-build"]}} -(ns automaton-web.pages.admin - "Admin page" - (:require - [automaton-core.adapters.edn-utils :as edn-utils] - [automaton-core.adapters.env-variables :as env-vars] - [automaton-core.adapters.version :as version] - [automaton-core.app.build-config :as build-config] - [automaton-core.http.request :as request] - [automaton-web.components.icons :as web-icons] - [automaton-web.components.table :as web-table] - [automaton-web.configuration :as web-conf] - [mount.tools.graph :as mount-graph])) - -(defn menu-items - "Create menu items" - [] - [{:message "Docker hub" - :category "Deploy" - :uri "https://hub.docker.com/repositories"} - {:message "Sas actions" - :category "Deploy" - :uri "https://github.com/hephaistox/monorepo/actions"} - {:message "Website" - :category "Development" - :uri "/"} - {:message "Shadow dashboard" - :category "Development" - :uri "http://localhost:9630/build/app"} - {:message "Cljs browser test" - :category "Development" - :uri (str "http://localhost:8081")} - {:message "Portfolio" - :category "Development" - :uri "http://localhost:8080/"} - {:message "404 page" - :category "Development" - :uri "this-page-doesnt-exists"} - {:message "Throw an exception" - :category "Development" - :uri "admin/throw-exception"} - {:message "Repos" - :category "Git" - :uri "https://github.com/orgs/hephaistox/repositories"} - {:message "Git automaton web" - :category "Git" - :uri "https://github.com/hephaistox/automaton-web"} - {:message "Git automaton core" - :category "Git" - :uri "https://github.com/hephaistox/automaton-core"} - {:message "Git automaton build" - :category "Git" - :uri "https://github.com/hephaistox/automaton-build"} - {:message "hephaistox" - :category "Git" - :uri "https://github.com/hephaistox/monorepo"} - {:message "Tailwind" - :category "Tooling documentation" - :uri "https://tailwindcss.com/docs/"} - {:message "Fontawesome Icons" - :category "Tooling documentation" - :uri "https://fontawesome.com/icons"} - {:message "Clojure docs" - :category "Tooling documentation" - :uri "https://clojuredocs.org/"} - {:message "Mermaid" - :category "Tooling documentation" - :uri "https://mermaid-js.github.io/mermaid/#/n00b-syntaxReference"} - {:message "Markdown" - :category "Tooling documentation" - :uri "https://www.markdownguide.org/cheat-sheet/"} - {:message "Babashka" - :category "Tooling documentation" - :uri "https://babashka.org/"} - {:message "Reframe" - :category "Tooling documentation" - :uri "https://day8.github.io/re-frame/"} - {:message "Reagent" - :category "Tooling documentation" - :uri "https://reagent-project.github.io/"} - {:message "Teams communication" - :category "Organization" - :uri "https://teams.microsoft.com/"} - {:message "Project tasks" - :category "Organization" - :uri - "https://dev.azure.com/mateusz0216/Hephaistox%20Agile/_boards/board/t/Hephaistox%20Agile%20Team/Stories"} - {:message "Shared files with team" - :category "Organization" - :uri - "https://hephaistox.sharepoint.com/sites/hephaistox/Shared%20Documents/Forms/AllItems.aspx"} - {:message "Shared files with customers" - :category "Organization" - :uri - "https://hephaistox.sharepoint.com/sites/customers-materials/Documents%20partages/Forms/AllItems.aspx?id=%2Fsites%2Fcustomers%2Dmaterials%2FDocuments%20partages%2FDownloadable%20materials&p=true&ga=1"}]) - -(defn sorted-items "Create categories of menu item" [m] (sort (group-by :category m))) - -(defn component-graph-deps - "Create component graph data from the mount components" - [graph] - (map (fn [m] - (-> m - (dissoc :order) - (assoc :status-color (if (contains? (:status m) :started) :green :red)))) - (sort-by :order graph))) - -(defn main-app-build-config-view - [build-config-edn] - (let [app-name (:app-name build-config-edn)] - [:div [:div (str app-name " full build config:")] (web-table/map->table build-config-edn)])) - -(defn display-links - [items-by-category] - [:div {:class ["flex flex-col"]} - [:h2 "Links"] - (for [[category items] items-by-category] - (when category - [:div - [:h3 {:class ["text-left"]} - category] - [:div {:class ["flex flex-wrap"]} - (for [{:keys [uri message]} items] - [:a {:class ["cursor-pointer select-none"] - :href uri - :target "blank"} - [:div {:class ["flex flex-row border-black border-solid border-2 m-2"]} - [:div {:class ["m-2 p-2"]} - message]]])]]))]) - -(defn all-apps-links - [cust-apps] - (let [admin-maps (reduce (fn [acc app] - (let [app-name (:app-name app) - app-repo-link "to be done" - git-repo {:message "Git repo" - :category app-name - :uri app-repo-link} - doc (when (:doc? app) - {:message "TBC Docs" - :category app-name - :uri ""}) - envs (reduce (fn [acc [_ v]] - (conj acc - (when (:web-link v) - {:message (str "web-" (:remote-name v)) - :category app-name - :uri (:web-link v)}) - (when (:log-link v) - {:message (str "log-" (:remote-name v)) - :category app-name - :uri (:log-link v)}))) - [] - (:run-env app))] - (vec (flatten (vec (apply merge (conj acc git-repo doc) envs)))))) - [] - cust-apps) - sorted-links (sorted-items admin-maps)] - (display-links sorted-links))) - -(defn- ignore-error [fn-try ret-val] (try (or (fn-try) ret-val) (catch Exception _ ret-val))) - -(defn envs-indication - [cust-apps] - (let [gh-token (env-vars/get-env "GH_TOKEN") - rows - (reduce - (fn [acc app] - (let [app-name (get-in app [:app-name]) - local-env (get (version/slurp-version (str app-name "/")) version/release) - gh-version (ignore-error #(request/http-get - (str "https://api.github.com/repos/hephaistox/" - app-name - "/contents/version.edn") - {:headers {"Authorization" (str "Bearer " gh-token) - "Accept" "application/vnd.github.raw+json"}}) - (atom "Error")) - gh-version-waited (ignore-error #(:release (read-string (:body @gh-version))) - "Error") - prod-env (ignore-error #(request/http-get - (str (get-in app - [:build-config :run-env :prod-env :web-link]) - "/api/version")) - (atom "Error")) - test-env (ignore-error #(request/http-get - (str (get-in app - [:build-config :run-env :test-env :web-link]) - "/api/version")) - (atom "Error"))] - (conj - acc - [app-name - local-env - gh-version-waited - (:body @prod-env) - (:body @test-env) - (if (= local-env gh-version prod-env test-env) - (web-icons/icon - {:path-kw :svg/check-circle - :scale 0.03 - :color "green" - :class ["w-[20px] - h-[20px]"] - :hover? false}) - (web-icons/icon - {:path-kw :svg/x-circle - :scale 0.03 - :color "red" - :class ["w-[20px] - h-[20px]"] - :hover? false}))]))) - [] - cust-apps)] - (web-table/table {:headers ["App name" "Local env" "Github" "Prod env" "Test env" "Status"] - :rows rows}))) - -(defn current-app-stats - [graph] - [:div {:class ["flex flex-wrap"]} - [:div - [:h2 "Component graph deps"] - [:div {:class ["flex flex-col border-black border-solid border-2 m-2"]} - (for [{:keys [_status status-color name]} graph] - [:div {:class ["p-2" - (case status-color - :green "bg-green-300" - "bg-red-300")]} - name])]]]) - -(defn admin-page - "Admin page content hiccup and information. - Used to display admin page view." - [] - (let [items-by-category (sorted-items (menu-items)) - graph (component-graph-deps (mount-graph/states-with-deps)) - app-name (web-conf/read-param [:app-name]) - build-configs-paths (build-config/search-for-build-configs "") - build-configs (map edn-utils/read-edn build-configs-paths) - current-app-config (first (filter (fn [app] (= (:app-name app) app-name)) build-configs)) - cust-apps (filter (fn [app] (:cust-app? app)) build-configs)] - [:div {:id "admin-index" - :class ["text-center w-full"]} - (envs-indication cust-apps) - (display-links items-by-category) - (all-apps-links cust-apps) - (current-app-stats graph) - (main-app-build-config-view current-app-config)])) diff --git a/src/clj/automaton_web/pages/admin/route.clj b/src/clj/automaton_web/pages/admin/route.clj deleted file mode 100644 index f90cb413..00000000 --- a/src/clj/automaton_web/pages/admin/route.clj +++ /dev/null @@ -1,18 +0,0 @@ -(ns automaton-web.pages.admin.route - (:require - [automaton-web.adapters.be.http-response :as http-response] - [automaton-web.configuration :as web-conf] - [automaton-web.hiccup :as web-hiccup] - [automaton-web.pages.admin :as web-admin-index] - [automaton-web.pages.index :as web-pages-index])) - -(defn route - [] - ["" - {:get (fn [request] - (let [admin-content (web-admin-index/admin-page)] - (http-response/ok {"content-type" "text/html;charset=utf8"} - (-> request - (merge {:header-elements [(web-hiccup/js-script-raw - (web-conf/config-web-reference))]}) - (web-pages-index/build admin-content)))))}]) diff --git a/test/clj/automaton_web/pages/admin_test.clj b/test/clj/automaton_web/pages/admin_test.clj deleted file mode 100644 index f46e7694..00000000 --- a/test/clj/automaton_web/pages/admin_test.clj +++ /dev/null @@ -1,52 +0,0 @@ -(ns automaton-web.pages.admin-test - (:require - [automaton-web.pages.admin :as sut] - [clojure.test :refer [deftest is testing]])) - -(def graph - "Graph for test purposes" - (list {:name "#'automaton-core.configuration/conf-state" - :order 1 - :status #{:started} - :deps #{}} - {:name "#'optor.user/web-server" - :order 2 - :status #{:started} - :deps #{}} - {:name "#'caumond-sasu.core/web-server" - :order 3 - :status #{:stopped} - :deps #{}} - {:name "#'caumond-sasu.user/web-server" - :order 4 - :status #{:stopped} - :deps #{}} - {:name "#'optor.core/web-server" - :order 5 - :status #{:stopped} - :deps #{}})) - -(deftest component-graph-deps - (testing "Component graph" - (is - (= [{:name "#'automaton-core.configuration/conf-state" - :status #{:started} - :status-color :green - :deps #{}} - {:name "#'optor.user/web-server" - :status #{:started} - :status-color :green - :deps #{}} - {:name "#'caumond-sasu.core/web-server" - :status #{:stopped} - :status-color :red - :deps #{}} - {:name "#'caumond-sasu.user/web-server" - :status #{:stopped} - :status-color :red - :deps #{}} - {:name "#'optor.core/web-server" - :status #{:stopped} - :status-color :red - :deps #{}}] - (sut/component-graph-deps graph))))) diff --git a/version.edn b/version.edn index 88d7b13d..e05f4975 100644 --- a/version.edn +++ b/version.edn @@ -1 +1 @@ -{:version "2.2.0-35-la"} \ No newline at end of file +{:version "2.2.2-la"} \ No newline at end of file