├── tools └── composer ├── img └── demo-snake.webp ├── .github ├── PULL_REQUEST_TEMPLATE.md └── workflows │ └── ci.yml ├── .gitignore ├── .editorconfig ├── .phive └── phars.xml ├── docker-compose.yml ├── gacela.php ├── src ├── util.phel ├── main.phel ├── full-version │ ├── logic.phel │ └── game.phel └── simple-version │ └── game.phel ├── tests ├── util-test.phel └── full-version │ └── logic-test.phel ├── phel-config.php ├── composer.json ├── gacela-local.php ├── README.md └── composer.lock /tools/composer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chemaclass/phel-snake/HEAD/tools/composer -------------------------------------------------------------------------------- /img/demo-snake.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Chemaclass/phel-snake/HEAD/img/demo-snake.webp -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## 📚 Description 2 | 3 | Replace this text with a short description of your feature/bugfix. 4 | 5 | ## 🔖 Changes 6 | 7 | - List individual changes in more detail 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .idea/ 2 | .gacela/ 3 | .claude/ 4 | src/PhelGenerated/ 5 | vendor/ 6 | out/ 7 | 8 | data/error.log 9 | src/local.phel 10 | *.cache 11 | .phel-repl-history 12 | phel-config-local.php 13 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | insert_final_newline = true 6 | indent_style = space 7 | indent_size = 4 8 | charset = utf-8 9 | 10 | [*.phel] 11 | indent_size = 2 12 | -------------------------------------------------------------------------------- /.phive/phars.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3.8" 2 | 3 | services: 4 | phel_snake: 5 | build: 6 | context: . 7 | dockerfile: build/Dockerfile 8 | container_name: phel_snake 9 | hostname: php 10 | volumes: 11 | - /app/vendor 12 | -------------------------------------------------------------------------------- /gacela.php: -------------------------------------------------------------------------------- 1 | enableFileCache('.gacela/'); 10 | }; 11 | -------------------------------------------------------------------------------- /src/util.phel: -------------------------------------------------------------------------------- 1 | (ns phel-snake\util) 2 | 3 | (defn dd 4 | "Dump and die." 5 | [x] 6 | (println x)(php/die)) 7 | 8 | (defn get-from-list [xs key default & [split]] 9 | (let [arg (find |(php/str_contains (or $ "") key) xs)] 10 | (if (empty? arg) 11 | default 12 | (php/intval (get (php/explode (or split "=") arg) 1))))) 13 | -------------------------------------------------------------------------------- /src/main.phel: -------------------------------------------------------------------------------- 1 | (ns phel-snake\main 2 | (:require phel-snake\full-version\game :refer [full-game]) 3 | (:require phel-snake\simple-version\game :refer [simple-game]) 4 | (:require phel-snake\util :refer [get-from-list])) 5 | 6 | (when-not *build-mode* 7 | (if (get-from-list argv "simple" false) 8 | (simple-game) 9 | (full-game))) 10 | -------------------------------------------------------------------------------- /tests/util-test.phel: -------------------------------------------------------------------------------- 1 | (ns phel-snake-tests\util-test 2 | (:require phel-snake\util :refer [get-from-list]) 3 | (:require phel\test :refer [deftest is])) 4 | 5 | (deftest test-get-from-list 6 | (is (= 10 (get-from-list [] "key" 10)) "empty args results in default value") 7 | (is (= 10 (get-from-list ["unknown=2"] "key" 10)) "unknown key results in default value") 8 | (is (= 5 (get-from-list ["unknown=2" "key=5"] "key" 10)) "defined key results in defined value")) 9 | -------------------------------------------------------------------------------- /phel-config.php: -------------------------------------------------------------------------------- 1 | setSrcDirs(['src']) 10 | ->setTestDirs(['tests']) 11 | ->setVendorDir('vendor') 12 | ->setBuildConfig((new PhelBuildConfig()) 13 | ->setMainPhelNamespace('phel-snake\main') 14 | ->setMainPhpPath('out/main.php')) 15 | ->setIgnoreWhenBuilding(['local.phel']) 16 | ->setKeepGeneratedTempFiles(false) 17 | ; 18 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | on: [push] 2 | 3 | name: CI 4 | 5 | jobs: 6 | tests: 7 | name: Tests 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout 11 | uses: actions/checkout@v4 12 | - name: Install PHP 13 | uses: shivammathur/setup-php@v2 14 | with: 15 | php-version: 8.3 16 | coverage: none 17 | - name: Install dependencies 18 | run: composer update --no-interaction --no-ansi --no-progress 19 | - name: Run phel tests 20 | run: vendor/bin/phel test 21 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "chemaclass/phel-snake", 3 | "keywords": [ 4 | "phel", 5 | "lisp", 6 | "functional", 7 | "language" 8 | ], 9 | "license": "MIT", 10 | "require": { 11 | "php": ">=8.3", 12 | "ext-readline": "*", 13 | "phel-lang/phel-lang": "^0.23", 14 | "chemaclass/phel-cli-gui": "^0.6" 15 | }, 16 | "require-dev": { 17 | "roave/security-advisories": "dev-latest", 18 | "symfony/var-dumper": "6.*" 19 | }, 20 | "minimum-stability": "dev", 21 | "scripts": { 22 | "start": [ 23 | "@build", 24 | "@play" 25 | ], 26 | "build": "vendor/bin/phel build --no-cache", 27 | "play": "php out/main.php", 28 | "test": "vendor/bin/phel test", 29 | "format": "vendor/bin/phel format src tests" 30 | }, 31 | "config": { 32 | "preferred-install": "dist", 33 | "platform": { 34 | "php": "8.3" 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /gacela-local.php: -------------------------------------------------------------------------------- 1 | registerGenericListener(static function (GacelaEventInterface $event): void { 20 | echo $event->toString() . PHP_EOL; 21 | }); 22 | 23 | // Hook into a service to be able to extend it however you want 24 | $config->extendService('FACADE_COMPILER', function (CompilerFacadeInterface $compilerFacade): void { 25 | dump(get_class($compilerFacade)); 26 | }); 27 | }; 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Phel Snake 2 | 3 | A cli-game written in [Phel](https://phel-lang.org/). 4 | 5 | ## Two versions in one repository 6 | 7 | This repository contains a [full-version](src/full-version/game.phel) and a [simplified version](src/simple-version/game.phel) of the snake game. 8 | 9 | > I thought it might be useful to create a simplified version as introduction to the fundamentals of the language and the game itself. 10 | 11 | - In the simplified version, you will find just the snake inside the board. 12 | - In the full version, the snake will increase the speed as it reaches to goals. 13 | 14 | ## How to play 15 | 16 | ### Instructions 17 | 18 | Use the arrow keys to move the snake: `left-right-top-down`. 19 | The game ends when the snake touches any border of the board. 20 | 21 | #### In the full version 22 | 23 | - You can use the `space-key` to accelerate a few cells the snake in the current direction. 24 | 25 | - The snake will automatically increase the speed after each goal reached, unless you enable the "god mode" (using the argument `god-mode`). 26 | 27 | ### Setup 28 | 29 | #### Using Docker 30 | 31 | 1. Clone this repo 32 | 2. Build the image and run the container: `docker-compose up --build -d` 33 | 3. Run the game: `docker exec -it phel_snake ./tools/composer play` 34 | 35 | #### Locally (no Docker) 36 | 37 | 1. Ensure you have PHP `>=8.2` 38 | 1. Some help about how to install multiple PHP versions locally on [linux](https://github.com/phpbrew/phpbrew) and [Mac](https://github.com/shivammathur/homebrew-php) 39 | 2. Clone this repo 40 | 3. Install the dependencies: `./tools/composer install` 41 | 4. Run the game: `./tools/composer play` 42 | 43 | --- 44 | 45 | Alternatively, you can run the game using the `phel run` command 46 | You can define some optional arguments 47 | - width={N} -> width of the board 48 | - height={N} -> height of the board 49 | - god-mode -> the snake won't increment the speed as it eats apples 50 | - debug -> you can see internal stats of the game 51 | - simple -> start the simplified game 52 | 53 | ```bash 54 | vendor/bin/phel run src/main.phel width=40 height=15 god-mode debug 55 | ``` 56 | 57 | ## Demo 58 | 59 | ![](img/demo-snake.webp) 60 | -------------------------------------------------------------------------------- /src/full-version/logic.phel: -------------------------------------------------------------------------------- 1 | (ns phel-snake\full-version\logic) 2 | 3 | (defstruct board [width height]) 4 | (defstruct board-style [horizontal vertical corner]) 5 | (defstruct snake [direction speed head tail]) 6 | 7 | # Hexadecimal keys 8 | (def key-space "20") 9 | (def- key-left-arrow "1b5b44") 10 | (def- key-down-arrow "1b5b42") 11 | (def- key-right-arrow "1b5b43") 12 | (def- key-up-arrow "1b5b41") 13 | 14 | (def directions 15 | {key-left-arrow :left 16 | key-down-arrow :down 17 | key-right-arrow :right 18 | key-up-arrow :up}) 19 | 20 | (defn grow-snake [snake] 21 | (let [sn1 (case (snake :direction) 22 | :left (update-in snake [:head :x] dec) 23 | :right (update-in snake [:head :x] inc) 24 | :up (update-in snake [:head :y] dec) 25 | :down (update-in snake [:head :y] inc))] 26 | # add head to the tail 27 | (update sn1 :tail |(push $ (snake :head))))) 28 | 29 | (defn move-snake [s next-direction] 30 | (if (nil? next-direction) 31 | (recur s (s :direction)) 32 | (let [s2 (case next-direction 33 | :left (update-in s [:head :x] dec) 34 | :right (update-in s [:head :x] inc) 35 | :up (update-in s [:head :y] dec) 36 | :down (update-in s [:head :y] inc)) 37 | new-tail (push (drop 1 (s2 :tail)) (s :head)) 38 | s3 (put s2 :tail new-tail)] 39 | (put s3 :direction next-direction)))) 40 | 41 | (defn collision-with-board? [b s] 42 | (or 43 | (>= 1 (get-in s [:head :x])) 44 | (>= 0 (get-in s [:head :y])) 45 | (= (b :width) (get-in s [:head :x])) 46 | (= (dec (b :height)) (get-in s [:head :y])))) 47 | 48 | (defn generate-new-goal [{:width width :height height}] 49 | (let [pos {:x (dec (rand-int width)) 50 | :y (dec (rand-int height))}] 51 | (if (or (<= (pos :x) 1) 52 | (>= (pos :x) (dec width)) 53 | (<= (pos :y) 1) 54 | (>= (pos :y) (dec height))) 55 | (recur {:width width :height height}) 56 | pos))) 57 | 58 | (defn generate-snake-head [{:height height}] 59 | (generate-new-goal {:width 5 :height height})) 60 | 61 | (defn- snake-reach-goal? [snake goal] 62 | (and 63 | (= (get-in snake [:head :x]) (goal :x)) 64 | (= (get-in snake [:head :y]) (goal :y)))) 65 | 66 | (defn update-goal [s g b] 67 | (if (snake-reach-goal? s g) 68 | (generate-new-goal b) 69 | g)) 70 | -------------------------------------------------------------------------------- /tests/full-version/logic-test.phel: -------------------------------------------------------------------------------- 1 | (ns phel-snake-tests\full-version\logic-test 2 | (:require phel-snake\full-version\logic :refer [snake 3 | snake-reach-goal? 4 | move-snake 5 | collision-with-board? 6 | grow-snake]) 7 | (:require phel\test :refer [deftest is])) 8 | 9 | (deftest test-snake-reach-goal? 10 | (let [goal {:x 2 :y 2}] 11 | (is (false? (snake-reach-goal? {:head {:x 1 :y 1}} goal))) 12 | (is (true? (snake-reach-goal? {:head {:x 2 :y 2}} goal))))) 13 | 14 | (deftest test-collision-with-board? 15 | (let [board {:width 10 :height 10}] 16 | (is (false? (collision-with-board? board {:head {:x 5 :y 5}}))) 17 | (is (true? (collision-with-board? board {:head {:x 5 :y 0}})) "collision on top") 18 | (is (true? (collision-with-board? board {:head {:x 5 :y 9}})) "collision on right") 19 | (is (true? (collision-with-board? board {:head {:x 10 :y 5}})) "collision on bottom") 20 | (is (true? (collision-with-board? board {:head {:x 0 :y 5}})) "collision on left"))) 21 | 22 | (deftest test-move-snake 23 | (let [s (snake :right 1 {:x 5 :y 5} [{:x 3 :y 5} {:x 4 :y 5}])] 24 | (is (= (snake :right 1 {:x 6 :y 5} [{:x 4 :y 5} {:x 5 :y 5}]) 25 | (move-snake s nil)) "Keep the old direction if nil") 26 | (is (= (snake :left 1 {:x 4 :y 5} [{:x 4 :y 5} {:x 5 :y 5}]) 27 | (move-snake s :left))) 28 | (is (= (snake :right 1 {:x 6 :y 5} [{:x 4 :y 5} {:x 5 :y 5}]) 29 | (move-snake s :right))) 30 | (is (= (snake :up 1 {:x 5 :y 4} [{:x 4 :y 5} {:x 5 :y 5}]) 31 | (move-snake s :up))) 32 | (is (= (snake :down 1 {:x 5 :y 6} [{:x 4 :y 5} {:x 5 :y 5}]) 33 | (move-snake s :down))))) 34 | 35 | (deftest test-grow-snake-right 36 | (is (= (snake :right 1 {:x 6 :y 5} [{:x 3 :y 5} {:x 4 :y 5} {:x 5 :y 5}]) 37 | (grow-snake (snake :right 1 {:x 5 :y 5} [{:x 3 :y 5} {:x 4 :y 5}]))))) 38 | 39 | (deftest test-grow-snake-left 40 | (is (= (snake :left 1 {:x 4 :y 5} [{:x 3 :y 5} {:x 4 :y 5} {:x 5 :y 5}]) 41 | (grow-snake (snake :left 1 {:x 5 :y 5} [{:x 3 :y 5} {:x 4 :y 5}]))))) 42 | 43 | (deftest test-grow-snake-up 44 | (is (= (snake :up 1 {:x 5 :y 4} [{:x 3 :y 5} {:x 4 :y 5} {:x 5 :y 5}]) 45 | (grow-snake (snake :up 1 {:x 5 :y 5} [{:x 3 :y 5} {:x 4 :y 5}]))))) 46 | 47 | (deftest test-grow-snake-down 48 | (is (= (snake :down 1 {:x 5 :y 6} [{:x 3 :y 5} {:x 4 :y 5} {:x 5 :y 5}]) 49 | (grow-snake (snake :down 1 {:x 5 :y 5} [{:x 3 :y 5} {:x 4 :y 5}]))))) 50 | -------------------------------------------------------------------------------- /src/simple-version/game.phel: -------------------------------------------------------------------------------- 1 | ######################################################################################### 2 | # This is a full version of the snake-cli-game, with the following elements: 3 | # - A board 4 | # - A snake with constant speed inside the board 5 | # - The game ends when the snake touches the board 6 | ######################################################################################### 7 | # Try it out: vendor/bin/phel run src/simple-version/game.phel 8 | ######################################################################################### 9 | (ns phel-snake\simple-version\game 10 | (:require phel-cli-gui\terminal-gui :as gui) 11 | (:require phel-snake\util :refer [get-from-list])) 12 | 13 | (gui/add-output-formatter {:style-name "snake-head" 14 | :foreground "black" :background "red" :options ["bold"]}) 15 | (gui/add-output-formatter {:style-name "snake-tail" 16 | :foreground "black" :background "green" :options ["bold"]}) 17 | 18 | (defstruct board-struct [width height]) 19 | (defstruct snake-struct [direction speed head tail]) 20 | 21 | (def board-width (get-from-list argv "width" 40)) 22 | (def board-height (get-from-list argv "height" 20)) 23 | (def board (board-struct board-width board-height)) 24 | 25 | # Hexadecimal keys 26 | (def directions 27 | {"1b5b44" :left 28 | "1b5b42" :down 29 | "1b5b43" :right 30 | "1b5b41" :up}) 31 | 32 | (defn move-snake [s next-direction] 33 | (if (nil? next-direction) 34 | (recur s (s :direction)) 35 | (let [s2 (case next-direction 36 | :left (update-in s [:head :x] dec) 37 | :right (update-in s [:head :x] inc) 38 | :up (update-in s [:head :y] dec) 39 | :down (update-in s [:head :y] inc)) 40 | new-tail (push (drop 1 (s2 :tail)) (s :head)) 41 | s3 (put s2 :tail new-tail)] 42 | (put s3 :direction next-direction)))) 43 | 44 | (defn collision-with-board? [snake] 45 | (or 46 | (>= 1 (get-in snake [:head :x])) 47 | (>= 0 (get-in snake [:head :y])) 48 | (= (board :width) (get-in snake [:head :x])) 49 | (= (dec (board :height)) (get-in snake [:head :y])))) 50 | 51 | (defn render-snake [snake] 52 | (for [t :in (snake :tail)] 53 | (gui/render (t :x) (t :y) " " "snake-tail")) 54 | (let [h (snake :head)] 55 | (gui/render (h :x) (h :y) " " "snake-head"))) 56 | 57 | (defn game-over [snake] 58 | (render-snake snake) 59 | (println "GAME OVER") 60 | (php/exit)) 61 | 62 | (defn render-board [] 63 | (gui/clear-screen) 64 | (gui/render-board board {:horizontal "-" :vertical "|" :corner "+"})) 65 | 66 | (def initial-snake (snake-struct :right 1 {:x 5 :y 5} [{:x 4 :y 5} {:x 3 :y 5}])) 67 | 68 | (defn simple-game [] 69 | (loop [snake initial-snake] 70 | (render-board) 71 | (println "Move your snake with the arrow-keys [UP, DOWN, LEFT, RIGHT]") 72 | 73 | (if (collision-with-board? snake) 74 | (game-over snake)) 75 | 76 | (let [{:hex in} (gui/read-input 3) 77 | next-direction (directions in) 78 | new-snake (move-snake snake next-direction)] 79 | 80 | (render-snake new-snake) 81 | (php/usleep 50000) 82 | (recur new-snake)))) 83 | -------------------------------------------------------------------------------- /src/full-version/game.phel: -------------------------------------------------------------------------------- 1 | ######################################################################################### 2 | # This is a full version of the snake-cli-game, with the following elements: 3 | # - A snake that increases the speed for each apple/goal that it reaches 4 | # - A randomize apple/goal that appears after the snake eat it 5 | # - A custom key to increase the speed or to disable increasing the speed 6 | # - A custom parameter to disable increasing the speed 7 | # - A debug parameter to see the internal debug status of the game 8 | # - The game ends when the snake touches the board 9 | ######################################################################################### 10 | # Try it out: vendor/bin/phel run src/full-version/game.phel 11 | ######################################################################################### 12 | (ns phel-snake\full-version\game 13 | (:use RuntimeException) 14 | (:require phel-cli-gui\terminal-gui :as gui) 15 | (:require phel-snake\full-version\logic :as l) 16 | (:require phel-snake\util :refer [get-from-list])) 17 | 18 | (gui/add-output-formatter {:style-name "snake-head" :foreground "black" :background "red" :options ["bold"]}) 19 | (gui/add-output-formatter {:style-name "snake-tail" :foreground "black" :background "green" :options ["bold"]}) 20 | (gui/add-output-formatter {:style-name "goal" :foreground "black" :background "magenta" :options ["bold"]}) 21 | 22 | (def board-width (get-from-list argv "width" 42)) 23 | (def board-height (get-from-list argv "height" 22)) 24 | (def board (l/board board-width board-height)) 25 | 26 | (def difficulty "The higher the faster the speed will increase on each level." 10000) 27 | (def nano-seconds-delay-base 140000) 28 | (def start-time (php/microtime true)) 29 | (def goal-icon {:text " " :style "goal"}) 30 | (def snake-head-icon {:text " " :style "snake-head"}) 31 | (def snake-tail-icon {:text " " :style "snake-tail"}) 32 | 33 | (def debug? (contains-value? argv "debug")) 34 | (def god-mode? (contains-value? argv "god-mode")) 35 | (def accelerate-counter "A counter to accelerate the sleeping render" (var 0)) 36 | 37 | (defn normalize-velocity [snake] 38 | (case (snake :direction) 39 | :left 2 :right 2 40 | :up 1 :down 1)) 41 | 42 | (defn sleep-delay [snake] 43 | (if (> (deref accelerate-counter) 0) 44 | (do (php/usleep 0) (set! accelerate-counter (dec (deref accelerate-counter)))) 45 | (if god-mode? 46 | (php/usleep 140000) 47 | (let [velocity (* (snake :speed) difficulty) 48 | nano-sec (- nano-seconds-delay-base velocity) 49 | sleep-time (/ nano-sec (normalize-velocity snake))] 50 | (if debug? (println "# sleep-time:" sleep-time)) 51 | (php/usleep sleep-time))))) 52 | 53 | (defn render-snake [snake] 54 | (for [t :in (snake :tail)] 55 | (gui/render (t :x) (t :y) (snake-tail-icon :text) (snake-tail-icon :style))) 56 | (let [h (snake :head)] 57 | (gui/render (h :x) (h :y) (snake-head-icon :text) (snake-head-icon :style)))) 58 | 59 | (defn clear-snake [snake] 60 | (when-not (nil? (snake :tail)) 61 | (for [t :in (snake :tail)] 62 | (gui/render (t :x) (t :y) " ")) 63 | (let [h (snake :head)] 64 | (gui/render (h :x) (h :y) " ")))) 65 | 66 | (defn render-goal [goal] 67 | (gui/render (goal :x) (goal :y) (goal-icon :text) (goal-icon :style))) 68 | 69 | (defn game-over [board snake] 70 | (let [game-over-text "GAME OVER" 71 | game-over-text-len (php/strlen game-over-text) 72 | x-center (php/intval (php/round (- (/ (board :width) 2) (/ game-over-text-len 2)))) 73 | y-center (php/intval (php/round (/ (board :height) 2)))] 74 | (render-snake snake) 75 | (gui/render x-center y-center game-over-text) 76 | (gui/render x-center (inc y-center) (format "Points: %d" (snake :speed))) 77 | (if debug? (gui/clear-line (+ 3 (board :height)))) 78 | ; Move cursor to bottom and use println for reliable text output 79 | (println) 80 | (println) 81 | (println (format "Final Score: %d points" (snake :speed))) 82 | (println "Press any key to exit...") 83 | (gui/read-input 1) 84 | (php/exit))) 85 | 86 | (defn render-stats [board snake] 87 | (println (format "\nSpeed: %d" (count (snake :tail)))) 88 | (let [diff-time (- (php/microtime true) start-time)] 89 | (println (format "Time: %d secs" (php/round diff-time))))) 90 | 91 | (defn render-game [old-snake new-snake goal] 92 | (clear-snake old-snake) 93 | (render-snake new-snake) 94 | (render-goal goal) 95 | (render-stats board new-snake) 96 | (if debug? (println (str "$ " board "\n$ " new-snake)))) 97 | 98 | (defn full-game [] 99 | (gui/clear-screen) 100 | (gui/render-board board {:horizontal "---" :vertical "|" :corner "+"}) 101 | (println) 102 | (println) 103 | (println) 104 | 105 | (loop [snake {:old {} 106 | :current (l/snake :right 1 (l/generate-snake-head board) [])} 107 | goal (l/generate-new-goal board)] 108 | 109 | (println "playing...") 110 | (println "# god-mode?" god-mode?) 111 | (println "# Use to accelerate-counter 1 sec the snake") 112 | 113 | (sleep-delay (snake :current)) 114 | (gui/clear-output) 115 | 116 | (let [{:hex in} (gui/read-input 3) 117 | next-direction (l/directions in) 118 | updated-goal (l/update-goal (snake :current) goal board) 119 | snake2 (l/move-snake (snake :current) next-direction)] 120 | 121 | (if (= in l/key-space) 122 | (set! accelerate-counter 3)) 123 | 124 | (if (l/collision-with-board? board (snake :current)) 125 | (game-over board (snake :current))) 126 | 127 | (render-game (snake :old) snake2 updated-goal) 128 | 129 | (let [new-goal? (not= goal updated-goal) 130 | snake3 (if new-goal? (update snake2 :speed inc) snake2) 131 | updated-snake (if new-goal? (l/grow-snake snake3) snake3)] 132 | (recur {:old (snake :current) :current updated-snake} updated-goal))))) 133 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "1b9ed71e8cd6aa924715253a9536c35f", 8 | "packages": [ 9 | { 10 | "name": "chemaclass/phel-cli-gui", 11 | "version": "0.6.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/Chemaclass/phel-cli-gui.git", 15 | "reference": "0a2666a2e516e3319db334c9ef12ffa3a2221b73" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/Chemaclass/phel-cli-gui/zipball/0a2666a2e516e3319db334c9ef12ffa3a2221b73", 20 | "reference": "0a2666a2e516e3319db334c9ef12ffa3a2221b73", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "ext-pcntl": "*", 25 | "ext-posix": "*", 26 | "ext-readline": "*", 27 | "phel-lang/phel-lang": "^0.23", 28 | "php": ">=8.3", 29 | "symfony/console": "^7.3" 30 | }, 31 | "require-dev": { 32 | "phpunit/phpunit": "^10.5", 33 | "roave/security-advisories": "dev-latest", 34 | "symfony/var-dumper": "7.2" 35 | }, 36 | "type": "library", 37 | "autoload": { 38 | "psr-4": { 39 | "PhelCliGui\\": "src/php/" 40 | } 41 | }, 42 | "notification-url": "https://packagist.org/downloads/", 43 | "license": [ 44 | "MIT" 45 | ], 46 | "authors": [ 47 | { 48 | "name": "Jose M Valera Reales", 49 | "email": "chemaclass@outlook.es", 50 | "homepage": "https://chemaclass.com" 51 | } 52 | ], 53 | "description": "Phel functions to render in the terminal. It uses the Cursor from the Symfony Command module.", 54 | "homepage": "https://phel-lang.org/", 55 | "keywords": [ 56 | "functional", 57 | "language", 58 | "lisp", 59 | "phel" 60 | ], 61 | "support": { 62 | "issues": "https://github.com/Chemaclass/phel-cli-gui/issues", 63 | "source": "https://github.com/Chemaclass/phel-cli-gui/tree/0.6.0" 64 | }, 65 | "time": "2025-10-05T19:56:06+00:00" 66 | }, 67 | { 68 | "name": "gacela-project/container", 69 | "version": "0.7.0", 70 | "source": { 71 | "type": "git", 72 | "url": "https://github.com/gacela-project/container.git", 73 | "reference": "64315ade4f21407a807e48f7d18cf5a96c387cd7" 74 | }, 75 | "dist": { 76 | "type": "zip", 77 | "url": "https://api.github.com/repos/gacela-project/container/zipball/64315ade4f21407a807e48f7d18cf5a96c387cd7", 78 | "reference": "64315ade4f21407a807e48f7d18cf5a96c387cd7", 79 | "shasum": "" 80 | }, 81 | "require": { 82 | "php": ">=8.1", 83 | "psr/container": ">=1.1" 84 | }, 85 | "require-dev": { 86 | "friendsofphp/php-cs-fixer": "^3.75", 87 | "phpstan/phpstan": "^1.12", 88 | "phpunit/phpunit": "^10.5", 89 | "psalm/plugin-phpunit": "^0.18", 90 | "symfony/var-dumper": "^5.4", 91 | "vimeo/psalm": "^5.26" 92 | }, 93 | "type": "library", 94 | "autoload": { 95 | "psr-4": { 96 | "Gacela\\": "src/" 97 | } 98 | }, 99 | "notification-url": "https://packagist.org/downloads/", 100 | "license": [ 101 | "MIT" 102 | ], 103 | "authors": [ 104 | { 105 | "name": "Jose Maria Valera Reales", 106 | "email": "chemaclass@outlook.es", 107 | "homepage": "https://chemaclass.com" 108 | }, 109 | { 110 | "name": "Jesus Valera Reales", 111 | "email": "hello@jesusvalera.dev", 112 | "homepage": "https://jesusvalera.dev/" 113 | } 114 | ], 115 | "description": "A minimalistic container dependency resolver", 116 | "homepage": "https://gacela-project.com", 117 | "keywords": [ 118 | "container", 119 | "gacela", 120 | "php", 121 | "resolver" 122 | ], 123 | "support": { 124 | "issues": "https://github.com/gacela-project/resolver/issues", 125 | "source": "https://github.com/gacela-project/container/tree/0.7.0" 126 | }, 127 | "funding": [ 128 | { 129 | "url": "https://chemaclass.com/sponsor", 130 | "type": "custom" 131 | } 132 | ], 133 | "time": "2025-08-01T22:35:09+00:00" 134 | }, 135 | { 136 | "name": "gacela-project/gacela", 137 | "version": "1.11.0", 138 | "source": { 139 | "type": "git", 140 | "url": "https://github.com/gacela-project/gacela.git", 141 | "reference": "87d099d39d8d0349cd0abd961cda0f026512e263" 142 | }, 143 | "dist": { 144 | "type": "zip", 145 | "url": "https://api.github.com/repos/gacela-project/gacela/zipball/87d099d39d8d0349cd0abd961cda0f026512e263", 146 | "reference": "87d099d39d8d0349cd0abd961cda0f026512e263", 147 | "shasum": "" 148 | }, 149 | "require": { 150 | "gacela-project/container": "^0.7", 151 | "php": ">=8.1" 152 | }, 153 | "require-dev": { 154 | "ergebnis/composer-normalize": "^2.47", 155 | "friendsofphp/php-cs-fixer": "^3.88", 156 | "infection/infection": "^0.29", 157 | "phpbench/phpbench": "^1.3", 158 | "phpmetrics/phpmetrics": "^2.9", 159 | "phpstan/phpstan": "^1.12", 160 | "phpstan/phpstan-strict-rules": "^1.6", 161 | "phpunit/phpunit": "^10.5", 162 | "psalm/plugin-phpunit": "^0.19.5", 163 | "rector/rector": "^1.2", 164 | "symfony/console": "^6.4", 165 | "symfony/var-dumper": "^6.4", 166 | "vimeo/psalm": "^6.13" 167 | }, 168 | "suggest": { 169 | "gacela-project/gacela-env-config-reader": "Allows to read .env config files", 170 | "gacela-project/gacela-yaml-config-reader": "Allows to read yml/yaml config files", 171 | "gacela-project/phpstan-extension": "A set of phpstan rules for Gacela", 172 | "symfony/console": "Allows to use vendor/bin/gacela script" 173 | }, 174 | "bin": [ 175 | "bin/gacela" 176 | ], 177 | "type": "library", 178 | "autoload": { 179 | "psr-4": { 180 | "Gacela\\": "src/" 181 | } 182 | }, 183 | "notification-url": "https://packagist.org/downloads/", 184 | "license": [ 185 | "MIT" 186 | ], 187 | "authors": [ 188 | { 189 | "name": "Jose Maria Valera Reales", 190 | "email": "chemaclass@outlook.es", 191 | "homepage": "https://chemaclass.com" 192 | }, 193 | { 194 | "name": "Jesus Valera Reales", 195 | "email": "hello@jesusvalera.dev", 196 | "homepage": "https://jesusvalera.dev/" 197 | } 198 | ], 199 | "description": "Gacela helps you separate your project into modules", 200 | "homepage": "https://gacela-project.com", 201 | "keywords": [ 202 | "framework", 203 | "kernel", 204 | "modular", 205 | "php" 206 | ], 207 | "support": { 208 | "issues": "https://github.com/gacela-project/gacela/issues", 209 | "source": "https://github.com/gacela-project/gacela/tree/1.11.0" 210 | }, 211 | "funding": [ 212 | { 213 | "url": "https://chemaclass.com/sponsor", 214 | "type": "custom" 215 | } 216 | ], 217 | "time": "2025-10-12T16:34:24+00:00" 218 | }, 219 | { 220 | "name": "phel-lang/phel-lang", 221 | "version": "v0.23.1", 222 | "source": { 223 | "type": "git", 224 | "url": "https://github.com/phel-lang/phel-lang.git", 225 | "reference": "a4c98b597fb5addc179ffa36e4c542ed7059a559" 226 | }, 227 | "dist": { 228 | "type": "zip", 229 | "url": "https://api.github.com/repos/phel-lang/phel-lang/zipball/a4c98b597fb5addc179ffa36e4c542ed7059a559", 230 | "reference": "a4c98b597fb5addc179ffa36e4c542ed7059a559", 231 | "shasum": "" 232 | }, 233 | "require": { 234 | "gacela-project/gacela": "^1.10", 235 | "php": ">=8.3", 236 | "phpunit/php-timer": "^6.0", 237 | "symfony/console": "^7.3" 238 | }, 239 | "require-dev": { 240 | "ergebnis/composer-normalize": "^2.48", 241 | "ext-readline": "*", 242 | "friendsofphp/php-cs-fixer": "^3.88", 243 | "phpbench/phpbench": "^1.4", 244 | "phpstan/phpstan": "^2.1", 245 | "phpunit/phpunit": "^10.5", 246 | "psalm/plugin-phpunit": "^0.19", 247 | "rector/rector": "^2.1", 248 | "symfony/var-dumper": "^7.3", 249 | "vimeo/psalm": "^5.26" 250 | }, 251 | "bin": [ 252 | "bin/phel" 253 | ], 254 | "type": "library", 255 | "autoload": { 256 | "psr-4": { 257 | "Phel\\": "src/php/" 258 | }, 259 | "classmap": [ 260 | "src/Phel.php" 261 | ] 262 | }, 263 | "notification-url": "https://packagist.org/downloads/", 264 | "license": [ 265 | "MIT" 266 | ], 267 | "authors": [ 268 | { 269 | "name": "Jens Haase", 270 | "email": "je.haase@gmail.com" 271 | }, 272 | { 273 | "name": "Jose M. Valera Reales", 274 | "email": "phel@chemaclass.es", 275 | "homepage": "https://chemaclass.com" 276 | } 277 | ], 278 | "description": "Phel is a functional programming language that compiles to PHP", 279 | "homepage": "https://phel-lang.org/", 280 | "keywords": [ 281 | "functional", 282 | "language", 283 | "lisp", 284 | "phel" 285 | ], 286 | "support": { 287 | "issues": "https://github.com/phel-lang/phel-lang/issues", 288 | "source": "https://github.com/phel-lang/phel-lang/tree/v0.23.1" 289 | }, 290 | "funding": [ 291 | { 292 | "url": "https://chemaclass.com/sponsor", 293 | "type": "custom" 294 | } 295 | ], 296 | "time": "2025-10-05T19:39:37+00:00" 297 | }, 298 | { 299 | "name": "phpunit/php-timer", 300 | "version": "6.0.x-dev", 301 | "source": { 302 | "type": "git", 303 | "url": "https://github.com/sebastianbergmann/php-timer.git", 304 | "reference": "fb4639c8b216b81813c588d0adf1fe88ec66239e" 305 | }, 306 | "dist": { 307 | "type": "zip", 308 | "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/fb4639c8b216b81813c588d0adf1fe88ec66239e", 309 | "reference": "fb4639c8b216b81813c588d0adf1fe88ec66239e", 310 | "shasum": "" 311 | }, 312 | "require": { 313 | "php": ">=8.1" 314 | }, 315 | "require-dev": { 316 | "phpunit/phpunit": "^10.5" 317 | }, 318 | "type": "library", 319 | "extra": { 320 | "branch-alias": { 321 | "dev-main": "6.0-dev" 322 | } 323 | }, 324 | "autoload": { 325 | "classmap": [ 326 | "src/" 327 | ] 328 | }, 329 | "notification-url": "https://packagist.org/downloads/", 330 | "license": [ 331 | "BSD-3-Clause" 332 | ], 333 | "authors": [ 334 | { 335 | "name": "Sebastian Bergmann", 336 | "email": "sebastian@phpunit.de", 337 | "role": "lead" 338 | } 339 | ], 340 | "description": "Utility class for timing", 341 | "homepage": "https://github.com/sebastianbergmann/php-timer/", 342 | "keywords": [ 343 | "timer" 344 | ], 345 | "support": { 346 | "issues": "https://github.com/sebastianbergmann/php-timer/issues", 347 | "security": "https://github.com/sebastianbergmann/php-timer/security/policy", 348 | "source": "https://github.com/sebastianbergmann/php-timer/tree/6.0" 349 | }, 350 | "funding": [ 351 | { 352 | "url": "https://github.com/sebastianbergmann", 353 | "type": "github" 354 | }, 355 | { 356 | "url": "https://liberapay.com/sebastianbergmann", 357 | "type": "liberapay" 358 | }, 359 | { 360 | "url": "https://thanks.dev/u/gh/sebastianbergmann", 361 | "type": "thanks_dev" 362 | }, 363 | { 364 | "url": "https://tidelift.com/funding/github/packagist/phpunit/php-timer", 365 | "type": "tidelift" 366 | } 367 | ], 368 | "time": "2025-09-26T12:05:28+00:00" 369 | }, 370 | { 371 | "name": "psr/container", 372 | "version": "dev-master", 373 | "source": { 374 | "type": "git", 375 | "url": "https://github.com/php-fig/container.git", 376 | "reference": "707984727bd5b2b670e59559d3ed2500240cf875" 377 | }, 378 | "dist": { 379 | "type": "zip", 380 | "url": "https://api.github.com/repos/php-fig/container/zipball/707984727bd5b2b670e59559d3ed2500240cf875", 381 | "reference": "707984727bd5b2b670e59559d3ed2500240cf875", 382 | "shasum": "" 383 | }, 384 | "require": { 385 | "php": ">=7.4.0" 386 | }, 387 | "default-branch": true, 388 | "type": "library", 389 | "extra": { 390 | "branch-alias": { 391 | "dev-master": "2.0.x-dev" 392 | } 393 | }, 394 | "autoload": { 395 | "psr-4": { 396 | "Psr\\Container\\": "src/" 397 | } 398 | }, 399 | "notification-url": "https://packagist.org/downloads/", 400 | "license": [ 401 | "MIT" 402 | ], 403 | "authors": [ 404 | { 405 | "name": "PHP-FIG", 406 | "homepage": "https://www.php-fig.org/" 407 | } 408 | ], 409 | "description": "Common Container Interface (PHP FIG PSR-11)", 410 | "homepage": "https://github.com/php-fig/container", 411 | "keywords": [ 412 | "PSR-11", 413 | "container", 414 | "container-interface", 415 | "container-interop", 416 | "psr" 417 | ], 418 | "support": { 419 | "issues": "https://github.com/php-fig/container/issues", 420 | "source": "https://github.com/php-fig/container" 421 | }, 422 | "time": "2023-09-22T11:11:30+00:00" 423 | }, 424 | { 425 | "name": "symfony/console", 426 | "version": "7.4.x-dev", 427 | "source": { 428 | "type": "git", 429 | "url": "https://github.com/symfony/console.git", 430 | "reference": "0bb20e5f98f5e476b1ce151899bb15cccf8b28bf" 431 | }, 432 | "dist": { 433 | "type": "zip", 434 | "url": "https://api.github.com/repos/symfony/console/zipball/0bb20e5f98f5e476b1ce151899bb15cccf8b28bf", 435 | "reference": "0bb20e5f98f5e476b1ce151899bb15cccf8b28bf", 436 | "shasum": "" 437 | }, 438 | "require": { 439 | "php": ">=8.2", 440 | "symfony/deprecation-contracts": "^2.5|^3", 441 | "symfony/polyfill-mbstring": "~1.0", 442 | "symfony/service-contracts": "^2.5|^3", 443 | "symfony/string": "^7.2|^8.0" 444 | }, 445 | "conflict": { 446 | "symfony/dependency-injection": "<6.4", 447 | "symfony/dotenv": "<6.4", 448 | "symfony/event-dispatcher": "<6.4", 449 | "symfony/lock": "<6.4", 450 | "symfony/process": "<6.4" 451 | }, 452 | "provide": { 453 | "psr/log-implementation": "1.0|2.0|3.0" 454 | }, 455 | "require-dev": { 456 | "psr/log": "^1|^2|^3", 457 | "symfony/config": "^6.4|^7.0|^8.0", 458 | "symfony/dependency-injection": "^6.4|^7.0|^8.0", 459 | "symfony/event-dispatcher": "^6.4|^7.0|^8.0", 460 | "symfony/http-foundation": "^6.4|^7.0|^8.0", 461 | "symfony/http-kernel": "^6.4|^7.0|^8.0", 462 | "symfony/lock": "^6.4|^7.0|^8.0", 463 | "symfony/messenger": "^6.4|^7.0|^8.0", 464 | "symfony/process": "^6.4|^7.0|^8.0", 465 | "symfony/stopwatch": "^6.4|^7.0|^8.0", 466 | "symfony/var-dumper": "^6.4|^7.0|^8.0" 467 | }, 468 | "type": "library", 469 | "autoload": { 470 | "psr-4": { 471 | "Symfony\\Component\\Console\\": "" 472 | }, 473 | "exclude-from-classmap": [ 474 | "/Tests/" 475 | ] 476 | }, 477 | "notification-url": "https://packagist.org/downloads/", 478 | "license": [ 479 | "MIT" 480 | ], 481 | "authors": [ 482 | { 483 | "name": "Fabien Potencier", 484 | "email": "fabien@symfony.com" 485 | }, 486 | { 487 | "name": "Symfony Community", 488 | "homepage": "https://symfony.com/contributors" 489 | } 490 | ], 491 | "description": "Eases the creation of beautiful and testable command line interfaces", 492 | "homepage": "https://symfony.com", 493 | "keywords": [ 494 | "cli", 495 | "command-line", 496 | "console", 497 | "terminal" 498 | ], 499 | "support": { 500 | "source": "https://github.com/symfony/console/tree/7.4" 501 | }, 502 | "funding": [ 503 | { 504 | "url": "https://symfony.com/sponsor", 505 | "type": "custom" 506 | }, 507 | { 508 | "url": "https://github.com/fabpot", 509 | "type": "github" 510 | }, 511 | { 512 | "url": "https://github.com/nicolas-grekas", 513 | "type": "github" 514 | }, 515 | { 516 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 517 | "type": "tidelift" 518 | } 519 | ], 520 | "time": "2025-10-27T14:00:43+00:00" 521 | }, 522 | { 523 | "name": "symfony/deprecation-contracts", 524 | "version": "dev-main", 525 | "source": { 526 | "type": "git", 527 | "url": "https://github.com/symfony/deprecation-contracts.git", 528 | "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62" 529 | }, 530 | "dist": { 531 | "type": "zip", 532 | "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62", 533 | "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62", 534 | "shasum": "" 535 | }, 536 | "require": { 537 | "php": ">=8.1" 538 | }, 539 | "default-branch": true, 540 | "type": "library", 541 | "extra": { 542 | "thanks": { 543 | "url": "https://github.com/symfony/contracts", 544 | "name": "symfony/contracts" 545 | }, 546 | "branch-alias": { 547 | "dev-main": "3.6-dev" 548 | } 549 | }, 550 | "autoload": { 551 | "files": [ 552 | "function.php" 553 | ] 554 | }, 555 | "notification-url": "https://packagist.org/downloads/", 556 | "license": [ 557 | "MIT" 558 | ], 559 | "authors": [ 560 | { 561 | "name": "Nicolas Grekas", 562 | "email": "p@tchwork.com" 563 | }, 564 | { 565 | "name": "Symfony Community", 566 | "homepage": "https://symfony.com/contributors" 567 | } 568 | ], 569 | "description": "A generic function and convention to trigger deprecation notices", 570 | "homepage": "https://symfony.com", 571 | "support": { 572 | "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0" 573 | }, 574 | "funding": [ 575 | { 576 | "url": "https://symfony.com/sponsor", 577 | "type": "custom" 578 | }, 579 | { 580 | "url": "https://github.com/fabpot", 581 | "type": "github" 582 | }, 583 | { 584 | "url": "https://github.com/nicolas-grekas", 585 | "type": "github" 586 | }, 587 | { 588 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 589 | "type": "tidelift" 590 | } 591 | ], 592 | "time": "2024-09-25T14:21:43+00:00" 593 | }, 594 | { 595 | "name": "symfony/polyfill-ctype", 596 | "version": "1.x-dev", 597 | "source": { 598 | "type": "git", 599 | "url": "https://github.com/symfony/polyfill-ctype.git", 600 | "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" 601 | }, 602 | "dist": { 603 | "type": "zip", 604 | "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", 605 | "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", 606 | "shasum": "" 607 | }, 608 | "require": { 609 | "php": ">=7.2" 610 | }, 611 | "provide": { 612 | "ext-ctype": "*" 613 | }, 614 | "suggest": { 615 | "ext-ctype": "For best performance" 616 | }, 617 | "default-branch": true, 618 | "type": "library", 619 | "extra": { 620 | "thanks": { 621 | "url": "https://github.com/symfony/polyfill", 622 | "name": "symfony/polyfill" 623 | } 624 | }, 625 | "autoload": { 626 | "files": [ 627 | "bootstrap.php" 628 | ], 629 | "psr-4": { 630 | "Symfony\\Polyfill\\Ctype\\": "" 631 | } 632 | }, 633 | "notification-url": "https://packagist.org/downloads/", 634 | "license": [ 635 | "MIT" 636 | ], 637 | "authors": [ 638 | { 639 | "name": "Gert de Pagter", 640 | "email": "BackEndTea@gmail.com" 641 | }, 642 | { 643 | "name": "Symfony Community", 644 | "homepage": "https://symfony.com/contributors" 645 | } 646 | ], 647 | "description": "Symfony polyfill for ctype functions", 648 | "homepage": "https://symfony.com", 649 | "keywords": [ 650 | "compatibility", 651 | "ctype", 652 | "polyfill", 653 | "portable" 654 | ], 655 | "support": { 656 | "source": "https://github.com/symfony/polyfill-ctype/tree/v1.33.0" 657 | }, 658 | "funding": [ 659 | { 660 | "url": "https://symfony.com/sponsor", 661 | "type": "custom" 662 | }, 663 | { 664 | "url": "https://github.com/fabpot", 665 | "type": "github" 666 | }, 667 | { 668 | "url": "https://github.com/nicolas-grekas", 669 | "type": "github" 670 | }, 671 | { 672 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 673 | "type": "tidelift" 674 | } 675 | ], 676 | "time": "2024-09-09T11:45:10+00:00" 677 | }, 678 | { 679 | "name": "symfony/polyfill-intl-grapheme", 680 | "version": "1.x-dev", 681 | "source": { 682 | "type": "git", 683 | "url": "https://github.com/symfony/polyfill-intl-grapheme.git", 684 | "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70" 685 | }, 686 | "dist": { 687 | "type": "zip", 688 | "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/380872130d3a5dd3ace2f4010d95125fde5d5c70", 689 | "reference": "380872130d3a5dd3ace2f4010d95125fde5d5c70", 690 | "shasum": "" 691 | }, 692 | "require": { 693 | "php": ">=7.2" 694 | }, 695 | "suggest": { 696 | "ext-intl": "For best performance" 697 | }, 698 | "default-branch": true, 699 | "type": "library", 700 | "extra": { 701 | "thanks": { 702 | "url": "https://github.com/symfony/polyfill", 703 | "name": "symfony/polyfill" 704 | } 705 | }, 706 | "autoload": { 707 | "files": [ 708 | "bootstrap.php" 709 | ], 710 | "psr-4": { 711 | "Symfony\\Polyfill\\Intl\\Grapheme\\": "" 712 | } 713 | }, 714 | "notification-url": "https://packagist.org/downloads/", 715 | "license": [ 716 | "MIT" 717 | ], 718 | "authors": [ 719 | { 720 | "name": "Nicolas Grekas", 721 | "email": "p@tchwork.com" 722 | }, 723 | { 724 | "name": "Symfony Community", 725 | "homepage": "https://symfony.com/contributors" 726 | } 727 | ], 728 | "description": "Symfony polyfill for intl's grapheme_* functions", 729 | "homepage": "https://symfony.com", 730 | "keywords": [ 731 | "compatibility", 732 | "grapheme", 733 | "intl", 734 | "polyfill", 735 | "portable", 736 | "shim" 737 | ], 738 | "support": { 739 | "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.33.0" 740 | }, 741 | "funding": [ 742 | { 743 | "url": "https://symfony.com/sponsor", 744 | "type": "custom" 745 | }, 746 | { 747 | "url": "https://github.com/fabpot", 748 | "type": "github" 749 | }, 750 | { 751 | "url": "https://github.com/nicolas-grekas", 752 | "type": "github" 753 | }, 754 | { 755 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 756 | "type": "tidelift" 757 | } 758 | ], 759 | "time": "2025-06-27T09:58:17+00:00" 760 | }, 761 | { 762 | "name": "symfony/polyfill-intl-normalizer", 763 | "version": "1.x-dev", 764 | "source": { 765 | "type": "git", 766 | "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 767 | "reference": "3833d7255cc303546435cb650316bff708a1c75c" 768 | }, 769 | "dist": { 770 | "type": "zip", 771 | "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", 772 | "reference": "3833d7255cc303546435cb650316bff708a1c75c", 773 | "shasum": "" 774 | }, 775 | "require": { 776 | "php": ">=7.2" 777 | }, 778 | "suggest": { 779 | "ext-intl": "For best performance" 780 | }, 781 | "default-branch": true, 782 | "type": "library", 783 | "extra": { 784 | "thanks": { 785 | "url": "https://github.com/symfony/polyfill", 786 | "name": "symfony/polyfill" 787 | } 788 | }, 789 | "autoload": { 790 | "files": [ 791 | "bootstrap.php" 792 | ], 793 | "psr-4": { 794 | "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 795 | }, 796 | "classmap": [ 797 | "Resources/stubs" 798 | ] 799 | }, 800 | "notification-url": "https://packagist.org/downloads/", 801 | "license": [ 802 | "MIT" 803 | ], 804 | "authors": [ 805 | { 806 | "name": "Nicolas Grekas", 807 | "email": "p@tchwork.com" 808 | }, 809 | { 810 | "name": "Symfony Community", 811 | "homepage": "https://symfony.com/contributors" 812 | } 813 | ], 814 | "description": "Symfony polyfill for intl's Normalizer class and related functions", 815 | "homepage": "https://symfony.com", 816 | "keywords": [ 817 | "compatibility", 818 | "intl", 819 | "normalizer", 820 | "polyfill", 821 | "portable", 822 | "shim" 823 | ], 824 | "support": { 825 | "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.33.0" 826 | }, 827 | "funding": [ 828 | { 829 | "url": "https://symfony.com/sponsor", 830 | "type": "custom" 831 | }, 832 | { 833 | "url": "https://github.com/fabpot", 834 | "type": "github" 835 | }, 836 | { 837 | "url": "https://github.com/nicolas-grekas", 838 | "type": "github" 839 | }, 840 | { 841 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 842 | "type": "tidelift" 843 | } 844 | ], 845 | "time": "2024-09-09T11:45:10+00:00" 846 | }, 847 | { 848 | "name": "symfony/polyfill-mbstring", 849 | "version": "1.x-dev", 850 | "source": { 851 | "type": "git", 852 | "url": "https://github.com/symfony/polyfill-mbstring.git", 853 | "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" 854 | }, 855 | "dist": { 856 | "type": "zip", 857 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", 858 | "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", 859 | "shasum": "" 860 | }, 861 | "require": { 862 | "ext-iconv": "*", 863 | "php": ">=7.2" 864 | }, 865 | "provide": { 866 | "ext-mbstring": "*" 867 | }, 868 | "suggest": { 869 | "ext-mbstring": "For best performance" 870 | }, 871 | "default-branch": true, 872 | "type": "library", 873 | "extra": { 874 | "thanks": { 875 | "url": "https://github.com/symfony/polyfill", 876 | "name": "symfony/polyfill" 877 | } 878 | }, 879 | "autoload": { 880 | "files": [ 881 | "bootstrap.php" 882 | ], 883 | "psr-4": { 884 | "Symfony\\Polyfill\\Mbstring\\": "" 885 | } 886 | }, 887 | "notification-url": "https://packagist.org/downloads/", 888 | "license": [ 889 | "MIT" 890 | ], 891 | "authors": [ 892 | { 893 | "name": "Nicolas Grekas", 894 | "email": "p@tchwork.com" 895 | }, 896 | { 897 | "name": "Symfony Community", 898 | "homepage": "https://symfony.com/contributors" 899 | } 900 | ], 901 | "description": "Symfony polyfill for the Mbstring extension", 902 | "homepage": "https://symfony.com", 903 | "keywords": [ 904 | "compatibility", 905 | "mbstring", 906 | "polyfill", 907 | "portable", 908 | "shim" 909 | ], 910 | "support": { 911 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.33.0" 912 | }, 913 | "funding": [ 914 | { 915 | "url": "https://symfony.com/sponsor", 916 | "type": "custom" 917 | }, 918 | { 919 | "url": "https://github.com/fabpot", 920 | "type": "github" 921 | }, 922 | { 923 | "url": "https://github.com/nicolas-grekas", 924 | "type": "github" 925 | }, 926 | { 927 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 928 | "type": "tidelift" 929 | } 930 | ], 931 | "time": "2024-12-23T08:48:59+00:00" 932 | }, 933 | { 934 | "name": "symfony/service-contracts", 935 | "version": "dev-main", 936 | "source": { 937 | "type": "git", 938 | "url": "https://github.com/symfony/service-contracts.git", 939 | "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43" 940 | }, 941 | "dist": { 942 | "type": "zip", 943 | "url": "https://api.github.com/repos/symfony/service-contracts/zipball/45112560a3ba2d715666a509a0bc9521d10b6c43", 944 | "reference": "45112560a3ba2d715666a509a0bc9521d10b6c43", 945 | "shasum": "" 946 | }, 947 | "require": { 948 | "php": ">=8.1", 949 | "psr/container": "^1.1|^2.0", 950 | "symfony/deprecation-contracts": "^2.5|^3" 951 | }, 952 | "conflict": { 953 | "ext-psr": "<1.1|>=2" 954 | }, 955 | "default-branch": true, 956 | "type": "library", 957 | "extra": { 958 | "thanks": { 959 | "url": "https://github.com/symfony/contracts", 960 | "name": "symfony/contracts" 961 | }, 962 | "branch-alias": { 963 | "dev-main": "3.6-dev" 964 | } 965 | }, 966 | "autoload": { 967 | "psr-4": { 968 | "Symfony\\Contracts\\Service\\": "" 969 | }, 970 | "exclude-from-classmap": [ 971 | "/Test/" 972 | ] 973 | }, 974 | "notification-url": "https://packagist.org/downloads/", 975 | "license": [ 976 | "MIT" 977 | ], 978 | "authors": [ 979 | { 980 | "name": "Nicolas Grekas", 981 | "email": "p@tchwork.com" 982 | }, 983 | { 984 | "name": "Symfony Community", 985 | "homepage": "https://symfony.com/contributors" 986 | } 987 | ], 988 | "description": "Generic abstractions related to writing services", 989 | "homepage": "https://symfony.com", 990 | "keywords": [ 991 | "abstractions", 992 | "contracts", 993 | "decoupling", 994 | "interfaces", 995 | "interoperability", 996 | "standards" 997 | ], 998 | "support": { 999 | "source": "https://github.com/symfony/service-contracts/tree/main" 1000 | }, 1001 | "funding": [ 1002 | { 1003 | "url": "https://symfony.com/sponsor", 1004 | "type": "custom" 1005 | }, 1006 | { 1007 | "url": "https://github.com/fabpot", 1008 | "type": "github" 1009 | }, 1010 | { 1011 | "url": "https://github.com/nicolas-grekas", 1012 | "type": "github" 1013 | }, 1014 | { 1015 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1016 | "type": "tidelift" 1017 | } 1018 | ], 1019 | "time": "2025-07-15T11:30:57+00:00" 1020 | }, 1021 | { 1022 | "name": "symfony/string", 1023 | "version": "7.4.x-dev", 1024 | "source": { 1025 | "type": "git", 1026 | "url": "https://github.com/symfony/string.git", 1027 | "reference": "bc7852160e1f18ce249c3daaba3b26cf5425a34d" 1028 | }, 1029 | "dist": { 1030 | "type": "zip", 1031 | "url": "https://api.github.com/repos/symfony/string/zipball/bc7852160e1f18ce249c3daaba3b26cf5425a34d", 1032 | "reference": "bc7852160e1f18ce249c3daaba3b26cf5425a34d", 1033 | "shasum": "" 1034 | }, 1035 | "require": { 1036 | "php": ">=8.2", 1037 | "symfony/deprecation-contracts": "^2.5|^3.0", 1038 | "symfony/polyfill-ctype": "~1.8", 1039 | "symfony/polyfill-intl-grapheme": "~1.33", 1040 | "symfony/polyfill-intl-normalizer": "~1.0", 1041 | "symfony/polyfill-mbstring": "~1.0" 1042 | }, 1043 | "conflict": { 1044 | "symfony/translation-contracts": "<2.5" 1045 | }, 1046 | "require-dev": { 1047 | "symfony/emoji": "^7.1|^8.0", 1048 | "symfony/http-client": "^6.4|^7.0|^8.0", 1049 | "symfony/intl": "^6.4|^7.0|^8.0", 1050 | "symfony/translation-contracts": "^2.5|^3.0", 1051 | "symfony/var-exporter": "^6.4|^7.0|^8.0" 1052 | }, 1053 | "type": "library", 1054 | "autoload": { 1055 | "files": [ 1056 | "Resources/functions.php" 1057 | ], 1058 | "psr-4": { 1059 | "Symfony\\Component\\String\\": "" 1060 | }, 1061 | "exclude-from-classmap": [ 1062 | "/Tests/" 1063 | ] 1064 | }, 1065 | "notification-url": "https://packagist.org/downloads/", 1066 | "license": [ 1067 | "MIT" 1068 | ], 1069 | "authors": [ 1070 | { 1071 | "name": "Nicolas Grekas", 1072 | "email": "p@tchwork.com" 1073 | }, 1074 | { 1075 | "name": "Symfony Community", 1076 | "homepage": "https://symfony.com/contributors" 1077 | } 1078 | ], 1079 | "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", 1080 | "homepage": "https://symfony.com", 1081 | "keywords": [ 1082 | "grapheme", 1083 | "i18n", 1084 | "string", 1085 | "unicode", 1086 | "utf-8", 1087 | "utf8" 1088 | ], 1089 | "support": { 1090 | "source": "https://github.com/symfony/string/tree/7.4" 1091 | }, 1092 | "funding": [ 1093 | { 1094 | "url": "https://symfony.com/sponsor", 1095 | "type": "custom" 1096 | }, 1097 | { 1098 | "url": "https://github.com/fabpot", 1099 | "type": "github" 1100 | }, 1101 | { 1102 | "url": "https://github.com/nicolas-grekas", 1103 | "type": "github" 1104 | }, 1105 | { 1106 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1107 | "type": "tidelift" 1108 | } 1109 | ], 1110 | "time": "2025-09-11T14:37:11+00:00" 1111 | } 1112 | ], 1113 | "packages-dev": [ 1114 | { 1115 | "name": "roave/security-advisories", 1116 | "version": "dev-latest", 1117 | "source": { 1118 | "type": "git", 1119 | "url": "https://github.com/Roave/SecurityAdvisories.git", 1120 | "reference": "951a7e1c8fa344e8bad8950f994aa9109ff218fe" 1121 | }, 1122 | "dist": { 1123 | "type": "zip", 1124 | "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/951a7e1c8fa344e8bad8950f994aa9109ff218fe", 1125 | "reference": "951a7e1c8fa344e8bad8950f994aa9109ff218fe", 1126 | "shasum": "" 1127 | }, 1128 | "conflict": { 1129 | "3f/pygmentize": "<1.2", 1130 | "adaptcms/adaptcms": "<=1.3", 1131 | "admidio/admidio": "<=4.3.16", 1132 | "adodb/adodb-php": "<=5.22.9", 1133 | "aheinze/cockpit": "<2.2", 1134 | "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.07.2", 1135 | "aimeos/ai-admin-jsonadm": "<2020.10.13|>=2021.04.1,<2021.10.6|>=2022.04.1,<2022.10.3|>=2023.04.1,<2023.10.4|==2024.04.1", 1136 | "aimeos/ai-client-html": ">=2020.04.1,<2020.10.27|>=2021.04.1,<2021.10.22|>=2022.04.1,<2022.10.13|>=2023.04.1,<2023.10.15|>=2024.04.1,<2024.04.7", 1137 | "aimeos/ai-controller-frontend": "<2020.10.15|>=2021.04.1,<2021.10.8|>=2022.04.1,<2022.10.8|>=2023.04.1,<2023.10.9|==2024.04.1", 1138 | "aimeos/aimeos-core": ">=2022.04.1,<2022.10.17|>=2023.04.1,<2023.10.17|>=2024.04.1,<2024.04.7", 1139 | "aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5", 1140 | "airesvsg/acf-to-rest-api": "<=3.1", 1141 | "akaunting/akaunting": "<2.1.13", 1142 | "akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53", 1143 | "alextselegidis/easyappointments": "<1.5.2.0-beta1", 1144 | "alt-design/alt-redirect": "<1.6.4", 1145 | "alterphp/easyadmin-extension-bundle": ">=1.2,<1.2.11|>=1.3,<1.3.1", 1146 | "amazing/media2click": ">=1,<1.3.3", 1147 | "ameos/ameos_tarteaucitron": "<1.2.23", 1148 | "amphp/artax": "<1.0.6|>=2,<2.0.6", 1149 | "amphp/http": "<=1.7.2|>=2,<=2.1", 1150 | "amphp/http-client": ">=4,<4.4", 1151 | "anchorcms/anchor-cms": "<=0.12.7", 1152 | "andreapollastri/cipi": "<=3.1.15", 1153 | "andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5", 1154 | "aoe/restler": "<1.7.1", 1155 | "apache-solr-for-typo3/solr": "<2.8.3", 1156 | "apereo/phpcas": "<1.6", 1157 | "api-platform/core": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", 1158 | "api-platform/graphql": "<3.4.17|>=4,<4.0.22|>=4.1,<4.1.5", 1159 | "appwrite/server-ce": "<=1.2.1", 1160 | "arc/web": "<3", 1161 | "area17/twill": "<1.2.5|>=2,<2.5.3", 1162 | "artesaos/seotools": "<0.17.2", 1163 | "asymmetricrypt/asymmetricrypt": "<9.9.99", 1164 | "athlon1600/php-proxy": "<=5.1", 1165 | "athlon1600/php-proxy-app": "<=3", 1166 | "athlon1600/youtube-downloader": "<=4", 1167 | "austintoddj/canvas": "<=3.4.2", 1168 | "auth0/auth0-php": ">=3.3,<=8.16", 1169 | "auth0/login": "<=7.18", 1170 | "auth0/symfony": "<=5.4.1", 1171 | "auth0/wordpress": "<=5.3", 1172 | "automad/automad": "<2.0.0.0-alpha5", 1173 | "automattic/jetpack": "<9.8", 1174 | "awesome-support/awesome-support": "<=6.0.7", 1175 | "aws/aws-sdk-php": "<3.288.1", 1176 | "azuracast/azuracast": "<0.18.3", 1177 | "b13/seo_basics": "<0.8.2", 1178 | "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2", 1179 | "backpack/crud": "<3.4.9", 1180 | "backpack/filemanager": "<2.0.2|>=3,<3.0.9", 1181 | "bacula-web/bacula-web": "<9.7.1", 1182 | "badaso/core": "<=2.9.11", 1183 | "bagisto/bagisto": "<=2.3.7", 1184 | "barrelstrength/sprout-base-email": "<1.2.7", 1185 | "barrelstrength/sprout-forms": "<3.9", 1186 | "barryvdh/laravel-translation-manager": "<0.6.8", 1187 | "barzahlen/barzahlen-php": "<2.0.1", 1188 | "baserproject/basercms": "<=5.1.1", 1189 | "bassjobsen/bootstrap-3-typeahead": ">4.0.2", 1190 | "bbpress/bbpress": "<2.6.5", 1191 | "bcit-ci/codeigniter": "<3.1.3", 1192 | "bcosca/fatfree": "<3.7.2", 1193 | "bedita/bedita": "<4", 1194 | "bednee/cooluri": "<1.0.30", 1195 | "bigfork/silverstripe-form-capture": ">=3,<3.1.1", 1196 | "billz/raspap-webgui": "<3.3.6", 1197 | "binarytorch/larecipe": "<2.8.1", 1198 | "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", 1199 | "blueimp/jquery-file-upload": "==6.4.4", 1200 | "bmarshall511/wordpress_zero_spam": "<5.2.13", 1201 | "bolt/bolt": "<3.7.2", 1202 | "bolt/core": "<=4.2", 1203 | "born05/craft-twofactorauthentication": "<3.3.4", 1204 | "bottelet/flarepoint": "<2.2.1", 1205 | "bref/bref": "<2.1.17", 1206 | "brightlocal/phpwhois": "<=4.2.5", 1207 | "brotkrueml/codehighlight": "<2.7", 1208 | "brotkrueml/schema": "<1.13.1|>=2,<2.5.1", 1209 | "brotkrueml/typo3-matomo-integration": "<1.3.2", 1210 | "buddypress/buddypress": "<7.2.1", 1211 | "bugsnag/bugsnag-laravel": ">=2,<2.0.2", 1212 | "bvbmedia/multishop": "<2.0.39", 1213 | "bytefury/crater": "<6.0.2", 1214 | "cachethq/cachet": "<2.5.1", 1215 | "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", 1216 | "cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10", 1217 | "cardgate/magento2": "<2.0.33", 1218 | "cardgate/woocommerce": "<=3.1.15", 1219 | "cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4", 1220 | "cart2quote/module-quotation-encoded": ">=4.1.6,<=4.4.5|>=5,<5.4.4", 1221 | "cartalyst/sentry": "<=2.1.6", 1222 | "catfan/medoo": "<1.7.5", 1223 | "causal/oidc": "<4", 1224 | "cecil/cecil": "<7.47.1", 1225 | "centreon/centreon": "<22.10.15", 1226 | "cesnet/simplesamlphp-module-proxystatistics": "<3.1", 1227 | "chriskacerguis/codeigniter-restserver": "<=2.7.1", 1228 | "chrome-php/chrome": "<1.14", 1229 | "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3", 1230 | "ckeditor/ckeditor": "<4.25", 1231 | "clickstorm/cs-seo": ">=6,<6.8|>=7,<7.5|>=8,<8.4|>=9,<9.3", 1232 | "co-stack/fal_sftp": "<0.2.6", 1233 | "cockpit-hq/cockpit": "<2.11.4", 1234 | "code16/sharp": "<9.11.1", 1235 | "codeception/codeception": "<3.1.3|>=4,<4.1.22", 1236 | "codeigniter/framework": "<3.1.10", 1237 | "codeigniter4/framework": "<4.6.2", 1238 | "codeigniter4/shield": "<1.0.0.0-beta8", 1239 | "codiad/codiad": "<=2.8.4", 1240 | "codingms/additional-tca": ">=1.7,<1.15.17|>=1.16,<1.16.9", 1241 | "commerceteam/commerce": ">=0.9.6,<0.9.9", 1242 | "components/jquery": ">=1.0.3,<3.5", 1243 | "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7", 1244 | "concrete5/concrete5": "<9.4.3", 1245 | "concrete5/core": "<8.5.8|>=9,<9.1", 1246 | "contao-components/mediaelement": ">=2.14.2,<2.21.1", 1247 | "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", 1248 | "contao/contao": ">=3,<3.5.37|>=4,<4.4.56|>=4.5,<4.13.56|>=5,<5.3.38|>=5.4.0.0-RC1-dev,<5.6.1", 1249 | "contao/core": "<3.5.39", 1250 | "contao/core-bundle": "<4.13.56|>=5,<5.3.38|>=5.4,<5.6.1", 1251 | "contao/listing-bundle": ">=3,<=3.5.30|>=4,<4.4.8", 1252 | "contao/managed-edition": "<=1.5", 1253 | "corveda/phpsandbox": "<1.3.5", 1254 | "cosenary/instagram": "<=2.3", 1255 | "couleurcitron/tarteaucitron-wp": "<0.3", 1256 | "craftcms/cms": "<=4.16.5|>=5,<=5.8.6", 1257 | "croogo/croogo": "<4", 1258 | "cuyz/valinor": "<0.12", 1259 | "czim/file-handling": "<1.5|>=2,<2.3", 1260 | "czproject/git-php": "<4.0.3", 1261 | "damienharper/auditor-bundle": "<5.2.6", 1262 | "dapphp/securimage": "<3.6.6", 1263 | "darylldoyle/safe-svg": "<1.9.10", 1264 | "datadog/dd-trace": ">=0.30,<0.30.2", 1265 | "datahihi1/tiny-env": "<1.0.3|>=1.0.9,<1.0.11", 1266 | "datatables/datatables": "<1.10.10", 1267 | "david-garcia/phpwhois": "<=4.3.1", 1268 | "dbrisinajumi/d2files": "<1", 1269 | "dcat/laravel-admin": "<=2.1.3|==2.2.0.0-beta|==2.2.2.0-beta", 1270 | "derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3", 1271 | "derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1|>=7,<7.4", 1272 | "desperado/xml-bundle": "<=0.1.7", 1273 | "dev-lancer/minecraft-motd-parser": "<=1.0.5", 1274 | "devgroup/dotplant": "<2020.09.14-dev", 1275 | "digimix/wp-svg-upload": "<=1", 1276 | "directmailteam/direct-mail": "<6.0.3|>=7,<7.0.3|>=8,<9.5.2", 1277 | "dl/yag": "<3.0.1", 1278 | "dmk/webkitpdf": "<1.1.4", 1279 | "dnadesign/silverstripe-elemental": "<5.3.12", 1280 | "doctrine/annotations": "<1.2.7", 1281 | "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2", 1282 | "doctrine/common": "<2.4.3|>=2.5,<2.5.1", 1283 | "doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4", 1284 | "doctrine/doctrine-bundle": "<1.5.2", 1285 | "doctrine/doctrine-module": "<0.7.2", 1286 | "doctrine/mongodb-odm": "<1.0.2", 1287 | "doctrine/mongodb-odm-bundle": "<3.0.1", 1288 | "doctrine/orm": ">=1,<1.2.4|>=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4", 1289 | "dolibarr/dolibarr": "<21.0.3", 1290 | "dompdf/dompdf": "<2.0.4", 1291 | "doublethreedigital/guest-entries": "<3.1.2", 1292 | "drupal-pattern-lab/unified-twig-extensions": "<=0.1", 1293 | "drupal/admin_audit_trail": "<1.0.5", 1294 | "drupal/ai": "<1.0.5", 1295 | "drupal/alogin": "<2.0.6", 1296 | "drupal/cache_utility": "<1.2.1", 1297 | "drupal/commerce_alphabank_redirect": "<1.0.3", 1298 | "drupal/commerce_eurobank_redirect": "<2.1.1", 1299 | "drupal/config_split": "<1.10|>=2,<2.0.2", 1300 | "drupal/core": ">=6,<6.38|>=7,<7.102|>=8,<10.3.14|>=10.4,<10.4.5|>=11,<11.0.13|>=11.1,<11.1.5", 1301 | "drupal/core-recommended": ">=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", 1302 | "drupal/drupal": ">=5,<5.11|>=6,<6.38|>=7,<7.102|>=8,<10.2.11|>=10.3,<10.3.9|>=11,<11.0.8", 1303 | "drupal/formatter_suite": "<2.1", 1304 | "drupal/gdpr": "<3.0.1|>=3.1,<3.1.2", 1305 | "drupal/google_tag": "<1.8|>=2,<2.0.8", 1306 | "drupal/ignition": "<1.0.4", 1307 | "drupal/lightgallery": "<1.6", 1308 | "drupal/link_field_display_mode_formatter": "<1.6", 1309 | "drupal/matomo": "<1.24", 1310 | "drupal/oauth2_client": "<4.1.3", 1311 | "drupal/oauth2_server": "<2.1", 1312 | "drupal/obfuscate": "<2.0.1", 1313 | "drupal/quick_node_block": "<2", 1314 | "drupal/rapidoc_elements_field_formatter": "<1.0.1", 1315 | "drupal/spamspan": "<3.2.1", 1316 | "drupal/tfa": "<1.10", 1317 | "duncanmcclean/guest-entries": "<3.1.2", 1318 | "dweeves/magmi": "<=0.7.24", 1319 | "ec-cube/ec-cube": "<2.4.4|>=2.11,<=2.17.1|>=3,<=3.0.18.0-patch4|>=4,<=4.1.2", 1320 | "ecodev/newsletter": "<=4", 1321 | "ectouch/ectouch": "<=2.7.2", 1322 | "egroupware/egroupware": "<23.1.20240624", 1323 | "elefant/cms": "<2.0.7", 1324 | "elgg/elgg": "<3.3.24|>=4,<4.0.5", 1325 | "elijaa/phpmemcacheadmin": "<=1.3", 1326 | "elmsln/haxcms": "<11.0.14", 1327 | "encore/laravel-admin": "<=1.8.19", 1328 | "endroid/qr-code-bundle": "<3.4.2", 1329 | "enhavo/enhavo-app": "<=0.13.1", 1330 | "enshrined/svg-sanitize": "<0.22", 1331 | "erusev/parsedown": "<1.7.2", 1332 | "ether/logs": "<3.0.4", 1333 | "evolutioncms/evolution": "<=3.2.3", 1334 | "exceedone/exment": "<4.4.3|>=5,<5.0.3", 1335 | "exceedone/laravel-admin": "<2.2.3|==3", 1336 | "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev", 1337 | "ezsystems/ez-support-tools": ">=2.2,<2.2.3", 1338 | "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", 1339 | "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", 1340 | "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", 1341 | "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.39|>=3.3,<3.3.39", 1342 | "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1|>=5.3.0.0-beta1,<5.3.5", 1343 | "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", 1344 | "ezsystems/ezplatform-http-cache": "<2.3.16", 1345 | "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35", 1346 | "ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8", 1347 | "ezsystems/ezplatform-richtext": ">=2.3,<2.3.26|>=3.3,<3.3.40", 1348 | "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15", 1349 | "ezsystems/ezplatform-user": ">=1,<1.0.1", 1350 | "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31", 1351 | "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1", 1352 | "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", 1353 | "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15", 1354 | "ezyang/htmlpurifier": "<=4.2", 1355 | "facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2", 1356 | "facturascripts/facturascripts": "<=2022.08", 1357 | "fastly/magento2": "<1.2.26", 1358 | "feehi/cms": "<=2.1.1", 1359 | "feehi/feehicms": "<=2.1.1", 1360 | "fenom/fenom": "<=2.12.1", 1361 | "filament/actions": ">=3.2,<3.2.123", 1362 | "filament/infolists": ">=3,<3.2.115", 1363 | "filament/tables": ">=3,<3.2.115", 1364 | "filegator/filegator": "<7.8", 1365 | "filp/whoops": "<2.1.13", 1366 | "fineuploader/php-traditional-server": "<=1.2.2", 1367 | "firebase/php-jwt": "<6", 1368 | "fisharebest/webtrees": "<=2.1.18", 1369 | "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", 1370 | "fixpunkt/fp-newsletter": "<1.1.1|>=1.2,<2.1.2|>=2.2,<3.2.6", 1371 | "flarum/core": "<1.8.10", 1372 | "flarum/flarum": "<0.1.0.0-beta8", 1373 | "flarum/framework": "<1.8.10", 1374 | "flarum/mentions": "<1.6.3", 1375 | "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15", 1376 | "flarum/tags": "<=0.1.0.0-beta13", 1377 | "floriangaerber/magnesium": "<0.3.1", 1378 | "fluidtypo3/vhs": "<5.1.1", 1379 | "fof/byobu": ">=0.3.0.0-beta2,<1.1.7", 1380 | "fof/upload": "<1.2.3", 1381 | "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1", 1382 | "fooman/tcpdf": "<6.2.22", 1383 | "forkcms/forkcms": "<5.11.1", 1384 | "fossar/tcpdf-parser": "<6.2.22", 1385 | "francoisjacquet/rosariosis": "<=11.5.1", 1386 | "frappant/frp-form-answers": "<3.1.2|>=4,<4.0.2", 1387 | "friendsofsymfony/oauth2-php": "<1.3", 1388 | "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", 1389 | "friendsofsymfony/user-bundle": ">=1,<1.3.5", 1390 | "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", 1391 | "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", 1392 | "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", 1393 | "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", 1394 | "froala/wysiwyg-editor": "<=4.3", 1395 | "froxlor/froxlor": "<=2.2.5", 1396 | "frozennode/administrator": "<=5.0.12", 1397 | "fuel/core": "<1.8.1", 1398 | "funadmin/funadmin": "<=5.0.2", 1399 | "gaoming13/wechat-php-sdk": "<=1.10.2", 1400 | "genix/cms": "<=1.1.11", 1401 | "georgringer/news": "<1.3.3", 1402 | "geshi/geshi": "<=1.0.9.1", 1403 | "getformwork/formwork": "<1.13.1|>=2.0.0.0-beta1,<2.0.0.0-beta4", 1404 | "getgrav/grav": "<1.7.46", 1405 | "getkirby/cms": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1", 1406 | "getkirby/kirby": "<3.9.8.3-dev|>=3.10,<3.10.1.2-dev|>=4,<4.7.1", 1407 | "getkirby/panel": "<2.5.14", 1408 | "getkirby/starterkit": "<=3.7.0.2", 1409 | "gilacms/gila": "<=1.15.4", 1410 | "gleez/cms": "<=1.3|==2", 1411 | "globalpayments/php-sdk": "<2", 1412 | "goalgorilla/open_social": "<12.3.11|>=12.4,<12.4.10|>=13.0.0.0-alpha1,<13.0.0.0-alpha11", 1413 | "gogentooss/samlbase": "<1.2.7", 1414 | "google/protobuf": "<3.4", 1415 | "gos/web-socket-bundle": "<1.10.4|>=2,<2.6.1|>=3,<3.3", 1416 | "gp247/core": "<1.1.24", 1417 | "gree/jose": "<2.2.1", 1418 | "gregwar/rst": "<1.0.3", 1419 | "grumpydictator/firefly-iii": "<6.1.17", 1420 | "gugoan/economizzer": "<=0.9.0.0-beta1", 1421 | "guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5", 1422 | "guzzlehttp/oauth-subscriber": "<0.8.1", 1423 | "guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5", 1424 | "haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2", 1425 | "handcraftedinthealps/goodby-csv": "<1.4.3", 1426 | "harvesthq/chosen": "<1.8.7", 1427 | "helloxz/imgurl": "<=2.31", 1428 | "hhxsv5/laravel-s": "<3.7.36", 1429 | "hillelcoren/invoice-ninja": "<5.3.35", 1430 | "himiklab/yii2-jqgrid-widget": "<1.0.8", 1431 | "hjue/justwriting": "<=1", 1432 | "hov/jobfair": "<1.0.13|>=2,<2.0.2", 1433 | "httpsoft/http-message": "<1.0.12", 1434 | "hyn/multi-tenant": ">=5.6,<5.7.2", 1435 | "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6,<4.6.25|>=5,<5.0.3", 1436 | "ibexa/admin-ui-assets": ">=4.6.0.0-alpha1,<4.6.21", 1437 | "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", 1438 | "ibexa/fieldtype-richtext": ">=4.6,<4.6.25|>=5,<5.0.3", 1439 | "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", 1440 | "ibexa/http-cache": ">=4.6,<4.6.14", 1441 | "ibexa/post-install": "<1.0.16|>=4.6,<4.6.14", 1442 | "ibexa/solr": ">=4.5,<4.5.4", 1443 | "ibexa/user": ">=4,<4.4.3|>=5,<5.0.3", 1444 | "icecoder/icecoder": "<=8.1", 1445 | "idno/known": "<=1.3.1", 1446 | "ilicmiljan/secure-props": ">=1.2,<1.2.2", 1447 | "illuminate/auth": "<5.5.10", 1448 | "illuminate/cookie": ">=4,<=4.0.11|>=4.1,<6.18.31|>=7,<7.22.4", 1449 | "illuminate/database": "<6.20.26|>=7,<7.30.5|>=8,<8.40", 1450 | "illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15", 1451 | "illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75", 1452 | "imdbphp/imdbphp": "<=5.1.1", 1453 | "impresscms/impresscms": "<=1.4.5", 1454 | "impresspages/impresspages": "<1.0.13", 1455 | "in2code/femanager": "<6.4.2|>=7,<7.5.3|>=8,<8.3.1", 1456 | "in2code/ipandlanguageredirect": "<5.1.2", 1457 | "in2code/lux": "<17.6.1|>=18,<24.0.2", 1458 | "in2code/powermail": "<7.5.1|>=8,<8.5.1|>=9,<10.9.1|>=11,<12.5.3|==13", 1459 | "innologi/typo3-appointments": "<2.0.6", 1460 | "intelliants/subrion": "<4.2.2", 1461 | "inter-mediator/inter-mediator": "==5.5", 1462 | "ipl/web": "<0.10.1", 1463 | "islandora/crayfish": "<4.1", 1464 | "islandora/islandora": ">=2,<2.4.1", 1465 | "ivankristianto/phpwhois": "<=4.3", 1466 | "jackalope/jackalope-doctrine-dbal": "<1.7.4", 1467 | "jambagecom/div2007": "<0.10.2", 1468 | "james-heinrich/getid3": "<1.9.21", 1469 | "james-heinrich/phpthumb": "<=1.7.23", 1470 | "jasig/phpcas": "<1.3.3", 1471 | "jbartels/wec-map": "<3.0.3", 1472 | "jcbrand/converse.js": "<3.3.3", 1473 | "joelbutcher/socialstream": "<5.6|>=6,<6.2", 1474 | "johnbillion/wp-crontrol": "<1.16.2|>=1.17,<1.19.2", 1475 | "joomla/application": "<1.0.13", 1476 | "joomla/archive": "<1.1.12|>=2,<2.0.1", 1477 | "joomla/database": ">=1,<2.2|>=3,<3.4", 1478 | "joomla/filesystem": "<1.6.2|>=2,<2.0.1", 1479 | "joomla/filter": "<2.0.6|>=3,<3.0.5|==4", 1480 | "joomla/framework": "<1.5.7|>=2.5.4,<=3.8.12", 1481 | "joomla/input": ">=2,<2.0.2", 1482 | "joomla/joomla-cms": "<3.9.12|>=4,<4.4.13|>=5,<5.2.6", 1483 | "joomla/joomla-platform": "<1.5.4", 1484 | "joomla/session": "<1.3.1", 1485 | "joyqi/hyper-down": "<=2.4.27", 1486 | "jsdecena/laracom": "<2.0.9", 1487 | "jsmitty12/phpwhois": "<5.1", 1488 | "juzaweb/cms": "<=3.4.2", 1489 | "jweiland/events2": "<8.3.8|>=9,<9.0.6", 1490 | "jweiland/kk-downloader": "<1.2.2", 1491 | "kazist/phpwhois": "<=4.2.6", 1492 | "kelvinmo/simplexrd": "<3.1.1", 1493 | "kevinpapst/kimai2": "<1.16.7", 1494 | "khodakhah/nodcms": "<=3", 1495 | "kimai/kimai": "<=2.20.1", 1496 | "kitodo/presentation": "<3.2.3|>=3.3,<3.3.4", 1497 | "klaviyo/magento2-extension": ">=1,<3", 1498 | "knplabs/knp-snappy": "<=1.4.2", 1499 | "kohana/core": "<3.3.3", 1500 | "koillection/koillection": "<1.6.12", 1501 | "krayin/laravel-crm": "<=1.3", 1502 | "kreait/firebase-php": ">=3.2,<3.8.1", 1503 | "kumbiaphp/kumbiapp": "<=1.1.1", 1504 | "la-haute-societe/tcpdf": "<6.2.22", 1505 | "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2", 1506 | "laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1", 1507 | "laminas/laminas-http": "<2.14.2", 1508 | "lara-zeus/artemis": ">=1,<=1.0.6", 1509 | "lara-zeus/dynamic-dashboard": ">=3,<=3.0.1", 1510 | "laravel/fortify": "<1.11.1", 1511 | "laravel/framework": "<10.48.29|>=11,<11.44.1|>=12,<12.1.1", 1512 | "laravel/laravel": ">=5.4,<5.4.22", 1513 | "laravel/pulse": "<1.3.1", 1514 | "laravel/reverb": "<1.4", 1515 | "laravel/socialite": ">=1,<2.0.10", 1516 | "latte/latte": "<2.10.8", 1517 | "lavalite/cms": "<=9|==10.1", 1518 | "lavitto/typo3-form-to-database": "<2.2.5|>=3,<3.2.2|>=4,<4.2.3|>=5,<5.0.2", 1519 | "lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5", 1520 | "league/commonmark": "<2.7", 1521 | "league/flysystem": "<1.1.4|>=2,<2.1.1", 1522 | "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3", 1523 | "leantime/leantime": "<3.3", 1524 | "lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3", 1525 | "libreform/libreform": ">=2,<=2.0.8", 1526 | "librenms/librenms": "<2017.08.18", 1527 | "liftkit/database": "<2.13.2", 1528 | "lightsaml/lightsaml": "<1.3.5", 1529 | "limesurvey/limesurvey": "<6.5.12", 1530 | "livehelperchat/livehelperchat": "<=3.91", 1531 | "livewire/livewire": "<2.12.7|>=3.0.0.0-beta1,<3.6.4", 1532 | "livewire/volt": "<1.7", 1533 | "lms/routes": "<2.1.1", 1534 | "localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2", 1535 | "lomkit/laravel-rest-api": "<2.13", 1536 | "luracast/restler": "<3.1", 1537 | "luyadev/yii-helpers": "<1.2.1", 1538 | "macropay-solutions/laravel-crud-wizard-free": "<3.4.17", 1539 | "maestroerror/php-heic-to-jpg": "<1.0.5", 1540 | "magento/community-edition": "<2.4.6.0-patch13|>=2.4.7.0-beta1,<2.4.7.0-patch8|>=2.4.8.0-beta1,<2.4.8.0-patch3|>=2.4.9.0-alpha1,<2.4.9.0-alpha3|==2.4.9", 1541 | "magento/core": "<=1.9.4.5", 1542 | "magento/magento1ce": "<1.9.4.3-dev", 1543 | "magento/magento1ee": ">=1,<1.14.4.3-dev", 1544 | "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1", 1545 | "magento/project-community-edition": "<=2.0.2", 1546 | "magneto/core": "<1.9.4.4-dev", 1547 | "mahocommerce/maho": "<25.9", 1548 | "maikuolan/phpmussel": ">=1,<1.6", 1549 | "mainwp/mainwp": "<=4.4.3.3", 1550 | "manogi/nova-tiptap": "<=3.2.6", 1551 | "mantisbt/mantisbt": "<=2.26.3", 1552 | "marcwillmann/turn": "<0.3.3", 1553 | "marshmallow/nova-tiptap": "<5.7", 1554 | "matomo/matomo": "<1.11", 1555 | "matyhtf/framework": "<3.0.6", 1556 | "mautic/core": "<5.2.8|>=6.0.0.0-alpha,<6.0.5", 1557 | "mautic/core-lib": ">=1.0.0.0-beta,<4.4.13|>=5.0.0.0-alpha,<5.1.1", 1558 | "maximebf/debugbar": "<1.19", 1559 | "mdanter/ecc": "<2", 1560 | "mediawiki/abuse-filter": "<1.39.9|>=1.40,<1.41.3|>=1.42,<1.42.2", 1561 | "mediawiki/cargo": "<3.8.3", 1562 | "mediawiki/core": "<1.39.5|==1.40", 1563 | "mediawiki/data-transfer": ">=1.39,<1.39.11|>=1.41,<1.41.3|>=1.42,<1.42.2", 1564 | "mediawiki/matomo": "<2.4.3", 1565 | "mediawiki/semantic-media-wiki": "<4.0.2", 1566 | "mehrwert/phpmyadmin": "<3.2", 1567 | "melisplatform/melis-asset-manager": "<5.0.1", 1568 | "melisplatform/melis-cms": "<5.3.4", 1569 | "melisplatform/melis-cms-slider": "<5.3.1", 1570 | "melisplatform/melis-core": "<5.3.11", 1571 | "melisplatform/melis-front": "<5.0.1", 1572 | "mezzio/mezzio-swoole": "<3.7|>=4,<4.3", 1573 | "mgallegos/laravel-jqgrid": "<=1.3", 1574 | "microsoft/microsoft-graph": ">=1.16,<1.109.1|>=2,<2.0.1", 1575 | "microsoft/microsoft-graph-beta": "<2.0.1", 1576 | "microsoft/microsoft-graph-core": "<2.0.2", 1577 | "microweber/microweber": "<=2.0.19", 1578 | "mikehaertl/php-shellcommand": "<1.6.1", 1579 | "miniorange/miniorange-saml": "<1.4.3", 1580 | "mittwald/typo3_forum": "<1.2.1", 1581 | "mobiledetect/mobiledetectlib": "<2.8.32", 1582 | "modx/revolution": "<=3.1", 1583 | "mojo42/jirafeau": "<4.4", 1584 | "mongodb/mongodb": ">=1,<1.9.2", 1585 | "monolog/monolog": ">=1.8,<1.12", 1586 | "moodle/moodle": "<4.4.11|>=4.5.0.0-beta,<4.5.7|>=5.0.0.0-beta,<5.0.3", 1587 | "moonshine/moonshine": "<=3.12.5", 1588 | "mos/cimage": "<0.7.19", 1589 | "movim/moxl": ">=0.8,<=0.10", 1590 | "movingbytes/social-network": "<=1.2.1", 1591 | "mpdf/mpdf": "<=7.1.7", 1592 | "munkireport/comment": "<4.1", 1593 | "munkireport/managedinstalls": "<2.6", 1594 | "munkireport/munki_facts": "<1.5", 1595 | "munkireport/munkireport": ">=2.5.3,<5.6.3", 1596 | "munkireport/reportdata": "<3.5", 1597 | "munkireport/softwareupdate": "<1.6", 1598 | "mustache/mustache": ">=2,<2.14.1", 1599 | "mwdelaney/wp-enable-svg": "<=0.2", 1600 | "namshi/jose": "<2.2", 1601 | "nasirkhan/laravel-starter": "<11.11", 1602 | "nategood/httpful": "<1", 1603 | "neoan3-apps/template": "<1.1.1", 1604 | "neorazorx/facturascripts": "<2022.04", 1605 | "neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", 1606 | "neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3", 1607 | "neos/media-browser": "<7.3.19|>=8,<8.0.16|>=8.1,<8.1.11|>=8.2,<8.2.11|>=8.3,<8.3.9", 1608 | "neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2", 1609 | "neos/swiftmailer": "<5.4.5", 1610 | "nesbot/carbon": "<2.72.6|>=3,<3.8.4", 1611 | "netcarver/textile": "<=4.1.2", 1612 | "netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15", 1613 | "nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6", 1614 | "nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13", 1615 | "nilsteampassnet/teampass": "<3.1.3.1-dev", 1616 | "nitsan/ns-backup": "<13.0.1", 1617 | "nonfiction/nterchange": "<4.1.1", 1618 | "notrinos/notrinos-erp": "<=0.7", 1619 | "noumo/easyii": "<=0.9", 1620 | "novaksolutions/infusionsoft-php-sdk": "<1", 1621 | "novosga/novosga": "<=2.2.12", 1622 | "nukeviet/nukeviet": "<4.5.02", 1623 | "nyholm/psr7": "<1.6.1", 1624 | "nystudio107/craft-seomatic": "<3.4.12", 1625 | "nzedb/nzedb": "<0.8", 1626 | "nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1", 1627 | "october/backend": "<1.1.2", 1628 | "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1", 1629 | "october/october": "<3.7.5", 1630 | "october/rain": "<1.0.472|>=1.1,<1.1.2", 1631 | "october/system": "<3.7.5", 1632 | "oliverklee/phpunit": "<3.5.15", 1633 | "omeka/omeka-s": "<4.0.3", 1634 | "onelogin/php-saml": "<2.10.4", 1635 | "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", 1636 | "open-web-analytics/open-web-analytics": "<1.8.1", 1637 | "opencart/opencart": ">=0", 1638 | "openid/php-openid": "<2.3", 1639 | "openmage/magento-lts": "<20.12.3", 1640 | "opensolutions/vimbadmin": "<=3.0.15", 1641 | "opensource-workshop/connect-cms": "<1.8.7|>=2,<2.4.7", 1642 | "orchid/platform": ">=8,<14.43", 1643 | "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1", 1644 | "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1", 1645 | "oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7", 1646 | "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", 1647 | "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", 1648 | "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", 1649 | "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3", 1650 | "oxid-esales/oxideshop-ce": "<=7.0.5", 1651 | "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", 1652 | "packbackbooks/lti-1-3-php-library": "<5", 1653 | "padraic/humbug_get_contents": "<1.1.2", 1654 | "pagarme/pagarme-php": "<3", 1655 | "pagekit/pagekit": "<=1.0.18", 1656 | "paragonie/ecc": "<2.0.1", 1657 | "paragonie/random_compat": "<2", 1658 | "passbolt/passbolt_api": "<4.6.2", 1659 | "paypal/adaptivepayments-sdk-php": "<=3.9.2", 1660 | "paypal/invoice-sdk-php": "<=3.9", 1661 | "paypal/merchant-sdk-php": "<3.12", 1662 | "paypal/permissions-sdk-php": "<=3.9.1", 1663 | "pear/archive_tar": "<1.4.14", 1664 | "pear/auth": "<1.2.4", 1665 | "pear/crypt_gpg": "<1.6.7", 1666 | "pear/http_request2": "<2.7", 1667 | "pear/pear": "<=1.10.1", 1668 | "pegasus/google-for-jobs": "<1.5.1|>=2,<2.1.1", 1669 | "personnummer/personnummer": "<3.0.2", 1670 | "phanan/koel": "<5.1.4", 1671 | "phenx/php-svg-lib": "<0.5.2", 1672 | "php-censor/php-censor": "<2.0.13|>=2.1,<2.1.5", 1673 | "php-mod/curl": "<2.3.2", 1674 | "phpbb/phpbb": "<3.3.11", 1675 | "phpems/phpems": ">=6,<=6.1.3", 1676 | "phpfastcache/phpfastcache": "<6.1.5|>=7,<7.1.2|>=8,<8.0.7", 1677 | "phpmailer/phpmailer": "<6.5", 1678 | "phpmussel/phpmussel": ">=1,<1.6", 1679 | "phpmyadmin/phpmyadmin": "<5.2.2", 1680 | "phpmyfaq/phpmyfaq": "<3.2.5|==3.2.5|>=3.2.10,<=4.0.1", 1681 | "phpoffice/common": "<0.2.9", 1682 | "phpoffice/math": "<=0.2", 1683 | "phpoffice/phpexcel": "<=1.8.2", 1684 | "phpoffice/phpspreadsheet": "<1.30|>=2,<2.1.12|>=2.2,<2.4|>=3,<3.10|>=4,<5", 1685 | "phpseclib/phpseclib": "<2.0.47|>=3,<3.0.36", 1686 | "phpservermon/phpservermon": "<3.6", 1687 | "phpsysinfo/phpsysinfo": "<3.4.3", 1688 | "phpunit/phpunit": ">=4.8.19,<4.8.28|>=5.0.10,<5.6.3", 1689 | "phpwhois/phpwhois": "<=4.2.5", 1690 | "phpxmlrpc/extras": "<0.6.1", 1691 | "phpxmlrpc/phpxmlrpc": "<4.9.2", 1692 | "pi/pi": "<=2.5", 1693 | "pimcore/admin-ui-classic-bundle": "<1.7.6", 1694 | "pimcore/customer-management-framework-bundle": "<4.2.1", 1695 | "pimcore/data-hub": "<1.2.4", 1696 | "pimcore/data-importer": "<1.8.9|>=1.9,<1.9.3", 1697 | "pimcore/demo": "<10.3", 1698 | "pimcore/ecommerce-framework-bundle": "<1.0.10", 1699 | "pimcore/perspective-editor": "<1.5.1", 1700 | "pimcore/pimcore": "<11.5.4", 1701 | "piwik/piwik": "<1.11", 1702 | "pixelfed/pixelfed": "<0.12.5", 1703 | "plotly/plotly.js": "<2.25.2", 1704 | "pocketmine/bedrock-protocol": "<8.0.2", 1705 | "pocketmine/pocketmine-mp": "<5.32.1", 1706 | "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1", 1707 | "pressbooks/pressbooks": "<5.18", 1708 | "prestashop/autoupgrade": ">=4,<4.10.1", 1709 | "prestashop/blockreassurance": "<=5.1.3", 1710 | "prestashop/blockwishlist": ">=2,<2.1.1", 1711 | "prestashop/contactform": ">=1.0.1,<4.3", 1712 | "prestashop/gamification": "<2.3.2", 1713 | "prestashop/prestashop": "<8.2.3", 1714 | "prestashop/productcomments": "<5.0.2", 1715 | "prestashop/ps_checkout": "<4.4.1|>=5,<5.0.5", 1716 | "prestashop/ps_contactinfo": "<=3.3.2", 1717 | "prestashop/ps_emailsubscription": "<2.6.1", 1718 | "prestashop/ps_facetedsearch": "<3.4.1", 1719 | "prestashop/ps_linklist": "<3.1", 1720 | "privatebin/privatebin": "<1.4|>=1.5,<1.7.4|>=1.7.7,<2.0.2", 1721 | "processwire/processwire": "<=3.0.246", 1722 | "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", 1723 | "propel/propel1": ">=1,<=1.7.1", 1724 | "pterodactyl/panel": "<=1.11.10", 1725 | "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2", 1726 | "ptrofimov/beanstalk_console": "<1.7.14", 1727 | "pubnub/pubnub": "<6.1", 1728 | "punktde/pt_extbase": "<1.5.1", 1729 | "pusher/pusher-php-server": "<2.2.1", 1730 | "pwweb/laravel-core": "<=0.3.6.0-beta", 1731 | "pxlrbt/filament-excel": "<1.1.14|>=2.0.0.0-alpha,<2.3.3", 1732 | "pyrocms/pyrocms": "<=3.9.1", 1733 | "qcubed/qcubed": "<=3.1.1", 1734 | "quickapps/cms": "<=2.0.0.0-beta2", 1735 | "rainlab/blog-plugin": "<1.4.1", 1736 | "rainlab/debugbar-plugin": "<3.1", 1737 | "rainlab/user-plugin": "<=1.4.5", 1738 | "rankmath/seo-by-rank-math": "<=1.0.95", 1739 | "rap2hpoutre/laravel-log-viewer": "<0.13", 1740 | "react/http": ">=0.7,<1.9", 1741 | "really-simple-plugins/complianz-gdpr": "<6.4.2", 1742 | "redaxo/source": "<5.18.3", 1743 | "remdex/livehelperchat": "<4.29", 1744 | "renolit/reint-downloadmanager": "<4.0.2|>=5,<5.0.1", 1745 | "reportico-web/reportico": "<=8.1", 1746 | "rhukster/dom-sanitizer": "<1.0.7", 1747 | "rmccue/requests": ">=1.6,<1.8", 1748 | "robrichards/xmlseclibs": ">=1,<3.0.4", 1749 | "roots/soil": "<4.1", 1750 | "roundcube/roundcubemail": "<1.5.10|>=1.6,<1.6.11", 1751 | "rudloff/alltube": "<3.0.3", 1752 | "rudloff/rtmpdump-bin": "<=2.3.1", 1753 | "s-cart/core": "<=9.0.5", 1754 | "s-cart/s-cart": "<6.9", 1755 | "sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1", 1756 | "sabre/dav": ">=1.6,<1.7.11|>=1.8,<1.8.9", 1757 | "samwilson/unlinked-wikibase": "<1.42", 1758 | "scheb/two-factor-bundle": "<3.26|>=4,<4.11", 1759 | "sensiolabs/connect": "<4.2.3", 1760 | "serluck/phpwhois": "<=4.2.6", 1761 | "setasign/fpdi": "<2.6.4", 1762 | "sfroemken/url_redirect": "<=1.2.1", 1763 | "sheng/yiicms": "<1.2.1", 1764 | "shopware/core": "<6.6.10.7-dev|>=6.7,<6.7.3.1-dev", 1765 | "shopware/platform": "<6.6.10.7-dev|>=6.7,<6.7.3.1-dev", 1766 | "shopware/production": "<=6.3.5.2", 1767 | "shopware/shopware": "<=5.7.17|>=6.7,<6.7.2.1-dev", 1768 | "shopware/storefront": "<=6.4.8.1|>=6.5.8,<6.5.8.7-dev", 1769 | "shopxo/shopxo": "<=6.4", 1770 | "showdoc/showdoc": "<2.10.4", 1771 | "shuchkin/simplexlsx": ">=1.0.12,<1.1.13", 1772 | "silverstripe-australia/advancedreports": ">=1,<=2", 1773 | "silverstripe/admin": "<1.13.19|>=2,<2.1.8", 1774 | "silverstripe/assets": ">=1,<1.11.1", 1775 | "silverstripe/cms": "<4.11.3", 1776 | "silverstripe/comments": ">=1.3,<3.1.1", 1777 | "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", 1778 | "silverstripe/framework": "<5.3.23", 1779 | "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3", 1780 | "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", 1781 | "silverstripe/recipe-cms": ">=4.5,<4.5.3", 1782 | "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", 1783 | "silverstripe/reports": "<5.2.3", 1784 | "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2", 1785 | "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", 1786 | "silverstripe/subsites": ">=2,<2.6.1", 1787 | "silverstripe/taxonomy": ">=1.3,<1.3.1|>=2,<2.0.1", 1788 | "silverstripe/userforms": "<3|>=5,<5.4.2", 1789 | "silverstripe/versioned-admin": ">=1,<1.11.1", 1790 | "simogeo/filemanager": "<=2.5", 1791 | "simple-updates/phpwhois": "<=1", 1792 | "simplesamlphp/saml2": "<=4.16.15|>=5.0.0.0-alpha1,<=5.0.0.0-alpha19", 1793 | "simplesamlphp/saml2-legacy": "<=4.16.15", 1794 | "simplesamlphp/simplesamlphp": "<1.18.6", 1795 | "simplesamlphp/simplesamlphp-module-infocard": "<1.0.1", 1796 | "simplesamlphp/simplesamlphp-module-openid": "<1", 1797 | "simplesamlphp/simplesamlphp-module-openidprovider": "<0.9", 1798 | "simplesamlphp/xml-common": "<1.20", 1799 | "simplesamlphp/xml-security": "==1.6.11", 1800 | "simplito/elliptic-php": "<1.0.6", 1801 | "sitegeist/fluid-components": "<3.5", 1802 | "sjbr/sr-feuser-register": "<2.6.2|>=5.1,<12.5", 1803 | "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3", 1804 | "sjbr/static-info-tables": "<2.3.1", 1805 | "slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1", 1806 | "slim/slim": "<2.6", 1807 | "slub/slub-events": "<3.0.3", 1808 | "smarty/smarty": "<4.5.3|>=5,<5.1.1", 1809 | "snipe/snipe-it": "<8.1.18", 1810 | "socalnick/scn-social-auth": "<1.15.2", 1811 | "socialiteproviders/steam": "<1.1", 1812 | "solspace/craft-freeform": ">=5,<5.10.16", 1813 | "soosyze/soosyze": "<=2", 1814 | "spatie/browsershot": "<5.0.5", 1815 | "spatie/image-optimizer": "<1.7.3", 1816 | "spencer14420/sp-php-email-handler": "<1", 1817 | "spipu/html2pdf": "<5.2.8", 1818 | "spiral/roadrunner": "<2025.1", 1819 | "spoon/library": "<1.4.1", 1820 | "spoonity/tcpdf": "<6.2.22", 1821 | "squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1", 1822 | "ssddanbrown/bookstack": "<24.05.1", 1823 | "starcitizentools/citizen-skin": ">=1.9.4,<3.9", 1824 | "starcitizentools/short-description": ">=4,<4.0.1", 1825 | "starcitizentools/tabber-neue": ">=1.9.1,<2.7.2|>=3,<3.1.1", 1826 | "starcitizenwiki/embedvideo": "<=4", 1827 | "statamic/cms": "<=5.16", 1828 | "stormpath/sdk": "<9.9.99", 1829 | "studio-42/elfinder": "<=2.1.64", 1830 | "studiomitte/friendlycaptcha": "<0.1.4", 1831 | "subhh/libconnect": "<7.0.8|>=8,<8.1", 1832 | "sukohi/surpass": "<1", 1833 | "sulu/form-bundle": ">=2,<2.5.3", 1834 | "sulu/sulu": "<1.6.44|>=2,<2.5.25|>=2.6,<2.6.9|>=3.0.0.0-alpha1,<3.0.0.0-alpha3", 1835 | "sumocoders/framework-user-bundle": "<1.4", 1836 | "superbig/craft-audit": "<3.0.2", 1837 | "svewap/a21glossary": "<=0.4.10", 1838 | "swag/paypal": "<5.4.4", 1839 | "swiftmailer/swiftmailer": "<6.2.5", 1840 | "swiftyedit/swiftyedit": "<1.2", 1841 | "sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2", 1842 | "sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1", 1843 | "sylius/grid-bundle": "<1.10.1", 1844 | "sylius/paypal-plugin": "<1.6.2|>=1.7,<1.7.2|>=2,<2.0.2", 1845 | "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", 1846 | "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4", 1847 | "symbiote/silverstripe-multivaluefield": ">=3,<3.1", 1848 | "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", 1849 | "symbiote/silverstripe-seed": "<6.0.3", 1850 | "symbiote/silverstripe-versionedfiles": "<=2.0.3", 1851 | "symfont/process": ">=0", 1852 | "symfony/cache": ">=3.1,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8", 1853 | "symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", 1854 | "symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4", 1855 | "symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1", 1856 | "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<5.3.15|>=5.4.3,<5.4.4|>=6.0.3,<6.0.4", 1857 | "symfony/http-client": ">=4.3,<5.4.47|>=6,<6.4.15|>=7,<7.1.8", 1858 | "symfony/http-foundation": "<5.4.46|>=6,<6.4.14|>=7,<7.1.7", 1859 | "symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6", 1860 | "symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13", 1861 | "symfony/maker-bundle": ">=1.27,<1.29.2|>=1.30,<1.31.1", 1862 | "symfony/mime": ">=4.3,<4.3.8", 1863 | "symfony/phpunit-bridge": ">=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", 1864 | "symfony/polyfill": ">=1,<1.10", 1865 | "symfony/polyfill-php55": ">=1,<1.10", 1866 | "symfony/process": "<5.4.46|>=6,<6.4.14|>=7,<7.1.7", 1867 | "symfony/proxy-manager-bridge": ">=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7", 1868 | "symfony/routing": ">=2,<2.0.19", 1869 | "symfony/runtime": ">=5.3,<5.4.46|>=6,<6.4.14|>=7,<7.1.7", 1870 | "symfony/security": ">=2,<2.7.51|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.8", 1871 | "symfony/security-bundle": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.4.10|>=7,<7.0.10|>=7.1,<7.1.3", 1872 | "symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9", 1873 | "symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11", 1874 | "symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8", 1875 | "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.4.47|>=6,<6.4.15|>=7,<7.1.8", 1876 | "symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12", 1877 | "symfony/symfony": "<5.4.47|>=6,<6.4.15|>=7,<7.1.8", 1878 | "symfony/translation": ">=2,<2.0.17", 1879 | "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8", 1880 | "symfony/ux-autocomplete": "<2.11.2", 1881 | "symfony/ux-live-component": "<2.25.1", 1882 | "symfony/ux-twig-component": "<2.25.1", 1883 | "symfony/validator": "<5.4.43|>=6,<6.4.11|>=7,<7.1.4", 1884 | "symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8", 1885 | "symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4", 1886 | "symfony/webhook": ">=6.3,<6.3.8", 1887 | "symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7|>=2.2.0.0-beta1,<2.2.0.0-beta2", 1888 | "symphonycms/symphony-2": "<2.6.4", 1889 | "t3/dce": "<0.11.5|>=2.2,<2.6.2", 1890 | "t3g/svg-sanitizer": "<1.0.3", 1891 | "t3s/content-consent": "<1.0.3|>=2,<2.0.2", 1892 | "tastyigniter/tastyigniter": "<4", 1893 | "tcg/voyager": "<=1.8", 1894 | "tecnickcom/tc-lib-pdf-font": "<2.6.4", 1895 | "tecnickcom/tcpdf": "<6.8", 1896 | "terminal42/contao-tablelookupwizard": "<3.3.5", 1897 | "thelia/backoffice-default-template": ">=2.1,<2.1.2", 1898 | "thelia/thelia": ">=2.1,<2.1.3", 1899 | "theonedemon/phpwhois": "<=4.2.5", 1900 | "thinkcmf/thinkcmf": "<6.0.8", 1901 | "thorsten/phpmyfaq": "<=4.0.1|>=4.0.7,<4.0.13", 1902 | "tikiwiki/tiki-manager": "<=17.1", 1903 | "timber/timber": ">=0.16.6,<1.23.1|>=1.24,<1.24.1|>=2,<2.1", 1904 | "tinymce/tinymce": "<7.2", 1905 | "tinymighty/wiki-seo": "<1.2.2", 1906 | "titon/framework": "<9.9.99", 1907 | "tltneon/lgsl": "<7", 1908 | "tobiasbg/tablepress": "<=2.0.0.0-RC1", 1909 | "topthink/framework": "<6.0.17|>=6.1,<=8.0.4", 1910 | "topthink/think": "<=6.1.1", 1911 | "topthink/thinkphp": "<=3.2.3|>=6.1.3,<=8.0.4", 1912 | "torrentpier/torrentpier": "<=2.4.3", 1913 | "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", 1914 | "tribalsystems/zenario": "<=9.7.61188", 1915 | "truckersmp/phpwhois": "<=4.3.1", 1916 | "ttskch/pagination-service-provider": "<1", 1917 | "twbs/bootstrap": "<3.4.1|>=4,<4.3.1", 1918 | "twig/twig": "<3.11.2|>=3.12,<3.14.1|>=3.16,<3.19", 1919 | "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", 1920 | "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", 1921 | "typo3/cms-belog": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", 1922 | "typo3/cms-beuser": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", 1923 | "typo3/cms-core": "<=8.7.56|>=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", 1924 | "typo3/cms-dashboard": ">=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", 1925 | "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1", 1926 | "typo3/cms-extensionmanager": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", 1927 | "typo3/cms-felogin": ">=4.2,<4.2.3", 1928 | "typo3/cms-fluid": "<4.3.4|>=4.4,<4.4.1", 1929 | "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", 1930 | "typo3/cms-frontend": "<4.3.9|>=4.4,<4.4.5", 1931 | "typo3/cms-indexed-search": ">=10,<=10.4.47|>=11,<=11.5.41|>=12,<=12.4.24|>=13,<=13.4.2", 1932 | "typo3/cms-install": "<4.1.14|>=4.2,<4.2.16|>=4.3,<4.3.9|>=4.4,<4.4.5|>=12.2,<12.4.8|==13.4.2", 1933 | "typo3/cms-lowlevel": ">=11,<=11.5.41", 1934 | "typo3/cms-recordlist": ">=11,<11.5.48", 1935 | "typo3/cms-recycler": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", 1936 | "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30", 1937 | "typo3/cms-scheduler": ">=11,<=11.5.41", 1938 | "typo3/cms-setup": ">=9,<=9.5.50|>=10,<=10.4.49|>=11,<=11.5.43|>=12,<=12.4.30|>=13,<=13.4.11", 1939 | "typo3/cms-webhooks": ">=12,<=12.4.30|>=13,<=13.4.11", 1940 | "typo3/cms-workspaces": ">=9,<9.5.55|>=10,<10.4.54|>=11,<11.5.48|>=12,<12.4.37|>=13,<13.4.18", 1941 | "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6", 1942 | "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3", 1943 | "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3", 1944 | "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", 1945 | "typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5", 1946 | "typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10", 1947 | "ua-parser/uap-php": "<3.8", 1948 | "uasoft-indonesia/badaso": "<=2.9.7", 1949 | "unisharp/laravel-filemanager": "<2.9.1", 1950 | "universal-omega/dynamic-page-list3": "<3.6.4", 1951 | "unopim/unopim": "<=0.3", 1952 | "userfrosting/userfrosting": ">=0.3.1,<4.6.3", 1953 | "usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2", 1954 | "uvdesk/community-skeleton": "<=1.1.1", 1955 | "uvdesk/core-framework": "<=1.1.1", 1956 | "vanilla/safecurl": "<0.9.2", 1957 | "verbb/comments": "<1.5.5", 1958 | "verbb/formie": "<=2.1.43", 1959 | "verbb/image-resizer": "<2.0.9", 1960 | "verbb/knock-knock": "<1.2.8", 1961 | "verot/class.upload.php": "<=2.1.6", 1962 | "vertexvaar/falsftp": "<0.2.6", 1963 | "villagedefrance/opencart-overclocked": "<=1.11.1", 1964 | "vova07/yii2-fileapi-widget": "<0.1.9", 1965 | "vrana/adminer": "<=4.8.1", 1966 | "vufind/vufind": ">=2,<9.1.1", 1967 | "waldhacker/hcaptcha": "<2.1.2", 1968 | "wallabag/tcpdf": "<6.2.22", 1969 | "wallabag/wallabag": "<2.6.11", 1970 | "wanglelecc/laracms": "<=1.0.3", 1971 | "wapplersystems/a21glossary": "<=0.4.10", 1972 | "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9", 1973 | "web-auth/webauthn-lib": ">=4.5,<4.9", 1974 | "web-feet/coastercms": "==5.5", 1975 | "web-tp3/wec_map": "<3.0.3", 1976 | "webbuilders-group/silverstripe-kapost-bridge": "<0.4", 1977 | "webcoast/deferred-image-processing": "<1.0.2", 1978 | "webklex/laravel-imap": "<5.3", 1979 | "webklex/php-imap": "<5.3", 1980 | "webpa/webpa": "<3.1.2", 1981 | "webreinvent/vaahcms": "<=2.3.1", 1982 | "wikibase/wikibase": "<=1.39.3", 1983 | "wikimedia/parsoid": "<0.12.2", 1984 | "willdurand/js-translation-bundle": "<2.1.1", 1985 | "winter/wn-backend-module": "<1.2.4", 1986 | "winter/wn-cms-module": "<1.0.476|>=1.1,<1.1.11|>=1.2,<1.2.7", 1987 | "winter/wn-dusk-plugin": "<2.1", 1988 | "winter/wn-system-module": "<1.2.4", 1989 | "wintercms/winter": "<=1.2.3", 1990 | "wireui/wireui": "<1.19.3|>=2,<2.1.3", 1991 | "woocommerce/woocommerce": "<6.6|>=8.8,<8.8.5|>=8.9,<8.9.3", 1992 | "wp-cli/wp-cli": ">=0.12,<2.5", 1993 | "wp-graphql/wp-graphql": "<=1.14.5", 1994 | "wp-premium/gravityforms": "<2.4.21", 1995 | "wpanel/wpanel4-cms": "<=4.3.1", 1996 | "wpcloud/wp-stateless": "<3.2", 1997 | "wpglobus/wpglobus": "<=1.9.6", 1998 | "wwbn/avideo": "<14.3", 1999 | "xataface/xataface": "<3", 2000 | "xpressengine/xpressengine": "<3.0.15", 2001 | "yab/quarx": "<2.4.5", 2002 | "yeswiki/yeswiki": "<=4.5.4", 2003 | "yetiforce/yetiforce-crm": "<6.5", 2004 | "yidashi/yii2cmf": "<=2", 2005 | "yii2mod/yii2-cms": "<1.9.2", 2006 | "yiisoft/yii": "<1.1.31", 2007 | "yiisoft/yii2": "<2.0.52", 2008 | "yiisoft/yii2-authclient": "<2.2.15", 2009 | "yiisoft/yii2-bootstrap": "<2.0.4", 2010 | "yiisoft/yii2-dev": "<=2.0.45", 2011 | "yiisoft/yii2-elasticsearch": "<2.0.5", 2012 | "yiisoft/yii2-gii": "<=2.2.4", 2013 | "yiisoft/yii2-jui": "<2.0.4", 2014 | "yiisoft/yii2-redis": "<2.0.20", 2015 | "yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6", 2016 | "yoast-seo-for-typo3/yoast_seo": "<7.2.3", 2017 | "yourls/yourls": "<=1.8.2", 2018 | "yuan1994/tpadmin": "<=1.3.12", 2019 | "z-push/z-push-dev": "<2.7.6", 2020 | "zencart/zencart": "<=1.5.7.0-beta", 2021 | "zendesk/zendesk_api_client_php": "<2.2.11", 2022 | "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3", 2023 | "zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2", 2024 | "zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2", 2025 | "zendframework/zend-db": "<2.2.10|>=2.3,<2.3.5", 2026 | "zendframework/zend-developer-tools": ">=1.2.2,<1.2.3", 2027 | "zendframework/zend-diactoros": "<1.8.4", 2028 | "zendframework/zend-feed": "<2.10.3", 2029 | "zendframework/zend-form": ">=2,<2.2.7|>=2.3,<2.3.1", 2030 | "zendframework/zend-http": "<2.8.1", 2031 | "zendframework/zend-json": ">=2.1,<2.1.6|>=2.2,<2.2.6", 2032 | "zendframework/zend-ldap": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.8|>=2.3,<2.3.3", 2033 | "zendframework/zend-mail": "<2.4.11|>=2.5,<2.7.2", 2034 | "zendframework/zend-navigation": ">=2,<2.2.7|>=2.3,<2.3.1", 2035 | "zendframework/zend-session": ">=2,<2.2.9|>=2.3,<2.3.4", 2036 | "zendframework/zend-validator": ">=2.3,<2.3.6", 2037 | "zendframework/zend-view": ">=2,<2.2.7|>=2.3,<2.3.1", 2038 | "zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6", 2039 | "zendframework/zendframework": "<=3", 2040 | "zendframework/zendframework1": "<1.12.20", 2041 | "zendframework/zendopenid": "<2.0.2", 2042 | "zendframework/zendrest": "<2.0.2", 2043 | "zendframework/zendservice-amazon": "<2.0.3", 2044 | "zendframework/zendservice-api": "<1", 2045 | "zendframework/zendservice-audioscrobbler": "<2.0.2", 2046 | "zendframework/zendservice-nirvanix": "<2.0.2", 2047 | "zendframework/zendservice-slideshare": "<2.0.2", 2048 | "zendframework/zendservice-technorati": "<2.0.2", 2049 | "zendframework/zendservice-windowsazure": "<2.0.2", 2050 | "zendframework/zendxml": ">=1,<1.0.1", 2051 | "zenstruck/collection": "<0.2.1", 2052 | "zetacomponents/mail": "<1.8.2", 2053 | "zf-commons/zfc-user": "<1.2.2", 2054 | "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3", 2055 | "zfr/zfr-oauth2-server-module": "<0.1.2", 2056 | "zoujingli/thinkadmin": "<=6.1.53" 2057 | }, 2058 | "default-branch": true, 2059 | "type": "metapackage", 2060 | "notification-url": "https://packagist.org/downloads/", 2061 | "license": [ 2062 | "MIT" 2063 | ], 2064 | "authors": [ 2065 | { 2066 | "name": "Marco Pivetta", 2067 | "email": "ocramius@gmail.com", 2068 | "role": "maintainer" 2069 | }, 2070 | { 2071 | "name": "Ilya Tribusean", 2072 | "email": "slash3b@gmail.com", 2073 | "role": "maintainer" 2074 | } 2075 | ], 2076 | "description": "Prevents installation of composer packages with known security vulnerabilities: no API, simply require it", 2077 | "keywords": [ 2078 | "dev" 2079 | ], 2080 | "support": { 2081 | "issues": "https://github.com/Roave/SecurityAdvisories/issues", 2082 | "source": "https://github.com/Roave/SecurityAdvisories/tree/latest" 2083 | }, 2084 | "funding": [ 2085 | { 2086 | "url": "https://github.com/Ocramius", 2087 | "type": "github" 2088 | }, 2089 | { 2090 | "url": "https://tidelift.com/funding/github/packagist/roave/security-advisories", 2091 | "type": "tidelift" 2092 | } 2093 | ], 2094 | "time": "2025-10-29T11:05:54+00:00" 2095 | }, 2096 | { 2097 | "name": "symfony/var-dumper", 2098 | "version": "6.4.x-dev", 2099 | "source": { 2100 | "type": "git", 2101 | "url": "https://github.com/symfony/var-dumper.git", 2102 | "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a" 2103 | }, 2104 | "dist": { 2105 | "type": "zip", 2106 | "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfae1497a2f1eaad78dbc0590311c599c7178d4a", 2107 | "reference": "cfae1497a2f1eaad78dbc0590311c599c7178d4a", 2108 | "shasum": "" 2109 | }, 2110 | "require": { 2111 | "php": ">=8.1", 2112 | "symfony/deprecation-contracts": "^2.5|^3", 2113 | "symfony/polyfill-mbstring": "~1.0" 2114 | }, 2115 | "conflict": { 2116 | "symfony/console": "<5.4" 2117 | }, 2118 | "require-dev": { 2119 | "symfony/console": "^5.4|^6.0|^7.0", 2120 | "symfony/error-handler": "^6.3|^7.0", 2121 | "symfony/http-kernel": "^5.4|^6.0|^7.0", 2122 | "symfony/process": "^5.4|^6.0|^7.0", 2123 | "symfony/uid": "^5.4|^6.0|^7.0", 2124 | "twig/twig": "^2.13|^3.0.4" 2125 | }, 2126 | "bin": [ 2127 | "Resources/bin/var-dump-server" 2128 | ], 2129 | "type": "library", 2130 | "autoload": { 2131 | "files": [ 2132 | "Resources/functions/dump.php" 2133 | ], 2134 | "psr-4": { 2135 | "Symfony\\Component\\VarDumper\\": "" 2136 | }, 2137 | "exclude-from-classmap": [ 2138 | "/Tests/" 2139 | ] 2140 | }, 2141 | "notification-url": "https://packagist.org/downloads/", 2142 | "license": [ 2143 | "MIT" 2144 | ], 2145 | "authors": [ 2146 | { 2147 | "name": "Nicolas Grekas", 2148 | "email": "p@tchwork.com" 2149 | }, 2150 | { 2151 | "name": "Symfony Community", 2152 | "homepage": "https://symfony.com/contributors" 2153 | } 2154 | ], 2155 | "description": "Provides mechanisms for walking through any arbitrary PHP variable", 2156 | "homepage": "https://symfony.com", 2157 | "keywords": [ 2158 | "debug", 2159 | "dump" 2160 | ], 2161 | "support": { 2162 | "source": "https://github.com/symfony/var-dumper/tree/6.4" 2163 | }, 2164 | "funding": [ 2165 | { 2166 | "url": "https://symfony.com/sponsor", 2167 | "type": "custom" 2168 | }, 2169 | { 2170 | "url": "https://github.com/fabpot", 2171 | "type": "github" 2172 | }, 2173 | { 2174 | "url": "https://github.com/nicolas-grekas", 2175 | "type": "github" 2176 | }, 2177 | { 2178 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 2179 | "type": "tidelift" 2180 | } 2181 | ], 2182 | "time": "2025-09-25T15:37:27+00:00" 2183 | } 2184 | ], 2185 | "aliases": [], 2186 | "minimum-stability": "dev", 2187 | "stability-flags": { 2188 | "roave/security-advisories": 20 2189 | }, 2190 | "prefer-stable": false, 2191 | "prefer-lowest": false, 2192 | "platform": { 2193 | "php": ">=8.3", 2194 | "ext-readline": "*" 2195 | }, 2196 | "platform-dev": [], 2197 | "platform-overrides": { 2198 | "php": "8.3" 2199 | }, 2200 | "plugin-api-version": "2.6.0" 2201 | } 2202 | --------------------------------------------------------------------------------