├── 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 | 
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 |
--------------------------------------------------------------------------------