diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..3eac7de8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,17 @@ +# EditorConfig: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +# Unix-style newlines with a newline ending every file +[*] +end_of_line = lf +insert_final_newline = true +indent_style = space +indent_size = 4 + +# Secrets and defaults should not have a newline at their eof. +[secrets/*,defaults/*] +end_of_line = lf +insert_final_newline = false +indent_size = 0 diff --git a/.env b/.env new file mode 100644 index 00000000..7bc56de4 --- /dev/null +++ b/.env @@ -0,0 +1,37 @@ +# Provide environment variables for configuring docker-compose, *not* the +# containers themselves. +# +# Note that this is simple string assignment, quotes should *not* be used. +# Multiple lines or commands, or bash syntax will not work. +# +# References: +# - https://docs.docker.com/compose/env-file/ +# - https://docs.docker.com/compose/reference/envvars/ +COMPOSE_PROJECT_NAME=isle-buildkit + +# Use buildkit when building images. +COMPOSE_DOCKER_CLI_BUILD=1 +DOCKER_BUILDKIT=1 + +# Required for traefik on OSX (inconsistent behavior). +DOCKER_CLIENT_TIMEOUT=120 +COMPOSE_HTTP_TIMEOUT=120 + +# The consistency requirements for bind mounts; one of: +# +# - consistent: Full consistency. The container runtime and the host maintain an identical view of the mount at all times. +# - cached: The host's view of the mount is authoritative. There may be delays before updates made on the host are visible within a container. +# - delegated: The container runtime's view of the mount is authoritative. There may be delays before updates made in a container are visible on the host. +# +# Note that using 'consistent' can be very slow. +CONSISTENCY=delegated + +# The Docker image repository, to use for isle-buildkit images. +# +# "local" is produced by building isle-buildkit manually +# "islandora" is pulled from DockerHub. +# +REPOSITORY=registry.islandora.dev:5000 + +# The version of the isle-buildkit images to use. +TAG=latest diff --git a/.gitignore b/.gitignore index 5aa41136..d9ed2266 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,3 @@ scratch scratch.md volumes -/docker-compose.yml \ No newline at end of file diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..f5105684 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,29 @@ +# We do not want to modify whitespace or add newlines to specific files, namely: +# - Certs +# - Keys +# - Patches (Should match 100% the source from which they were derived) +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.3.0 + hooks: + - id: check-case-conflict + - id: check-json + - id: check-shebang-scripts-are-executable + - id: check-symlinks + - id: check-yaml + - id: end-of-file-fixer + exclude: &format-exclude secrets/.*|defaults/.*|cert.pem.tmpl|private.key.tmpl|rootCA.pem.tmpl|admin.private.key.tmpl|admin.public.key.tmpl|private.key.tmpl|public.key.tmpl|.patch + - id: mixed-line-ending + - id: trailing-whitespace + exclude: *format-exclude + - repo: https://github.com/gruntwork-io/pre-commit + rev: v0.1.17 + hooks: + - id: shellcheck + exclude: &shell-exclude gradlew|.patch + - repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 3.0.0 + hooks: + - id: shfmt + files: finish + exclude: *shell-exclude diff --git a/.vscode/settings.json b/.vscode/settings.json index 3ece655c..a0976460 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -14,25 +14,53 @@ "composer": "shellscript" }, "cSpell.words": [ + "abuild", + "autoconfigure", + "autowire", "binarystorage", + "Blazegraph", + "buildkit", "CAROOT", "catchable", "classpath", "Confd", + "confdir", + "contenv", + "crayfits", "crond", "elif", + "execline", + "execlineb", "fastcgi", + "FCREPO", "filesize", "getenv", + "gradlew", + "homarus", "islandora", + "JNA", + "jsonld", + "karaf", "KEEPALIVE", + "libc", + "Matomo", "mkcert", "MODESHAPE", + "mysqld", "nativeplatform", "nocopy", + "oneshot", "POSTGRESQL", "proxied", + "ripgrep", + "rootfs", + "shellcheck", + "shfmt", "SIGTERM", + "subsite", + "svwait", + "tmpl", + "traefik", "xdebug" ] -} \ No newline at end of file +} diff --git a/README.md b/README.md index 85bd44b9..21d86f14 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,7 @@ - [Build All Images](#build-all-images) - [Build Specific Image](#build-specific-image) - [Building Continuously](#building-continuously) +- [Testing](#testing) - [Running](#running) - [Docker Images](#docker-images) - [Design Considerations](#design-considerations) @@ -23,19 +24,16 @@ ## Introduction This repository provides a number of docker images which can be used to build an -Islandora 8 site. On commit, these images are automatically pushed to -[Docker Hub](https://hub.docker.com/u/islandora) via Github Actions. Which are -consumed by [isle-dc] and can be used by other Docker orchestration tools such -as Swarm / Kubernetes. +Islandora site. On commit, these images are automatically pushed to +[Docker Hub] via Github Actions. Which are consumed by [isle-dc] and can be used +by other Docker orchestration tools such as Swarm / Kubernetes. It is **not** meant as a starting point for new users or those unfamiliar with -Docker, or basic server adminstration. +Docker, or basic server administration. -If you are looking to use islandora please read the -[official documentation](https://islandora.github.io/documentation/) and use -either [isle-dc] to deploy via Docker or the -[islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to -deploy via Ansible. +If you are looking to use islandora please read the [official documentation] and +use either [isle-dc] or the [Isle Site Template] to deploy via [Docker] or the +[islandora-playbook] to deploy via [Ansible]. ## Requirements @@ -98,18 +96,18 @@ base:build - Creates Docker image. ``` In Gradle each Project maps onto a folder in the file system path where it is -delimited by ``:`` instead of ``/`` (Unix) or ``\`` (Windows). +delimited by `:` instead of `/` (Unix) or `\` (Windows). -The root project ``:`` can be omitted. +The root project `:` can be omitted. -So if you want to run a particular task ``taskname`` that resided in the project -folder ``project/subproject`` you would specify it like so: +So if you want to run a particular task `taskname` that resided in the project +folder `project/subproject` you would specify it like so: ```bash ./gradlew :project:subproject:taskname ``` -To get more verbose output from Gradle use the ``--info`` argument like so: +To get more verbose output from Gradle use the `--info` argument like so: ```bash ./gradlew :PROJECT:TASK --info @@ -128,7 +126,7 @@ The following will build all the images in the correct order. ### Build Specific Image To build a specific image and it's dependencies, for example -``islandora/tomcat``, you can use the following: +`islandora/tomcat`, you can use the following: ```bash ./gradlew tomcat:build @@ -137,80 +135,136 @@ To build a specific image and it's dependencies, for example ### Building Continuously It is often helpful to build continuously where-in any change you make to any of -the Dockerfiles or other project files, will automatically trigger the building -of that image and any downstream dependencies. To do this add the -``--continuous`` flag like so: +the `Dockerfile` files or other project files, will automatically trigger the +building of that image and any downstream dependencies. To do this add the +`--continuous` flag like so: ```bash ./gradlew build --continuous ``` -When this is combined with the use of ``watchtower`` and -``restart: unless-stopped`` in a ``docker-compose.yml`` file. Images will be -redeployed with the latest changes while you develop automatically. +## Testing + +There are a number of automated tests that are included in this repository which +can be found in the `tests` folders of each docker image project. + +To run these tests use the following command: + +```bash +./gradlew test +``` + +To manually test changes in a functioning environment use the command: + +```bash +./gradlew up +``` + +This will bring up the environment based on [islandora-starter-site]. When +completed a message will print like so: + +``` +For all services the credentials are: + +Username: admin +Password: password + +The following services can be reached at the given URLs: + +ActiveMQ: https://activemq.islandora.dev/ +Blazegraph: https://blazegraph.islandora.dev/bigdata/ +Drupal: https://islandora.dev/ +Fedora: https://fcrepo.islandora.dev/fcrepo/rest/ +Matomo: https://islandora.dev/matomo/index.php +Solr: https://solr.islandora.dev/solr/#/ +Traefik: https://traefik.islandora.dev/dashboard/#/ +``` + +To destroy this environment use the following command: + +```bash +./gradlew down +``` + +The two commands can be used at once to ensure you are starting from a clean +environment: + +```bash +./gradlew down up +``` ## Running -There is no method for running the containers in `isle-buildkit`, instead please -refer to [isle-dc]. +While `isle-buildkit` does provide a [test environment](#testing), it is not +meant for development on Islandora or as production environment. Instead please +refer to [isle-dc], or the [Isle Site Template], for how to build your own +Islandora site. ## Docker Images The following docker images are provided: -- [abuild](./abuild/README.md) -- [activemq](./activemq/README.md) -- [alpaca](./alpaca/README.md) -- [base](./base/README.md) -- [blazegraph](./blazegraph/README.md) -- [cantaloupe](./cantaloupe/README.md) -- [crayfish](./crayfish/README.md) -- [crayfits](./crayfits/README.md) -- [demo](./demo/README.md) -- [drupal](./drupal/README.md) -- [fcrepo](./fcrepo/README.md) -- [fits](./fits/README.md) -- [handle](./handle/README.md) -- [homarus](./homarus/README.md) -- [houdini](./houdini/README.md) -- [hypercube](./hypercube/README.md) -- [imagemagick](./imagemagick/README.md) -- [java](./java/README.md) -- [karaf](./karaf/README.md) -- [mariadb](./mariadb/README.md) -- [matomo](./matomo/README.md) -- [milliner](./milliner/README.md) -- [nginx](./nginx/README.md) -- [postgresql](./postgresql/README.md) -- [recast](./recast/README.md) -- [solr](./solr/README.md) -- [tomcat](./tomcat/README.md) +- [abuild] +- [activemq] +- [alpaca] +- [base] +- [blazegraph] +- [cantaloupe] +- [crayfish] +- [crayfits] +- [drupal] +- [fcrepo] +- [fcrepo6] +- [fits] +- [handle] +- [homarus] +- [houdini] +- [hypercube] +- [imagemagick] +- [java] +- [karaf] +- [mariadb] +- [matomo] +- [milliner] +- [nginx] +- [postgresql] +- [recast] +- [ripgrep] +- [solr] +- [test] +- [tomcat] Many are intermediate images used to build other images in the list, for example -[java](./java/README.md). Please see the README of each image to find out what -settings, and ports, are exposed and what functionality it provides. +[java](./java/README.md). Please see the `README.md` of each image to find out +what settings, and ports, are exposed and what functionality it provides, as +well as how to update it to the latest releases. ## Design Considerations All of the images build by this project are derived from the -[Alpine Docker Image](https://hub.docker.com/_/alpine) which is a Linux -distribution built around ``musl`` ``libc`` and ``BusyBox``. The image is only 5 -MB in size and has access to a package repository. It has been chosen for its -small size, and ease of generating custom packages (as is done in the -[imagemagick](./imagemagick/README.md) image). +[Alpine Docker Image] which is a Linux distribution built around [musl libc] and +[BusyBox]. + +> N.B. While [musl libc] is of general higher quality vs. [glibc], it is less +> commonly used and many libraries have come to depend on the undefined behavior +> of [glibc] so in some of our images we patch in [glibc] to ensure their +> correct function. -The [base](./base/README.md) image includes two tools essential to the -functioning of all the images. +The image is only `5MB` in size and has access to a package repository. It has +been chosen for its small size, and ease of generating custom packages (as is +done in the [imagemagick] image). -- [Confd](https://github.com/kelseyhightower/confd) - Configuration Management -- [S6 Overlay](https://github.com/just-containers/s6-overlay) - Process Manager - / Initialization system. +The [base] image includes two tools essential to the functioning of all the +images. + +- [Confd]: Configuration Management +- [S6 Overlay]: Process Manager / Initialization system ### Confd -``confd`` is used for all Configuration Management, it is how images are +`confd` is used for all Configuration Management, it is how images are customized on startup and during runtime. For each Docker image there will be a -folder ``rootfs/etc/confd`` that has the following layout: +folder `rootfs/etc/confd` that has the following layout: ```bash ./rootfs/etc/confd @@ -220,14 +274,14 @@ folder ``rootfs/etc/confd`` that has the following layout: └── file.ext.tmpl ``` -The ``file.ext.toml`` and ``file.ext.tmpl`` work as a pair. The ``toml`` file -defines where the template will be render to and who owns it, and the ``tmpl`` -file being the template in question. Ideally these files should match the same -name of the file they are generating minus the ``toml`` or ``tmpl`` suffix. This -is to make their discovery easier. +The `file.ext.toml` and `file.ext.tmpl` work as a pair. The `toml` file +defines where the template will be render to and who owns it. The `tmpl` file +being the template in question. Ideally these files should match the same name +of the file they are generating minus the `toml` or `tmpl` suffix. This is +to make their discovery easier. -Additionally in the ``base`` image there is ``confd.toml`` which sets defaults -such a the ``log-level``: +Additionally in the `base` image there is `confd.toml` which sets defaults +such a the `log-level`: ```toml backend = "env" @@ -237,12 +291,12 @@ interval = 600 noop = false ``` -``confd`` is also the source of all truth when it comes to configuration. We +`confd` is also the source of all truth when it comes to configuration. We have established a order of precedence in which environment variables at runtime are defined. 1. Confd backend (highest) -2. Secrets kept in `/run/secrets` (Except when using ``Kubernetes``) +2. Secrets kept in `/run/secrets` (Except when using `Kubernetes`) 3. Environment variables passed into the container 4. Environment variables defined in Dockerfile(s) 5. Environment variables defined in the `/etc/defaults` directory (lowest only used for multiline variables, such as JWT) @@ -252,61 +306,73 @@ list. > N.B. `/etc/defaults` and the environment variables declared in the > Dockerfile(s) used to create the image are **required** to define all -> environment variables used by scripts and ``confd`` templates. If not +> environment variables used by scripts and `confd` templates. If not > specified in either of those locations the environment variables will not be -> available even if its defined at a **higher** level i.e. ``confd``. +> available even if its defined at a **higher** level i.e. `confd`. The logic which enforces these rules is performed in -[00-container-environment-00-init.sh](./base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh) +[container-environment.sh](base/rootfs/etc/s6-overlay/scripts/container-environment.sh) > N.B Some containers derive environment variables dynamically from other > environment variables. In these cases they are expected to provided an -> additional startup script prefixed with ``00-container-environment-01-*.sh`` -> so that the variables are defined before ``confd`` is used to render +> additional `oneshot` services that must be executed before the `confd-oneshot` +> so that the variables are defined before `confd` is used to render > templates. -By either using the command ``with-contenv`` or starting a script with -``#!/usr/bin/with-contenv bash`` the environment defined will follow the order -of precedence above. Additionally Within ``confd`` templates it is **required** -to use `getenv` function for fetching data. +By either using the command `with-contenv` or starting a script with +`#!/command/with-contenv bash` the environment defined will follow the order +of precedence above. Additionally Within `confd` templates it is **required** +to use `getenv` function for fetching data, as the *final* value is written to +the container environment. ### S6 Overlay -From this tool we only really take advantage of two features: +[S6 Overlay] is the process supervisor we use in all the containers. It ensures +initialization happens in the correct order and services start in the correct +order (e.g. `fpm-php` starts prior to `nginx`, etc). -- Initialization scripts (*found in ``rootfs/etc/cont-init.d``*) -- Service scripts (*found in ``rootfs/etc/services.d``*) +There are two types of services: -Initialization scripts are run when the container is started and they execute in -alphabetical order. So to control the execution order they are prefix with -numbers. +- `oneshot` Services: Short lived services, used to prepare the container prior to running services +- `longrun` Services: Long lived services like Nginx -One initialization script ``01-confd-render-templates.sh`` is shared by all the -images. It does a first past render of the ``confd`` templates so subsequent -scripts can run. The rest of the scripts do the minimal steps required to get -the container into a ready state before the Service scripts start. +Both types of services can have dependencies on one another, which indicates the +order in which they are executed. `oneshot` services are run to **completion** +before their dependent services are executed. `longrun` services are meant to +run indefinitely, if for some reason one fails the container will stop and exit +with the code of the failed service (provided a `finish` script is provided). -The services scripts have the following structure: +The `longrun` services have the following structure: ```bash -./rootfs/etc/services.d +./rootfs/etc/s6-overlay/s6-rc.d └── SERVICE_NAME + ├── dependencies.d + │ └── base ├── finish - └── run + ├── run + └── type ``` -The ``run`` script is responsible for starting the service in the -**foreground**. The ``finish`` script can perform any cleanup necessary before +The `run` script is responsible for starting the service in the +**foreground**. The `finish` script can perform any cleanup necessary before stopping the service, but in general it is used to kill the container, like so: ```bash -s6-svscanctl -t /var/run/s6/services +/run/s6/basedir/bin/halt ``` -There are only a few Service scripts: +To declare dependencies between services, just add an empty file with the +services name in it's `dependencies.d` folder. + +For scripts we want to run at startup run we must register them. This can be +done by placing an empty file named for the service in +`./rootfs/etc/s6-overlay/s6-rc.d/user/contents.d`. + +There are only a few `longrun` services: - activemq -- confd +- confd (optional, not enabled by default) - fpm - karaf - mysqld @@ -314,9 +380,38 @@ There are only a few Service scripts: - solr - tomcat -Of these only ``confd`` can be configured to run in every container, it -periodically listens for changes in it's configured backend (e.g. ``etcd`` or -``environment variables``) and will re-render the templates upon any change. +Of these only `confd` can be configured to run in every container, it +periodically listens for changes in it's configured backend (e.g. `etcd` or +`environment variables`) and will re-render the templates upon any change (see +it's [README.md](./base/README.md), for more information). + +`oneshot` services are pretty much the same, except they use they `up` and +`down` instead of `run` and `finish`. + +Additionally `up` is an [execline] script and does not support `bash`. So we +typically just call out to a `bash` script instead, which by convention can be +found in `./rootfs/etc/s6-overlay/scripts`. + +One `oneshot` service is of particular interest to **all** the containers. The +`ready` service, which does not do anything in and of itself. It is meant as a +placeholder that other services can rely on to ensure that typical actions have +been performed, such as the configuration of environment variables, the +rendering of templates and so on. + +> N.B. **All** `longrun` services should have a dependency on the `ready` +> service. + +If you need to wait until a service to be ready for use, use the following +command: + +```bash +# Wait for PHP-FPM to report it has started. +s6-svwait -U /run/service/fpm +``` + +> N.B. This requires the service to make use of +> [notification-fd](https://skarnet.org/software/s6/notifywhenup.html), which at +> the time of writing is only implemented for `nginx` and `php-fpm` ### Image Hierarchy @@ -336,33 +431,36 @@ are arranged in a hierarchy, that roughly follows below: │ ├── blazegraph │ ├── cantaloupe │ ├── fcrepo + │ ├── fcrepo6 │ └── fits ├── mariadb + ├── postgresql └── nginx ├── crayfish │ ├── homarus │ ├── houdini (consumes "imagemagick" as well during its build stage) │ ├── hypercube │ ├── milliner - │ └── recast + │ ├── recast + │ └── riprap ├── crayfits ├── drupal - │ └── demo + │ └── test └── matomo ``` -[abuild](./abuild/README.md) and [imagemagick](./imagemagick/README.md) stand -outside of the hierarchy as they are use only to build packages that are -consumed by other images during their build stage. +[abuild], [download], [composer], and [imagemagick] stand outside of the +hierarchy as they are use only to build packages that are consumed by other +images during their build stage. ### Folder Layout To make reasoning about what files go where each image follows the same filesystem layout for copying files into the image. -A folder called ``rootfs`` maps directly onto the linux filesystem of the final -image. So for example ``rootfs/etc/islandora/configs`` will be -``/etc/islandora/configs`` in the generated image. +A folder called `rootfs` maps directly onto the linux filesystem of the final +image. So for example `rootfs/etc/islandora/configs` will be +`/etc/islandora/configs` in the generated image. ### Build System @@ -374,9 +472,9 @@ that the projects cannot be nested, though that use case does not really apply. The dependencies are resolved by parsing the Dockerfile and looking for: -- ``FROM``statements -- ``--mount=type=bind`` statements -- ``COPY --from`` statements +- `FROM` statements +- `--mount=type=bind` statements +- `COPY --from` statements As they are capable of referring to other images. @@ -389,6 +487,7 @@ argument. For example: ```Dockerfile +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest FROM ${repository}/base:${tag} @@ -396,38 +495,25 @@ FROM ${repository}/base:${tag} ## Design Constraints -To be able to support a wide variety of backends for ``confd``, as well as -orchestration tools, all calls **must use getenv for the default -value**. With the exception of keys that do not get used unless defined like -``DRUPAL_SITE_{SITE}_NAME``. This means the whatever backend for configuration, -wether it be ``etcd``, ``consul``, or ``environment variables``, containers can +To be able to support a wide variety of backends for `confd`, as well as +orchestration tools, all calls **must use** `getenv` for the default value. With +the exception of keys that do not get used unless defined like +`DRUPAL_SITE_{SITE}_NAME`. This means the whatever backend for configuration, +wether it be `etcd`, `consul`, or `environment variables`, containers can successfully start without any other container present. Additionally it ensure that the order of precedence for configuration settings. This does not completely remove dependencies between containers, for example, -when the [demo](../docker/demo/README.md) starts it requires a running -[fcrepo](../docker/fcrepo/README.md) to be able to ingest nodes created by -``islandora_default`` features. In these cases an initialization script can -block until another container is available or a timeout has been reached. For -example: +when the [fcrepo6] starts it requires a running database like [mariadb] to be +able to start. In these cases an `oneshot` service can block until another +container is available or a timeout has been reached. For example: ```bash -local fcrepo_url= - -# Indexing fails if port 80 is given explicitly. -if [[ "${DRUPAL_DEFAULT_FCREPO_PORT}" == "80" ]]; then - fcrepo_url="http://${DRUPAL_DEFAULT_FCREPO_HOST}/fcrepo/rest/" +# Need access to database to start wait up to 5 minutes (i.e 300 seconds). +if timeout 300 wait-for-open-port.sh "${DB_HOST}" "${DB_PORT}" ; then + echo "Database Found" else - fcrepo_url="http://${DRUPAL_DEFAULT_FCREPO_HOST}:${DRUPAL_DEFAULT_FCREPO_PORT}/fcrepo/rest/" -fi - -#... - -# Need access to Solr before we can actually import the right config. -if timeout 300 wait-for-open-port.sh "${DRUPAL_DEFAULT_FCREPO_HOST}" "${DRUPAL_DEFAULT_FCREPO_PORT}" ; then - echo "Fcrepo Found" -else - echo "Could not connect to Fcrepo" + echo "Could not connect to Database" exit 1 fi ``` @@ -445,5 +531,49 @@ failed to solve with frontend dockerfile.v0: failed to solve with frontend gatew **Answer:** If possible upgrade Docker to the latest version, and switch to using the [Overlay2] filesystem with Docker. -[Overlay2]: https://docs.docker.com/storage/storagedriver/overlayfs-driver#configure-docker-with-the-overlay-or-overlay2-storage-driver +[abuild]: ./abuild/README.md +[activemq]: ./activemq/README.md +[alpaca]: ./alpaca/README.md +[base]: ./base/README.md +[blazegraph]: ./blazegraph/README.md +[cantaloupe]: ./cantaloupe/README.md +[crayfish]: ./crayfish/README.md +[crayfits]: ./crayfits/README.md +[drupal]: ./drupal/README.md +[fcrepo]: ./fcrepo/README.md +[fcrepo6]: ./fcrepo6/README.md +[fits]: ./fits/README.md +[handle]: ./handle/README.md +[homarus]: ./homarus/README.md +[houdini]: ./houdini/README.md +[hypercube]: ./hypercube/README.md +[imagemagick]: ./imagemagick/README.md +[java]: ./java/README.md +[karaf]: ./karaf/README.md +[mariadb]: ./mariadb/README.md +[matomo]: ./matomo/README.md +[milliner]: ./milliner/README.md +[nginx]: ./nginx/README.md +[postgresql]: ./postgresql/README.md +[recast]: ./recast/README.md +[ripgrep]: ./ripgrep/README.md +[solr]: ./solr/README.md +[test]: ./test/README.md +[tomcat]: ./tomcat/README.md + +[Alpine Docker Image]: https://hub.docker.com/_/alpine +[Ansible]: https://docs.ansible.com/ansible/latest/user_guide/index.html#getting-started +[BusyBox]: https://busybox.net/ +[Confd]: https://github.com/kelseyhightower/confd +[Docker Hub]: https://hub.docker.com/u/islandora +[Docker]: https://docs.docker.com/get-started/ +[execline]: https://skarnet.org/software/execline/index.html +[glibc]: https://www.gnu.org/software/libc/ +[islandora-playbook]: https://github.com/Islandora-Devops/islandora-playbook +[islandora-starter-site]: https://github.com/Islandora/islandora-starter-site +[Isle Site Template]: https://github.com/Islandora-Devops/isle-site-template [isle-dc]: https://github.com/Islandora-Devops/isle-dc +[musl libc]: https://musl.libc.org/ +[official documentation]: https://islandora.github.io/documentation/ +[Overlay2]: https://docs.docker.com/storage/storagedriver/overlayfs-driver#configure-docker-with-the-overlay-or-overlay2-storage-driver +[S6 Overlay]: https://github.com/just-containers/s6-overlay diff --git a/abuild/.dockerignore b/abuild/.dockerignore index badf6cb7..94334b24 100644 --- a/abuild/.dockerignore +++ b/abuild/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/abuild/Dockerfile b/abuild/Dockerfile index af1070d6..3b68a567 100644 --- a/abuild/Dockerfile +++ b/abuild/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM ${repository}/download:${tag} AS download FROM alpine:${alpine} AS cache FROM alpine:${alpine} @@ -15,4 +15,4 @@ RUN --mount=type=cache,id=abuild-apk,sharing=locked,from=cache,target=/var/cache adduser -G abuild -g "Alpine Package Builder" -s /bin/ash -D builder && \ echo "builder ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers -COPY --from=download /usr/local/bin/*.sh /usr/local/bin \ No newline at end of file +COPY --link --from=download /usr/local/bin/*.sh /usr/local/bin/ diff --git a/abuild/README.md b/abuild/README.md index f58e57f0..e8dfabc8 100644 --- a/abuild/README.md +++ b/abuild/README.md @@ -20,7 +20,7 @@ Define a docker file that: 3. Run `abuild` to build the package using `APKBUILD`. ```dockerfile -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 FROM islandora/abuild:latest # Include packages required for building the package (not necessarily the ones require for running). diff --git a/activemq/.dockerignore b/activemq/.dockerignore index badf6cb7..94334b24 100644 --- a/activemq/.dockerignore +++ b/activemq/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/activemq/Dockerfile b/activemq/Dockerfile index 3b09af41..5f989467 100644 --- a/activemq/Dockerfile +++ b/activemq/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download @@ -29,11 +29,13 @@ ENV \ ACTIVEMQ_WEB_ADMIN_PASSWORD=password \ ACTIVEMQ_WEB_ADMIN_ROLES=admin -COPY --from=download /etc/group /etc/group -COPY --from=download /etc/passwd /etc/passwd -COPY --from=download /etc/shadow /etc/shadow -COPY --from=download --chown=activemq:activemq /opt/activemq /opt/activemq +WORKDIR /opt/activemq -COPY rootfs / +COPY --link --from=download /etc/group /etc/group +COPY --link --from=download /etc/passwd /etc/passwd +COPY --link --from=download /etc/shadow /etc/shadow +COPY --link --from=download /opt/activemq /opt/activemq -WORKDIR /opt/activemq \ No newline at end of file +COPY --link rootfs / + +RUN chown -R activemq:activemq /opt/activemq diff --git a/activemq/rootfs/etc/confd/templates/log4j.properties.tmpl b/activemq/rootfs/etc/confd/templates/log4j.properties.tmpl index badf4751..78d7da80 100644 --- a/activemq/rootfs/etc/confd/templates/log4j.properties.tmpl +++ b/activemq/rootfs/etc/confd/templates/log4j.properties.tmpl @@ -64,4 +64,4 @@ log4j.logger.org.apache.activemq.audit={{ getenv "ACTIVEMQ_AUDIT_LOG_LEVEL" }}, log4j.appender.audit=org.apache.log4j.ConsoleAppender log4j.appender.audit.layout=org.apache.log4j.PatternLayout log4j.appender.audit.layout.ConversionPattern=%d | %-5p | %m | %t%n -log4j.appender.audit.threshold={{ getenv "ACTIVEMQ_AUDIT_LOG_LEVEL" }} \ No newline at end of file +log4j.appender.audit.threshold={{ getenv "ACTIVEMQ_AUDIT_LOG_LEVEL" }} diff --git a/base/rootfs/etc/fix-attrs.d/.gitkeep b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/dependencies.d/ready similarity index 100% rename from base/rootfs/etc/fix-attrs.d/.gitkeep rename to activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/dependencies.d/ready diff --git a/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/finish b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/finish new file mode 100755 index 00000000..901a742c --- /dev/null +++ b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/finish @@ -0,0 +1,6 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/activemq/rootfs/etc/cont-init.d/02-activemq-setup.sh b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/run similarity index 61% rename from activemq/rootfs/etc/cont-init.d/02-activemq-setup.sh rename to activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/run index 90a74dec..8bc56c09 100755 --- a/activemq/rootfs/etc/cont-init.d/02-activemq-setup.sh +++ b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/run @@ -1,6 +1,8 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/env bash set -e # When bind mounting we need to ensure that we # actually can write to the folder. chown activemq:activemq /opt/activemq/data + +exec s6-setuidgid activemq /opt/activemq/bin/activemq console diff --git a/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/type b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/activemq/rootfs/etc/s6-overlay/s6-rc.d/activemq/type @@ -0,0 +1 @@ +longrun diff --git a/activemq/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/activemq b/activemq/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/activemq new file mode 100644 index 00000000..e69de29b diff --git a/activemq/rootfs/etc/services.d/activemq/finish b/activemq/rootfs/etc/services.d/activemq/finish deleted file mode 100644 index 964ffe33..00000000 --- a/activemq/rootfs/etc/services.d/activemq/finish +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -e - -source /usr/local/share/s6/finish diff --git a/activemq/rootfs/etc/services.d/activemq/run b/activemq/rootfs/etc/services.d/activemq/run deleted file mode 100644 index d71d9eec..00000000 --- a/activemq/rootfs/etc/services.d/activemq/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -set -e -exec s6-setuidgid activemq /opt/activemq/bin/activemq console diff --git a/demo/.dockerignore b/alpaca.old/.dockerignore similarity index 80% rename from demo/.dockerignore rename to alpaca.old/.dockerignore index badf6cb7..94334b24 100644 --- a/demo/.dockerignore +++ b/alpaca.old/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/alpaca.old/Dockerfile.old b/alpaca.old/Dockerfile.old new file mode 100644 index 00000000..3d78284f --- /dev/null +++ b/alpaca.old/Dockerfile.old @@ -0,0 +1,91 @@ +# syntax=docker/dockerfile:1.4.3 +ARG repository=local +ARG tag=latest +FROM --platform=$BUILDPLATFORM ${repository}/karaf:${tag} AS download + +ARG ALPACA_VERSION=1.0.5 +ARG ACTIVEMQ_VERSION=5.15.0 +ARG CAMEL_VERSION=2.20.4 + +# Install common features and repos +RUN bin/start && \ + bin/client -r 10 -d 5 "feature:repo-add mvn:ca.islandora.alpaca/islandora-karaf/${ALPACA_VERSION}/xml/features" && \ + bin/client -r 10 -d 5 "feature:repo-add mvn:org.apache.activemq/activemq-karaf/${ACTIVEMQ_VERSION}/xml/features" && \ + bin/client -r 10 -d 5 "feature:repo-add mvn:org.apache.camel.karaf/apache-camel/${CAMEL_VERSION}/xml/features" && \ + bin/client -r 10 -d 5 "feature:install -v fcrepo-service-activemq" && \ + bin/client -r 10 -d 5 "feature:install -v fcrepo-service-camel" && \ + bin/client -r 10 -d 5 "feature:install -v islandora-http-client" && \ + bin/stop && \ + rm -rf instances/* + +# Derivative connector +RUN bin/start && \ + bin/client -r 10 -d 5 "feature:install -v islandora-connector-derivative" && \ + bin/stop && \ + rm -rf instances/* + +# Fcrepo indexing +RUN bin/start && \ + bin/client -r 10 -d 5 "feature:install -v islandora-indexing-fcrepo" && \ + bin/stop && \ + rm -rf instances/* + +# Triple indexing +RUN bin/start && \ + bin/client -r 10 -d 5 "feature:install islandora-indexing-triplestore" && \ + bin/stop && \ + rm -rf instances/* + +# Fix up ownership. +RUN chown -R karaf:karaf /opt/karaf + +FROM ${repository}/karaf:${tag} + +ENV \ + ALPACA_ACTIVEMQ_CONNECTIONS=10 \ + ALPACA_ACTIVEMQ_CONSUMERS=1 \ + ALPACA_ACTIVEMQ_PASSWORD=password \ + ALPACA_ACTIVEMQ_URL=tcp://activemq:61616 \ + ALPACA_ACTIVEMQ_USER=admin \ + ALPACA_FCREPO_AUTH_HOST= \ + ALPACA_FCREPO_AUTH_PASSWORD= \ + ALPACA_FCREPO_AUTH_USER= \ + ALPACA_FCREPO_URL=http://fcrepo:8080/fcrepo/rest \ + ALPACA_FITS_QUEUE=broker:queue:islandora-connector-fits \ + ALPACA_FITS_REDELIVERIES=10 \ + ALPACA_FITS_SERVICE=http://crayfits:8000 \ + ALPACA_FITS_TIMEOUT=10000 \ + ALPACA_HOMARUS_QUEUE=broker:queue:islandora-connector-homarus \ + ALPACA_HOMARUS_REDELIVERIES=10 \ + ALPACA_HOMARUS_SERVICE=http://homarus:8000/convert \ + ALPACA_HOMARUS_TIMEOUT=10000 \ + ALPACA_HOUDINI_QUEUE=broker:queue:islandora-connector-houdini \ + ALPACA_HOUDINI_REDELIVERIES=10 \ + ALPACA_HOUDINI_SERVICE=http://houdini:8000/convert \ + ALPACA_HOUDINI_TIMEOUT=10000 \ + ALPACA_HTTP_TOKEN=islandora \ + ALPACA_INDEXING_MILLINER_URL=http://milliner:8000 \ + ALPACA_INDEXING_REDELIVERIES=10 \ + ALPACA_INDEXING_STREAM_FILE_DELETE=broker:queue:islandora-indexing-fcrepo-file-delete \ + ALPACA_INDEXING_STREAM_FILE_EXTERNAL=broker:queue:islandora-indexing-fcrepo-file-external \ + ALPACA_INDEXING_STREAM_INPUT=broker:topic:fedora \ + ALPACA_INDEXING_STREAM_MEDIA_INDEX=broker:queue:islandora-indexing-fcrepo-media \ + ALPACA_INDEXING_STREAM_NODE_DELETE=broker:queue:islandora-indexing-fcrepo-delete \ + ALPACA_INDEXING_STREAM_NODE_INDEX=broker:queue:islandora-indexing-fcrepo-content \ + ALPACA_INDEXING_STREAM_TRIPLESTORE_DELETE=broker:queue:islandora-indexing-triplestore-delete \ + ALPACA_INDEXING_STREAM_TRIPLESTORE_INDEX=broker:queue:islandora-indexing-triplestore-index \ + ALPACA_INDEXING_STREAM_TRIPLESTORE_REINDEX=broker:queue:triplestore.reindex \ + ALPACA_INDEXING_URL=http://blazegraph:8080/bigdata/namespace/islandora/sparql \ + ALPACA_LOGGER_CAMEL_LEVEL=WARN \ + ALPACA_LOGGER_ISLANDORA_LEVEL=WARN \ + ALPACA_LOGGER_ROOT_LEVEL=WARN \ + ALPACA_OCR_QUEUE=broker:queue:islandora-connector-ocr \ + ALPACA_OCR_REDELIVERIES=10 \ + ALPACA_OCR_SERVICE=http://hypercube:8000 \ + ALPACA_OCR_TIMEOUT=10000 \ + JAVA_OPTS="-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:MaxPermSize=128m -Xms512m -Xmx8g" + +COPY --link --from=download --chown=karaf:karaf /opt/karaf /opt/karaf +COPY --link --from=download /root/.m2 /root/.m2 + +COPY rootfs / diff --git a/alpaca.old/README.md b/alpaca.old/README.md new file mode 100644 index 00000000..1ea773bc --- /dev/null +++ b/alpaca.old/README.md @@ -0,0 +1,73 @@ +# Alpaca + +Docker image for [Alpaca] version 1.0.3. + +Please refer to the [Alpaca Documentation] for more in-depth information. + +As a quick example this will bring up an instance of Alpaca, and allow you to +log view the [WebConsole] on as the user `admin` with +the password `password`. + +```bash +docker run --rm -ti -p 8181:8181 \ + -e "KARAF_ADMIN_NAME=admin" \ + -e "KARAF_ADMIN_PASSWORD=password" \ + islandora/alpaca +``` + +## Dependencies + +Requires `islandora/karaf` docker image to build. Please refer to the +[Karaf Image README](../karaf/README.md) for additional information including +additional settings, volumes, ports, etc. + +## Settings + +| Environment Variable | Confd Key | Default | Description | +| :----------------------------------------- | :----------------------------------------- | :--------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| ALPACA_ACTIVEMQ_CONNECTIONS | /alpaca/activemq/connections | 10 | +| ALPACA_ACTIVEMQ_CONSUMER | /alpaca/activemq/consumer | 1 | +| ALPACA_ACTIVEMQ_PASSWORD | /alpaca/activemq/password | password | Password to authenticate with | +| ALPACA_ACTIVEMQ_URL | /alpaca/activemq/url | tcp://broker:61616 | The url for connecting to the ActiveMQ broker, shared by all components | +| ALPACA_ACTIVEMQ_USER | /alpaca/activemq/user | admin | User to authenticate as | +| ALPACA_FCREPO_AUTH_HOST | /alpaca/fcrepo/auth/host | | User to authenticate as | +| ALPACA_FCREPO_AUTH_PASSWORD | /alpaca/fcrepo/auth/password | | Password to authenticate with | +| ALPACA_FCREPO_AUTH_USER | /alpaca/fcrepo/auth/user | | URL to authenticate against | +| ALPACA_FCREPO_URL | /alpaca/fcrepo/url | http://fcrepo/fcrepo/rest | The url of fcrepo rest API | +| ALPACA_FITS_QUEUE | /alpaca/fits/queue | broker:queue:islandora-connector-fits | ActiveMQ Queue to consume from | +| ALPACA_FITS_REDELIVERIES | /alpaca/fits/redeliveries | 10 | Number of attempts to redeliver if an exception occurs | +| ALPACA_FITS_SERVICE | /alpaca/fits/service | http://crayfits:8000 | Url of micro-service | +| ALPACA_HOMARUS_QUEUE | /alpaca/homarus/queue | broker:queue:islandora-connector-homarus | ActiveMQ Queue to consume from | +| ALPACA_HOMARUS_REDELIVERIES | /alpaca/homarus/redeliveries | 10 | Number of attempts to redeliver if an exception occurs | +| ALPACA_HOMARUS_SERVICE | /alpaca/homarus/service | http://homarus:8000/convert | Url of micro-service | +| ALPACA_HOUDINI_QUEUE | /alpaca/houdini/queue | broker:queue:islandora-connector-houdini | ActiveMQ Queue to consume from | +| ALPACA_HOUDINI_REDELIVERIES | /alpaca/houdini/redeliveries | 10 | Number of attempts to redeliver if an exception occurs | +| ALPACA_HOUDINI_SERVICE | /alpaca/houdini/service | http://houdini:8000/convert | Url of micro-service | +| ALPACA_HTTP_TOKEN | /alpaca/http/token | islandora | The static token value to be used for authentication by the HttpClient available as an OSGi service for other services to use against the Fedora repository | +| ALPACA_INDEXING_GEMINI_URL | /alpaca/indexing/gemini/url | http://gemini:8000 | Url of micro-service | +| ALPACA_INDEXING_MILLINER_URL | /alpaca/indexing/milliner/url | http://milliner:8000 | Url of micro-service | +| ALPACA_INDEXING_REDELIVERIES | /alpaca/indexing/redeliveries | 10 | Number of attempts to redeliver if an exception occurs | +| ALPACA_INDEXING_STREAM_FILE_DELETE | /alpaca/indexing/stream/file/delete | broker:queue:islandora-indexing-fcrepo-file-delete | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_STREAM_INPUT | /alpaca/indexing/stream/input | broker:topic:fedora | ActiveMQ Topic to consume | +| ALPACA_INDEXING_STREAM_MEDIA_INDEX | /alpaca/indexing/stream/media/index | broker:queue:islandora-indexing-fcrepo-media | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_STREAM_NODE_DELETE | /alpaca/indexing/stream/node/delete | broker:queue:islandora-indexing-fcrepo-delete | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_STREAM_NODE_INDEX | /alpaca/indexing/stream/node/index | broker:queue:islandora-indexing-fcrepo-content | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_STREAM_TRIPLESTORE_DELETE | /alpaca/indexing/stream/triplestore/delete | broker:queue:islandora-indexing-triplestore-delete | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_STREAM_TRIPLESTORE_INDEX | /alpaca/indexing/stream/triplestore/index | broker:queue:islandora-indexing-triplestore-index | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_STREAM_TRIPLESTORE_REINDEX | /alpaca/indexing/stream/reindex | broker:queue:triplestore.reindex | ActiveMQ Queue to consume from | +| ALPACA_INDEXING_URL | /alpaca/indexing/url | http://blazegraph/bigdata/namespace/islandora/sparql | Url to triple store indexer | +| ALPACA_LOGGER_CAMEL_LEVEL | /alpaca/logger/camel/level | WARN | Camel [Log Level] | +| ALPACA_LOGGER_ISLANDORA_LEVEL | /alpaca/logger/islandora/level | WARN | Islandora [Log Level] | +| ALPACA_LOGGER_ROOT_LEVEL | /alpaca/logger/root/level | WARN | Root [Log Level] | +| ALPACA_OCR_QUEUE | /alpaca/ocr/queue | broker:queue:islandora-connector-ocr | ActiveMQ Queue to consume from | +| ALPACA_OCR_REDELIVERIES | /alpaca/ocr/redeliveries | 10 | Number of attempts to redeliver if an exception occurs | +| ALPACA_OCR_SERVICE | /alpaca/ocr/service | http://hypercube:8000 | Url of micro-service | + +[Alpaca Documentation]: https://islandora.github.io/documentation/ +[Alpaca]: https://github.com/Islandora/Alpaca +[JMX]: https://karaf.apache.org/manual/latest/#_monitoring_and_management_using_jmx +[Karaf Directory Structure]: https://karaf.apache.org/manual/latest/#_directory_structure +[Log Level]: https://logging.apache.org/log4j/2.x/manual/customloglevels.html +[RMI]: https://karaf.apache.org/manual/latest/monitoring +[SSH]: https://karaf.apache.org/manual/latest/remote +[WebConsole]: https://karaf.apache.org/manual/latest/webconsole diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.fits.blueprint.xml.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.fits.blueprint.xml.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.fits.blueprint.xml.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.fits.blueprint.xml.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.homarus.blueprint.xml.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.homarus.blueprint.xml.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.homarus.blueprint.xml.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.homarus.blueprint.xml.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.houdini.blueprint.xml.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.houdini.blueprint.xml.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.houdini.blueprint.xml.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.houdini.blueprint.xml.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.ocr.blueprint.xml.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.ocr.blueprint.xml.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.ocr.blueprint.xml.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.connector.ocr.blueprint.xml.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.http.client.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.http.client.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.http.client.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.http.client.cfg.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.fcrepo.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.fcrepo.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.fcrepo.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.fcrepo.cfg.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.triplestore.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.triplestore.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.triplestore.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/ca.islandora.alpaca.indexing.triplestore.cfg.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/org.fcrepo.camel.indexing.triplestore.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/org.fcrepo.camel.indexing.triplestore.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/org.fcrepo.camel.indexing.triplestore.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/org.fcrepo.camel.indexing.triplestore.cfg.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.activemq.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.activemq.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.activemq.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.activemq.cfg.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/org.fcrepo.camel.service.cfg.toml diff --git a/alpaca/rootfs/etc/confd/conf.d/org.ops4j.pax.logging.cfg.toml b/alpaca.old/rootfs/etc/confd/conf.d/org.ops4j.pax.logging.cfg.toml similarity index 100% rename from alpaca/rootfs/etc/confd/conf.d/org.ops4j.pax.logging.cfg.toml rename to alpaca.old/rootfs/etc/confd/conf.d/org.ops4j.pax.logging.cfg.toml diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.fits.blueprint.xml.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.fits.blueprint.xml.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.fits.blueprint.xml.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.fits.blueprint.xml.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.homarus.blueprint.xml.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.homarus.blueprint.xml.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.homarus.blueprint.xml.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.homarus.blueprint.xml.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.houdini.blueprint.xml.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.houdini.blueprint.xml.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.houdini.blueprint.xml.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.houdini.blueprint.xml.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.ocr.blueprint.xml.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.ocr.blueprint.xml.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.ocr.blueprint.xml.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.connector.ocr.blueprint.xml.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.http.client.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.http.client.cfg.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.http.client.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.http.client.cfg.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.fcrepo.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.fcrepo.cfg.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.fcrepo.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.fcrepo.cfg.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.triplestore.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.triplestore.cfg.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.triplestore.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/ca.islandora.alpaca.indexing.triplestore.cfg.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.indexing.triplestore.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.indexing.triplestore.cfg.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.indexing.triplestore.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.indexing.triplestore.cfg.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.service.activemq.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.service.activemq.cfg.tmpl similarity index 91% rename from alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.service.activemq.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.service.activemq.cfg.tmpl index 6ff014c9..c8fa793c 100644 --- a/alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.service.activemq.cfg.tmpl +++ b/alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.service.activemq.cfg.tmpl @@ -9,4 +9,4 @@ jms.password={{ getenv "ALPACA_ACTIVEMQ_PASSWORD" }} # Overrides: # https://github.com/fcrepo-exts/fcrepo-camel-toolbox/blob/2080280e2454aabd4fb6bdf1f1cdf67017b1d3dc/fcrepo-service-activemq/src/main/resources/OSGI-INF/blueprint/blueprint.xml#L20-L21 jms.consumers={{ getenv "ALPACA_ACTIVEMQ_CONSUMERS" }} -jms.connections={{ getenv "ALPACA_ACTIVEMQ_CONNECTIONS" }} \ No newline at end of file +jms.connections={{ getenv "ALPACA_ACTIVEMQ_CONNECTIONS" }} diff --git a/alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.service.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.service.cfg.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/org.fcrepo.camel.service.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/org.fcrepo.camel.service.cfg.tmpl diff --git a/alpaca/rootfs/etc/confd/templates/org.ops4j.pax.logging.cfg.tmpl b/alpaca.old/rootfs/etc/confd/templates/org.ops4j.pax.logging.cfg.tmpl similarity index 100% rename from alpaca/rootfs/etc/confd/templates/org.ops4j.pax.logging.cfg.tmpl rename to alpaca.old/rootfs/etc/confd/templates/org.ops4j.pax.logging.cfg.tmpl diff --git a/alpaca.old/tests/ServiceStartsWithDefaults/build.gradle.kts b/alpaca.old/tests/ServiceStartsWithDefaults/build.gradle.kts new file mode 100644 index 00000000..75ef1980 --- /dev/null +++ b/alpaca.old/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -0,0 +1,4 @@ +import tasks.tests.ServiceStartsWithDefaultsTest +tasks.register("test") { + waitForMessage.set("INFO: Lock acquired") +} diff --git a/alpaca/Dockerfile b/alpaca/Dockerfile index c2f3c1e9..cf81ba20 100644 --- a/alpaca/Dockerfile +++ b/alpaca/Dockerfile @@ -1,91 +1,85 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -FROM --platform=$BUILDPLATFORM ${repository}/karaf:${tag} AS download +ARG alpine=3.15.0 +FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download -ARG ALPACA_VERSION=1.0.5 -ARG ACTIVEMQ_VERSION=5.15.0 -ARG CAMEL_VERSION=2.20.4 +RUN --mount=type=cache,id=alpaca-downloads,sharing=locked,target=/opt/downloads \ + ALPACA_VERSION="2.2.0" && \ + ALPACA_FILE="islandora-alpaca-app-${ALPACA_VERSION}-all.jar" && \ + ALPACA_URL="https://repo1.maven.org/maven2/ca/islandora/alpaca/islandora-alpaca-app/${ALPACA_VERSION}/${ALPACA_FILE}" && \ + ALPACA_FILE_SHA256="5722306dd78f9fdc3d7a4248a527c439143a3472e5b2d4ea10601b0038b43923" && \ + download.sh --url "${ALPACA_URL}" --sha256 "${ALPACA_FILE_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ + install-service.sh \ + --name alpaca \ + --file "${DOWNLOAD_CACHE_DIRECTORY}/${ALPACA_FILE}" && \ + mv "/opt/alpaca/${ALPACA_FILE}" "/opt/alpaca/alpaca.jar" -# Install common features and repos -RUN bin/start && \ - bin/client -r 10 -d 5 "feature:repo-add mvn:ca.islandora.alpaca/islandora-karaf/${ALPACA_VERSION}/xml/features" && \ - bin/client -r 10 -d 5 "feature:repo-add mvn:org.apache.activemq/activemq-karaf/${ACTIVEMQ_VERSION}/xml/features" && \ - bin/client -r 10 -d 5 "feature:repo-add mvn:org.apache.camel.karaf/apache-camel/${CAMEL_VERSION}/xml/features" && \ - bin/client -r 10 -d 5 "feature:install -v fcrepo-service-activemq" && \ - bin/client -r 10 -d 5 "feature:install -v fcrepo-service-camel" && \ - bin/client -r 10 -d 5 "feature:install -v islandora-http-client" && \ - bin/stop && \ - rm -rf instances/* +FROM alpine:${alpine} AS cache +FROM ${repository}/java:${tag} -# Derivative connector -RUN bin/start && \ - bin/client -r 10 -d 5 "feature:install -v islandora-connector-derivative" && \ - bin/stop && \ - rm -rf instances/* - -# Fcrepo indexing -RUN bin/start && \ - bin/client -r 10 -d 5 "feature:install -v islandora-indexing-fcrepo" && \ - bin/stop && \ - rm -rf instances/* - -# Triple indexing -RUN bin/start && \ - bin/client -r 10 -d 5 "feature:install islandora-indexing-triplestore" && \ - bin/stop && \ - rm -rf instances/* - -# Fix up ownership. -RUN chown -R karaf:karaf /opt/karaf +ENV \ + ALPACA_CLIENT_ADDITIONAL_OPTIONS= \ + ALPACA_CLIENT_CONFIGURER=true \ + ALPACA_CLIENT_CONNECTION_TIMEOUT=-1 \ + ALPACA_CLIENT_REQUEST_TIMEOUT=-1 \ + ALPACA_CLIENT_SOCKET_TIMEOUT=-1 \ + ALPACA_DERIVATIVE_FITS_ASYNC_CONSUMER=true \ + ALPACA_DERIVATIVE_FITS_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_FITS_ENABLED=true \ + ALPACA_DERIVATIVE_FITS_MAX_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_FITS_QUEUE=queue:islandora-connector-fits \ + ALPACA_DERIVATIVE_FITS_URL=http://crayfits:8000 \ + ALPACA_DERIVATIVE_HOMARUS_ASYNC_CONSUMER=true \ + ALPACA_DERIVATIVE_HOMARUS_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_HOMARUS_ENABLED=true \ + ALPACA_DERIVATIVE_HOMARUS_MAX_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_HOMARUS_QUEUE=queue:islandora-connector-homarus \ + ALPACA_DERIVATIVE_HOMARUS_URL=http://homarus:8000/convert \ + ALPACA_DERIVATIVE_HOUDINI_ASYNC_CONSUMER=true \ + ALPACA_DERIVATIVE_HOUDINI_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_HOUDINI_ENABLED=true \ + ALPACA_DERIVATIVE_HOUDINI_MAX_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_HOUDINI_QUEUE=queue:islandora-connector-houdini \ + ALPACA_DERIVATIVE_HOUDINI_URL=http://houdini:8000/convert \ + ALPACA_DERIVATIVE_OCR_ASYNC_CONSUMER=true \ + ALPACA_DERIVATIVE_OCR_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_OCR_ENABLED=true \ + ALPACA_DERIVATIVE_OCR_MAX_CONSUMERS=-1 \ + ALPACA_DERIVATIVE_OCR_QUEUE=queue:islandora-connector-ocr \ + ALPACA_DERIVATIVE_OCR_URL=http://hypercube:8000 \ + ALPACA_DERIVATIVE_SYSTEMS=fits,homarus,houdini,ocr \ + ALPACA_FCREPO_INDEXER_ASYNC_CONSUMER=true \ + ALPACA_FCREPO_INDEXER_CONSUMERS=-1 \ + ALPACA_FCREPO_INDEXER_ENABLE=true \ + ALPACA_FCREPO_INDEXER_MAX_CONSUMERS=-1 \ + ALPACA_FCREPO_INDEXER_MILLINER_URL=http://milliner:8000 \ + ALPACA_FCREPO_INDEXER_QUEUE_DELETE=queue:islandora-indexing-fcrepo-delete \ + ALPACA_FCREPO_INDEXER_QUEUE_EXTERNAL=queue:islandora-indexing-fcrepo-file-external \ + ALPACA_FCREPO_INDEXER_QUEUE_MEDIA=queue:islandora-indexing-fcrepo-media \ + ALPACA_FCREPO_INDEXER_QUEUE_NODE=queue:islandora-indexing-fcrepo-content \ + ALPACA_JAVA_OPTS= \ + ALPACA_JMS_CONNECTIONS=10 \ + ALPACA_JMS_CONSUMERS=1 \ + ALPACA_JMS_PASSWORD=password \ + ALPACA_JMS_URL=tcp://activemq:61616 \ + ALPACA_JMS_USER=admin \ + ALPACA_MAX_REDELIVERIES=5 \ + ALPACA_TRIPLESTORE_INDEXER_ASYNC_CONSUMER=true \ + ALPACA_TRIPLESTORE_INDEXER_CONSUMERS=-1 \ + ALPACA_TRIPLESTORE_INDEXER_ENABLED=true \ + ALPACA_TRIPLESTORE_INDEXER_MAX_CONSUMERS=-1 \ + ALPACA_TRIPLESTORE_INDEXER_QUEUE_DELETE=queue:islandora-indexing-triplestore-delete \ + ALPACA_TRIPLESTORE_INDEXER_QUEUE_INDEX=queue:islandora-indexing-triplestore-index \ + ALPACA_TRIPLESTORE_INDEXER_URL=http://blazegraph:8080/bigdata/namespace/islandora/sparql -FROM ${repository}/karaf:${tag} +WORKDIR /opt/alpaca -ENV \ - ALPACA_ACTIVEMQ_CONNECTIONS=10 \ - ALPACA_ACTIVEMQ_CONSUMERS=1 \ - ALPACA_ACTIVEMQ_PASSWORD=password \ - ALPACA_ACTIVEMQ_URL=tcp://activemq:61616 \ - ALPACA_ACTIVEMQ_USER=admin \ - ALPACA_FCREPO_AUTH_HOST= \ - ALPACA_FCREPO_AUTH_PASSWORD= \ - ALPACA_FCREPO_AUTH_USER= \ - ALPACA_FCREPO_URL=http://fcrepo:8080/fcrepo/rest \ - ALPACA_FITS_QUEUE=broker:queue:islandora-connector-fits \ - ALPACA_FITS_REDELIVERIES=10 \ - ALPACA_FITS_SERVICE=http://crayfits:8000 \ - ALPACA_FITS_TIMEOUT=10000 \ - ALPACA_HOMARUS_QUEUE=broker:queue:islandora-connector-homarus \ - ALPACA_HOMARUS_REDELIVERIES=10 \ - ALPACA_HOMARUS_SERVICE=http://homarus:8000/convert \ - ALPACA_HOMARUS_TIMEOUT=10000 \ - ALPACA_HOUDINI_QUEUE=broker:queue:islandora-connector-houdini \ - ALPACA_HOUDINI_REDELIVERIES=10 \ - ALPACA_HOUDINI_SERVICE=http://houdini:8000/convert \ - ALPACA_HOUDINI_TIMEOUT=10000 \ - ALPACA_HTTP_TOKEN=islandora \ - ALPACA_INDEXING_MILLINER_URL=http://milliner:8000 \ - ALPACA_INDEXING_REDELIVERIES=10 \ - ALPACA_INDEXING_STREAM_FILE_DELETE=broker:queue:islandora-indexing-fcrepo-file-delete \ - ALPACA_INDEXING_STREAM_FILE_EXTERNAL=broker:queue:islandora-indexing-fcrepo-file-external \ - ALPACA_INDEXING_STREAM_INPUT=broker:topic:fedora \ - ALPACA_INDEXING_STREAM_MEDIA_INDEX=broker:queue:islandora-indexing-fcrepo-media \ - ALPACA_INDEXING_STREAM_NODE_DELETE=broker:queue:islandora-indexing-fcrepo-delete \ - ALPACA_INDEXING_STREAM_NODE_INDEX=broker:queue:islandora-indexing-fcrepo-content \ - ALPACA_INDEXING_STREAM_TRIPLESTORE_DELETE=broker:queue:islandora-indexing-triplestore-delete \ - ALPACA_INDEXING_STREAM_TRIPLESTORE_INDEX=broker:queue:islandora-indexing-triplestore-index \ - ALPACA_INDEXING_STREAM_TRIPLESTORE_REINDEX=broker:queue:triplestore.reindex \ - ALPACA_INDEXING_URL=http://blazegraph:8080/bigdata/namespace/islandora/sparql \ - ALPACA_LOGGER_CAMEL_LEVEL=WARN \ - ALPACA_LOGGER_ISLANDORA_LEVEL=WARN \ - ALPACA_LOGGER_ROOT_LEVEL=WARN \ - ALPACA_OCR_QUEUE=broker:queue:islandora-connector-ocr \ - ALPACA_OCR_REDELIVERIES=10 \ - ALPACA_OCR_SERVICE=http://hypercube:8000 \ - ALPACA_OCR_TIMEOUT=10000 \ - JAVA_OPTS="-Dfile.encoding=UTF-8 -Dnet.sf.ehcache.skipUpdateCheck=true -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:+UseParNewGC -XX:MaxPermSize=128m -Xms512m -Xmx8g" +COPY --link --from=download /etc/group /etc/group +COPY --link --from=download /etc/passwd /etc/passwd +COPY --link --from=download /etc/shadow /etc/shadow +COPY --link --from=download /opt/alpaca /opt/alpaca -COPY --from=download --chown=karaf:karaf /opt/karaf /opt/karaf -COPY --from=download /root/.m2 /root/.m2 +COPY --link rootfs / -COPY rootfs / +RUN chown -R alpaca:alpaca /opt/alpaca diff --git a/alpaca/rootfs/etc/confd/conf.d/alpaca.properties.toml b/alpaca/rootfs/etc/confd/conf.d/alpaca.properties.toml new file mode 100644 index 00000000..3958ca18 --- /dev/null +++ b/alpaca/rootfs/etc/confd/conf.d/alpaca.properties.toml @@ -0,0 +1,7 @@ +[template] +src = "alpaca.properties.tmpl" +dest = "/opt/alpaca/alpaca.properties" +uid = 100 +gid = 1000 +mode = "0644" +keys = [ "/" ] diff --git a/alpaca/rootfs/etc/confd/templates/alpaca.properties.tmpl b/alpaca/rootfs/etc/confd/templates/alpaca.properties.tmpl new file mode 100644 index 00000000..ef04619d --- /dev/null +++ b/alpaca/rootfs/etc/confd/templates/alpaca.properties.tmpl @@ -0,0 +1,77 @@ +# Common options +error.maxRedeliveries={{ getenv "ALPACA_MAX_REDELIVERIES" }} + +# The JMS connection URI, used for connecting to a local or remote ActiveMQ broker +jms.brokerUrl={{ getenv "ALPACA_JMS_URL" }} + +# If authentication is enabled on the activemq broker, add appropriate values here +jms.username={{ getenv "ALPACA_JMS_USER" }} +jms.password={{ getenv "ALPACA_JMS_PASSWORD" }} + +# Set the number of conncurrent consumers and the max number of connections. +# Overrides: +# https://github.com/fcrepo-exts/fcrepo-camel-toolbox/blob/2080280e2454aabd4fb6bdf1f1cdf67017b1d3dc/fcrepo-service-activemq/src/main/resources/OSGI-INF/blueprint/blueprint.xml#L20-L21 +jms.concurrent-consumers={{ getenv "ALPACA_JMS_CONSUMERS" }} +jms.connections={{ getenv "ALPACA_JMS_CONNECTIONS" }} +jms.max-concurrent-consumers={{ getenv "ALPACA_JMS_MAX_CONSUMERS" }} + +# Custom Http client options +# All timeouts in milliseconds +request.configurer.enabled={{ getenv "ALPACA_CLIENT_CONFIGURER" }} +request.timeout={{ getenv "ALPACA_CLIENT_REQUEST_TIMEOUT" }} +connection.timeout={{ getenv "ALPACA_CLIENT_CONNECTION_TIMEOUT" }} +socket.timeout={{ getenv "ALPACA_CLIENT_SOCKET_TIMEOUT" }} + +# Additional HTTP endpoint options, these can be for Camel or to be sent to the baseUrl or service.url +http.additional_options={{ getenv "ALPACA_CLIENT_ADDITIONAL_OPTIONS" }} + +# Fedora indexer options +fcrepo.indexer.enabled={{ getenv "ALPACA_FCREPO_INDEXER_ENABLED" }} +fcrepo.indexer.node={{ getenv "ALPACA_FCREPO_INDEXER_QUEUE_NODE" }} +fcrepo.indexer.delete={{ getenv "ALPACA_FCREPO_INDEXER_QUEUE_DELETE" }} +fcrepo.indexer.media={{ getenv "ALPACA_FCREPO_INDEXER_QUEUE_MEDIA" }} +fcrepo.indexer.external={{ getenv "ALPACA_FCREPO_INDEXER_QUEUE_EXTERNAL" }} +fcrepo.indexer.milliner.baseUrl={{ getenv "ALPACA_FCREPO_INDEXER_MILLINER_URL" }} +fcrepo.indexer.concurrent-consumers={{ getenv "ALPACA_FCREPO_INDEXER_CONSUMERS" }} +fcrepo.indexer.max-concurrent-consumers={{ getenv "ALPACA_FCREPO_INDEXER_MAX_CONSUMERS" }} +fcrepo.indexer.async-consumer={{ getenv "ALPACA_FCREPO_INDEXER_ASYNC_CONSUMER" }} + +# Triplestore indexer options +triplestore.indexer.enabled={{ getenv "ALPACA_TRIPLESTORE_INDEXER_ENABLED" }} +triplestore.baseUrl={{ getenv "ALPACA_TRIPLESTORE_INDEXER_URL" }} +triplestore.index.stream={{ getenv "ALPACA_TRIPLESTORE_INDEXER_QUEUE_INDEX" }} +triplestore.delete.stream={{ getenv "ALPACA_TRIPLESTORE_INDEXER_QUEUE_DELETE" }} +triplestore.indexer.concurrent-consumers={{ getenv "ALPACA_TRIPLESTORE_INDEXER_CONSUMERS" }} +triplestore.indexer.max-concurrent-consumers={{ getenv "ALPACA_TRIPLESTORE_INDEXER_MAX_CONSUMERS" }} +triplestore.indexer.async-consumer={{ getenv "ALPACA_TRIPLESTORE_INDEXER_ASYNC_CONSUMER" }} + +# Derivative services +derivative.systems.installed={{ getenv "ALPACA_DERIVATIVE_SYSTEMS" }} fits,homarus,houdini,ocr + +derivative.fits.enabled={{ getenv "ALPACA_DERIVATIVE_FITS_ENABLED" }} +derivative.fits.in.stream={{ getenv "ALPACA_DERIVATIVE_FITS_QUEUE" }} +derivative.fits.service.url={{ getenv "ALPACA_DERIVATIVE_FITS_URL" }} +derivative.fits.concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_FITS_CONSUMERS" }} +derivative.fits.max-concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_FITS_MAX_CONSUMERS" }} +derivative.fits.async-consumer={{ getenv "ALPACA_DERIVATIVE_FITS_ASYNC_CONSUMER" }} + +derivative.homarus.enabled={{ getenv "ALPACA_DERIVATIVE_HOMARUS_ENABLED" }} +derivative.homarus.in.stream={{ getenv "ALPACA_DERIVATIVE_HOMARUS_QUEUE" }} +derivative.homarus.service.url={{ getenv "ALPACA_DERIVATIVE_HOMARUS_URL" }} +derivative.homarus.concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_HOMARUS_CONSUMERS" }} +derivative.homarus.max-concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_HOMARUS_MAX_CONSUMERS" }} +derivative.homarus.async-consumer={{ getenv "ALPACA_DERIVATIVE_HOMARUS_ASYNC_CONSUMER" }} + +derivative.houdini.enabled={{ getenv "ALPACA_DERIVATIVE_HOUDINI_ENABLED" }} +derivative.houdini.in.stream={{ getenv "ALPACA_DERIVATIVE_HOUDINI_QUEUE" }} +derivative.houdini.service.url={{ getenv "ALPACA_DERIVATIVE_HOUDINI_URL" }} +derivative.houdini.concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_HOUDINI_CONSUMERS" }} +derivative.houdini.max-concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_HOUDINI_MAX_CONSUMERS" }} +derivative.houdini.async-consumer={{ getenv "ALPACA_DERIVATIVE_HOUDINI_ASYNC_CONSUMER" }} + +derivative.ocr.enabled={{ getenv "ALPACA_DERIVATIVE_OCR_ENABLED" }} +derivative.ocr.in.stream={{ getenv "ALPACA_DERIVATIVE_OCR_QUEUE" }} +derivative.ocr.service.url={{ getenv "ALPACA_DERIVATIVE_OCR_URL" }} +derivative.ocr.concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_OCR_CONSUMERS" }} +derivative.ocr.max-concurrent-consumers={{ getenv "ALPACA_DERIVATIVE_OCR_MAX_CONSUMERS" }} +derivative.ocr.async-consumer={{ getenv "ALPACA_DERIVATIVE_OCR_ASYNC_CONSUMER" }} diff --git a/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/dependencies.d/ready b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/finish b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/finish new file mode 100755 index 00000000..901a742c --- /dev/null +++ b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/finish @@ -0,0 +1,6 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/run b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/run new file mode 100644 index 00000000..50006071 --- /dev/null +++ b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/run @@ -0,0 +1,4 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e +exec s6-setuidgid alpaca java "${ALPACA_JAVA_OPTS[@]}" -jar /opt/alpaca/alpaca.jar -c /opt/alpaca/alpaca.properties diff --git a/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/type b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/alpaca/type @@ -0,0 +1 @@ +longrun diff --git a/alpaca/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/alpaca b/alpaca/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/alpaca new file mode 100644 index 00000000..e69de29b diff --git a/alpaca/tests/ServiceStartsWithDefaults/build.gradle.kts b/alpaca/tests/ServiceStartsWithDefaults/build.gradle.kts index 75ef1980..f6a7bafa 100644 --- a/alpaca/tests/ServiceStartsWithDefaults/build.gradle.kts +++ b/alpaca/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -1,4 +1,5 @@ -import tasks.tests.ServiceStartsWithDefaultsTest -tasks.register("test") { - waitForMessage.set("INFO: Lock acquired") +import tasks.DockerCompose + +tasks.register("test") { + } diff --git a/alpaca/tests/ServiceStartsWithDefaults/docker-compose.yml b/alpaca/tests/ServiceStartsWithDefaults/docker-compose.yml new file mode 100644 index 00000000..d05d10a9 --- /dev/null +++ b/alpaca/tests/ServiceStartsWithDefaults/docker-compose.yml @@ -0,0 +1,14 @@ +--- +version: "3.8" + +# Common to all services +x-common: &common + restart: "no" + +services: + alpaca: + <<: *common + image: ${ALPACA_IMAGE:-local/alpaca:latest} + activemq: + <<: *common + image: ${ACTIVEMQ_IMAGE:-local/activemq:latest} diff --git a/alpaca/tests/ServiceStartsWithDefaults/test.sh b/alpaca/tests/ServiceStartsWithDefaults/test.sh new file mode 100755 index 00000000..1f973cb9 --- /dev/null +++ b/alpaca/tests/ServiceStartsWithDefaults/test.sh @@ -0,0 +1,5 @@ +#!/command/with-contenv bash +# shellcheck shell=bash + +# Alpaca must start for us to get to this point. +exit 0 diff --git a/base/.dockerignore b/base/.dockerignore index badf6cb7..94334b24 100644 --- a/base/.dockerignore +++ b/base/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/base/Dockerfile b/base/Dockerfile index 794e0eff..1f79227c 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM ${repository}/download:${tag} AS download FROM alpine:${alpine} AS cache FROM alpine:${alpine} @@ -29,29 +29,41 @@ RUN --mount=type=cache,id=base-apk,sharing=locked,from=cache,target=/var/cache/a ARG TARGETARCH -COPY --from=download /usr/local/bin/*.sh /usr/local/bin +COPY --link --from=download /usr/local/bin/*.sh /usr/local/bin/ -ARG S6_VERSION="2.2.0.3" -ARG S6_AMD64_SHA256="a7076cf205b331e9f8479bbb09d9df77dbb5cd8f7d12e9b74920902e0c16dd98" -ARG S6_ARM64_SHA256="84f585a100b610124bb80e441ef2dc2d68ac2c345fd393d75a6293e0951ccfc5" +ARG S6_VERSION="3.1.2.1" +ARG S6_OVERLAY_AMD64_SHA256="6019b6b06cfdbb1d1cd572d46b9b158a4904fd19ca59d374de4ddaaa6a3727d5" +ARG S6_OVERLAY_ARM64_SHA256="e73f9a021b64f88278830742149c14ef8a52331102881ba025bf32a66a0e7c78" +ARG S6_OVERLAY_NOARCH_SHA256="cee89d3eeabdfe15239b2c5c3581d9352d2197d4fd23bba3f1e64bf916ccf496" +ARG S6_OVERLAY_SYMLINKS_ARCH_SHA256="1b75ac96ddc953f6b7b10be4f579c3e4f6cdf85270116a539930e03e74066f2f" +ARG S6_OVERLAY_SYMLINKS_NOARCH_SHA256="1e36efb936084fddffe6c55dae8f478e7b2d70f77db2caaceb78c7425b9a7956" # Install s6 RUN --mount=type=cache,id=base-downloads,sharing=locked,from=download,target=/opt/downloads \ + S6_BASE_URL="https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}" && \ + S6_OVERLAY_NOARCH=s6-overlay-noarch.tar.xz && \ + download.sh --url "${S6_BASE_URL}/${S6_OVERLAY_NOARCH}" --sha256 "${S6_OVERLAY_NOARCH_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ + tar -xf "${DOWNLOAD_CACHE_DIRECTORY}/${S6_OVERLAY_NOARCH}" -C / && \ + S6_OVERLAY_SYMLINKS_ARCH=s6-overlay-symlinks-arch.tar.xz && \ + download.sh --url "${S6_BASE_URL}/${S6_OVERLAY_SYMLINKS_ARCH}" --sha256 "${S6_OVERLAY_SYMLINKS_ARCH_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ + tar -xf "${DOWNLOAD_CACHE_DIRECTORY}/${S6_OVERLAY_SYMLINKS_ARCH}" -C / && \ + S6_OVERLAY_SYMLINKS_NOARCH=s6-overlay-symlinks-noarch.tar.xz && \ + download.sh --url "${S6_BASE_URL}/${S6_OVERLAY_SYMLINKS_NOARCH}" --sha256 "${S6_OVERLAY_SYMLINKS_NOARCH_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ + tar -xf "${DOWNLOAD_CACHE_DIRECTORY}/${S6_OVERLAY_SYMLINKS_NOARCH}" -C / && \ if [ "${TARGETARCH}" = "arm64" ]; then \ - S6_FILE="s6-overlay-aarch64.tar.gz"; \ - S6_SHA256="${S6_ARM64_SHA256}"; \ + S6_FILE="s6-overlay-aarch64.tar.xz"; \ + S6_SHA256="${S6_OVERLAY_ARM64_SHA256}"; \ fi; \ if [ "${TARGETARCH}" = "amd64" ]; then \ - S6_FILE="s6-overlay-amd64.tar.gz"; \ - S6_SHA256="${S6_AMD64_SHA256}"; \ + S6_FILE="s6-overlay-x86_64.tar.xz"; \ + S6_SHA256="${S6_OVERLAY_AMD64_SHA256}"; \ fi; \ - S6_URL="https://github.com/just-containers/s6-overlay/releases/download/v${S6_VERSION}/${S6_FILE}" && \ - download.sh --url "${S6_URL}" --sha256 "${S6_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ - tar -xzf "${DOWNLOAD_CACHE_DIRECTORY}/${S6_FILE}" -C / && \ + download.sh --url "${S6_BASE_URL}/${S6_FILE}" --sha256 "${S6_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ + tar -xf "${DOWNLOAD_CACHE_DIRECTORY}/${S6_FILE}" -C / && \ echo '' > /root/.ash_history # Install confd -COPY confd/confd-0.15.0-linux-${TARGETARCH} /usr/local/bin/confd +COPY --link confd/confd-0.15.0-linux-${TARGETARCH} /usr/local/bin/confd # Start s6 ENTRYPOINT [ "/init" ] @@ -80,7 +92,7 @@ ENV \ # environment variables via ENV. The 'DB' environment variables can be # overridden by prefixing it with the image name i.e. `FCREPO_DB_NAME` would # override the value for `DB_NAME`. -ENV \ +ENV \ DB_DRIVER=mysql \ DB_HOST= \ DB_MYSQL_HOST=mariadb \ @@ -95,4 +107,4 @@ ENV \ DB_USER=default \ JWT_ADMIN_TOKEN=islandora -COPY rootfs / +COPY --link rootfs / diff --git a/base/README.md b/base/README.md index 2dca0a19..81c07be1 100644 --- a/base/README.md +++ b/base/README.md @@ -127,4 +127,4 @@ and `DB_MYSQL_PORT` variables will be used when connecting to the backend. [JWT Authentication]: https://islandora.github.io/documentation/technical-documentation/jwt/ [mkcert]: https://github.com/FiloSottile/mkcert [s6 overlay]: https://github.com/just-containers/s6-overlay -[Syn]: https://github.com/Islandora/Syn \ No newline at end of file +[Syn]: https://github.com/Islandora/Syn diff --git a/base/rootfs/etc/cleanup.d/empty-ash-history.sh b/base/rootfs/etc/cleanup.d/empty-ash-history.sh index 5da7ff59..b99823bb 100755 --- a/base/rootfs/etc/cleanup.d/empty-ash-history.sh +++ b/base/rootfs/etc/cleanup.d/empty-ash-history.sh @@ -1,2 +1,2 @@ #!/bin/sh -echo '' > /root/.ash_history +echo '' >/root/.ash_history diff --git a/base/rootfs/etc/cleanup.d/empty-bash-history.sh b/base/rootfs/etc/cleanup.d/empty-bash-history.sh index 290e95f7..e4d38e0d 100755 --- a/base/rootfs/etc/cleanup.d/empty-bash-history.sh +++ b/base/rootfs/etc/cleanup.d/empty-bash-history.sh @@ -1,2 +1,2 @@ #!/bin/sh -echo '' > /root/.bash_history +echo '' >/root/.bash_history diff --git a/base/rootfs/etc/cont-init.d/01-confd-render-templates.sh b/base/rootfs/etc/cont-init.d/01-confd-render-templates.sh deleted file mode 100755 index 4cb739cf..00000000 --- a/base/rootfs/etc/cont-init.d/01-confd-render-templates.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/with-contenv bash -set -e - -# Renders confd templates once. -confd-render-templates.sh -- -onetime -sync-only diff --git a/base/rootfs/etc/cont-init.d/02-cacert-import.sh b/base/rootfs/etc/cont-init.d/02-cacert-import.sh deleted file mode 100755 index 948c5ea6..00000000 --- a/base/rootfs/etc/cont-init.d/02-cacert-import.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/usr/bin/with-contenv bash - -set -e - -# Install the bind-mounted certificate if present. -if [[ -s "/usr/local/share/ca-certificates/cert.pem" ]]; then - update-ca-certificates -fi - -# Import into the java certificate store if java is installed. -# And the CA pem file exists. -if [[ -s "/usr/local/share/ca-certificates/rootCA.pem" ]]; then - if hash keytool; then - keytool \ - -importcert \ - -noprompt \ - -keystore /usr/lib/jvm/default-jvm/jre/lib/security/cacerts \ - -storepass changeit \ - -file "/usr/local/share/ca-certificates/rootCA.pem" \ - -alias islandora - fi -fi diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/dependencies.d/base b/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/type b/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/type @@ -0,0 +1 @@ +oneshot diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/up b/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/up new file mode 100755 index 00000000..9059712b --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/cacert-import/up @@ -0,0 +1 @@ +/etc/s6-overlay/scripts/cacert-import.sh diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/container-environment b/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/container-environment new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/database-defaults b/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/database-defaults new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/type b/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/type @@ -0,0 +1 @@ +oneshot diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/up b/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/up new file mode 100755 index 00000000..a2550ae9 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/up @@ -0,0 +1 @@ +/etc/s6-overlay/scripts/confd-oneshot.sh diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd/dependencies.d/ready b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd/finish b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/finish new file mode 100755 index 00000000..fe1897d3 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/finish @@ -0,0 +1,9 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# Only run the service if explicitly told to do so. +if [[ "${CONFD_ENABLE_SERVICE}" == "true" ]]; then + # shellcheck disable=SC1091 + source /usr/local/share/s6/finish +fi diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd/run b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/run new file mode 100755 index 00000000..7c942dd3 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/run @@ -0,0 +1,10 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# Only run the service if explicitly told to do so. +if [[ "${CONFD_ENABLE_SERVICE}" == "true" ]]; then + exec confd-render-templates.sh -- -interval "${CONFD_POLLING_INTERVAL}" +else + exec s6-svc -Od . +fi diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/confd/type b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/confd/type @@ -0,0 +1 @@ +longrun diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/dependencies.d/base b/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/type b/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/type @@ -0,0 +1 @@ +oneshot diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/up b/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/up new file mode 100755 index 00000000..6ad8148e --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/container-environment/up @@ -0,0 +1 @@ +/etc/s6-overlay/scripts/container-environment.sh diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/dependencies.d/container-environment b/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/dependencies.d/container-environment new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/type b/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/type @@ -0,0 +1 @@ +oneshot diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/up b/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/up new file mode 100755 index 00000000..aa4636bd --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/up @@ -0,0 +1 @@ +/etc/s6-overlay/scripts/database-defaults.sh diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/ready/dependencies.d/cacert-import b/base/rootfs/etc/s6-overlay/s6-rc.d/ready/dependencies.d/cacert-import new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/ready/dependencies.d/confd-oneshot b/base/rootfs/etc/s6-overlay/s6-rc.d/ready/dependencies.d/confd-oneshot new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/ready/dependencies.d/tty b/base/rootfs/etc/s6-overlay/s6-rc.d/ready/dependencies.d/tty new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/ready/type b/base/rootfs/etc/s6-overlay/s6-rc.d/ready/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/ready/type @@ -0,0 +1 @@ +oneshot diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/ready/up b/base/rootfs/etc/s6-overlay/s6-rc.d/ready/up new file mode 100755 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/tty/dependencies.d/base b/base/rootfs/etc/s6-overlay/s6-rc.d/tty/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/tty/type b/base/rootfs/etc/s6-overlay/s6-rc.d/tty/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/tty/type @@ -0,0 +1 @@ +oneshot diff --git a/base/rootfs/etc/cont-init.d/00-tty.sh b/base/rootfs/etc/s6-overlay/s6-rc.d/tty/up old mode 100644 new mode 100755 similarity index 88% rename from base/rootfs/etc/cont-init.d/00-tty.sh rename to base/rootfs/etc/s6-overlay/s6-rc.d/tty/up index 64ce2aff..50f23ee2 --- a/base/rootfs/etc/cont-init.d/00-tty.sh +++ b/base/rootfs/etc/s6-overlay/s6-rc.d/tty/up @@ -1,6 +1,3 @@ -#!/usr/bin/env bash -set -e - # If the container is started without allocating a tty, i.e. without `-t`. # It can cause issues for non-root processes that want to write directly to # standard out. @@ -8,10 +5,10 @@ set -e # If a tty is allocated /dev/stdout will indirectly point to it /dev/pts/0. # This file allows members of the tty group to write to it. # -# If no tty is allocated /dev/stdout will point to /proc/self/fd/1 which -# will be a pipe to the hosts users active terminal. This pipe is owned +# If no tty is allocated /dev/stdout will point to /proc/self/fd/1 which +# will be a pipe to the hosts users active terminal. This pipe is owned # root with read/write access only permitted to the root user. # # To permit the containers to be started without `tty` we allow all users # to read/write to the stdout,stderr,stdin pipes. -chmod o+rw /dev/std{in,out,err} +chmod o+rw /dev/stdin /dev/stdout /dev/stderr diff --git a/base/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/confd b/base/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/confd new file mode 100644 index 00000000..e69de29b diff --git a/base/rootfs/etc/s6-overlay/scripts/cacert-import.sh b/base/rootfs/etc/s6-overlay/scripts/cacert-import.sh new file mode 100755 index 00000000..4b095285 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/scripts/cacert-import.sh @@ -0,0 +1,23 @@ +#!/command/with-contenv bash +# shellcheck shell=bash + +set -e + +# Install the bind-mounted certificate if present. +if [[ -s "/usr/local/share/ca-certificates/cert.pem" ]]; then + update-ca-certificates +fi + +# Import into the java certificate store if java is installed. +# And the CA pem file exists. +if [[ -s "/usr/local/share/ca-certificates/rootCA.pem" ]]; then + if hash keytool &>/dev/null; then + keytool \ + -importcert \ + -noprompt \ + -keystore /usr/lib/jvm/default-jvm/jre/lib/security/cacerts \ + -storepass changeit \ + -file "/usr/local/share/ca-certificates/rootCA.pem" \ + -alias islandora + fi +fi diff --git a/base/rootfs/etc/s6-overlay/scripts/confd-oneshot.sh b/base/rootfs/etc/s6-overlay/scripts/confd-oneshot.sh new file mode 100755 index 00000000..2b28a387 --- /dev/null +++ b/base/rootfs/etc/s6-overlay/scripts/confd-oneshot.sh @@ -0,0 +1,4 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e +confd-render-templates.sh -- -onetime -sync-only diff --git a/base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh b/base/rootfs/etc/s6-overlay/scripts/container-environment.sh similarity index 95% rename from base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh rename to base/rootfs/etc/s6-overlay/scripts/container-environment.sh index 2a1dfc45..27caaa74 100755 --- a/base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh +++ b/base/rootfs/etc/s6-overlay/scripts/container-environment.sh @@ -31,13 +31,13 @@ set -e # quality of Swarm or Docker Compose. At the moment Kubernetes users will need # to inject the secrets as environment variables. Please see # https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables -if [[ $(find /run/secrets -mindepth 1 -maxdepth 1 -type d | wc -l) > 0 ]]; then - /bin/exec -c \ +if [[ $(find /run/secrets -mindepth 1 -maxdepth 1 -type d | wc -l) -gt 0 ]]; then + /command/exec -c \ s6-envdir -fn -- /etc/defaults \ s6-envdir -fn -- /var/run/s6/container_environment \ s6-dumpenv -- /var/run/s6/container_environment else - /bin/exec -c \ + /command/exec -c \ s6-envdir -fn -- /etc/defaults \ s6-envdir -fn -- /var/run/s6/container_environment \ s6-envdir -fn -- /run/secrets \ @@ -48,10 +48,10 @@ fi CONFD_BACKEND=$(&2 - exit 1 +none) ;; + +mysql) + DB_HOST=$(&2 + exit 1 + ;; esac # Use what has been provided by the user or default to the derived values. -cat << EOF | /usr/local/bin/confd-import-environment.sh +cat <&2 + usage + exit 1 + ;; esac done @@ -56,7 +61,7 @@ function cmdline { } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" for file in /etc/cleanup.d/*; do $file done diff --git a/base/rootfs/usr/local/bin/confd-import-environment.sh b/base/rootfs/usr/local/bin/confd-import-environment.sh index 7cca2a01..7782a049 100755 --- a/base/rootfs/usr/local/bin/confd-import-environment.sh +++ b/base/rootfs/usr/local/bin/confd-import-environment.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage() { - cat <<- EOF + cat <<-EOF usage: $PROGNAME Import environment variables from confd into the 'container environment', @@ -29,33 +30,37 @@ EOF function cmdline() { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "hx" OPTION - do + while getopts "hx" OPTION; do case $OPTION in h) usage exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -63,22 +68,23 @@ function cmdline() { } function main { - cmdline ${ARGS} - local tmp_dir=$(mktemp -d -t confd-XXXXXXXXXX) + local tmp_dir + cmdline "${ARGS[@]}" # Temporary directory to deposit generated confd configuration templates and # output, etc. + tmp_dir="$(mktemp -d -t confd-XXXXXXXXXX)" mkdir -p "${tmp_dir}/conf.d" "${tmp_dir}/templates" "${tmp_dir}/out" # Generate template script that will update the container environment with - # values provided by the confd backend. execline is used rather than bash + # values provided by the confd backend. execline is used rather than bash # to avoid issues with whitespace newlines and string interpolation. - echo 's6-env -i' > "${tmp_dir}/templates/import.sh.tmpl" - cat - >> "${tmp_dir}/templates/import.sh.tmpl" - echo 's6-dumpenv -- /var/run/s6/container_environment' >> "${tmp_dir}/templates/import.sh.tmpl" + echo 's6-env -i' >"${tmp_dir}/templates/import.sh.tmpl" + cat - >>"${tmp_dir}/templates/import.sh.tmpl" + echo 's6-dumpenv -- /var/run/s6/container_environment' >>"${tmp_dir}/templates/import.sh.tmpl" # Temporary confd template config. - cat << EOF >> "${tmp_dir}/conf.d/import.sh.toml" + cat <>"${tmp_dir}/conf.d/import.sh.toml" [template] src = "import.sh.tmpl" dest = "${tmp_dir}/import.sh" @@ -86,7 +92,7 @@ keys = ["/"] EOF # Temporary confd config. - cat << EOF > "${tmp_dir}/confd.toml" + cat <"${tmp_dir}/confd.toml" confdir = "${tmp_dir}" noop = false prefix = "/" @@ -96,7 +102,7 @@ EOF with-contenv confd-render-templates.sh -- -onetime -sync-only -config-file "${tmp_dir}/confd.toml" # Import the variables from confd. - execlineb -P "${tmp_dir}/import.sh" + execlineb -P "${tmp_dir}/import.sh" # Remove temporary files. rm -fr "${tmp_dir}" diff --git a/base/rootfs/usr/local/bin/confd-override-environment.sh b/base/rootfs/usr/local/bin/confd-override-environment.sh index 3369c25e..bf25b010 100755 --- a/base/rootfs/usr/local/bin/confd-override-environment.sh +++ b/base/rootfs/usr/local/bin/confd-override-environment.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage() { - cat <<- EOF + cat <<-EOF usage: $PROGNAME With a given prefix find all environment variables that have that prefix @@ -28,25 +29,25 @@ EOF function cmdline() { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --prefix) args="${args}-p ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --prefix) args="${args}-p " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "p:hx" OPTION - do + while getopts "p:hx" OPTION; do case $OPTION in p) readonly PREFIX=${OPTARG} @@ -56,9 +57,13 @@ function cmdline() { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -71,17 +76,17 @@ function cmdline() { } function main { - cmdline ${ARGS} - ENVIRONMENT_VARIABLES=$(with-contenv env | egrep "^${PREFIX}_" | cut -f1 -d=) + local environment_variables + cmdline "${ARGS[@]}" # Overwrite environment variables only if suitable canidate exists. + environment_variables=$(with-contenv env | grep -E "^${PREFIX}_" | cut -f1 -d=) { - for ENVIRONMENT_VARIABLE in ${ENVIRONMENT_VARIABLES} - do - FILE=(/var/run/s6/container_environment/*_${ENVIRONMENT_VARIABLE}) - if [ -f "${FILE}" ]; then - DEFAULT_VAR=$(basename "${FILE}") - echo "${ENVIRONMENT_VARIABLE}=\"{{ getenv \"${DEFAULT_VAR}\" }}\"" + for environment_variable in ${environment_variables}; do + FILE=(/var/run/s6/container_environment/*_"${environment_variable}") + if [ -f "${FILE[0]}" ]; then + DEFAULT_VAR=$(basename "${FILE[0]}") + echo "${environment_variable}=\"{{ getenv \"${DEFAULT_VAR}\" }}\"" fi done } | /usr/local/bin/confd-import-environment.sh diff --git a/base/rootfs/usr/local/bin/confd-render-templates.sh b/base/rootfs/usr/local/bin/confd-render-templates.sh index ee6c0a1c..9f67f56a 100755 --- a/base/rootfs/usr/local/bin/confd-render-templates.sh +++ b/base/rootfs/usr/local/bin/confd-render-templates.sh @@ -1,15 +1,16 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options Renders the confd templates according to specified environment variables: - + - CONFD_BACKEND - CONFD_LOG_LEVEL - ETCD_CONNECTION_TIMEOUT @@ -33,41 +34,46 @@ EOF function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "hx" OPTION - do + while getopts "hx" OPTION; do case $OPTION in h) usage exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done - shift $((OPTIND-1)) + shift $((OPTIND - 1)) # Remaining options to be passed onto the client, preceeded by '--'. if [ "$#" -gt 0 ]; then - readonly OPTIONS=(${@}); shift $# + readonly OPTIONS=("${@}") + shift $# else readonly OPTIONS=() fi @@ -76,25 +82,27 @@ function cmdline { } function main { - cmdline ${ARGS} - local args="-log-level ${CONFD_LOG_LEVEL}" + local args + cmdline "${ARGS[@]}" + + args=("-log-level" "${CONFD_LOG_LEVEL}") # If using remote backend make sure it is accessible before continuing wait-for-confd-backend.sh case "${CONFD_BACKEND}" in - etcd|etcdv3) - args="${args} -backend etcdv3 -node http://${ETCD_HOST}:${ETCD_PORT}" - ;; - env) - args="${args} -backend env" - ;; - *) - # Unknown backend assume failure. - exit 1 - ;; + etcd | etcdv3) + args+=("-backend" "etcdv3" "-node" "http://${ETCD_HOST}:${ETCD_PORT}") + ;; + env) + args+=("-backend" "env") + ;; + *) + # Unknown backend assume failure. + exit 1 + ;; esac - exec confd ${args} "${OPTIONS[@]}" + exec confd "${args[@]}" "${OPTIONS[@]}" } main diff --git a/base/rootfs/usr/local/bin/create-database.sh b/base/rootfs/usr/local/bin/create-database.sh index 4a8ba85b..596b73b8 100755 --- a/base/rootfs/usr/local/bin/create-database.sh +++ b/base/rootfs/usr/local/bin/create-database.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage() { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options FILE With no FILE, or when FILE is -, read standard input. @@ -53,30 +54,30 @@ function fallback { function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --driver) args="${args}-a ";; - --host) args="${args}-b ";; - --port) args="${args}-c ";; - --user) args="${args}-d ";; - --password) args="${args}-e ";; - --database) args="${args}-f ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --driver) args="${args}-a " ;; + --host) args="${args}-b " ;; + --port) args="${args}-c " ;; + --user) args="${args}-d " ;; + --password) args="${args}-e " ;; + --database) args="${args}-f " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "a:b:c:d:e:f:hx" OPTION - do + while getopts "a:b:c:d:e:f:hx" OPTION; do case $OPTION in a) readonly DRIVER=${OPTARG} @@ -101,9 +102,13 @@ function cmdline { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -131,7 +136,7 @@ function cmdline { readonly PORT=${DB_PORT} fi - shift $((OPTIND-1)) + shift $((OPTIND - 1)) # Allow either passing in a file/pipe or reading from stdin by specifiying "-" or # ommiting completely. @@ -175,17 +180,18 @@ function mysql_create_database { } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" case "${DRIVER}" in - mysql) - mysql_create_database - ;; - postgresql) - postgresql_create_database - ;; - *) - echo "Only MySQL/PostgresSQL databases are supported for now." >&2 - exit 1 + mysql) + mysql_create_database + ;; + postgresql) + postgresql_create_database + ;; + *) + echo "Only MySQL/PostgresSQL databases are supported for now." >&2 + exit 1 + ;; esac } main diff --git a/base/rootfs/usr/local/bin/execute-sql-file.sh b/base/rootfs/usr/local/bin/execute-sql-file.sh index e2299e42..3542e18d 100755 --- a/base/rootfs/usr/local/bin/execute-sql-file.sh +++ b/base/rootfs/usr/local/bin/execute-sql-file.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash set -e - -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options FILE With no FILE, or when FILE is -, read standard input. @@ -57,92 +57,96 @@ function fallback { function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --driver) args="${args}-a ";; - --host) args="${args}-b ";; - --port) args="${args}-c ";; - --user) args="${args}-d ";; - --password) args="${args}-e ";; - --database) args="${args}-f ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --driver) args="${args}-a " ;; + --host) args="${args}-b " ;; + --port) args="${args}-c " ;; + --user) args="${args}-d " ;; + --password) args="${args}-e " ;; + --database) args="${args}-f " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "a:b:c:d:e:f:hx" OPTION - do + while getopts "a:b:c:d:e:f:hx" OPTION; do case $OPTION in a) - readonly DRIVER=${OPTARG} + DRIVER=${OPTARG} ;; b) - readonly HOST=${OPTARG} + HOST=${OPTARG} ;; c) - readonly PORT=${OPTARG} + PORT=${OPTARG} ;; d) - readonly USER=${OPTARG} + USER=${OPTARG} ;; e) - readonly PASSWORD=${OPTARG} + PASSWORD=${OPTARG} ;; f) - readonly DATABASE=${OPTARG} + DATABASE=${OPTARG} ;; h) usage exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done if fallback "--user" "USER" "DB_ROOT_USER"; then - readonly USER=${DB_ROOT_USER} + USER=${DB_ROOT_USER} fi if fallback "--password" "PASSWORD" "DB_ROOT_PASSWORD"; then - readonly PASSWORD=${DB_ROOT_PASSWORD} + PASSWORD=${DB_ROOT_PASSWORD} fi if fallback "--driver" "DRIVER" "DB_DRIVER"; then - readonly DRIVER=${DB_DRIVER} + DRIVER=${DB_DRIVER} fi if fallback "--host" "HOST" "DB_HOST"; then - readonly HOST=${DB_HOST} + HOST=${DB_HOST} fi if fallback "--port" "PORT" "DB_PORT"; then - readonly PORT=${DB_PORT} + PORT=${DB_PORT} fi - shift $((OPTIND-1)) + shift $((OPTIND - 1)) # Allow either passing in a file or reading from stdin by specifiying "-" or # ommiting completely. if [[ -f "${1}" || -p "${1}" ]]; then - readonly FILE="${1}" + FILE="${1}" shift elif [[ "${1}" == "-" ]]; then - readonly FILE=/dev/stdin + FILE=/dev/stdin shift else - readonly FILE=/dev/stdin + FILE=/dev/stdin fi # Remaining options to be passed onto the client, preceeded by '--'. @@ -151,12 +155,14 @@ function cmdline { fi if [ "$#" -gt 0 ]; then - readonly OPTIONS=(${@}) + OPTIONS=("${@}") shift $# else - readonly OPTIONS=() + OPTIONS=() fi + readonly DRIVER HOST PORT USER PASSWORD DATABASE FILE OPTIONS + return 0 } @@ -174,7 +180,7 @@ function wait_for_access { function mysql_execute_sql_file { local database_arg= - if [[ ! -z "${DATABASE}" ]]; then + if [[ -n "${DATABASE}" ]]; then database_arg="--database=${DATABASE}" fi @@ -186,13 +192,13 @@ function mysql_execute_sql_file { --protocol=tcp \ "${database_arg}" \ "${OPTIONS[@]}" \ - < "${FILE}" + <"${FILE}" } function postgresql_execute_sql_file { local database_arg="--dbname=postgres" - if [[ ! -z "${DATABASE}" ]]; then + if [[ -n "${DATABASE}" ]]; then database_arg="--dbname=${DATABASE}" fi @@ -208,20 +214,21 @@ function postgresql_execute_sql_file { function execute_sql_file { case "${DRIVER}" in - mysql) - mysql_execute_sql_file - ;; - postgresql) - postgresql_execute_sql_file - ;; - *) - echo "Only MySQL/PostgresSQL databases are supported for now." >&2 - exit 1 + mysql) + mysql_execute_sql_file + ;; + postgresql) + postgresql_execute_sql_file + ;; + *) + echo "Only MySQL/PostgresSQL databases are supported for now." >&2 + exit 1 + ;; esac } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" wait_for_access execute_sql_file } diff --git a/base/rootfs/usr/local/bin/wait-for-confd-backend.sh b/base/rootfs/usr/local/bin/wait-for-confd-backend.sh index 04deda8a..1fe40972 100755 --- a/base/rootfs/usr/local/bin/wait-for-confd-backend.sh +++ b/base/rootfs/usr/local/bin/wait-for-confd-backend.sh @@ -1,11 +1,13 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME Waits for confd backend specified by the CONFD_BACKEND environment variable @@ -24,33 +26,37 @@ EOF function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "ahx" OPTION - do + while getopts "ahx" OPTION; do case $OPTION in h) usage exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -58,15 +64,17 @@ function cmdline { } function wait_for_connection { - local service="${1}"; shift - local host="${service}_HOST" - local port="${service}_PORT" - local duration="${service}_CONNECTION_TIMEOUT" + local service host port duration + service="${1}" + shift + host="${service}_HOST" + port="${service}_PORT" + duration="${service}_CONNECTION_TIMEOUT" echo "Waiting for up to ${!duration} seconds to connect to ${!host}:${!port}" >&2 # Put in subshell to supress "Teminated" message that always gets printed. # Its part of bashes job system and misleads those reading the log to thing # there was an error at startup. - if $(timeout ${!duration} wait-for-open-port.sh ${!host} ${!port} &> /dev/null); then + if timeout "${!duration}" wait-for-open-port.sh "${!host}" "${!port}" &>/dev/null; then return 0 else return 1 @@ -74,24 +82,24 @@ function wait_for_connection { } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" case "${CONFD_BACKEND}" in - etcd|etcdv3) - if wait_for_connection ETCD; then - exit 0 - else - exit 1 - fi - ;; - env) - # No need to wait for environment variables. + etcd | etcdv3) + if wait_for_connection ETCD; then exit 0 - ;; - *) - # Unknown backend assume failure. + else exit 1 - ;; + fi + ;; + env) + # No need to wait for environment variables. + exit 0 + ;; + *) + # Unknown backend assume failure. + exit 1 + ;; esac } main diff --git a/base/rootfs/usr/local/bin/wait-for-database.sh b/base/rootfs/usr/local/bin/wait-for-database.sh index bfc697d8..d6dde62d 100755 --- a/base/rootfs/usr/local/bin/wait-for-database.sh +++ b/base/rootfs/usr/local/bin/wait-for-database.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options Waits for an connection to an database as the given user, or until the @@ -36,29 +37,29 @@ EOF function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --driver) args="${args}-a ";; - --host) args="${args}-b ";; - --port) args="${args}-c ";; - --user) args="${args}-d ";; - --password) args="${args}-e ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --driver) args="${args}-a " ;; + --host) args="${args}-b " ;; + --port) args="${args}-c " ;; + --user) args="${args}-d " ;; + --password) args="${args}-e " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "a:b:c:d:e:hx" OPTION - do + while getopts "a:b:c:d:e:hx" OPTION; do case $OPTION in a) readonly DRIVER=${OPTARG} @@ -80,9 +81,13 @@ function cmdline { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -97,16 +102,16 @@ function cmdline { function wait_for_connection { local duration=${TIMEOUT:-300} echo "Waiting for up to ${duration} seconds to connect to Database ${HOST}:${PORT}" >&2 - timeout ${duration} wait-for-open-port.sh ${HOST} ${PORT} + timeout "${duration}" wait-for-open-port.sh "${HOST}" "${PORT}" } function mysql_validate_credentials { mysqladmin \ -s \ - --user=${USER} \ - --password=${PASSWORD} \ - --host=${HOST} \ - --port=${PORT} \ + --user="${USER}" \ + --password="${PASSWORD}" \ + --host="${HOST}" \ + --port="${PORT}" \ --protocol=tcp \ ping } @@ -123,20 +128,21 @@ function postgresql_validate_credentials { function validate_credentials { echo "Validating Database credentials" >&2 case "${DRIVER}" in - mysql) - mysql_validate_credentials - ;; - postgresql) - postgresql_validate_credentials - ;; - *) - echo "Only MySQL/PostgresSQL databases are supported for now." >&2 - exit 1 + mysql) + mysql_validate_credentials + ;; + postgresql) + postgresql_validate_credentials + ;; + *) + echo "Only MySQL/PostgresSQL databases are supported for now." >&2 + exit 1 + ;; esac } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" if wait_for_connection; then echo "Database found" >&2 diff --git a/base/rootfs/usr/local/bin/wait-for-open-port.sh b/base/rootfs/usr/local/bin/wait-for-open-port.sh index cdf508b5..ee427c55 100755 --- a/base/rootfs/usr/local/bin/wait-for-open-port.sh +++ b/base/rootfs/usr/local/bin/wait-for-open-port.sh @@ -1,21 +1,22 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME HOST PORT Waits for the given PORT to be open on HOST, re-checks every second. - + Use in conjunction with timeout. OPTIONS: -h --help Show this help. -x --debug Debug this script. - + Examples: Check if database is acccessible: timeout 10 $PROGNAME database 3306 @@ -24,56 +25,61 @@ EOF function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done - + # Reset the positional parameters to the short options - eval set -- $args - - while getopts "hx" OPTION - do + eval set -- "${args}" + + while getopts "hx" OPTION; do case $OPTION in h) usage exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done - shift $((OPTIND-1)) - + shift $((OPTIND - 1)) + if [ "$#" -ne 2 ]; then - echo "Illegal number of parameters" >&2 - usage - return 1 + echo "Illegal number of parameters" >&2 + usage + return 1 fi - readonly HOST=${1}; shift + readonly HOST=${1} + shift readonly PORT=${1} return 0 } function main { - cmdline ${ARGS} - echo "Waiting for ${PORT} on ${HOST} to open." >&2 - while ! nc -z -w5 $HOST $PORT &> /dev/null; do - sleep 1 - done - exit 0; + cmdline "${ARGS[@]}" + echo "Waiting for ${PORT} on ${HOST} to open." >&2 + while ! nc -z -w5 "${HOST}" "${PORT}" &>/dev/null; do + sleep 1 + done + exit 0 } main diff --git a/base/rootfs/usr/local/share/isle/utilities.sh b/base/rootfs/usr/local/share/isle/utilities.sh index 6a5bd6c3..cfcbf01e 100755 --- a/base/rootfs/usr/local/share/isle/utilities.sh +++ b/base/rootfs/usr/local/share/isle/utilities.sh @@ -6,23 +6,26 @@ set -E -T function error_handler { - local code=${1} - local num=${BASH_LINENO[0]} - local script=$(realpath "${BASH_SOURCE[1]}") + local code num script + code=${1} + num=${BASH_LINENO[0]} + script=$(realpath "${BASH_SOURCE[1]}") set +x echo " " echo "Error: '${code}' on line '${num}' in '${script}'" >&2 echo "Trace:" echo "------" - for i in $(seq 0 $(("${#BASH_LINENO[@]}"-2))); do # Do no include the error_handler. - local j=$(($i+1)) # Offset to account for error_handler. - script=$(realpath "${BASH_SOURCE[$j]}") - num=${BASH_LINENO[$i]} - echo "# ${i} File: ${script}, Line: ${BASH_LINENO[$i]} Function: ${FUNCNAME[$j]:-}" >&2 - awk 'NR>L-4 && NR>>":""),$0 }' L=${num} ${script} >&2 - echo "------" + for i in $( # Do no include the error_handler. + seq 0 $(("${#BASH_LINENO[@]}" - 2)) + ); do + local j=$((i + 1)) # Offset to account for error_handler. + script=$(realpath "${BASH_SOURCE[$j]}") + num=${BASH_LINENO[$i]} + echo "# ${i} File: ${script}, Line: ${BASH_LINENO[$i]} Function: ${FUNCNAME[$j]:-}" >&2 + awk 'NR>L-4 && NR>>":""),$0 }' L=${num} "${script}" >&2 + echo "------" done - exit ${code} + exit "${code}" } trap 'error_handler ${?}' ERR @@ -33,27 +36,30 @@ function exit_handler { else echo "Failed with exit code: ${code}" fi - exit ${code} + exit "${code}" } trap 'exit_handler ${?}' EXIT # Wait for a 20x response at the given address. function wait_20x { - local address=${1}; shift + local address=${1} + shift echo "Waiting for reponse on $address" - while ! curl --fail -i -X GET "${address}" &> /dev/null; do + while ! curl --fail -i -X GET "${address}" &>/dev/null; do sleep 5 done } # Checks if the given variable value matches against the expected value. function expect { - local var=${1}; shift - local value=${1}; shift - if [[ "${!var}" != "${value}" ]]; then - echo "Value for ${var} is '${!var}' expected '${value}'" - exit 1 - else - echo "Value for ${var} matches expected '${value}'" - fi -} \ No newline at end of file + local var=${1} + shift + local value=${1} + shift + if [[ "${!var}" != "${value}" ]]; then + echo "Value for ${var} is '${!var}' expected '${value}'" + exit 1 + else + echo "Value for ${var} matches expected '${value}'" + fi +} diff --git a/base/rootfs/usr/local/share/s6/finish b/base/rootfs/usr/local/share/s6/finish old mode 100644 new mode 100755 index 6ce32498..19685ff1 --- a/base/rootfs/usr/local/share/s6/finish +++ b/base/rootfs/usr/local/share/s6/finish @@ -1,8 +1,9 @@ #!/usr/bin/env bash set -e -readonly SERVICE_DIR="$( cd "$( dirname "${BASH_SOURCE[1]}" )" &> /dev/null && pwd )" -readonly SERVICE=$(basename ${SERVICE_DIR}) +SERVICE=$(basename "${SERVICE_DIR}") +SERVICE_DIR="$(cd "$(dirname "${BASH_SOURCE[1]}")" &>/dev/null && pwd)" +readonly SERVICE SERVICE_DIR # Handles exit codes / signals to ensure the container exits with the expected # value. Meant to be sourced in /etc/service.d/*/finish scripts. @@ -12,31 +13,34 @@ readonly SERVICE=$(basename ${SERVICE_DIR}) # code to >= 256 and expects the user to inspect the signal value instead. # Though it is possible for the service to recieve a signal directly and exit # with a exit code that indicates it exited due to receiving a signal. -if test ${1} -gt 255; then - readonly EXIT_CODE=$(s6-expr 128 + ${2}) - readonly SIGNAL=${2} -elif test ${1} -gt 128; then - readonly EXIT_CODE=${1} - readonly SIGNAL=$(s6-expr ${1} - 128) +if test "${1}" -gt 255; then + EXIT_CODE=$(s6-expr 128 + "${2}") + SIGNAL="${2}" +elif test "${1}" -gt 128; then + EXIT_CODE="${1}" + SIGNAL=$(s6-expr "${1}" - 128) else - readonly EXIT_CODE=${1} + EXIT_CODE="${1}" fi +readonly SIGNAL EXIT_CODE echo "[services.d] service ${SERVICE} finish: executing..." >&2 -# Report the exit code / signal and exit. -if test -z "$SIGNAL"; then - echo ${EXIT_CODE} > /var/run/s6/env-stage3/S6_STAGE2_EXITED - echo "[services.d] service ${SERVICE} exiting with exit code: ${EXIT_CODE}" >&2 -else - if test ${SIGNAL} -eq 15; then - # Process received a SIGTERM. Shutdown gracefully and do not set exit code. - echo "[services.d] service ${SERVICE} received SIGTERM exiting gracefully" >&2 +# Report the exit code / signal and exit (only if a non-zero exit code has not already been reported). +if test "$(cat /run/s6-linux-init-container-results/exitcode)" -eq 0; then + if test -z "${SIGNAL}"; then + echo "${EXIT_CODE}" >/run/s6-linux-init-container-results/exitcode + echo "[services.d] service ${SERVICE} exiting with exit code: ${EXIT_CODE}" >&2 else - echo ${EXIT_CODE} > /var/run/s6/env-stage3/S6_STAGE2_EXITED - echo "[services.d] service ${SERVICE} received signal: ${SIGNAL}, exiting with exit code: ${EXIT_CODE}" >&2 + if test "${SIGNAL}" -eq 15; then + # Process received a SIGTERM. Shutdown gracefully and do not set exit code. + echo "[services.d] service ${SERVICE} received SIGTERM exiting gracefully" >&2 + else + echo "${EXIT_CODE}" >/run/s6-linux-init-container-results/exitcode + echo "[services.d] service ${SERVICE} received signal: ${SIGNAL}, exiting with exit code: ${EXIT_CODE}" >&2 + fi fi fi # Regardless take down all other services. -s6-svscanctl -t /var/run/s6/services 2>/dev/null \ No newline at end of file +/run/s6/basedir/bin/halt diff --git a/base/tests/EnvironmentOverrideDatabase/build.gradle.kts b/base/tests/EnvironmentOverrideDatabase/build.gradle.kts index 975756eb..1ddb795e 100644 --- a/base/tests/EnvironmentOverrideDatabase/build.gradle.kts +++ b/base/tests/EnvironmentOverrideDatabase/build.gradle.kts @@ -1,2 +1,2 @@ import tasks.tests.DockerComposeTest -tasks.register("test") \ No newline at end of file +tasks.register("test") diff --git a/base/tests/EnvironmentOverrideDatabase/docker-compose.yml b/base/tests/EnvironmentOverrideDatabase/docker-compose.yml index 415602b4..17aa6b48 100644 --- a/base/tests/EnvironmentOverrideDatabase/docker-compose.yml +++ b/base/tests/EnvironmentOverrideDatabase/docker-compose.yml @@ -2,7 +2,7 @@ # # Tests that the base values for database environment variables can be # overridden by prefixing them. -# +# # `base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh` version: "3.8" services: @@ -23,4 +23,4 @@ services: - ./test.sh:/test.sh # Test to run. command: - /test.sh # Run test and exit. - image: ${BASE_IMAGE:-local/base:latest} \ No newline at end of file + image: ${BASE_IMAGE:-local/base:latest} diff --git a/base/tests/EnvironmentOverrideDatabase/test.sh b/base/tests/EnvironmentOverrideDatabase/test.sh index 8b277692..e6a6d744 100755 --- a/base/tests/EnvironmentOverrideDatabase/test.sh +++ b/base/tests/EnvironmentOverrideDatabase/test.sh @@ -1,5 +1,7 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash +# shellcheck disable=SC1091 source /usr/local/share/isle/utilities.sh # Checks that all `DB` environment variables can be overriden. diff --git a/base/tests/EnvironmentPrecedence/build.gradle.kts b/base/tests/EnvironmentPrecedence/build.gradle.kts index c184f19a..3232b1fd 100644 --- a/base/tests/EnvironmentPrecedence/build.gradle.kts +++ b/base/tests/EnvironmentPrecedence/build.gradle.kts @@ -19,4 +19,4 @@ tasks.register("test") { tearDown() checkExitCodes(0L) } -} \ No newline at end of file +} diff --git a/base/tests/EnvironmentPrecedence/docker-compose.yml b/base/tests/EnvironmentPrecedence/docker-compose.yml index 0f092d42..f0972a13 100644 --- a/base/tests/EnvironmentPrecedence/docker-compose.yml +++ b/base/tests/EnvironmentPrecedence/docker-compose.yml @@ -1,7 +1,7 @@ # file: docker-compose.yml # # Used for testing environment precedence follows what is expected from: -# +# # `base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh` version: "3.8" secrets: @@ -28,8 +28,8 @@ services: etcd --data-dir=/data base: # Environment variables defined here are #3 on on the precedence list. - # Environment variables specified in the Dockerfile for are #4 on the - # precedence list. Followed by files in /etc/defaults in the image, + # Environment variables specified in the Dockerfile for are #4 on the + # precedence list. Followed by files in /etc/defaults in the image, # which are #5 on the precedence list environment: CONFD_BACKEND: "etcd" @@ -48,4 +48,4 @@ services: - ./defaults/JWT_ADMIN_TOKEN:/etc/defaults/JWT_ADMIN_TOKEN # Should be overridden by confd backend. command: - /test.sh # Run test and exit. - image: ${BASE_IMAGE:-local/base:latest} \ No newline at end of file + image: ${BASE_IMAGE:-local/base:latest} diff --git a/base/tests/EnvironmentPrecedence/populate-etcd.sh b/base/tests/EnvironmentPrecedence/populate-etcd.sh index 52f83768..c308e81a 100755 --- a/base/tests/EnvironmentPrecedence/populate-etcd.sh +++ b/base/tests/EnvironmentPrecedence/populate-etcd.sh @@ -2,11 +2,10 @@ # Wait for etcd to start while true; do - etcdctl endpoint status >/dev/null 2>&1 - if [ "$?" -eq "0" ]; then + if etcdctl endpoint status >/dev/null 2>&1; then break fi sleep 1 done -etcdctl put /jwt/admin/token "JWT_ADMIN_TOKEN confd value" \ No newline at end of file +etcdctl put /jwt/admin/token "JWT_ADMIN_TOKEN confd value" diff --git a/base/tests/EnvironmentPrecedence/test.sh b/base/tests/EnvironmentPrecedence/test.sh index 4b8f087c..de9458c0 100755 --- a/base/tests/EnvironmentPrecedence/test.sh +++ b/base/tests/EnvironmentPrecedence/test.sh @@ -1,5 +1,7 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash +# shellcheck disable=SC1091 source /usr/local/share/isle/utilities.sh # Check environment variables match expectations otherwise exit non-zero. @@ -16,14 +18,14 @@ source /usr/local/share/isle/utilities.sh # For ease of reading overridden values follow the format: # ENV_VAR_NAME="ENV_VAR_NAME SOURCE value" -expect "JWT_ADMIN_TOKEN" "JWT_ADMIN_TOKEN confd value" # Confd backend should take precedence -expect "DB_PASSWORD" "DB_PASSWORD secret value" # Secret should take precedence -expect "DB_NAME" "DB_NAME passed in value" # Environment passed into the container should take precedence -expect "DB_USER" "default" # Environment variables defined in Dockerfile should take precedence +expect "JWT_ADMIN_TOKEN" "JWT_ADMIN_TOKEN confd value" # Confd backend should take precedence +expect "DB_PASSWORD" "DB_PASSWORD secret value" # Secret should take precedence +expect "DB_NAME" "DB_NAME passed in value" # Environment passed into the container should take precedence +expect "DB_USER" "default" # Environment variables defined in Dockerfile should take precedence expect "JWT_PUBLIC_KEY" "$(cat /etc/defaults/JWT_PUBLIC_KEY)" # Unspecified /etc/defaults value is used. # Check templated output from confd backend matches expectations. -diff /opt/keys/jwt/syn-settings.xml <(cat /etc/confd/templates/syn-settings.xml.tmpl | sed -e "s|{{ getenv \"JWT_ADMIN_TOKEN\" }}|${JWT_ADMIN_TOKEN}|") +diff /opt/keys/jwt/syn-settings.xml <(sed -e "s|{{ getenv \"JWT_ADMIN_TOKEN\" }}|${JWT_ADMIN_TOKEN}|" /etc/confd/templates/syn-settings.xml.tmpl) # Check templated output from secrets matches expectations. diff /opt/keys/jwt/private.key <(echo -n "${JWT_PRIVATE_KEY}") diff --git a/base/tests/ServiceStartsWithDefaults/build.gradle.kts b/base/tests/ServiceStartsWithDefaults/build.gradle.kts index 646c3ddd..6a9fc027 100644 --- a/base/tests/ServiceStartsWithDefaults/build.gradle.kts +++ b/base/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -1,2 +1,4 @@ import tasks.tests.ServiceStartsWithDefaultsTest -tasks.register("test") +tasks.register("test") { + waitForMessage.set("s6-rc: info: service legacy-services successfully started") +} diff --git a/base/tests/SigTermExitCode/docker-compose.yml b/base/tests/SigTermExitCode/docker-compose.yml index 6613d6dc..d863b178 100644 --- a/base/tests/SigTermExitCode/docker-compose.yml +++ b/base/tests/SigTermExitCode/docker-compose.yml @@ -6,4 +6,4 @@ services: base: image: ${BASE_IMAGE:-local/base:latest} volumes: - - ./service:/etc/services.d/test \ No newline at end of file + - ./service:/etc/services.d/test diff --git a/base/tests/SigTermExitCode/service/finish b/base/tests/SigTermExitCode/service/finish index 177a768f..901a742c 100755 --- a/base/tests/SigTermExitCode/service/finish +++ b/base/tests/SigTermExitCode/service/finish @@ -1,4 +1,6 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e -source /usr/local/share/s6/finish \ No newline at end of file +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/base/tests/SigTermExitCode/service/run b/base/tests/SigTermExitCode/service/run index 88231218..1371a9a3 100755 --- a/base/tests/SigTermExitCode/service/run +++ b/base/tests/SigTermExitCode/service/run @@ -1,4 +1,5 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e { @@ -7,5 +8,5 @@ set -e exit 0 }& echo "[services.d] Send SIGTERM to test service." >&2 -s6-svc -t /var/run/s6/services/test -wait \ No newline at end of file +s6-svc -t . +wait diff --git a/base/tests/SignalExitCode/docker-compose.yml b/base/tests/SignalExitCode/docker-compose.yml index 08a12ee9..b769fe12 100644 --- a/base/tests/SignalExitCode/docker-compose.yml +++ b/base/tests/SignalExitCode/docker-compose.yml @@ -8,4 +8,4 @@ services: command: "/test.sh" volumes: - ./service:/etc/services.d/test - - ./test.sh:/test.sh \ No newline at end of file + - ./test.sh:/test.sh diff --git a/base/tests/SignalExitCode/service/finish b/base/tests/SignalExitCode/service/finish index 177a768f..901a742c 100755 --- a/base/tests/SignalExitCode/service/finish +++ b/base/tests/SignalExitCode/service/finish @@ -1,4 +1,6 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e -source /usr/local/share/s6/finish \ No newline at end of file +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/base/tests/SignalExitCode/service/run b/base/tests/SignalExitCode/service/run index 2ffb0c7d..98b20857 100755 --- a/base/tests/SignalExitCode/service/run +++ b/base/tests/SignalExitCode/service/run @@ -1,5 +1,6 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e # Make sure we stay alive long enough to receive the signal. -exec sleep 100000 \ No newline at end of file +exec sleep 100000 diff --git a/base/tests/SignalExitCode/test.sh b/base/tests/SignalExitCode/test.sh index 4122ebd7..60d71aaf 100755 --- a/base/tests/SignalExitCode/test.sh +++ b/base/tests/SignalExitCode/test.sh @@ -1,5 +1,6 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash -s6-svc -i /var/run/s6/services/test +s6-svc -i /var/run/s6/legacy-services/test echo "[services.d] Send SIGINT to test service." >&2 sleep 100000 diff --git a/blazegraph/.dockerignore b/blazegraph/.dockerignore index badf6cb7..94334b24 100644 --- a/blazegraph/.dockerignore +++ b/blazegraph/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/blazegraph/Dockerfile b/blazegraph/Dockerfile index b3e26f70..cfed0fb9 100644 --- a/blazegraph/Dockerfile +++ b/blazegraph/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download @@ -14,10 +14,8 @@ RUN --mount=type=cache,id=blazegraph-downloads,sharing=locked,target=/opt/downlo FROM ${repository}/tomcat:${tag} -RUN mkdir /data && \ - chown tomcat:tomcat /data +COPY --link --from=download /opt/tomcat /opt/tomcat -COPY --from=download --chown=tomcat:tomcat /opt/tomcat /opt/tomcat +COPY --link rootfs / -COPY rootfs / -COPY --chown=tomcat:tomcat rootfs/opt/tomcat /opt/tomcat +RUN chown -R tomcat:tomcat /opt/tomcat diff --git a/blazegraph/rootfs/etc/cont-init.d/03-blazegraph-setup.sh b/blazegraph/rootfs/etc/cont-init.d/03-blazegraph-setup.sh deleted file mode 100755 index 9c67078c..00000000 --- a/blazegraph/rootfs/etc/cont-init.d/03-blazegraph-setup.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/with-contenv bash -set -e - -# When bind mounting we need to ensure that we -# actually can write to the folder. -chown tomcat:tomcat /data diff --git a/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/RWStore.properties b/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/RWStore.properties index 61eb198a..7303205d 100644 --- a/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/RWStore.properties +++ b/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/RWStore.properties @@ -46,4 +46,4 @@ com.bigdata.namespace.kb.spo.com.bigdata.btree.BTree.branchingFactor=1024 # collected they will be self-reported through the /counters servlet and # the workbench "Performance" tab. # -com.bigdata.journal.Journal.collectPlatformStatistics=false \ No newline at end of file +com.bigdata.journal.Journal.collectPlatformStatistics=false diff --git a/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/log4j.properties b/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/log4j.properties index 94dbb430..fbb2304b 100644 --- a/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/log4j.properties +++ b/blazegraph/rootfs/opt/tomcat/webapps/bigdata/WEB-INF/classes/log4j.properties @@ -30,7 +30,7 @@ log4j.appender.dest2=org.apache.log4j.ConsoleAppender log4j.appender.dest2.layout=org.apache.log4j.PatternLayout log4j.appender.dest2.layout.ConversionPattern=%-5p: %r %X{hostname} %X{serviceUUID} %X{taskname} %X{timestamp} %X{resources} %t %l: %m%n -## +## # Rule execution log. This is a formatted log file (comma delimited). log4j.logger.com.bigdata.relation.rule.eval.RuleLog=INFO,ruleLog log4j.additivity.com.bigdata.relation.rule.eval.RuleLog=false @@ -43,7 +43,7 @@ log4j.appender.ruleLog.BufferedIO=false log4j.appender.ruleLog.layout=org.apache.log4j.PatternLayout log4j.appender.ruleLog.layout.ConversionPattern=%m -## +## # Summary query evaluation log (tab delimited file). Uncomment the next line to enable. #log4j.logger.com.bigdata.bop.engine.QueryLog=INFO,queryLog log4j.additivity.com.bigdata.bop.engine.QueryLog=false @@ -56,7 +56,7 @@ log4j.appender.queryLog.BufferedIO=false log4j.appender.queryLog.layout=org.apache.log4j.PatternLayout log4j.appender.queryLog.layout.ConversionPattern=%m -## +## # BOp run state trace (tab delimited file). Uncomment the next line to enable. #log4j.logger.com.bigdata.bop.engine.RunState$TableLog=INFO,queryRunStateLog log4j.additivity.com.bigdata.bop.engine.RunState$TableLog=false @@ -69,7 +69,7 @@ log4j.appender.queryRunStateLog.BufferedIO=false log4j.appender.queryRunStateLog.layout=org.apache.log4j.PatternLayout log4j.appender.queryRunStateLog.layout.ConversionPattern=%m -## +## # Solutions trace (tab delimited file). Uncomment the next line to enable. #log4j.logger.com.bigdata.bop.engine.SolutionsLog=INFO,solutionsLog log4j.additivity.com.bigdata.bop.engine.SolutionsLog=false @@ -83,7 +83,7 @@ log4j.appender.solutionsLog.BufferedIO=false log4j.appender.solutionsLog.layout=org.apache.log4j.PatternLayout log4j.appender.solutionsLog.layout.ConversionPattern=SOLUTION:\t%m -## +## # SPARQL query trace (plain text file). Uncomment 2nd line to enable. log4j.logger.com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper=WARN #log4j.logger.com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper=INFO,sparqlLog @@ -97,4 +97,3 @@ log4j.appender.sparqlLog.Threshold=ALL log4j.appender.sparqlLog.BufferedIO=false log4j.appender.sparqlLog.layout=org.apache.log4j.PatternLayout log4j.appender.sparqlLog.layout.ConversionPattern=#----------%d-----------tx=%X{tx}\n%m\n - diff --git a/build.gradle.kts b/build.gradle.kts index f61f9666..f0653be0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,84 @@ -plugins { - id("com.github.nigelgbanks.IsleDocker") version "0.11" -} \ No newline at end of file +import plugins.CertificateGenerationPlugin.CertificateGenerationExtension.Companion.certificates +//import plugins.DockerRegistryPlugin.DockerRegistryExtension.Companion.registry + +buildscript { + repositories { + gradlePluginPortal() + } + dependencies { + classpath("com.github.nigelgbanks:isle-gradle-docker-plugin") { + version { + branch = "fixes" + } + } + } +} +//apply(plugin = "com.github.nigelgbanks.DockerBuildKitPlugin") +apply(plugin = "com.github.nigelgbanks.Isle") + + + +//plugins { +// id("com.github.nigelgbanks.DockerRegistryPlugin") +//} + + +//plugins { +// id("com.github.nigelgbanks.IsleDocker") version "0.11" +//} +/* +// Include any folder that has a Dockerfile as a sub-project. +val buildTasks = rootProject.projectDir + .walk() + .maxDepth(1) // Only immediate directories. + .filter { it.isDirectory && it.resolve("Dockerfile").exists() } // Must have a Dockerfile. + .map { directory -> + // Include as a sub-project. + directory.relativeTo(rootProject.projectDir).path + ":build" + }.toList().toTypedArray() + +val down by tasks.registering(Exec::class) { + commandLine("docker", "compose", "down", "-v") +} + +val wait by tasks.registering(Exec::class) { + commandLine( + "docker", + "compose", + "exec", + "drupal", + "timeout", + "600", + "bash", + "-c", + "while ! test -f /installed; do sleep 5; done" + ) + doLast { + logger.quiet( + """ + For all services the credentials are: + + Username: admin + Password: password + + The following services can be reached at the given URLs: + + ActiveMQ: https://activemq.islandora.dev/ + Blazegraph: https://blazegraph.islandora.dev/bigdata/ + Drupal: https://islandora.dev/ + Fedora: https://fcrepo.islandora.dev/fcrepo/rest/ + Matomo: https://islandora.dev/matomo/index.php + Solr: https://solr.islandora.dev/solr/#/ + Traefik: https://traefik.islandora.dev/dashboard/#/ + """.trimIndent() + ) + } +} + +tasks.register("up") { + commandLine("docker", "compose", "up", "-d") + dependsOn("generateCerts", *buildTasks) + mustRunAfter(down) + finalizedBy(wait) +} + */ diff --git a/cantaloupe/.dockerignore b/cantaloupe/.dockerignore index badf6cb7..a1a58e98 100644 --- a/cantaloupe/.dockerignore +++ b/cantaloupe/.dockerignore @@ -1,5 +1,6 @@ build.gradle.kts Dockerfile +README.dockerhub.md README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/cantaloupe/Dockerfile b/cantaloupe/Dockerfile index 889a4131..d9e473ec 100644 --- a/cantaloupe/Dockerfile +++ b/cantaloupe/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download ARG CANTALOUPE_VERSION="4.1.5" @@ -19,8 +19,6 @@ RUN --mount=type=cache,id=cantaloupe-downloads,sharing=locked,target=/opt/downlo FROM alpine:${alpine} AS cache FROM ${repository}/tomcat:${tag} -COPY --from=download --chown=tomcat:tomcat /opt/tomcat /opt/tomcat - # Opted for OpenJPG over Kakadu but that could be changed. # For reference see: https://cantaloupe-project.github.io/manual/3.3/processors.html RUN --mount=type=cache,id=cantaloupe-apk,sharing=locked,from=cache,target=/var/cache/apk \ @@ -29,8 +27,6 @@ RUN --mount=type=cache,id=cantaloupe-apk,sharing=locked,from=cache,target=/var/c imagemagick \ openjpeg-tools \ && \ - mkdir /data && \ - chown tomcat:tomcat /data && \ cleanup.sh ENV \ @@ -262,5 +258,8 @@ ENV \ CANTALOUPE_SOURCE_STATIC="HttpSource" \ CANTALOUPE_TEMP_PATHNAME= -COPY rootfs / -COPY --chown=tomcat:tomcat rootfs/opt/tomcat /opt/tomcat \ No newline at end of file +COPY --link --from=download /opt/tomcat /opt/tomcat + +COPY --link rootfs / + +RUN chown tomcat:tomcat -R /opt/tomcat diff --git a/cantaloupe/README.dockerhub.md b/cantaloupe/README.dockerhub.md index 2549fc1f..593a6e2a 100644 --- a/cantaloupe/README.dockerhub.md +++ b/cantaloupe/README.dockerhub.md @@ -1,6 +1,6 @@ # Cantaloupe -Docker image for [Cantaloupe] version 3.3.1. +Docker image for [Cantaloupe] version 4.1.5. Please refer to the [Cantaloupe Documentation] for more in-depth information. diff --git a/cantaloupe/README.md b/cantaloupe/README.md index fa53185b..231222eb 100644 --- a/cantaloupe/README.md +++ b/cantaloupe/README.md @@ -1,6 +1,6 @@ # Cantaloupe -Docker image for [Cantaloupe] version 3.3.1. +Docker image for [Cantaloupe] version 4.1.5. Please refer to the [Cantaloupe Documentation] for more in-depth information. @@ -25,7 +25,7 @@ additional settings, volumes, ports, etc. ## Settings -| Environment Variable | Confd Key | Default | +| Environment Variable | Confd Key | Default | | :------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------- | :--------------------------------------------------------- | | CANTALOUPE_HTTP_ENABLED | /cantaloupe/http/enabled | true | | CANTALOUPE_HTTP_HOST | /cantaloupe/http/host | 0.0.0.0 | @@ -166,7 +166,7 @@ additional settings, volumes, ports, etc. | CANTALOUPE_REDACTION_ENABLED | /cantaloupe/redaction/enabled | false | | CANTALOUPE_METADATA_PRESERVE | /cantaloupe/metadata/preserve | false | | CANTALOUPE_METADATA_RESPECT_ORIENTATION | /cantaloupe/metadata/respect/orientation | false | -| CANTALOUPE_LOG_APPLICATION_LEVEL | /cantaloupe/log/application/level | debug | +| CANTALOUPE_LOG_APPLICATION_LEVEL | /cantaloupe/log/application/level | info | | CANTALOUPE_LOG_APPLICATION_CONSOLEAPPENDER_ENABLED | /cantaloupe/log/application/consoleappender/enabled | true | | CANTALOUPE_LOG_APPLICATION_FILEAPPENDER_ENABLED | /cantaloupe/log/application/fileappender/enabled | false | | CANTALOUPE_LOG_APPLICATION_FILEAPPENDER_PATHNAME | /cantaloupe/log/application/fileappender/pathname | /opt/tomcat/logs/cantaloupe.application.log | diff --git a/cantaloupe/rootfs/opt/tomcat/bin/setenv.sh b/cantaloupe/rootfs/opt/tomcat/bin/setenv.sh index bb26151f..f3b81490 100755 --- a/cantaloupe/rootfs/opt/tomcat/bin/setenv.sh +++ b/cantaloupe/rootfs/opt/tomcat/bin/setenv.sh @@ -1,4 +1,5 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash export JAVA_OPTS="${TOMCAT_JAVA_OPTS}" export CATALINA_OPTS="${TOMCAT_CATALINA_OPTS}" export CATALINA_OPTS="${CATALINA_OPTS} -Dcantaloupe.config=/opt/tomcat/conf/cantaloupe.properties" diff --git a/code-server/Dockerfile b/code-server/Dockerfile index cc456c20..4a551e2e 100644 --- a/code-server/Dockerfile +++ b/code-server/Dockerfile @@ -1,49 +1,45 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM alpine:${alpine} AS cache -FROM node:fermium-alpine3.15 as node -FROM ${repository}/abuild:${tag} AS build - -COPY --from=node /usr/lib /usr/lib -COPY --from=node /usr/local/share /usr/local/share -COPY --from=node /usr/local/lib /usr/local/lib -COPY --from=node /usr/local/include /usr/local/include -COPY --from=node /usr/local/bin /usr/local/bin -COPY --from=node /opt /opt - -# g++, make, python are only required to build native dependencies via node-gyp. -# spdlog is required for building / using xdebug extension. -RUN --mount=type=cache,id=code-server-apk,sharing=locked,from=cache,target=/var/cache/apk \ - apk add \ - bash \ - g++ \ - make \ - nghttp2-dev \ - python3 \ - spdlog \ - sudo - -# `node-gyp` must be installed before anything else. This is unfortuante, but -# make sure the version here matches the exact version in: -# `rootfs/usr/local/share/.config/yarn/global/package.json` -RUN --mount=type=cache,id=code-server-yarn,sharing=locked,from=cache,target=/usr/local/share/.cache/yarn \ - yarn global add node-gyp@9.0.0 - -COPY rootfs/usr/local/share/.config/yarn/global /usr/local/share/.config/yarn/global - -RUN --mount=type=cache,id=code-server-yarn,sharing=locked,from=cache,target=/usr/local/share/.cache/yarn \ - cd /usr/local/share/.config/yarn/global && \ - JOBS=max yarn install +#FROM ${repository}/abuild:${tag} AS build +FROM ${repository}/download:${tag} AS download + +ARG TARGETARCH + +ARG CODE_SERVER_VERSION="4.8.3" +ARG CODE_SERVER_AMD64_SHA256="16e8b600d03eec710a7b4d6380986ba3414e7e3aa503da90b518d4fd066e220a" +ARG CODE_SERVER_ARM64_SHA256="b7b4cd77c992ea3e982d399f0e40b98707ceaf7e0960eeb84ba674f54315c595" + +# Install code-server +RUN --mount=type=cache,id=code-server-downloads,sharing=locked,target=/opt/downloads \ + if [ "${TARGETARCH}" = "arm64" ]; then \ + CODE_SERVER_FILE="code-server-${CODE_SERVER_VERSION}-linux-arm64.tar.gz"; \ + CODE_SERVER_SHA256="${CODE_SERVER_ARM64_SHA256}"; \ + fi; \ + if [ "${TARGETARCH}" = "amd64" ]; then \ + CODE_SERVER_FILE="code-server-${CODE_SERVER_VERSION}-linux-amd64.tar.gz"; \ + CODE_SERVER_SHA256="${CODE_SERVER_AMD64_SHA256}"; \ + fi; \ + CODE_SERVER_URL="https://github.com/coder/code-server/releases/download/v${CODE_SERVER_VERSION}/${CODE_SERVER_FILE}" && \ + download.sh --url "${CODE_SERVER_URL}" --sha256 "${CODE_SERVER_SHA256}" "${DOWNLOAD_CACHE_DIRECTORY}" && \ + mkdir -p /opt/code-server && \ + tar -xzf "${DOWNLOAD_CACHE_DIRECTORY}/${CODE_SERVER_FILE}" -C /opt/code-server --strip-components=1 && \ + echo '' > /root/.ash_history SHELL ["/bin/bash", "-c"] +RUN --mount=type=cache,id=code-server-apk,sharing=locked,from=cache,target=/var/cache/apk \ + apk --update add \ + gcompat \ + nodejs + # Install Editor plugins from bind mounted folder (Not available on online marketplace). RUN --mount=type=bind,source=/extensions,target=/extensions \ for extension in /extensions/*.vsix; \ do \ - /usr/local/share/.config/yarn/global/node_modules/.bin/code-server \ + /opt/code-server/bin/code-server \ --config /opt/code-server/config.yaml \ --user-data-dir /opt/code-server/data \ --extensions-dir /opt/code-server/extensions \ @@ -52,7 +48,7 @@ RUN --mount=type=bind,source=/extensions,target=/extensions \ wait # Install Editor plugins from internet (saves downloading when installing). -RUN --mount=type=cache,id=code-server-extensions,sharing=locked,from=cache,target=/opt/code-server/.local/share/code-server/CachedExtensionVSIXs \ +RUN \ EXTENSIONS=(\ bmewburn.vscode-intelephense-client \ felixfbecker.php-debug \ @@ -61,7 +57,7 @@ RUN --mount=type=cache,id=code-server-extensions,sharing=locked,from=cache,targe ) && \ for extension in "${EXTENSIONS[@]}"; \ do \ - /usr/local/share/.config/yarn/global/node_modules/.bin/code-server \ + /opt/code-server/bin/code-server \ --config /opt/code-server/config.yaml \ --user-data-dir /opt/code-server/data \ --extensions-dir /opt/code-server/extensions \ @@ -71,32 +67,46 @@ RUN --mount=type=cache,id=code-server-extensions,sharing=locked,from=cache,targe FROM --platform=$BUILDPLATFORM ${repository}/composer:${tag} AS composer -COPY rootfs/root/.composer /root/.composer +COPY --link rootfs/root/.composer /root/.composer RUN --mount=type=cache,id=code-server-composer,sharing=locked,target=/root/.composer/cache \ cd /root/.composer && \ - composer install -n + composer install -n FROM ${repository}/drupal:${tag} EXPOSE 8443 \ 9003 -# Set a default shell so it can be used via code-server. -RUN sed -i "/nginx:x:100:101:nginx:\/var\/lib\/nginx:\/sbin\/nologin/cnginx:x:100:101:nginx:/var/lib/nginx:/bin/bash" /etc/passwd - # Include commonly used tools and xdebug. RUN --mount=type=cache,id=code-server-drupal-apk,sharing=locked,from=cache,target=/var/cache/apk \ apk --update add \ + bash \ + docker-cli \ + gcompat \ htop \ - php7-pecl-xdebug \ + jq \ + nodejs \ + openssh \ + parallel \ + php81-pecl-xdebug \ + shadow \ spdlog \ sudo \ unison \ - parallel \ + yq \ && \ cleanup.sh +## PHPStorm remote requries Glibc. +#RUN --mount=type=cache,id=custom-ide,sharing=locked,target=/var/cache/apk \ +# GLIBC_VERSION=2.35-r0 && \ +# GLIBC_URL=https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION} && \ +# wget -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub && \ +# wget ${GLIBC_URL}/glibc-${GLIBC_VERSION}.apk && \ +# apk add glibc-${GLIBC_VERSION}.apk && \ +# ln -s /lib/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2 + # Drush requires HOME to be set as such. ENV \ HOME="/var/lib/nginx" \ @@ -108,22 +118,14 @@ ENV \ CODE_SERVER_PASSWORD=password \ XDEBUG_FLAGS="-d xdebug.mode=develop,debug" -COPY --from=composer --chown=nginx:nginx /root/.composer /var/lib/nginx/.composer -COPY --from=build --chown=nginx:nginx /opt/code-server /opt/code-server -COPY --from=build /usr/local/share/.config/yarn /usr/local/share/.config/yarn -COPY --from=node /usr/lib /usr/lib -COPY --from=node /usr/local/share /usr/local/share -COPY --from=node /usr/local/lib /usr/local/lib -COPY --from=node /usr/local/include /usr/local/include -COPY --from=node /usr/local/bin /usr/local/bin -COPY --from=node /opt /opt - -COPY rootfs / - -RUN ln -s /usr/local/share/.config/yarn/global/node_modules/.bin/code-server /usr/local/bin/code-server && \ - ln -s /usr/local/share/.config/yarn/global/node_modules/.bin/node-gyp /usr/local/bin/node-gyp && \ - ln -s /usr/local/share/.config/yarn/global/node_modules/.bin/grunt /usr/local/bin/grunt && \ - ln -s /usr/local/share/.config/yarn/global/node_modules/.bin/bower /usr/local/bin/bower - -# https://github.com/sudo-project/sudo/issues/42 -RUN chmod a=r,u+w /etc/sudo.conf +COPY --link --from=composer /root/.composer /var/lib/nginx/.composer +COPY --link --from=download /opt/code-server /opt/code-server +COPY --link rootfs / + +# Code server should be on the path. +# Set a default shell so it can be used via code-server. +# Additionally https://github.com/sudo-project/sudo/issues/42 +RUN sed -i "/nginx:x:100:101:nginx:\/var\/lib\/nginx:\/sbin\/nologin/cnginx:x:100:101:nginx:/var/lib/nginx:/bin/bash" /etc/passwd && \ + chown -R nginx:nginx /opt/code-server /var/lib/nginx/.composer && \ + ln -fs "/opt/code-server/bin/code-server" "/usr/local/bin/code-server" && \ + chmod a=r,u+w /etc/sudo.conf diff --git a/code-server/extensions/augustocdias.tasks-shell-input-1.7.0.vsix b/code-server/extensions/augustocdias.tasks-shell-input-1.7.5.vsix similarity index 96% rename from code-server/extensions/augustocdias.tasks-shell-input-1.7.0.vsix rename to code-server/extensions/augustocdias.tasks-shell-input-1.7.5.vsix index 60ddff8e..382f7b49 100644 Binary files a/code-server/extensions/augustocdias.tasks-shell-input-1.7.0.vsix and b/code-server/extensions/augustocdias.tasks-shell-input-1.7.5.vsix differ diff --git a/code-server/rootfs/etc/confd/conf.d/drupal.fpm.conf.toml b/code-server/rootfs/etc/confd/conf.d/drupal.fpm.conf.toml new file mode 100644 index 00000000..f83a1508 --- /dev/null +++ b/code-server/rootfs/etc/confd/conf.d/drupal.fpm.conf.toml @@ -0,0 +1,7 @@ +[template] +src = "drupal.fpm.conf.tmpl" +dest = "/etc/nginx/shared/drupal.fpm.conf" +uid = 0 +gid = 0 +mode = "0644" +keys = [ "/" ] diff --git a/code-server/rootfs/etc/confd/conf.d/settings.local.php.toml b/code-server/rootfs/etc/confd/conf.d/settings.local.php.toml new file mode 100644 index 00000000..57c85823 --- /dev/null +++ b/code-server/rootfs/etc/confd/conf.d/settings.local.php.toml @@ -0,0 +1,7 @@ +[template] +src = "settings.local.php.tmpl" +dest = "/var/www/drupal/web/sites/default/settings.local.php" +uid = 100 +gid = 101 +mode = "0644" +keys = [ "/" ] diff --git a/code-server/rootfs/etc/confd/templates/drupal.fpm.conf.tmpl b/code-server/rootfs/etc/confd/templates/drupal.fpm.conf.tmpl new file mode 100644 index 00000000..f524db5d --- /dev/null +++ b/code-server/rootfs/etc/confd/templates/drupal.fpm.conf.tmpl @@ -0,0 +1,40 @@ +# Allow for toggling between xdebug / production configured fpm. +set $fpm php-fpm81; +if ($cookie_XDEBUG_SESSION) { + set $fpm xdebug; +} + +# In Drupal 8, we must also match new paths where the '.php' appears in +# the middle, such as update.php/selection. The rule we use is strict, +# and only allows this pattern with the update.php front controller. +# This allows legacy path aliases in the form of +# blog/index.php/legacy-path to continue to route to Drupal nodes. If +# you do not have any paths like that, then you might prefer to use a +# laxer rule, such as: +# location ~ \.php(/|$) { +# The laxer rule will continue to work if Drupal uses this new URL +# pattern with front controllers other than update.php in a future +# release. +location ~ '\.php$|^/update.php' { + fastcgi_split_path_info ^(.+?\.php)(|/.*)$; + # Ensure the php file exists. Mitigates CVE-2019-11043 + try_files $fastcgi_script_name =404; + # Security note: If you're running a version of PHP older than the + # latest 5.3, you should have "cgi.fix_pathinfo = 0;" in php.ini. + # See http://serverfault.com/q/627903/94922 for details. + include fastcgi_params; + # Block httpoxy attacks. See https://httpoxy.org/. + fastcgi_param HTTP_PROXY ""; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + fastcgi_param QUERY_STRING $query_string; + {{ if eq (getenv "DRUPAL_ENABLE_HTTPS") "true" }} + fastcgi_param HTTPS on; + fastcgi_param HTTP_SCHEME https; + {{ end }} + fastcgi_intercept_errors on; + fastcgi_buffers 16 16k; + fastcgi_buffer_size 32k; + # PHP 8 socket location. + fastcgi_pass unix:/var/run/$fpm/php-fpm81.sock; +} diff --git a/code-server/rootfs/etc/confd/templates/launch.json.tmpl b/code-server/rootfs/etc/confd/templates/launch.json.tmpl index 199da952..aa6a0787 100644 --- a/code-server/rootfs/etc/confd/templates/launch.json.tmpl +++ b/code-server/rootfs/etc/confd/templates/launch.json.tmpl @@ -23,4 +23,4 @@ "port": 9003 } ] -} \ No newline at end of file +} diff --git a/code-server/rootfs/etc/confd/templates/phpcs.xml.tmpl b/code-server/rootfs/etc/confd/templates/phpcs.xml.tmpl index e8ccc3ee..fcfadf16 100644 --- a/code-server/rootfs/etc/confd/templates/phpcs.xml.tmpl +++ b/code-server/rootfs/etc/confd/templates/phpcs.xml.tmpl @@ -1,7 +1,7 @@ CodeSniffer configuration - + @@ -23,4 +23,4 @@ - \ No newline at end of file + diff --git a/code-server/rootfs/etc/confd/templates/services.yml.tmpl b/code-server/rootfs/etc/confd/templates/services.yml.tmpl index c81b0e89..80d2070a 100644 --- a/code-server/rootfs/etc/confd/templates/services.yml.tmpl +++ b/code-server/rootfs/etc/confd/templates/services.yml.tmpl @@ -1,4 +1,4 @@ parameters: twig.config: auto_reload: true - debug: true \ No newline at end of file + debug: true diff --git a/code-server/rootfs/etc/confd/templates/settings.json.tmpl b/code-server/rootfs/etc/confd/templates/settings.json.tmpl index 2cf88b04..c17b8868 100644 --- a/code-server/rootfs/etc/confd/templates/settings.json.tmpl +++ b/code-server/rootfs/etc/confd/templates/settings.json.tmpl @@ -124,4 +124,4 @@ }, "intelephense.environment.phpVersion": "7.3.0", "intelephense.environment.documentRoot": "/var/www/drupal/web" -} \ No newline at end of file +} diff --git a/code-server/rootfs/etc/confd/templates/settings.local.php.tmpl b/code-server/rootfs/etc/confd/templates/settings.local.php.tmpl new file mode 100644 index 00000000..73671ab1 --- /dev/null +++ b/code-server/rootfs/etc/confd/templates/settings.local.php.tmpl @@ -0,0 +1,155 @@ + /dev/null || true \ No newline at end of file diff --git a/code-server/rootfs/etc/nginx/http.d/default.conf b/code-server/rootfs/etc/nginx/http.d/default.conf index 21763633..78b1baf9 100644 --- a/code-server/rootfs/etc/nginx/http.d/default.conf +++ b/code-server/rootfs/etc/nginx/http.d/default.conf @@ -5,4 +5,4 @@ server { include /etc/nginx/shared/drupal.defaults.conf; include /etc/nginx/shared/drupal.fpm.conf; -} \ No newline at end of file +} diff --git a/code-server/rootfs/etc/nginx/shared/drupal.fpm.conf b/code-server/rootfs/etc/nginx/shared/drupal.fpm.conf index 289badae..764a37f0 100644 --- a/code-server/rootfs/etc/nginx/shared/drupal.fpm.conf +++ b/code-server/rootfs/etc/nginx/shared/drupal.fpm.conf @@ -1,5 +1,5 @@ # Allow for toggling between xdebug / production configured fpm. -set $fpm php-fpm7; +set $fpm php-fpm81; if ($cookie_XDEBUG_SESSION) { set $fpm xdebug; } @@ -23,6 +23,5 @@ location ~ '\.php$|^/update.php' { fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; # PHP 7 socket location. - fastcgi_pass unix:/var/run/$fpm/php-fpm7.sock; + fastcgi_pass unix:/var/run/$fpm/php-fpm81.sock; } - diff --git a/code-server/rootfs/etc/profile.d/path.sh b/code-server/rootfs/etc/profile.d/path.sh old mode 100644 new mode 100755 index ff45b85e..9380f5ad --- a/code-server/rootfs/etc/profile.d/path.sh +++ b/code-server/rootfs/etc/profile.d/path.sh @@ -1 +1,2 @@ -export PATH=${PATH}:/var/lib/nginx/.composer/vendor/bin:/var/www/drupal/vendor/bin \ No newline at end of file +#!/usr/bin/env bash +export PATH=${PATH}:/var/lib/nginx/.composer/vendor/bin:/var/www/drupal/vendor/bin diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/dependencies.d/ready b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/finish b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/finish new file mode 100755 index 00000000..901a742c --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/finish @@ -0,0 +1,6 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/code-server/rootfs/etc/services.d/code-server/run b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/run old mode 100644 new mode 100755 similarity index 70% rename from code-server/rootfs/etc/services.d/code-server/run rename to code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/run index a056bf57..bb5028ce --- a/code-server/rootfs/etc/services.d/code-server/run +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/run @@ -1,9 +1,10 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e -export PASSWORD=${CODE_SERVER_PASSWORD} +export PASSWORD="${CODE_SERVER_PASSWORD}" exec s6-setuidgid nginx \ /usr/local/bin/code-server \ - --auth ${CODE_SERVER_AUTHENTICATION} \ + --auth "${CODE_SERVER_AUTHENTICATION}" \ --bind-addr 0.0.0.0:8443 \ --config /opt/code-server/config.yaml \ --user-data-dir /opt/code-server/data \ diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/type b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/code-server/type @@ -0,0 +1 @@ +longrun diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/create-required-directories b/code-server/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/create-required-directories new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/dependencies.d/base b/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/type b/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/type @@ -0,0 +1 @@ +oneshot diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/up b/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/up new file mode 100755 index 00000000..b5d1dd1f --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/create-required-directories/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/create-required-directories.sh diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/dependencies.d/ready b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/finish b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/finish new file mode 100755 index 00000000..901a742c --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/finish @@ -0,0 +1,6 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/run b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/run new file mode 100755 index 00000000..51bfa997 --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/run @@ -0,0 +1,7 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e +# We allow password-less authentication. +passwd -d nginx +/usr/bin/ssh-keygen -A +exec /usr/sbin/sshd -D -e diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/type b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/sshd/type @@ -0,0 +1 @@ +longrun diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/code-server b/code-server/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/code-server new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/sshd b/code-server/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/sshd new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/xdebug b/code-server/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/xdebug new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/dependencies.d/ready b/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/finish b/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/finish new file mode 100755 index 00000000..901a742c --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/finish @@ -0,0 +1,6 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/run b/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/run new file mode 100755 index 00000000..82856dd9 --- /dev/null +++ b/code-server/rootfs/etc/s6-overlay/s6-rc.d/xdebug/run @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +set -e + +mkdir -p /run/xdebug + +XDEBUG_FLAGS=$(= 1.43.0 < 2" - -compression@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= - -content-disposition@0.5.3: - version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== - dependencies: - safe-buffer "5.1.2" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -cookie-parser@^1.4.5: - version "1.4.6" - resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" - integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== - dependencies: - cookie "0.4.1" - cookie-signature "1.0.6" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" - integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= - -cookie@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== - -cookie@0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" - integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -crypt@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" - integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= - -data-uri-to-buffer@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - -debug@2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.1.0, debug@^4.3.1: - version "4.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" - integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== - dependencies: - ms "2.1.2" - -deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -degenerator@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-3.0.2.tgz#6a61fcc42a702d6e50ff6023fe17bff435f68235" - integrity sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ== - dependencies: - ast-types "^0.13.2" - escodegen "^1.8.1" - esprima "^4.0.0" - vm2 "^3.9.8" - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= - -depd@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@^1.1.2, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" - integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= - -detect-libc@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -es6-promisify@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621" - integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escodegen@^1.8.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -expand-tilde@^2.0.0, expand-tilde@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" - integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= - dependencies: - homedir-polyfill "^1.0.1" - -express@5.0.0-alpha.8: - version "5.0.0-alpha.8" - resolved "https://registry.yarnpkg.com/express/-/express-5.0.0-alpha.8.tgz#b9dd3a568eab791e3391db47f9e6ab91e61b13fe" - integrity sha512-PL8wTLgaNOiq7GpXt187/yWHkrNSfbr4H0yy+V0fpqJt5wpUzBi9DprAkwGKBFOqWHylJ8EyPy34V5u9YArfng== - dependencies: - accepts "~1.3.7" - array-flatten "2.1.1" - body-parser "1.19.0" - content-disposition "0.5.3" - content-type "~1.0.4" - cookie "0.4.0" - cookie-signature "1.0.6" - debug "3.1.0" - depd "~1.1.2" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "~1.1.2" - fresh "0.5.2" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "~2.3.0" - parseurl "~1.3.3" - path-is-absolute "1.0.1" - proxy-addr "~2.0.5" - qs "6.7.0" - range-parser "~1.2.1" - router "2.0.0-alpha.1" - safe-buffer "5.1.2" - send "0.17.1" - serve-static "1.14.1" - setprototypeof "1.1.1" - statuses "~1.5.0" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -extend@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -file-uri-to-path@2: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba" - integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.3" - statuses "~1.5.0" - unpipe "~1.0.0" - -findup-sync@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" - integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== - dependencies: - detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^4.0.2" - resolve-dir "^1.0.1" - -fined@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" - integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== - dependencies: - expand-tilde "^2.0.2" - is-plain-object "^2.0.3" - object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" - -flagged-respawn@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" - integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== - -follow-redirects@^1.0.0: - version "1.14.9" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7" - integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w== - -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -for-own@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" - integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= - dependencies: - for-in "^1.0.1" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0, fs-minipass@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -ftp@^0.3.10: - version "0.3.10" - resolved "https://registry.yarnpkg.com/ftp/-/ftp-0.3.10.tgz#9197d861ad8142f3e63d5a83bfe4c59f7330885d" - integrity sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0= - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.3.tgz#286cf105c1962c659f0963058fb05116c1b82d3f" - integrity sha512-ICw1DhAwMtb22rYFwEHgJcx1JCwJGv3x6G0OQUq56Nge+H4Q8JEwr8iveS0XFlsUNSI67F5ffMGK25bK4Pmskw== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-uri@3: - version "3.0.2" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c" - integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== - dependencies: - "@tootallnate/once" "1" - data-uri-to-buffer "3" - debug "4" - file-uri-to-path "2" - fs-extra "^8.1.0" - ftp "^0.3.10" - -glob@^7.1.3, glob@^7.1.4, glob@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-modules@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== - dependencies: - global-prefix "^1.0.1" - is-windows "^1.0.1" - resolve-dir "^1.0.0" - -global-prefix@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" - integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= - dependencies: - expand-tilde "^2.0.2" - homedir-polyfill "^1.0.1" - ini "^1.3.4" - is-windows "^1.0.1" - which "^1.2.14" - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -grunt-cli@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.4.3.tgz#22c9f1a3d2780bf9b0d206e832e40f8f499175ff" - integrity sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ== - dependencies: - grunt-known-options "~2.0.0" - interpret "~1.1.0" - liftup "~3.0.1" - nopt "~4.0.1" - v8flags "~3.2.0" - -grunt-known-options@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-2.0.0.tgz#cac641e897f9a0a680b8c9839803d35f3325103c" - integrity sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA== - -has-symbols@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -homedir-polyfill@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== - dependencies: - parse-passwd "^1.0.0" - -http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - -http-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" - integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== - dependencies: - "@tootallnate/once" "2" - agent-base "6" - debug "4" - -http-proxy@^1.18.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -httpolyglot@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/httpolyglot/-/httpolyglot-0.1.2.tgz#e4d347fe8984a62f467d4060df527f1851f6997b" - integrity sha1-5NNH/omEpi9GfUBg31J/GFH2mXs= - -https-proxy-agent@5, https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.1: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@^1.3.4: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -interpret@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" - integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= - -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-absolute@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" - integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== - dependencies: - is-relative "^1.0.0" - is-windows "^1.0.1" - -is-buffer@~1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-relative@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" - integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== - dependencies: - is-unc-path "^1.0.0" - -is-unc-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" - integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== - dependencies: - unc-path-regex "^0.1.2" - -is-windows@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -js-yaml@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -liftup@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/liftup/-/liftup-3.0.1.tgz#1cb81aff0f368464ed3a5f1a7286372d6b1a60ce" - integrity sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw== - dependencies: - extend "^3.0.2" - findup-sync "^4.0.0" - fined "^1.2.0" - flagged-respawn "^1.0.1" - is-plain-object "^2.0.4" - object.map "^1.0.1" - rechoir "^0.7.0" - resolve "^1.19.0" - -limiter@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" - integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lru-cache@^7.5.1: - version "7.5.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.5.1.tgz#660a134c2c3c015aa453b03df55d2a9f0c216a0f" - integrity sha512-q1TS8IqKvcg3aScamKCHpepSrHF537Ww7nHahBOxhDu9D2YoBXAsj/7uFdZFj1xJr9LmyeJ62AdyofCHafUbIA== - -make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-fetch-happen@^10.0.3: - version "10.0.6" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.0.6.tgz#671269de09cc51208413460898efb7b36adf5534" - integrity sha512-4Gfh6lV3TLXmj7qz79hBFuvVqjYSMW6v2+sxtdX4LFQU0rK3V/txRjE0DoZb7X0IF3t9f8NO3CxPSWlvdckhVA== - dependencies: - agentkeepalive "^4.2.1" - cacache "^16.0.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^7.5.1" - minipass "^3.1.6" - minipass-collect "^1.0.2" - minipass-fetch "^2.0.3" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.3" - promise-retry "^2.0.1" - socks-proxy-agent "^6.1.1" - ssri "^8.0.1" - -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" - integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== - dependencies: - kind-of "^6.0.2" - -map-cache@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -md5@^2.2.1: - version "2.3.0" - resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" - integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== - dependencies: - charenc "0.0.2" - crypt "0.0.2" - is-buffer "~1.1.6" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" - integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" - integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= - -methods@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" - integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= - -micromatch@^4.0.2: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": - version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.2.5: - version "1.2.7" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" - integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.0.3.tgz#688bbd0c2b019642778dc808b6950dd908d192b3" - integrity sha512-VA+eiiUtaIvpQJXISwE3OiMvQwAWrgKb97F0aXlCS1Ahikr8fEQq8m3Hf7Kv9KT3nokuHigJKsDMB6atU04olQ== - dependencies: - minipass "^3.1.6" - minipass-sized "^1.0.3" - minizlib "^2.1.2" - optionalDependencies: - encoding "^0.1.13" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.1, minipass@^3.1.6: - version "3.1.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.6.tgz#3b8150aa688a711a1521af5e8779c1d3bb4f45ee" - integrity sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ== - dependencies: - yallist "^4.0.0" - -minizlib@^2.1.1, minizlib@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -mkdirp@^0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.0.0: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nan@^2.14.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== - -negotiator@0.6.3, negotiator@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -netmask@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - -node-addon-api@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" - integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== - -node-fetch@^2.6.5: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.0.0.tgz#e1da2067427f3eb5bb56820cb62bc6b1e4bd2089" - integrity sha512-Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^10.0.3" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -nopt@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" - integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== - dependencies: - abbrev "1" - osenv "^0.1.4" - -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.1.tgz#06f1344a174c06e8de9c6c70834cfba2964bba17" - integrity sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.0" - set-blocking "^2.0.0" - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-inspect@^1.9.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" - integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g== - -object.defaults@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" - integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= - dependencies: - array-each "^1.0.1" - array-slice "^1.0.0" - for-own "^1.0.0" - isobject "^3.0.0" - -object.map@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" - integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.pick@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - -pac-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz#b718f76475a6a5415c2efbe256c1c971c84f635e" - integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" - get-uri "3" - http-proxy-agent "^4.0.1" - https-proxy-agent "5" - pac-resolver "^5.0.0" - raw-body "^2.2.0" - socks-proxy-agent "5" - -pac-resolver@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-5.0.0.tgz#1d717a127b3d7a9407a16d6e1b012b13b9ba8dc0" - integrity sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA== - dependencies: - degenerator "^3.0.1" - ip "^1.1.5" - netmask "^2.0.1" - -parse-filepath@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" - integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= - dependencies: - is-absolute "^1.0.0" - map-cache "^0.2.0" - path-root "^0.1.1" - -parse-passwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" - integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= - -parseurl@~1.3.2, parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -path-is-absolute@1.0.1, path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-root-regex@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" - integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= - -path-root@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" - integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= - dependencies: - path-root-regex "^0.1.0" - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" - integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= - -pem@^1.14.2: - version "1.14.6" - resolved "https://registry.yarnpkg.com/pem/-/pem-1.14.6.tgz#89babca3a73466fb844df70666dbf1b25eb0dc56" - integrity sha512-I5GKUer2PPv5qzUfxaZ6IGRkhp+357Kyv2t1JJg9vP8hGGI13qU34N2QupmggbpIZGPuudH0jn8KU5hjFpPk3g== - dependencies: - es6-promisify "^6.0.0" - md5 "^2.2.1" - os-tmpdir "^1.0.1" - which "^2.0.2" - -picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -proxy-addr@~2.0.5: - version "2.0.7" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-5.0.0.tgz#d31405c10d6e8431fde96cba7a0c027ce01d633b" - integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== - dependencies: - agent-base "^6.0.0" - debug "4" - http-proxy-agent "^4.0.0" - https-proxy-agent "^5.0.0" - lru-cache "^5.1.1" - pac-proxy-agent "^5.0.0" - proxy-from-env "^1.0.0" - socks-proxy-agent "^5.0.0" - -proxy-from-env@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -qs@6.10.3: - version "6.10.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@6.7.0: - version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.4.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== - dependencies: - bytes "3.1.0" - http-errors "1.7.2" - iconv-lite "0.4.24" - unpipe "1.0.0" - -raw-body@^2.2.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha1-fPTFTvZI44EwhMY23SB54WbAgdk= - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -rechoir@^0.7.0: - version "0.7.1" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" - integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== - dependencies: - resolve "^1.9.0" - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-dir@^1.0.0, resolve-dir@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" - integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= - dependencies: - expand-tilde "^2.0.0" - global-modules "^1.0.0" - -resolve@^1.19.0, resolve@^1.9.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= - -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -rotating-file-stream@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/rotating-file-stream/-/rotating-file-stream-3.0.3.tgz#c2966a5eb6f2caf25cae18ec4fc50c5b1167a0f3" - integrity sha512-lN4tljs2Pv8OkVCw34Fa+jYn9vn98ZxWgBoavKjlT7az25F+oEZT6kKXmzpqovBVz+fW7Mb862tc34rpxKVZFw== - -router@2.0.0-alpha.1: - version "2.0.0-alpha.1" - resolved "https://registry.yarnpkg.com/router/-/router-2.0.0-alpha.1.tgz#9188213b972215e03ef830e0ac77837870085f6d" - integrity sha512-fz/T/qLkJM6RTtbqGqA1+uZ88ejqJoPyKeJAeXPYjebA7HzV/UyflH4gXWqW/Y6SERnp4kDwNARjqy6se3PcOw== - dependencies: - array-flatten "2.1.1" - debug "3.1.0" - methods "~1.1.2" - parseurl "~1.3.2" - path-to-regexp "0.1.7" - setprototypeof "1.1.0" - utils-merge "1.0.1" - -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@^5.1.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-compare@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/safe-compare/-/safe-compare-1.1.4.tgz#5e0128538a82820e2e9250cd78e45da6786ba593" - integrity sha512-b9wZ986HHCo/HbKrRpBJb2kqXMK9CEWIE1egeEvZsYn69ay3kdfl9nG3RyOcR+jInTDf7a86WQ1d4VJX7goSSQ== - dependencies: - buffer-alloc "^1.2.0" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -semver@^6.0.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.1.3, semver@^7.3.5: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serve-static@1.14.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" - integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= - -setprototypeof@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@5, socks-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz#032fb583048a29ebffec2e6a73fca0761f48177e" - integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== - dependencies: - agent-base "^6.0.2" - debug "4" - socks "^2.3.3" - -socks-proxy-agent@^6.1.1: - version "6.1.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" - integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== - dependencies: - agent-base "^6.0.2" - debug "^4.3.1" - socks "^2.6.1" - -socks@^2.3.3, socks@^2.6.1: - version "2.6.2" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== - dependencies: - ip "^1.1.5" - smart-buffer "^4.2.0" - -source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -spdlog@^0.13.6: - version "0.13.6" - resolved "https://registry.yarnpkg.com/spdlog/-/spdlog-0.13.6.tgz#26b2e13d46cbf8f2334c12ba2a8cc82de5a28f02" - integrity sha512-iGqDoA88G3Rv3lkbVQglTulp3nv12FzND6LDC7cOZ+OoFvWnXVb3+Ebhed60oZ6+IWWGwDtjXK6ympwr7C1XmQ== - dependencies: - bindings "^1.5.0" - mkdirp "^0.5.5" - nan "^2.14.0" - -split2@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== - -ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= - -strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tar@^6.1.11, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= - -tslib@^2.0.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-is@~1.6.17, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -unc-path-regex@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" - integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= - -util-deprecate@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" - integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= - -v8flags@~3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" - -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" - integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= - -vm2@^3.9.8: - version "3.9.11" - resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.11.tgz#a880f510a606481719ec3f9803b940c5805a06fe" - integrity sha512-PFG8iJRSjvvBdisowQ7iVF580DXb1uCIiGaXgm7tynMR1uTBlv7UJlB1zdv5KJ+Tmq1f0Upnj3fayoEOPpCBKg== - dependencies: - acorn "^8.7.0" - acorn-walk "^8.2.0" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^1.2.14: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2, wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -ws@^8.0.0: - version "8.5.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f" - integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg== - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xregexp@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943" - integrity sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM= - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yarn@^1.22.4: - version "1.22.17" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.17.tgz#bf910747d22497b573131f7341c0e1d15c74036c" - integrity sha512-H0p241BXaH0UN9IeH//RT82tl5PfNraVpSpEoW+ET7lmopNC61eZ+A+IDvU8FM6Go5vx162SncDL8J1ZjRBriQ== diff --git a/code-server/tests/ServiceStartsWithDefaults/build.gradle.kts b/code-server/tests/ServiceStartsWithDefaults/build.gradle.kts new file mode 100644 index 00000000..c1430982 --- /dev/null +++ b/code-server/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -0,0 +1,4 @@ +import tasks.tests.ServiceStartsWithDefaultsTest +tasks.register("test") { + waitForMessage.set("NOTICE: ready to handle connections") +} diff --git a/composer/Dockerfile b/composer/Dockerfile index 56ee3f45..0b67e459 100644 --- a/composer/Dockerfile +++ b/composer/Dockerfile @@ -1,11 +1,11 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 -FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download +ARG alpine=3.16.2 +FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download -ARG COMPOSER_VERSION="2.0.12" -ARG COMPOSER_SHA256="82ea8c1537cfaceb7e56f6004c7ccdf99ddafce7237c07374d920e635730a631" +ARG COMPOSER_VERSION="2.3.10" +ARG COMPOSER_SHA256="d808272f284fa8e0f8b470703e1438ac8f362030bbc9d12e29530277d767aff0" # https://getcomposer.org/download/ RUN --mount=type=cache,id=download-downloads,sharing=locked,target=/opt/downloads \ @@ -21,33 +21,34 @@ FROM ${repository}/download:${tag} # Install packages and tools that allow for basic downloads. RUN --mount=type=cache,id=composer-apk,sharing=locked,from=cache,target=/var/cache/apk \ apk add --no-cache \ - php7 \ - php7-ctype \ - php7-curl \ - php7-dom \ - php7-fileinfo \ - php7-fpm \ - php7-gd \ - php7-iconv \ - php7-json \ - php7-mbstring \ - php7-mysqli \ - php7-opcache \ - php7-openssl \ - php7-pdo \ - php7-pdo_mysql \ - php7-pdo_pgsql \ - php7-phar \ - php7-session \ - php7-simplexml \ - php7-tokenizer \ - php7-xml \ - php7-xmlwriter \ - php7-xmlreader \ - php7-xsl \ + php81 \ + php81-ctype \ + php81-curl \ + php81-dom \ + php81-fileinfo \ + php81-fpm \ + php81-gd \ + php81-iconv \ + php81-json \ + php81-mbstring \ + php81-mysqli \ + php81-opcache \ + php81-openssl \ + php81-pdo \ + php81-pdo_mysql \ + php81-pdo_pgsql \ + php81-phar \ + php81-session \ + php81-simplexml \ + php81-tokenizer \ + php81-xml \ + php81-xmlwriter \ + php81-xmlreader \ + php81-xsl \ && \ + ln -s /usr/bin/php81 /usr/bin/php && \ echo '' > /root/.ash_history -COPY --from=download /usr/bin/composer /usr/bin/composer +COPY --link --from=download /usr/bin/composer /usr/bin/composer -COPY rootfs / +COPY --link rootfs / diff --git a/crayfish/.dockerignore b/crayfish/.dockerignore index badf6cb7..94334b24 100644 --- a/crayfish/.dockerignore +++ b/crayfish/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/crayfish/Dockerfile b/crayfish/Dockerfile index 850abcd4..6fd34b28 100644 --- a/crayfish/Dockerfile +++ b/crayfish/Dockerfile @@ -1,19 +1,20 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download -ARG COMMIT=48cd6acfe4b6892d4ffa20e4fdfe16057a19a142 +# When updating this commit also update the lock files in rootfs/var/www/crayfish. +ARG COMMIT=22bc67f0906d3a45148d585b28dbc94fc81151ca RUN --mount=type=cache,id=crayfish-downloads,sharing=locked,target=/opt/downloads \ git-clone-cached.sh \ - --url https://github.com/Islandora/Crayfish.git \ + --url https://github.com/nigelgbanks/Crayfish.git \ --cache-dir "${DOWNLOAD_CACHE_DIRECTORY}" \ --commit "${COMMIT}" \ --worktree /var/www/crayfish FROM ${repository}/composer:${tag} -COPY --from=download --chown=nginx:nginx /var/www /var/www +COPY --link --from=download /var/www /var/www -COPY rootfs / +COPY --link rootfs / diff --git a/crayfish/rootfs/etc/nginx/http.d/default.conf b/crayfish/rootfs/etc/nginx/http.d/default.conf index b9df4e91..8d2884f5 100644 --- a/crayfish/rootfs/etc/nginx/http.d/default.conf +++ b/crayfish/rootfs/etc/nginx/http.d/default.conf @@ -6,10 +6,10 @@ server { location / { # try to serve file directly, fallback to index.php try_files $uri /index.php$is_args$args; - } - + } + location ~ ^/index\.php(/|$) { - fastcgi_pass unix:/var/run/php-fpm7/php-fpm7.sock; + fastcgi_pass unix:/var/run/php-fpm81/php-fpm81.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; @@ -27,3 +27,6 @@ server { return 404; } } +# Required for Nginx service to validate that fpm is working. +# @see nginx/rootfs/etc/s6-overlay/s6-rc.d/nginx/data/check +include /etc/nginx/shared/fpm.server.conf; diff --git a/crayfish/rootfs/var/www/crayfish/Homarus/composer.lock b/crayfish/rootfs/var/www/crayfish/Homarus/composer.lock new file mode 100644 index 00000000..8edfe5dc --- /dev/null +++ b/crayfish/rootfs/var/www/crayfish/Homarus/composer.lock @@ -0,0 +1,6919 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "8880bc3443c28a32f82a27b39ea5a3f6", + "packages": [ + { + "name": "easyrdf/easyrdf", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/easyrdf/easyrdf.git", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-xmlreader": "*", + "lib-libxml": "*", + "php": ">=7.1.0" + }, + "require-dev": { + "code-lts/doctum": "^5", + "ml/json-ld": "~1.0", + "phpunit/phpunit": "^7", + "semsol/arc2": "^2.4", + "squizlabs/php_codesniffer": "3.*", + "zendframework/zend-http": "~2.3" + }, + "suggest": { + "ml/json-ld": "~1.0", + "semsol/arc2": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyRdf\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "homepage": "http://indeyets.ru/", + "role": "Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "support": { + "forum": "http://groups.google.com/group/easyrdf/", + "issues": "http://github.com/easyrdf/easyrdf/issues", + "source": "https://github.com/easyrdf/easyrdf/tree/1.1.1" + }, + "time": "2020-12-02T08:47:31+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "islandora/chullo", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/chullo.git", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/chullo/zipball/a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "shasum": "" + }, + "require": { + "easyrdf/easyrdf": "^0.9 || ^1", + "guzzlehttp/guzzle": "^6.1.0", + "ml/json-ld": "^1.0.4", + "php": ">=7.3" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^9.0", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Islandora\\Chullo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + }, + { + "name": "Nick Ruest", + "email": "ruestn@gmail.com", + "role": "Maintainer" + } + ], + "description": "A PHP client for interacting with a Fedora 4 server.", + "homepage": "https://github.com/Islandora/chullo", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/chullo/tree/1.3.0" + }, + "time": "2021-12-16T22:31:48+00:00" + }, + { + "name": "islandora/crayfish-commons", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/Crayfish-Commons.git", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/e7b8cbd5951286897507f6cfd3e6356201d24f48", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48", + "shasum": "" + }, + "require": { + "islandora/chullo": "^1.0", + "namshi/jose": "^7.2", + "psr/log": "^1.0.1", + "symfony/config": "4.4.*", + "symfony/dependency-injection": "4.4.*", + "symfony/event-dispatcher": "4.4.*", + "symfony/http-foundation": "4.4.*", + "symfony/monolog-bundle": "^3.4", + "symfony/security-bundle": "4.4.*", + "symfony/yaml": "4.4.*" + }, + "conflict": { + "symfony/symfony": "*" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "4.4.*" + }, + "type": "symfony-bundle", + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.4.*" + } + }, + "autoload": { + "psr-4": { + "Islandora\\Crayfish\\Commons\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + } + ], + "description": "Shared code amongst Islandora Crayfish microservices", + "homepage": "https://github.com/Islandora/Crayfish-Commons", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/Crayfish-Commons/tree/3.0.0" + }, + "time": "2022-05-05T15:46:41+00:00" + }, + { + "name": "ml/iri", + "version": "1.1.4", + "target-dir": "ML/IRI", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/IRI.git", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341", + "shasum": "" + }, + "require": { + "lib-pcre": ">=4.0", + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ML\\IRI": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "IRI handling for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "URN", + "iri", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/lanthaler/IRI/issues", + "source": "https://github.com/lanthaler/IRI/tree/master" + }, + "time": "2014-01-21T13:43:39+00:00" + }, + { + "name": "ml/json-ld", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/JsonLD.git", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ml/iri": "^1.1.1", + "php": ">=5.3.0" + }, + "require-dev": { + "json-ld/tests": "1.0", + "phpunit/phpunit": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ML\\JsonLD\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "JSON-LD Processor for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "JSON-LD", + "jsonld" + ], + "support": { + "issues": "https://github.com/lanthaler/JsonLD/issues", + "source": "https://github.com/lanthaler/JsonLD/tree/1.2.1" + }, + "time": "2022-09-29T08:45:17+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "namshi/jose", + "version": "7.2.3", + "source": { + "type": "git", + "url": "https://github.com/namshi/jose.git", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff", + "shasum": "" + }, + "require": { + "ext-date": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-spl": "*", + "php": ">=5.5", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpseclib/phpseclib": "^2.0", + "phpunit/phpunit": "^4.5|^5.0", + "satooshi/php-coveralls": "^1.0" + }, + "suggest": { + "ext-openssl": "Allows to use OpenSSL as crypto engine.", + "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0." + }, + "type": "library", + "autoload": { + "psr-4": { + "Namshi\\JOSE\\": "src/Namshi/JOSE/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Nadalin", + "email": "alessandro.nadalin@gmail.com" + }, + { + "name": "Alessandro Cinelli (cirpo)", + "email": "alessandro.cinelli@gmail.com" + } + ], + "description": "JSON Object Signing and Encryption library for PHP.", + "keywords": [ + "JSON Web Signature", + "JSON Web Token", + "JWS", + "json", + "jwt", + "token" + ], + "support": { + "issues": "https://github.com/namshi/jose/issues", + "source": "https://github.com/namshi/jose/tree/master" + }, + "time": "2016-12-05T07:27:31+00:00" + }, + { + "name": "psr/cache", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "66185be61805b1e44a5c4000929e700228d426cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc", + "reference": "66185be61805b1e44a5c4000929e700228d426cc", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts words between their singular and plural forms (English only)", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "support": { + "source": "https://github.com/symfony/inflector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "EnglishInflector from the String component", + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "45c956ef58135091f53732646a0acd28034f02c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0", + "reference": "45c956ef58135091f53732646a0acd28034f02c0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v4.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-23T06:06:49+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/41e7666313f140ac8560f8db64ab54cc7348615a", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" + }, + "conflict": { + "symfony/event-dispatcher": ">=5", + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-20T10:00:58+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-27T11:44:32+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/inflector", + "version": "2.0.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/inflector.git", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpstan/phpstan-strict-rules": "^1.3", + "phpunit/phpunit": "^8.5 || ^9.5", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Roman Borschel", + "email": "roman@code-factory.org" + }, + { + "name": "Benjamin Eberlei", + "email": "kontakt@beberlei.de" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" + } + ], + "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", + "homepage": "https://www.doctrine-project.org/projects/inflector.html", + "keywords": [ + "inflection", + "inflector", + "lowercase", + "manipulation", + "php", + "plural", + "singular", + "strings", + "uppercase", + "words" + ], + "support": { + "issues": "https://github.com/doctrine/inflector/issues", + "source": "https://github.com/doctrine/inflector/tree/2.0.6" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", + "type": "tidelift" + } + ], + "time": "2022-10-20T09:10:12+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + }, + "time": "2021-12-08T12:19:24+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.3", + "phpunit/phpunit": "^9.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.1" + }, + "time": "2020-07-09T08:33:42+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/phpcpd", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phpcpd" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "support": { + "issues": "https://github.com/sebastianbergmann/phpcpd/issues", + "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:39:23+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-06-18T07:21:10+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-25T12:56:14+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/8e70c1cab07ac641b885ce80385b9824a293c623", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/console/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-26T16:02:45+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-03T12:57:57+00:00" + }, + { + "name": "symfony/maker-bundle", + "version": "v1.39.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/maker-bundle.git", + "reference": "30c8ac13511f6df7bc9ac088f31d7a48ce6433c6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/30c8ac13511f6df7bc9ac088f31d7a48ce6433c6", + "reference": "30c8ac13511f6df7bc9ac088f31d7a48ce6433c6", + "shasum": "" + }, + "require": { + "doctrine/inflector": "^1.2|^2.0", + "nikic/php-parser": "^4.11", + "php": ">=7.1.3", + "symfony/config": "^4.4|^5.0|^6.0", + "symfony/console": "^4.4|^5.0|^6.0", + "symfony/dependency-injection": "^4.4|^5.0|^6.0", + "symfony/deprecation-contracts": "^2.2|^3", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/finder": "^4.4|^5.0|^6.0", + "symfony/framework-bundle": "^4.4|^5.0|^6.0", + "symfony/http-kernel": "^4.4|^5.0|^6.0" + }, + "require-dev": { + "composer/semver": "^3.0", + "doctrine/doctrine-bundle": "^1.12.3|^2.0", + "doctrine/orm": "^2.3", + "symfony/http-client": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4|^5.0|^6.0", + "symfony/polyfill-php80": "^1.16.0", + "symfony/process": "^4.4|^5.0|^6.0", + "symfony/security-core": "^4.4|^5.0|^6.0", + "symfony/yaml": "^4.4|^5.0|^6.0", + "twig/twig": "^2.0|^3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-main": "1.0-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MakerBundle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.", + "homepage": "https://symfony.com/doc/current/bundles/SymfonyMakerBundle/index.html", + "keywords": [ + "code generator", + "generator", + "scaffold", + "scaffolding" + ], + "support": { + "issues": "https://github.com/symfony/maker-bundle/issues", + "source": "https://github.com/symfony/maker-bundle/tree/v1.39.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-13T18:14:36+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75857fc94e9cb68e7ab32e7a962750f73ce40396", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0" + }, + "suggest": { + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/crayfish/rootfs/var/www/crayfish/Houdini/composer.lock b/crayfish/rootfs/var/www/crayfish/Houdini/composer.lock new file mode 100644 index 00000000..7d11430c --- /dev/null +++ b/crayfish/rootfs/var/www/crayfish/Houdini/composer.lock @@ -0,0 +1,6650 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "6a8b2c6137d62616d92358a36b58fd5a", + "packages": [ + { + "name": "easyrdf/easyrdf", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/easyrdf/easyrdf.git", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-xmlreader": "*", + "lib-libxml": "*", + "php": ">=7.1.0" + }, + "require-dev": { + "code-lts/doctum": "^5", + "ml/json-ld": "~1.0", + "phpunit/phpunit": "^7", + "semsol/arc2": "^2.4", + "squizlabs/php_codesniffer": "3.*", + "zendframework/zend-http": "~2.3" + }, + "suggest": { + "ml/json-ld": "~1.0", + "semsol/arc2": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyRdf\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "homepage": "http://indeyets.ru/", + "role": "Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "support": { + "forum": "http://groups.google.com/group/easyrdf/", + "issues": "http://github.com/easyrdf/easyrdf/issues", + "source": "https://github.com/easyrdf/easyrdf/tree/1.1.1" + }, + "time": "2020-12-02T08:47:31+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "islandora/chullo", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/chullo.git", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/chullo/zipball/a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "shasum": "" + }, + "require": { + "easyrdf/easyrdf": "^0.9 || ^1", + "guzzlehttp/guzzle": "^6.1.0", + "ml/json-ld": "^1.0.4", + "php": ">=7.3" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^9.0", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Islandora\\Chullo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + }, + { + "name": "Nick Ruest", + "email": "ruestn@gmail.com", + "role": "Maintainer" + } + ], + "description": "A PHP client for interacting with a Fedora 4 server.", + "homepage": "https://github.com/Islandora/chullo", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/chullo/tree/1.3.0" + }, + "time": "2021-12-16T22:31:48+00:00" + }, + { + "name": "islandora/crayfish-commons", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/Crayfish-Commons.git", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/e7b8cbd5951286897507f6cfd3e6356201d24f48", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48", + "shasum": "" + }, + "require": { + "islandora/chullo": "^1.0", + "namshi/jose": "^7.2", + "psr/log": "^1.0.1", + "symfony/config": "4.4.*", + "symfony/dependency-injection": "4.4.*", + "symfony/event-dispatcher": "4.4.*", + "symfony/http-foundation": "4.4.*", + "symfony/monolog-bundle": "^3.4", + "symfony/security-bundle": "4.4.*", + "symfony/yaml": "4.4.*" + }, + "conflict": { + "symfony/symfony": "*" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "4.4.*" + }, + "type": "symfony-bundle", + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.4.*" + } + }, + "autoload": { + "psr-4": { + "Islandora\\Crayfish\\Commons\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + } + ], + "description": "Shared code amongst Islandora Crayfish microservices", + "homepage": "https://github.com/Islandora/Crayfish-Commons", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/Crayfish-Commons/tree/3.0.0" + }, + "time": "2022-05-05T15:46:41+00:00" + }, + { + "name": "ml/iri", + "version": "1.1.4", + "target-dir": "ML/IRI", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/IRI.git", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341", + "shasum": "" + }, + "require": { + "lib-pcre": ">=4.0", + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ML\\IRI": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "IRI handling for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "URN", + "iri", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/lanthaler/IRI/issues", + "source": "https://github.com/lanthaler/IRI/tree/master" + }, + "time": "2014-01-21T13:43:39+00:00" + }, + { + "name": "ml/json-ld", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/JsonLD.git", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ml/iri": "^1.1.1", + "php": ">=5.3.0" + }, + "require-dev": { + "json-ld/tests": "1.0", + "phpunit/phpunit": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ML\\JsonLD\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "JSON-LD Processor for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "JSON-LD", + "jsonld" + ], + "support": { + "issues": "https://github.com/lanthaler/JsonLD/issues", + "source": "https://github.com/lanthaler/JsonLD/tree/1.2.1" + }, + "time": "2022-09-29T08:45:17+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "namshi/jose", + "version": "7.2.3", + "source": { + "type": "git", + "url": "https://github.com/namshi/jose.git", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff", + "shasum": "" + }, + "require": { + "ext-date": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-spl": "*", + "php": ">=5.5", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpseclib/phpseclib": "^2.0", + "phpunit/phpunit": "^4.5|^5.0", + "satooshi/php-coveralls": "^1.0" + }, + "suggest": { + "ext-openssl": "Allows to use OpenSSL as crypto engine.", + "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0." + }, + "type": "library", + "autoload": { + "psr-4": { + "Namshi\\JOSE\\": "src/Namshi/JOSE/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Nadalin", + "email": "alessandro.nadalin@gmail.com" + }, + { + "name": "Alessandro Cinelli (cirpo)", + "email": "alessandro.cinelli@gmail.com" + } + ], + "description": "JSON Object Signing and Encryption library for PHP.", + "keywords": [ + "JSON Web Signature", + "JSON Web Token", + "JWS", + "json", + "jwt", + "token" + ], + "support": { + "issues": "https://github.com/namshi/jose/issues", + "source": "https://github.com/namshi/jose/tree/master" + }, + "time": "2016-12-05T07:27:31+00:00" + }, + { + "name": "psr/cache", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "66185be61805b1e44a5c4000929e700228d426cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc", + "reference": "66185be61805b1e44a5c4000929e700228d426cc", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts words between their singular and plural forms (English only)", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "support": { + "source": "https://github.com/symfony/inflector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "EnglishInflector from the String component", + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "45c956ef58135091f53732646a0acd28034f02c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0", + "reference": "45c956ef58135091f53732646a0acd28034f02c0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v4.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-23T06:06:49+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/41e7666313f140ac8560f8db64ab54cc7348615a", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" + }, + "conflict": { + "symfony/event-dispatcher": ">=5", + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-20T10:00:58+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-27T11:44:32+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + }, + "time": "2021-12-08T12:19:24+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.3", + "phpunit/phpunit": "^9.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.1" + }, + "time": "2020-07-09T08:33:42+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/phpcpd", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phpcpd" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "support": { + "issues": "https://github.com/sebastianbergmann/phpcpd/issues", + "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:39:23+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-06-18T07:21:10+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-25T12:56:14+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-03T12:57:57+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75857fc94e9cb68e7ab32e7a962750f73ce40396", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0" + }, + "suggest": { + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/crayfish/rootfs/var/www/crayfish/Hypercube/composer.lock b/crayfish/rootfs/var/www/crayfish/Hypercube/composer.lock new file mode 100644 index 00000000..ec2e45aa --- /dev/null +++ b/crayfish/rootfs/var/www/crayfish/Hypercube/composer.lock @@ -0,0 +1,6650 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "2392881d8e6c8830dcd71328af9573bd", + "packages": [ + { + "name": "easyrdf/easyrdf", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/easyrdf/easyrdf.git", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-xmlreader": "*", + "lib-libxml": "*", + "php": ">=7.1.0" + }, + "require-dev": { + "code-lts/doctum": "^5", + "ml/json-ld": "~1.0", + "phpunit/phpunit": "^7", + "semsol/arc2": "^2.4", + "squizlabs/php_codesniffer": "3.*", + "zendframework/zend-http": "~2.3" + }, + "suggest": { + "ml/json-ld": "~1.0", + "semsol/arc2": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyRdf\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "homepage": "http://indeyets.ru/", + "role": "Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "support": { + "forum": "http://groups.google.com/group/easyrdf/", + "issues": "http://github.com/easyrdf/easyrdf/issues", + "source": "https://github.com/easyrdf/easyrdf/tree/1.1.1" + }, + "time": "2020-12-02T08:47:31+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "islandora/chullo", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/chullo.git", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/chullo/zipball/a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "shasum": "" + }, + "require": { + "easyrdf/easyrdf": "^0.9 || ^1", + "guzzlehttp/guzzle": "^6.1.0", + "ml/json-ld": "^1.0.4", + "php": ">=7.3" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^9.0", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Islandora\\Chullo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + }, + { + "name": "Nick Ruest", + "email": "ruestn@gmail.com", + "role": "Maintainer" + } + ], + "description": "A PHP client for interacting with a Fedora 4 server.", + "homepage": "https://github.com/Islandora/chullo", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/chullo/tree/1.3.0" + }, + "time": "2021-12-16T22:31:48+00:00" + }, + { + "name": "islandora/crayfish-commons", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/Crayfish-Commons.git", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/e7b8cbd5951286897507f6cfd3e6356201d24f48", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48", + "shasum": "" + }, + "require": { + "islandora/chullo": "^1.0", + "namshi/jose": "^7.2", + "psr/log": "^1.0.1", + "symfony/config": "4.4.*", + "symfony/dependency-injection": "4.4.*", + "symfony/event-dispatcher": "4.4.*", + "symfony/http-foundation": "4.4.*", + "symfony/monolog-bundle": "^3.4", + "symfony/security-bundle": "4.4.*", + "symfony/yaml": "4.4.*" + }, + "conflict": { + "symfony/symfony": "*" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "4.4.*" + }, + "type": "symfony-bundle", + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.4.*" + } + }, + "autoload": { + "psr-4": { + "Islandora\\Crayfish\\Commons\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + } + ], + "description": "Shared code amongst Islandora Crayfish microservices", + "homepage": "https://github.com/Islandora/Crayfish-Commons", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/Crayfish-Commons/tree/3.0.0" + }, + "time": "2022-05-05T15:46:41+00:00" + }, + { + "name": "ml/iri", + "version": "1.1.4", + "target-dir": "ML/IRI", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/IRI.git", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341", + "shasum": "" + }, + "require": { + "lib-pcre": ">=4.0", + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ML\\IRI": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "IRI handling for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "URN", + "iri", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/lanthaler/IRI/issues", + "source": "https://github.com/lanthaler/IRI/tree/master" + }, + "time": "2014-01-21T13:43:39+00:00" + }, + { + "name": "ml/json-ld", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/JsonLD.git", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ml/iri": "^1.1.1", + "php": ">=5.3.0" + }, + "require-dev": { + "json-ld/tests": "1.0", + "phpunit/phpunit": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ML\\JsonLD\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "JSON-LD Processor for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "JSON-LD", + "jsonld" + ], + "support": { + "issues": "https://github.com/lanthaler/JsonLD/issues", + "source": "https://github.com/lanthaler/JsonLD/tree/1.2.1" + }, + "time": "2022-09-29T08:45:17+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "namshi/jose", + "version": "7.2.3", + "source": { + "type": "git", + "url": "https://github.com/namshi/jose.git", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff", + "shasum": "" + }, + "require": { + "ext-date": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-spl": "*", + "php": ">=5.5", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpseclib/phpseclib": "^2.0", + "phpunit/phpunit": "^4.5|^5.0", + "satooshi/php-coveralls": "^1.0" + }, + "suggest": { + "ext-openssl": "Allows to use OpenSSL as crypto engine.", + "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0." + }, + "type": "library", + "autoload": { + "psr-4": { + "Namshi\\JOSE\\": "src/Namshi/JOSE/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Nadalin", + "email": "alessandro.nadalin@gmail.com" + }, + { + "name": "Alessandro Cinelli (cirpo)", + "email": "alessandro.cinelli@gmail.com" + } + ], + "description": "JSON Object Signing and Encryption library for PHP.", + "keywords": [ + "JSON Web Signature", + "JSON Web Token", + "JWS", + "json", + "jwt", + "token" + ], + "support": { + "issues": "https://github.com/namshi/jose/issues", + "source": "https://github.com/namshi/jose/tree/master" + }, + "time": "2016-12-05T07:27:31+00:00" + }, + { + "name": "psr/cache", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "66185be61805b1e44a5c4000929e700228d426cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc", + "reference": "66185be61805b1e44a5c4000929e700228d426cc", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts words between their singular and plural forms (English only)", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "support": { + "source": "https://github.com/symfony/inflector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "EnglishInflector from the String component", + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "45c956ef58135091f53732646a0acd28034f02c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0", + "reference": "45c956ef58135091f53732646a0acd28034f02c0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v4.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-23T06:06:49+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/41e7666313f140ac8560f8db64ab54cc7348615a", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" + }, + "conflict": { + "symfony/event-dispatcher": ">=5", + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-20T10:00:58+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-27T11:44:32+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + }, + "time": "2021-12-08T12:19:24+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.3", + "phpunit/phpunit": "^9.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.1" + }, + "time": "2020-07-09T08:33:42+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/phpcpd", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phpcpd" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "support": { + "issues": "https://github.com/sebastianbergmann/phpcpd/issues", + "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:39:23+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-06-18T07:21:10+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-25T12:56:14+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-03T12:57:57+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75857fc94e9cb68e7ab32e7a962750f73ce40396", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0" + }, + "suggest": { + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/crayfish/rootfs/var/www/crayfish/Milliner/composer.lock b/crayfish/rootfs/var/www/crayfish/Milliner/composer.lock new file mode 100644 index 00000000..5355e24a --- /dev/null +++ b/crayfish/rootfs/var/www/crayfish/Milliner/composer.lock @@ -0,0 +1,6650 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "9acdb3178f4ce1aa3155bda7530d771d", + "packages": [ + { + "name": "easyrdf/easyrdf", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/easyrdf/easyrdf.git", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-xmlreader": "*", + "lib-libxml": "*", + "php": ">=7.1.0" + }, + "require-dev": { + "code-lts/doctum": "^5", + "ml/json-ld": "~1.0", + "phpunit/phpunit": "^7", + "semsol/arc2": "^2.4", + "squizlabs/php_codesniffer": "3.*", + "zendframework/zend-http": "~2.3" + }, + "suggest": { + "ml/json-ld": "~1.0", + "semsol/arc2": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyRdf\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "homepage": "http://indeyets.ru/", + "role": "Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "support": { + "forum": "http://groups.google.com/group/easyrdf/", + "issues": "http://github.com/easyrdf/easyrdf/issues", + "source": "https://github.com/easyrdf/easyrdf/tree/1.1.1" + }, + "time": "2020-12-02T08:47:31+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "islandora/chullo", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/chullo.git", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/chullo/zipball/a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "shasum": "" + }, + "require": { + "easyrdf/easyrdf": "^0.9 || ^1", + "guzzlehttp/guzzle": "^6.1.0", + "ml/json-ld": "^1.0.4", + "php": ">=7.3" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^9.0", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Islandora\\Chullo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + }, + { + "name": "Nick Ruest", + "email": "ruestn@gmail.com", + "role": "Maintainer" + } + ], + "description": "A PHP client for interacting with a Fedora 4 server.", + "homepage": "https://github.com/Islandora/chullo", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/chullo/tree/1.3.0" + }, + "time": "2021-12-16T22:31:48+00:00" + }, + { + "name": "islandora/crayfish-commons", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/Crayfish-Commons.git", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/e7b8cbd5951286897507f6cfd3e6356201d24f48", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48", + "shasum": "" + }, + "require": { + "islandora/chullo": "^1.0", + "namshi/jose": "^7.2", + "psr/log": "^1.0.1", + "symfony/config": "4.4.*", + "symfony/dependency-injection": "4.4.*", + "symfony/event-dispatcher": "4.4.*", + "symfony/http-foundation": "4.4.*", + "symfony/monolog-bundle": "^3.4", + "symfony/security-bundle": "4.4.*", + "symfony/yaml": "4.4.*" + }, + "conflict": { + "symfony/symfony": "*" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "4.4.*" + }, + "type": "symfony-bundle", + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.4.*" + } + }, + "autoload": { + "psr-4": { + "Islandora\\Crayfish\\Commons\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + } + ], + "description": "Shared code amongst Islandora Crayfish microservices", + "homepage": "https://github.com/Islandora/Crayfish-Commons", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/Crayfish-Commons/tree/3.0.0" + }, + "time": "2022-05-05T15:46:41+00:00" + }, + { + "name": "ml/iri", + "version": "1.1.4", + "target-dir": "ML/IRI", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/IRI.git", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341", + "shasum": "" + }, + "require": { + "lib-pcre": ">=4.0", + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ML\\IRI": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "IRI handling for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "URN", + "iri", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/lanthaler/IRI/issues", + "source": "https://github.com/lanthaler/IRI/tree/master" + }, + "time": "2014-01-21T13:43:39+00:00" + }, + { + "name": "ml/json-ld", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/JsonLD.git", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ml/iri": "^1.1.1", + "php": ">=5.3.0" + }, + "require-dev": { + "json-ld/tests": "1.0", + "phpunit/phpunit": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ML\\JsonLD\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "JSON-LD Processor for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "JSON-LD", + "jsonld" + ], + "support": { + "issues": "https://github.com/lanthaler/JsonLD/issues", + "source": "https://github.com/lanthaler/JsonLD/tree/1.2.1" + }, + "time": "2022-09-29T08:45:17+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "namshi/jose", + "version": "7.2.3", + "source": { + "type": "git", + "url": "https://github.com/namshi/jose.git", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff", + "shasum": "" + }, + "require": { + "ext-date": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-spl": "*", + "php": ">=5.5", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpseclib/phpseclib": "^2.0", + "phpunit/phpunit": "^4.5|^5.0", + "satooshi/php-coveralls": "^1.0" + }, + "suggest": { + "ext-openssl": "Allows to use OpenSSL as crypto engine.", + "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0." + }, + "type": "library", + "autoload": { + "psr-4": { + "Namshi\\JOSE\\": "src/Namshi/JOSE/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Nadalin", + "email": "alessandro.nadalin@gmail.com" + }, + { + "name": "Alessandro Cinelli (cirpo)", + "email": "alessandro.cinelli@gmail.com" + } + ], + "description": "JSON Object Signing and Encryption library for PHP.", + "keywords": [ + "JSON Web Signature", + "JSON Web Token", + "JWS", + "json", + "jwt", + "token" + ], + "support": { + "issues": "https://github.com/namshi/jose/issues", + "source": "https://github.com/namshi/jose/tree/master" + }, + "time": "2016-12-05T07:27:31+00:00" + }, + { + "name": "psr/cache", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "66185be61805b1e44a5c4000929e700228d426cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc", + "reference": "66185be61805b1e44a5c4000929e700228d426cc", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts words between their singular and plural forms (English only)", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "support": { + "source": "https://github.com/symfony/inflector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "EnglishInflector from the String component", + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "45c956ef58135091f53732646a0acd28034f02c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0", + "reference": "45c956ef58135091f53732646a0acd28034f02c0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v4.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-23T06:06:49+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/41e7666313f140ac8560f8db64ab54cc7348615a", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" + }, + "conflict": { + "symfony/event-dispatcher": ">=5", + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-20T10:00:58+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-27T11:44:32+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + }, + "time": "2021-12-08T12:19:24+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.3", + "phpunit/phpunit": "^9.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.1" + }, + "time": "2020-07-09T08:33:42+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/phpcpd", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phpcpd" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "support": { + "issues": "https://github.com/sebastianbergmann/phpcpd/issues", + "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:39:23+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-06-18T07:21:10+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-25T12:56:14+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-03T12:57:57+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75857fc94e9cb68e7ab32e7a962750f73ce40396", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0" + }, + "suggest": { + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/crayfish/rootfs/var/www/crayfish/Recast/composer.lock b/crayfish/rootfs/var/www/crayfish/Recast/composer.lock new file mode 100644 index 00000000..cfaef2b4 --- /dev/null +++ b/crayfish/rootfs/var/www/crayfish/Recast/composer.lock @@ -0,0 +1,6650 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "0354ba9e6ded9e3c35f4147ffc006873", + "packages": [ + { + "name": "easyrdf/easyrdf", + "version": "1.1.1", + "source": { + "type": "git", + "url": "https://github.com/easyrdf/easyrdf.git", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/easyrdf/easyrdf/zipball/c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "reference": "c7b0a9dbcb211eb7de03ee99ff5b52d17f2a8e64", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "ext-pcre": "*", + "ext-xmlreader": "*", + "lib-libxml": "*", + "php": ">=7.1.0" + }, + "require-dev": { + "code-lts/doctum": "^5", + "ml/json-ld": "~1.0", + "phpunit/phpunit": "^7", + "semsol/arc2": "^2.4", + "squizlabs/php_codesniffer": "3.*", + "zendframework/zend-http": "~2.3" + }, + "suggest": { + "ml/json-ld": "~1.0", + "semsol/arc2": "~2.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "EasyRdf\\": "lib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nicholas Humfrey", + "email": "njh@aelius.com", + "homepage": "http://www.aelius.com/njh/", + "role": "Developer" + }, + { + "name": "Alexey Zakhlestin", + "email": "indeyets@gmail.com", + "homepage": "http://indeyets.ru/", + "role": "Developer" + } + ], + "description": "EasyRdf is a PHP library designed to make it easy to consume and produce RDF.", + "homepage": "http://www.easyrdf.org/", + "keywords": [ + "Linked Data", + "RDF", + "Semantic Web", + "Turtle", + "rdfa", + "sparql" + ], + "support": { + "forum": "http://groups.google.com/group/easyrdf/", + "issues": "http://github.com/easyrdf/easyrdf/issues", + "source": "https://github.com/easyrdf/easyrdf/tree/1.1.1" + }, + "time": "2020-12-02T08:47:31+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "islandora/chullo", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/chullo.git", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/chullo/zipball/a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "reference": "a7c1e051eab2a5077eaf5db2649201fa775c5a02", + "shasum": "" + }, + "require": { + "easyrdf/easyrdf": "^0.9 || ^1", + "guzzlehttp/guzzle": "^6.1.0", + "ml/json-ld": "^1.0.4", + "php": ">=7.3" + }, + "require-dev": { + "mockery/mockery": "^0.9", + "phpunit/phpunit": "^9.0", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Islandora\\Chullo\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + }, + { + "name": "Nick Ruest", + "email": "ruestn@gmail.com", + "role": "Maintainer" + } + ], + "description": "A PHP client for interacting with a Fedora 4 server.", + "homepage": "https://github.com/Islandora/chullo", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/chullo/tree/1.3.0" + }, + "time": "2021-12-16T22:31:48+00:00" + }, + { + "name": "islandora/crayfish-commons", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/Islandora/Crayfish-Commons.git", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Islandora/Crayfish-Commons/zipball/e7b8cbd5951286897507f6cfd3e6356201d24f48", + "reference": "e7b8cbd5951286897507f6cfd3e6356201d24f48", + "shasum": "" + }, + "require": { + "islandora/chullo": "^1.0", + "namshi/jose": "^7.2", + "psr/log": "^1.0.1", + "symfony/config": "4.4.*", + "symfony/dependency-injection": "4.4.*", + "symfony/event-dispatcher": "4.4.*", + "symfony/http-foundation": "4.4.*", + "symfony/monolog-bundle": "^3.4", + "symfony/security-bundle": "4.4.*", + "symfony/yaml": "4.4.*" + }, + "conflict": { + "symfony/symfony": "*" + }, + "require-dev": { + "mikey179/vfsstream": "^1.6", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "sebastian/phpcpd": "^6.0", + "squizlabs/php_codesniffer": "^3.0", + "symfony/phpunit-bridge": "4.4.*" + }, + "type": "symfony-bundle", + "extra": { + "symfony": { + "allow-contrib": false, + "require": "4.4.*" + } + }, + "autoload": { + "psr-4": { + "Islandora\\Crayfish\\Commons\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + }, + { + "name": "Daniel Lamb", + "email": "dlamb@islandora.ca", + "role": "Maintainer" + } + ], + "description": "Shared code amongst Islandora Crayfish microservices", + "homepage": "https://github.com/Islandora/Crayfish-Commons", + "support": { + "issues": "https://github.com/Islandora/documentation/issues", + "source": "https://github.com/Islandora/Crayfish-Commons/tree/3.0.0" + }, + "time": "2022-05-05T15:46:41+00:00" + }, + { + "name": "ml/iri", + "version": "1.1.4", + "target-dir": "ML/IRI", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/IRI.git", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/IRI/zipball/cbd44fa913e00ea624241b38cefaa99da8d71341", + "reference": "cbd44fa913e00ea624241b38cefaa99da8d71341", + "shasum": "" + }, + "require": { + "lib-pcre": ">=4.0", + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "ML\\IRI": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "IRI handling for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "URN", + "iri", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/lanthaler/IRI/issues", + "source": "https://github.com/lanthaler/IRI/tree/master" + }, + "time": "2014-01-21T13:43:39+00:00" + }, + { + "name": "ml/json-ld", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/lanthaler/JsonLD.git", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/lanthaler/JsonLD/zipball/537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "reference": "537e68e87a6bce23e57c575cd5dcac1f67ce25d8", + "shasum": "" + }, + "require": { + "ext-json": "*", + "ml/iri": "^1.1.1", + "php": ">=5.3.0" + }, + "require-dev": { + "json-ld/tests": "1.0", + "phpunit/phpunit": "^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ML\\JsonLD\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Markus Lanthaler", + "email": "mail@markus-lanthaler.com", + "homepage": "http://www.markus-lanthaler.com", + "role": "Developer" + } + ], + "description": "JSON-LD Processor for PHP", + "homepage": "http://www.markus-lanthaler.com", + "keywords": [ + "JSON-LD", + "jsonld" + ], + "support": { + "issues": "https://github.com/lanthaler/JsonLD/issues", + "source": "https://github.com/lanthaler/JsonLD/tree/1.2.1" + }, + "time": "2022-09-29T08:45:17+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "namshi/jose", + "version": "7.2.3", + "source": { + "type": "git", + "url": "https://github.com/namshi/jose.git", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff", + "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff", + "shasum": "" + }, + "require": { + "ext-date": "*", + "ext-hash": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-spl": "*", + "php": ">=5.5", + "symfony/polyfill-php56": "^1.0" + }, + "require-dev": { + "phpseclib/phpseclib": "^2.0", + "phpunit/phpunit": "^4.5|^5.0", + "satooshi/php-coveralls": "^1.0" + }, + "suggest": { + "ext-openssl": "Allows to use OpenSSL as crypto engine.", + "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0." + }, + "type": "library", + "autoload": { + "psr-4": { + "Namshi\\JOSE\\": "src/Namshi/JOSE/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alessandro Nadalin", + "email": "alessandro.nadalin@gmail.com" + }, + { + "name": "Alessandro Cinelli (cirpo)", + "email": "alessandro.cinelli@gmail.com" + } + ], + "description": "JSON Object Signing and Encryption library for PHP.", + "keywords": [ + "JSON Web Signature", + "JSON Web Token", + "JWS", + "json", + "jwt", + "token" + ], + "support": { + "issues": "https://github.com/namshi/jose/issues", + "source": "https://github.com/namshi/jose/tree/master" + }, + "time": "2016-12-05T07:27:31+00:00" + }, + { + "name": "psr/cache", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/inflector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/inflector.git", + "reference": "66185be61805b1e44a5c4000929e700228d426cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/inflector/zipball/66185be61805b1e44a5c4000929e700228d426cc", + "reference": "66185be61805b1e44a5c4000929e700228d426cc", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Inflector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts words between their singular and plural forms (English only)", + "homepage": "https://symfony.com", + "keywords": [ + "inflection", + "pluralize", + "singularize", + "string", + "symfony", + "words" + ], + "support": { + "source": "https://github.com/symfony/inflector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "EnglishInflector from the String component", + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/property-access", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/property-access.git", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/property-access/zipball/d49682f6f0764df725c95128213a38f7e0a9f358", + "reference": "d49682f6f0764df725c95128213a38f7e0a9f358", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/inflector": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/cache": "^3.4|^4.0|^5.0" + }, + "suggest": { + "psr/cache-implementation": "To cache access methods." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\PropertyAccess\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides functions to read and write from/to an object or array using a simple string notation", + "homepage": "https://symfony.com", + "keywords": [ + "access", + "array", + "extraction", + "index", + "injection", + "object", + "property", + "property path", + "reflection" + ], + "support": { + "source": "https://github.com/symfony/property-access/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-bundle", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-bundle.git", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "reference": "d2a6bf4aeb75e75d3faacf9bec286e0de58394b6", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^4.4", + "symfony/security-csrf": "^4.2|^5.0", + "symfony/security-guard": "^4.2|^5.0", + "symfony/security-http": "^4.4.5" + }, + "conflict": { + "symfony/browser-kit": "<4.2", + "symfony/console": "<3.4", + "symfony/framework-bundle": "<4.4", + "symfony/ldap": "<4.4", + "symfony/twig-bundle": "<4.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.2|^5.0", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^3.4|^4.0|^5.0", + "symfony/framework-bundle": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/translation": "^3.4|^4.0|^5.0", + "symfony/twig-bridge": "^3.4|^4.0|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\SecurityBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-bundle/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/security-core", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-core.git", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-core/zipball/423ccb332784b236dfe6c5f396d0ac49db57c914", + "reference": "423ccb332784b236dfe6c5f396d0ac49db57c914", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1|^2", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/ldap": "<4.4", + "symfony/security-guard": "<4.3" + }, + "require-dev": { + "psr/container": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/event-dispatcher": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/ldap": "^4.4|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/validator": "^3.4.31|^4.3.4|^5.0" + }, + "suggest": { + "psr/container-implementation": "To instantiate the Security class", + "symfony/event-dispatcher": "", + "symfony/expression-language": "For using the expression voter", + "symfony/http-foundation": "", + "symfony/ldap": "For using LDAP integration", + "symfony/validator": "For using the user password constraint" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Core\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Core Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-core/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-22T05:50:33+00:00" + }, + { + "name": "symfony/security-csrf", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-csrf.git", + "reference": "45c956ef58135091f53732646a0acd28034f02c0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/45c956ef58135091f53732646a0acd28034f02c0", + "reference": "45c956ef58135091f53732646a0acd28034f02c0", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16", + "symfony/security-core": "^3.4|^4.0|^5.0" + }, + "conflict": { + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/http-foundation": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/http-foundation": "For using the class SessionTokenStorage." + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Csrf\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - CSRF Library", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-csrf/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/security-guard", + "version": "v4.4.46", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-guard.git", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-guard/zipball/f199eb1b19db11ce254b891580728c45a7ccacfd", + "reference": "f199eb1b19db11ce254b891580728c45a7ccacfd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/security-core": "^3.4.22|^4.2.3|^5.0", + "symfony/security-http": "^4.4.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Guard\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - Guard", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-guard/tree/v4.4.46" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-09-23T06:06:49+00:00" + }, + { + "name": "symfony/security-http", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/security-http.git", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/security-http/zipball/41e7666313f140ac8560f8db64ab54cc7348615a", + "reference": "41e7666313f140ac8560f8db64ab54cc7348615a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/http-foundation": "^3.4.40|^4.4.7|^5.0.7", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-php80": "^1.16", + "symfony/property-access": "^3.4|^4.0|^5.0", + "symfony/security-core": "^4.4.8" + }, + "conflict": { + "symfony/event-dispatcher": ">=5", + "symfony/security-csrf": "<3.4.11|~4.0,<4.0.11" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/security-csrf": "^3.4.11|^4.0.11|^5.0" + }, + "suggest": { + "symfony/routing": "For using the HttpUtils class to create sub-requests, redirect the user, and match URLs", + "symfony/security-csrf": "For using tokens to protect authentication/logout attempts" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Security\\Http\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony Security Component - HTTP Integration", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/security-http/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-20T10:00:58+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-27T11:44:32+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + } + ], + "packages-dev": [ + { + "name": "doctrine/instantiator", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc", + "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "doctrine/coding-standard": "^9", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.22" + }, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.1" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2022-03-03T08:28:38+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", + "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3,<3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2022-03-03T13:19:32+00:00" + }, + { + "name": "nikic/php-parser", + "version": "v4.15.1", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=7.0" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + }, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.9-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1" + }, + "time": "2022-09-04T07:30:47+00:00" + }, + { + "name": "phar-io/manifest", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", + "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.3" + }, + "time": "2021-07-20T11:28:43+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "phpdocumentor/reflection-common", + "version": "2.2.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionCommon.git", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-2.x": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jaap van Otterdijk", + "email": "opensource@ijaap.nl" + } + ], + "description": "Common reflection classes used by phpdocumentor to reflect the code structure", + "homepage": "http://www.phpdoc.org", + "keywords": [ + "FQSEN", + "phpDocumentor", + "phpdoc", + "reflection", + "static analysis" + ], + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" + }, + { + "name": "phpdocumentor/reflection-docblock", + "version": "5.3.0", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", + "shasum": "" + }, + "require": { + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" + }, + "require-dev": { + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + }, + { + "name": "Jaap van Otterdijk", + "email": "account@ijaap.nl" + } + ], + "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" + }, + "time": "2021-10-19T17:43:47+00:00" + }, + { + "name": "phpdocumentor/type-resolver", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/phpDocumentor/TypeResolver.git", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "reference": "48f445a408c131e38cab1c235aa6d2bb7a0bb20d", + "shasum": "" + }, + "require": { + "php": "^7.4 || ^8.0", + "phpdocumentor/reflection-common": "^2.0" + }, + "require-dev": { + "ext-tokenizer": "*", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.8", + "phpstan/phpstan-phpunit": "^1.1", + "phpunit/phpunit": "^9.5", + "rector/rector": "^0.13.9", + "vimeo/psalm": "^4.25" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-1.x": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "phpDocumentor\\Reflection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mike van Riel", + "email": "me@mikevanriel.com" + } + ], + "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.2" + }, + "time": "2022-10-14T12:47:21+00:00" + }, + { + "name": "phpspec/prophecy", + "version": "v1.15.0", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy.git", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.2", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" + }, + "require-dev": { + "phpspec/phpspec": "^6.0 || ^7.0", + "phpunit/phpunit": "^8.0 || ^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\": "src/Prophecy" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Marcello Duarte", + "email": "marcello.duarte@gmail.com" + } + ], + "description": "Highly opinionated mocking framework for PHP 5.3+", + "homepage": "https://github.com/phpspec/prophecy", + "keywords": [ + "Double", + "Dummy", + "fake", + "mock", + "spy", + "stub" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" + }, + "time": "2021-12-08T12:19:24+00:00" + }, + { + "name": "phpspec/prophecy-phpunit", + "version": "v2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phpspec/prophecy-phpunit.git", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpspec/prophecy-phpunit/zipball/2d7a9df55f257d2cba9b1d0c0963a54960657177", + "reference": "2d7a9df55f257d2cba9b1d0c0963a54960657177", + "shasum": "" + }, + "require": { + "php": "^7.3 || ^8", + "phpspec/prophecy": "^1.3", + "phpunit/phpunit": "^9.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Prophecy\\PhpUnit\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integrating the Prophecy mocking library in PHPUnit test cases", + "homepage": "http://phpspec.net", + "keywords": [ + "phpunit", + "prophecy" + ], + "support": { + "issues": "https://github.com/phpspec/prophecy-phpunit/issues", + "source": "https://github.com/phpspec/prophecy-phpunit/tree/v2.0.1" + }, + "time": "2020-07-09T08:33:42+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.18", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "reference": "12fddc491826940cf9b7e88ad9664cf51f0f6d0a", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.14", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "*", + "ext-xdebug": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.18" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-10-27T13:35:33+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.6", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2021-12-02T12:48:52+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.5.26", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "reference": "851867efcbb6a1b992ec515c71cdcf20d895e9d2", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.13", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "*", + "ext-xdebug": "*" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.5-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.26" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2022-10-28T06:00:21+00:00" + }, + { + "name": "sebastian/cli-parser", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:08:49+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:41:17+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", + "reference": "739b35e53379900cc9ac327b2147867b8b6efd88", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.7", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T15:52:27+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:10:38+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-04-03T09:37:03+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T06:03:37+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-14T08:28:10+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.6", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-28T06:42:11+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/phpcpd", + "version": "6.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpcpd.git", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpcpd/zipball/f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "reference": "f3683aa0db2e8e09287c2bb33a595b2873ea9176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0", + "phpunit/php-timer": "^5.0", + "sebastian/cli-parser": "^1.0", + "sebastian/version": "^3.0" + }, + "bin": [ + "phpcpd" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Copy/Paste Detector (CPD) for PHP code.", + "homepage": "https://github.com/sebastianbergmann/phpcpd", + "support": { + "issues": "https://github.com/sebastianbergmann/phpcpd/issues", + "source": "https://github.com/sebastianbergmann/phpcpd/tree/6.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-07T05:39:23+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", + "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:17:30+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:45:17+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "reference": "fb3fe09c5f0bae6bc27ef3ce933a1e0ed9464b6e", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-12T14:47:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "squizlabs/php_codesniffer", + "version": "3.7.1", + "source": { + "type": "git", + "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", + "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "shasum": "" + }, + "require": { + "ext-simplexml": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0" + }, + "bin": [ + "bin/phpcs", + "bin/phpcbf" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Greg Sherwood", + "role": "lead" + } + ], + "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.", + "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", + "keywords": [ + "phpcs", + "standards" + ], + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2022-06-18T07:21:10+00:00" + }, + { + "name": "symfony/browser-kit", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/browser-kit.git", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "reference": "2a1ff40723ef6b29c8229a860a9c8f815ad7dbbb", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.3|^5.0", + "symfony/mime": "^4.3|^5.0", + "symfony/process": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\BrowserKit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/browser-kit/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-25T12:56:14+00:00" + }, + { + "name": "symfony/css-selector", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/css-selector.git", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "reference": "bd0a6737e48de45b4b0b7b6fc98c78404ddceaed", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\CssSelector\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Converts CSS selectors to XPath expressions", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/css-selector/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-27T13:16:42+00:00" + }, + { + "name": "symfony/dom-crawler", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/4b8daf6c56801e6d664224261cb100b73edc78a5", + "reference": "4b8daf6c56801e6d664224261cb100b73edc78a5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "masterminds/html5": "<2.6" + }, + "require-dev": { + "masterminds/html5": "^2.6", + "symfony/css-selector": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/css-selector": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DomCrawler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases DOM navigation for HTML and XML documents", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dom-crawler/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-03T12:57:57+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/75857fc94e9cb68e7ab32e7a962750f73ce40396", + "reference": "75857fc94e9cb68e7ab32e7a962750f73ce40396", + "shasum": "" + }, + "require": { + "php": ">=5.5.9" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0|<6.4,>=6.0|9.1.2" + }, + "require-dev": { + "symfony/error-handler": "^4.4|^5.0" + }, + "suggest": { + "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader" + }, + "bin": [ + "bin/simple-phpunit" + ], + "type": "symfony-bridge", + "extra": { + "thanks": { + "name": "phpunit/phpunit", + "url": "https://github.com/sebastianbergmann/phpunit" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Bridge\\PhpUnit\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides utilities for PHPUnit, especially user deprecation notices management", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/phpunit-bridge/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2021-07-28T10:34:58+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/webmozarts/assert.git", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/11cb2199493b2f8a3b53e7f19068fc6aac760991", + "reference": "11cb2199493b2f8a3b53e7f19068fc6aac760991", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "php": "^7.2 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<4.6.1 || 4.6.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.13" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.10-dev" + } + }, + "autoload": { + "psr-4": { + "Webmozart\\Assert\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Assertions to validate method input/output with nice error messages.", + "keywords": [ + "assert", + "check", + "validate" + ], + "support": { + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.11.0" + }, + "time": "2022-06-03T18:03:27+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": [], + "prefer-stable": true, + "prefer-lowest": false, + "platform": { + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/crayfish/tests/ServiceStartsWithDefaults/build.gradle.kts b/crayfish/tests/ServiceStartsWithDefaults/build.gradle.kts index 5e972e0e..c1430982 100644 --- a/crayfish/tests/ServiceStartsWithDefaults/build.gradle.kts +++ b/crayfish/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -1,4 +1,4 @@ import tasks.tests.ServiceStartsWithDefaultsTest -tasks.register("test") { +tasks.register("test") { waitForMessage.set("NOTICE: ready to handle connections") } diff --git a/crayfits/.dockerignore b/crayfits/.dockerignore index badf6cb7..94334b24 100644 --- a/crayfits/.dockerignore +++ b/crayfits/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/crayfits/Dockerfile b/crayfits/Dockerfile index c3c9b01c..e6169f8f 100644 --- a/crayfits/Dockerfile +++ b/crayfits/Dockerfile @@ -1,17 +1,20 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest FROM --platform=$BUILDPLATFORM ${repository}/composer:${tag} AS composer -ARG COMMIT=6e95f2f325c910b254a2b7bd1cedf25b17874d30 +# Use a lock file for reproducible builds, always update it when updating the commit above. +ARG COMMIT=4c3721173e8ded0cab4da673c9987ad6cb0548c9 +COPY --link rootfs/var/www/crayfits/composer.lock /tmp/composer.lock RUN --mount=type=cache,id=crayfits-downloads,sharing=locked,target=/opt/downloads \ --mount=type=cache,id=crayfish-composer,sharing=locked,target=/root/.composer/cache \ git-clone-cached.sh \ - --url https://github.com/roblib/CrayFits.git \ + --url https://github.com/nigelgbanks/CrayFits.git \ --cache-dir "${DOWNLOAD_CACHE_DIRECTORY}" \ --commit "${COMMIT}" \ --worktree /var/www/crayfits && \ + mv /tmp/composer.lock /var/www/crayfits/composer.lock && \ composer install -d /var/www/crayfits FROM ${repository}/nginx:${tag} @@ -28,8 +31,10 @@ ENV \ CRAYFITS_LOG_LEVEL=info \ CRAYFITS_WEBSERVICE_URI=fits:8080/fits/examine -COPY --from=composer --chown=nginx:nginx /var/www /var/www +WORKDIR /var/www/crayfits -COPY rootfs / +COPY --link --from=composer /var/www /var/www -WORKDIR /var/www/crayfits \ No newline at end of file +COPY --link rootfs / + +RUN chown -R nginx:nginx /var/www diff --git a/crayfits/README.md b/crayfits/README.md index 99331bed..f1c163c2 100644 --- a/crayfits/README.md +++ b/crayfits/README.md @@ -19,9 +19,9 @@ additional settings, volumes, ports, etc. ## Settings -| Environment Variable | Confd Key | Default | Description | -| :---------------------- | :----------------------- | :---------------- | :------------------------------------------------------------------------------------------------ | -| CRAYFITS_LOG_LEVEL | /crayfits/log/level | debug | Log level. Possible Values: debug, info, notice, warning, error, critical, alert, emergency, none | +| Environment Variable | Confd Key | Default | Description | +| :---------------------- | :----------------------- | :--------------------- | :------------------------------------------------------------------------------------------------ | +| CRAYFITS_LOG_LEVEL | /crayfits/log/level | info | Log level. Possible Values: debug, info, notice, warning, error, critical, alert, emergency, none | | CRAYFITS_WEBSERVICE_URI | /crayfits/webservice/uri | fits:8080/fits/examine | The URL of the FITS servlet. | [CrayFits]: https://github.com/roblib/CrayFits diff --git a/crayfits/rootfs/etc/confd/conf.d/.env.local.toml b/crayfits/rootfs/etc/confd/conf.d/.env.local.toml index c20316cc..4919d18f 100644 --- a/crayfits/rootfs/etc/confd/conf.d/.env.local.toml +++ b/crayfits/rootfs/etc/confd/conf.d/.env.local.toml @@ -4,4 +4,4 @@ dest = "/var/www/crayfits/.env.local" uid = 100 gid = 101 mode = "0644" -keys = [ "/" ] \ No newline at end of file +keys = [ "/" ] diff --git a/crayfits/rootfs/etc/confd/templates/.env.local.tmpl b/crayfits/rootfs/etc/confd/templates/.env.local.tmpl index aceb6a80..539056c9 100644 --- a/crayfits/rootfs/etc/confd/templates/.env.local.tmpl +++ b/crayfits/rootfs/etc/confd/templates/.env.local.tmpl @@ -1 +1 @@ -FITS_WEBSERVICE_URI={{ getenv "CRAYFITS_WEBSERVICE_URI" }} \ No newline at end of file +FITS_WEBSERVICE_URI={{ getenv "CRAYFITS_WEBSERVICE_URI" }} diff --git a/crayfits/rootfs/etc/nginx/http.d/default.conf b/crayfits/rootfs/etc/nginx/http.d/default.conf index 22106cfc..e960bf6b 100644 --- a/crayfits/rootfs/etc/nginx/http.d/default.conf +++ b/crayfits/rootfs/etc/nginx/http.d/default.conf @@ -6,10 +6,10 @@ server { location / { # try to serve file directly, fallback to index.php try_files $uri /index.php$is_args$args; - } - + } + location ~ ^/index\.php(/|$) { - fastcgi_pass unix:/var/run/php-fpm7/php-fpm7.sock; + fastcgi_pass unix:/var/run/php-fpm81/php-fpm81.sock; fastcgi_split_path_info ^(.+\.php)(/.*)$; include fastcgi_params; @@ -27,3 +27,7 @@ server { return 404; } } + +# Required for Nginx service to validate that fpm is working. +# @see nginx/rootfs/etc/s6-overlay/s6-rc.d/nginx/data/check +include /etc/nginx/shared/fpm.server.conf; diff --git a/crayfits/rootfs/var/www/crayfits/composer.lock b/crayfits/rootfs/var/www/crayfits/composer.lock new file mode 100644 index 00000000..093c73e8 --- /dev/null +++ b/crayfits/rootfs/var/www/crayfits/composer.lock @@ -0,0 +1,3324 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "13a4202b88ad70d104d34f65a2d79c70", + "packages": [ + { + "name": "guzzlehttp/guzzle", + "version": "6.5.8", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/a52f0440530b54fa079ce76e8c5d196a42cad981", + "reference": "a52f0440530b54fa079ce76e8c5d196a42cad981", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.0", + "guzzlehttp/psr7": "^1.9", + "php": ">=5.5", + "symfony/polyfill-intl-idn": "^1.17" + }, + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "psr/log": "^1.1" + }, + "suggest": { + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "6.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "homepage": "http://guzzlephp.org/", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/6.5.8" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-06-20T22:16:07+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.2", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "b94b2807d85443f9719887892882d0329d1e2598" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b94b2807d85443f9719887892882d0329d1e2598", + "reference": "b94b2807d85443f9719887892882d0329d1e2598", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.2" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2022-08-28T14:55:35+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.9-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.9.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-06-20T21:43:03+00:00" + }, + { + "name": "monolog/monolog", + "version": "1.27.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/904713c5929655dc9b97288b69cfeedad610c9a1", + "reference": "904713c5929655dc9b97288b69cfeedad610c9a1", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpstan/phpstan": "^0.12.59", + "phpunit/phpunit": "~4.5", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "^5.3|^6.0" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/1.27.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2022-06-09T08:53:42+00:00" + }, + { + "name": "psr/cache", + "version": "2.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/2.0.0" + }, + "time": "2021-02-03T23:23:37+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/cache", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache.git", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache/zipball/3b98ed664887ad197b8ede3da2432787212eb915", + "reference": "3b98ed664887ad197b8ede3da2432787212eb915", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/cache": "^1.0|^2.0", + "psr/log": "^1|^2|^3", + "symfony/cache-contracts": "^1.1.7|^2", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2", + "symfony/var-exporter": "^4.2|^5.0" + }, + "conflict": { + "doctrine/dbal": "<2.7", + "symfony/dependency-injection": "<3.4", + "symfony/http-kernel": "<4.4|>=5.0", + "symfony/var-dumper": "<4.4" + }, + "provide": { + "psr/cache-implementation": "1.0|2.0", + "psr/simple-cache-implementation": "1.0|2.0", + "symfony/cache-implementation": "1.0|2.0" + }, + "require-dev": { + "cache/integration-tests": "dev-master", + "doctrine/cache": "^1.6|^2.0", + "doctrine/dbal": "^2.7|^3.0", + "predis/predis": "^1.1", + "psr/simple-cache": "^1.0|^2.0", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.1|^5.0", + "symfony/filesystem": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/var-dumper": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Cache\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides extended PSR-6, PSR-16 (and tags) implementations", + "homepage": "https://symfony.com", + "keywords": [ + "caching", + "psr6" + ], + "support": { + "source": "https://github.com/symfony/cache/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-17T20:21:54+00:00" + }, + { + "name": "symfony/cache-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/cache-contracts.git", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/cache": "^1.0|^2.0|^3.0" + }, + "suggest": { + "symfony/cache-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Cache\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to caching", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:53:40+00:00" + }, + { + "name": "symfony/config", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/config.git", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/config/zipball/ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "reference": "ed42f8f9da528d2c6cae36fe1f380b0c1d8f0658", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/polyfill-php81": "^1.22" + }, + "conflict": { + "symfony/finder": "<3.4" + }, + "require-dev": { + "symfony/event-dispatcher": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/messenger": "^4.1|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/yaml": "To use the yaml reference dumper" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Config\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/config/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/console", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/console.git", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/console/zipball/8e70c1cab07ac641b885ce80385b9824a293c623", + "reference": "8e70c1cab07ac641b885ce80385b9824a293c623", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "psr/log": ">=3", + "symfony/dependency-injection": "<3.4", + "symfony/event-dispatcher": "<4.3|>=5", + "symfony/lock": "<4.4", + "symfony/process": "<3.3" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/log": "^1|^2", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/event-dispatcher": "^4.3", + "symfony/lock": "^4.4|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^4.3|^5.0" + }, + "suggest": { + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/lock": "", + "symfony/process": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Console\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Eases the creation of beautiful and testable command line interfaces", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/console/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-26T16:02:45+00:00" + }, + { + "name": "symfony/debug", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/debug.git", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be", + "reference": "1a692492190773c5310bc7877cb590c04c2f05be", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3" + }, + "conflict": { + "symfony/http-kernel": "<3.4" + }, + "require-dev": { + "symfony/http-kernel": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Debug\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/debug/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "abandoned": "symfony/error-handler", + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/dependency-injection", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/25502a57182ba1e15da0afd64c975cae4d0a1471", + "reference": "25502a57182ba1e15da0afd64c975cae4d0a1471", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/container": "^1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1.6|^2" + }, + "conflict": { + "symfony/config": "<4.3|>=5.0", + "symfony/finder": "<3.4", + "symfony/proxy-manager-bridge": "<3.4", + "symfony/yaml": "<4.4.26" + }, + "provide": { + "psr/container-implementation": "1.0", + "symfony/service-implementation": "1.0|2.0" + }, + "require-dev": { + "symfony/config": "^4.3", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/yaml": "^4.4.26|^5.0" + }, + "suggest": { + "symfony/config": "", + "symfony/expression-language": "For using expressions in service container configuration", + "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required", + "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them", + "symfony/yaml": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\DependencyInjection\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows you to standardize and centralize the way objects are constructed in your application", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/dependency-injection/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.1.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "reference": "07f1b9cc2ffee6aaafcf4b710fbc38ff736bd918", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.1.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-02-25T11:15:52+00:00" + }, + { + "name": "symfony/dotenv", + "version": "v4.4.37", + "source": { + "type": "git", + "url": "https://github.com/symfony/dotenv.git", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "reference": "fcedd6d382b3afc3e1e786aa4e4fc4cf06f564cf", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "require-dev": { + "symfony/process": "^3.4.2|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Dotenv\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Registers environment variables from a .env file", + "homepage": "https://symfony.com", + "keywords": [ + "dotenv", + "env", + "environment" + ], + "support": { + "source": "https://github.com/symfony/dotenv/tree/v4.4.37" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/error-handler", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/error-handler.git", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/be731658121ef2d8be88f3a1ec938148a9237291", + "reference": "be731658121ef2d8be88f3a1ec938148a9237291", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2|^3", + "symfony/debug": "^4.4.5", + "symfony/var-dumper": "^4.4|^5.0" + }, + "require-dev": { + "symfony/http-kernel": "^4.4|^5.0", + "symfony/serializer": "^4.4|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\ErrorHandler\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools to manage errors and ease debugging PHP code", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/error-handler/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-28T16:29:46+00:00" + }, + { + "name": "symfony/event-dispatcher", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "reference": "1e866e9e5c1b22168e0ce5f0b467f19bba61266a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/event-dispatcher-contracts": "^1.1", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/dependency-injection": "<3.4" + }, + "provide": { + "psr/event-dispatcher-implementation": "1.0", + "symfony/event-dispatcher-implementation": "1.1" + }, + "require-dev": { + "psr/log": "^1|^2|^3", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/error-handler": "~3.4|~4.4", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/service-contracts": "^1.1|^2", + "symfony/stopwatch": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\EventDispatcher\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/event-dispatcher/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/event-dispatcher-contracts", + "version": "v1.1.13", + "source": { + "type": "git", + "url": "https://github.com/symfony/event-dispatcher-contracts.git", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/1d5cd762abaa6b2a4169d3e77610193a7157129e", + "reference": "1d5cd762abaa6b2a4169d3e77610193a7157129e", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "suggest": { + "psr/event-dispatcher": "", + "symfony/event-dispatcher-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.1-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to dispatching event", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v1.1.13" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-01-02T09:41:36+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v4.4.42", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "reference": "815412ee8971209bd4c1eecd5f4f481eacd44bf5", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Filesystem\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides basic utilities for the filesystem", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/filesystem/tree/v4.4.42" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-20T08:49:14+00:00" + }, + { + "name": "symfony/finder", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/finder.git", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/finder/zipball/66bd787edb5e42ff59d3523f623895af05043e4f", + "reference": "66bd787edb5e42ff59d3523f623895af05043e4f", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Finder\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Finds files and directories via an intuitive fluent interface", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-29T07:35:46+00:00" + }, + { + "name": "symfony/flex", + "version": "v1.19.3", + "source": { + "type": "git", + "url": "https://github.com/symfony/flex.git", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/flex/zipball/ab0453b16029e131c112df1a76e59eb2a47e1f67", + "reference": "ab0453b16029e131c112df1a76e59eb2a47e1f67", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "symfony/dotenv": "^4.4|^5.0|^6.0", + "symfony/filesystem": "^4.4|^5.0|^6.0", + "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", + "symfony/process": "^4.4|^5.0|^6.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Symfony\\Flex\\Flex" + }, + "autoload": { + "psr-4": { + "Symfony\\Flex\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien.potencier@gmail.com" + } + ], + "description": "Composer plugin for Symfony", + "support": { + "issues": "https://github.com/symfony/flex/issues", + "source": "https://github.com/symfony/flex/tree/v1.19.3" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-07T09:39:08+00:00" + }, + { + "name": "symfony/framework-bundle", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/framework-bundle.git", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5b8b76e374032b34475ccf8a90c8cef06f49441a", + "reference": "5b8b76e374032b34475ccf8a90c8cef06f49441a", + "shasum": "" + }, + "require": { + "ext-xml": "*", + "php": ">=7.1.3", + "symfony/cache": "^4.4|^5.0", + "symfony/config": "^4.4.11|~5.0.11|^5.1.3", + "symfony/dependency-injection": "^4.4.38|^5.0.1", + "symfony/error-handler": "^4.4.1|^5.0.1", + "symfony/filesystem": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^4.4|^5.0", + "symfony/http-kernel": "^4.4", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.16", + "symfony/routing": "^4.4.12|^5.1.4" + }, + "conflict": { + "doctrine/persistence": "<1.3", + "phpdocumentor/reflection-docblock": "<3.0|>=3.2.0,<3.2.2", + "phpdocumentor/type-resolver": "<0.3.0|1.3.*", + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/asset": "<3.4", + "symfony/browser-kit": "<4.3", + "symfony/console": "<4.4.21", + "symfony/dom-crawler": "<4.3", + "symfony/dotenv": "<4.3.6", + "symfony/form": "<4.3.5", + "symfony/http-client": "<4.4", + "symfony/lock": "<4.4", + "symfony/mailer": "<4.4", + "symfony/messenger": "<4.4", + "symfony/mime": "<4.4", + "symfony/property-info": "<3.4", + "symfony/security-bundle": "<4.4", + "symfony/serializer": "<4.4", + "symfony/stopwatch": "<3.4", + "symfony/translation": "<4.4", + "symfony/twig-bridge": "<4.1.1", + "symfony/twig-bundle": "<4.4", + "symfony/validator": "<4.4", + "symfony/web-profiler-bundle": "<4.4", + "symfony/workflow": "<4.3.6" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "doctrine/cache": "^1.0|^2.0", + "doctrine/persistence": "^1.3|^2|^3", + "paragonie/sodium_compat": "^1.8", + "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", + "symfony/asset": "^3.4|^4.0|^5.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/console": "^4.4.42|^5.4.9", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dom-crawler": "^4.4.30|^5.3.7", + "symfony/dotenv": "^4.3.6|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/form": "^4.3.5|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/lock": "^4.4|^5.0", + "symfony/mailer": "^4.4|^5.0", + "symfony/messenger": "^4.4|^5.0", + "symfony/mime": "^4.4|^5.0", + "symfony/polyfill-intl-icu": "~1.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/property-info": "^3.4|^4.0|^5.0", + "symfony/security-core": "^3.4|^4.4|^5.2", + "symfony/security-csrf": "^3.4|^4.0|^5.0", + "symfony/security-http": "^3.4|^4.0|^5.0", + "symfony/serializer": "^4.4|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.4|^5.0", + "symfony/twig-bundle": "^4.4|^5.0", + "symfony/validator": "^4.4|^5.0", + "symfony/web-link": "^4.4|^5.0", + "symfony/workflow": "^4.3.6|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-apcu": "For best performance of the system caches", + "symfony/console": "For using the console commands", + "symfony/form": "For using forms", + "symfony/property-info": "For using the property_info service", + "symfony/serializer": "For using the serializer service", + "symfony/validator": "For using validation", + "symfony/web-link": "For using web links, features such as preloading, prefetching or prerendering", + "symfony/yaml": "For using the debug:config and lint:yaml commands" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "Symfony\\Bundle\\FrameworkBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/framework-bundle/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "reference": "ba6a9f0e8f3edd190520ee3b9a958596b6ca2e70", + "shasum": "" + }, + "require": { + "php": ">=7.2.5" + }, + "suggest": { + "symfony/http-client-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-04-12T15:48:08+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "reference": "cd4f478e67f7c8776a13b17e7d44241fd66261ad", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/mime": "^4.3|^5.0", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "predis/predis": "~1.0", + "symfony/expression-language": "^3.4|^4.0|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-12T09:40:54+00:00" + }, + { + "name": "symfony/http-kernel", + "version": "v4.4.48", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-kernel.git", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/a6d5229dd9466e046674baad8449ad92ee24eddd", + "reference": "a6d5229dd9466e046674baad8449ad92ee24eddd", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "psr/log": "^1|^2", + "symfony/error-handler": "^4.4", + "symfony/event-dispatcher": "^4.4", + "symfony/http-client-contracts": "^1.1|^2", + "symfony/http-foundation": "^4.4.30|^5.3.7", + "symfony/polyfill-ctype": "^1.8", + "symfony/polyfill-php73": "^1.9", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/browser-kit": "<4.3", + "symfony/config": "<3.4", + "symfony/console": ">=5", + "symfony/dependency-injection": "<4.3", + "symfony/translation": "<4.2", + "twig/twig": "<1.43|<2.13,>=2" + }, + "provide": { + "psr/log-implementation": "1.0|2.0" + }, + "require-dev": { + "psr/cache": "^1.0|^2.0|^3.0", + "symfony/browser-kit": "^4.3|^5.0", + "symfony/config": "^3.4|^4.0|^5.0", + "symfony/console": "^3.4|^4.0", + "symfony/css-selector": "^3.4|^4.0|^5.0", + "symfony/dependency-injection": "^4.3|^5.0", + "symfony/dom-crawler": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/finder": "^3.4|^4.0|^5.0", + "symfony/process": "^3.4|^4.0|^5.0", + "symfony/routing": "^3.4|^4.0|^5.0", + "symfony/stopwatch": "^3.4|^4.0|^5.0", + "symfony/templating": "^3.4|^4.0|^5.0", + "symfony/translation": "^4.2|^5.0", + "symfony/translation-contracts": "^1.1|^2", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "symfony/browser-kit": "", + "symfony/config": "", + "symfony/console": "", + "symfony/dependency-injection": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpKernel\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides a structured process for converting a Request into a Response", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-kernel/tree/v4.4.48" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-28T16:49:22+00:00" + }, + { + "name": "symfony/mime", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/mime.git", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/mime/zipball/0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "reference": "0eaf33cd6d1b3eaa50e7bc48b17f6e45789df35d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-intl-idn": "^1.10", + "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "egulias/email-validator": "~3.0.0", + "symfony/mailer": "<4.4" + }, + "require-dev": { + "egulias/email-validator": "^2.1.10|^3.1", + "symfony/dependency-injection": "^3.4|^4.1|^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Mime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows manipulating MIME messages", + "homepage": "https://symfony.com", + "keywords": [ + "mime", + "mime-type" + ], + "support": { + "source": "https://github.com/symfony/mime/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/monolog-bridge", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bridge.git", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/ad09c9980b912e757c4ecd8363cebf3039d1d471", + "reference": "ad09c9980b912e757c4ecd8363cebf3039d1d471", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.25.1", + "php": ">=7.1.3", + "symfony/http-kernel": "^4.3", + "symfony/polyfill-php80": "^1.16", + "symfony/service-contracts": "^1.1|^2" + }, + "conflict": { + "symfony/console": "<3.4", + "symfony/http-foundation": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/http-client": "^4.4|^5.0", + "symfony/security-core": "^3.4|^4.0|^5.0", + "symfony/var-dumper": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings.", + "symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel.", + "symfony/var-dumper": "For using the debugging handlers like the console handler or the log server handler." + }, + "type": "symfony-bridge", + "autoload": { + "psr-4": { + "Symfony\\Bridge\\Monolog\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides integration for Monolog with various Symfony components", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/monolog-bridge/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-06-16T12:12:11+00:00" + }, + { + "name": "symfony/monolog-bundle", + "version": "v3.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d", + "shasum": "" + }, + "require": { + "monolog/monolog": "^1.22 || ^2.0 || ^3.0", + "php": ">=7.1.3", + "symfony/config": "~4.4 || ^5.0 || ^6.0", + "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0", + "symfony/http-kernel": "~4.4 || ^5.0 || ^6.0", + "symfony/monolog-bridge": "~4.4 || ^5.0 || ^6.0" + }, + "require-dev": { + "symfony/console": "~4.4 || ^5.0 || ^6.0", + "symfony/phpunit-bridge": "^5.2 || ^6.0", + "symfony/yaml": "~4.4 || ^5.0 || ^6.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony MonologBundle", + "homepage": "https://symfony.com", + "keywords": [ + "log", + "logging" + ], + "support": { + "issues": "https://github.com/symfony/monolog-bundle/issues", + "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T14:24:36+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "reference": "59a8d271f00dd0e4c2e518104cc7963f655a1aa8", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/219aa369ceff116e673852dce47c3a41794c14bd", + "reference": "219aa369ceff116e673852dce47c3a41794c14bd", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "reference": "9344f9cb97f3b19424af1a21a3b0e75b0a7d8d7e", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php72", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php72.git", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2", + "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php72\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php73", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85", + "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "reference": "cfa0ae98841b9e461207c13ab093d76b0fa7bace", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-10T07:21:04+00:00" + }, + { + "name": "symfony/polyfill-php81", + "version": "v1.26.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php81.git", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "reference": "13f6d1271c663dc5ae9fb843a8f16521db7687a1", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.26-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php81\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php81/tree/v1.26.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-24T11:49:31+00:00" + }, + { + "name": "symfony/routing", + "version": "v4.4.44", + "source": { + "type": "git", + "url": "https://github.com/symfony/routing.git", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/routing/zipball/f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "reference": "f7751fd8b60a07f3f349947a309b5bdfce22d6ae", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "symfony/config": "<4.2", + "symfony/dependency-injection": "<3.4", + "symfony/yaml": "<3.4" + }, + "require-dev": { + "doctrine/annotations": "^1.10.4", + "psr/log": "^1|^2|^3", + "symfony/config": "^4.2|^5.0", + "symfony/dependency-injection": "^3.4|^4.0|^5.0", + "symfony/expression-language": "^3.4|^4.0|^5.0", + "symfony/http-foundation": "^3.4|^4.0|^5.0", + "symfony/yaml": "^3.4|^4.0|^5.0" + }, + "suggest": { + "doctrine/annotations": "For using the annotation loader", + "symfony/config": "For using the all-in-one router or any loader", + "symfony/expression-language": "For using expression matching", + "symfony/http-foundation": "For using a Symfony Request object", + "symfony/yaml": "For using the YAML loader" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Routing\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Maps an HTTP request to a set of configuration variables", + "homepage": "https://symfony.com", + "keywords": [ + "router", + "routing", + "uri", + "url" + ], + "support": { + "source": "https://github.com/symfony/routing/tree/v4.4.44" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-07-20T09:59:04+00:00" + }, + { + "name": "symfony/service-contracts", + "version": "v2.5.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/service-contracts.git", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "psr/container": "^1.1", + "symfony/deprecation-contracts": "^2.1|^3" + }, + "conflict": { + "ext-psr": "<1.1|>=2" + }, + "suggest": { + "symfony/service-implementation": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\Service\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to writing services", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/service-contracts/tree/v2.5.2" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-30T19:17:29+00:00" + }, + { + "name": "symfony/var-dumper", + "version": "v4.4.47", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-dumper.git", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63", + "reference": "1069c7a3fca74578022fab6f81643248d02f8e63", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php72": "~1.5", + "symfony/polyfill-php80": "^1.16" + }, + "conflict": { + "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0", + "symfony/console": "<3.4" + }, + "require-dev": { + "ext-iconv": "*", + "symfony/console": "^3.4|^4.0|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^1.43|^2.13|^3.0.4" + }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], + "type": "library", + "autoload": { + "files": [ + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", + "keywords": [ + "debug", + "dump" + ], + "support": { + "source": "https://github.com/symfony/var-dumper/tree/v4.4.47" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-10-03T15:15:11+00:00" + }, + { + "name": "symfony/var-exporter", + "version": "v4.4.43", + "source": { + "type": "git", + "url": "https://github.com/symfony/var-exporter.git", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "reference": "4a7a3a3d55c471d396e6d28011368b7b83cb518b", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-php80": "^1.16" + }, + "require-dev": { + "symfony/var-dumper": "^4.4.9|^5.0.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\VarExporter\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Allows exporting any serializable PHP data structure to plain PHP code", + "homepage": "https://symfony.com", + "keywords": [ + "clone", + "construct", + "export", + "hydrate", + "instantiate", + "serialize" + ], + "support": { + "source": "https://github.com/symfony/var-exporter/tree/v4.4.43" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-05-27T11:44:32+00:00" + }, + { + "name": "symfony/yaml", + "version": "v4.4.45", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "reference": "aeccc4dc52a9e634f1d1eebeb21eacfdcff1053d", + "shasum": "" + }, + "require": { + "php": ">=7.1.3", + "symfony/polyfill-ctype": "~1.8" + }, + "conflict": { + "symfony/console": "<3.4" + }, + "require-dev": { + "symfony/console": "^3.4|^4.0|^5.0" + }, + "suggest": { + "symfony/console": "For validating YAML files using the lint command" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v4.4.45" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2022-08-02T15:47:23+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "ext-ctype": "*", + "ext-iconv": "*" + }, + "platform-dev": [], + "plugin-api-version": "2.3.0" +} diff --git a/crayfits/tests/ServiceStartsWithDefaults/build.gradle.kts b/crayfits/tests/ServiceStartsWithDefaults/build.gradle.kts index 5e972e0e..c1430982 100644 --- a/crayfits/tests/ServiceStartsWithDefaults/build.gradle.kts +++ b/crayfits/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -1,4 +1,4 @@ import tasks.tests.ServiceStartsWithDefaultsTest -tasks.register("test") { +tasks.register("test") { waitForMessage.set("NOTICE: ready to handle connections") } diff --git a/demo/Dockerfile b/demo/Dockerfile deleted file mode 100644 index da76f903..00000000 --- a/demo/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -# syntax=docker/dockerfile:1.2.1 -ARG repository=local -ARG tag=latest -FROM --platform=$BUILDPLATFORM ${repository}/composer:${tag} AS composer - -ARG COMMIT=2d8f79b84c81c9010dfa5f73ec83262bde4313b3 - -# Islandora based Drupal install. -RUN --mount=type=cache,id=demo-composer,sharing=locked,target=/root/.composer/cache \ - --mount=type=cache,id=demo-downloads,sharing=locked,target=/opt/downloads \ - # Get the Drupal codebase - git-clone-cached.sh \ - --url https://github.com/Islandora-Devops/islandora-sandbox.git \ - --cache-dir "${DOWNLOAD_CACHE_DIRECTORY}" \ - --commit "${COMMIT}" \ - --worktree /var/www/drupal && \ - cd /var/www/drupal && \ - composer install - -FROM ${repository}/drupal:${tag} - -COPY --from=composer --chown=nginx:nginx /var/www /var/www diff --git a/demo/README.md b/demo/README.md deleted file mode 100644 index 5fa8541b..00000000 --- a/demo/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# Demo - -Islandora Demo image meant for demoing a functioning system. If you want to -build your own Islandora site site the composer folder for a template on how to -do that. - -## Dependencies - -Requires `islandora/drupal` docker image to build. Please refer to the -[Drupal Image README](../drupal/README.md) for additional information including -additional settings, volumes, ports, etc. diff --git a/demo/tests/ServiceStartsWithDefaults/build.gradle.kts b/demo/tests/ServiceStartsWithDefaults/build.gradle.kts deleted file mode 100644 index 646c3ddd..00000000 --- a/demo/tests/ServiceStartsWithDefaults/build.gradle.kts +++ /dev/null @@ -1,2 +0,0 @@ -import tasks.tests.ServiceStartsWithDefaultsTest -tasks.register("test") diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..2910390d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,348 @@ +--- +version: "3.8" + +# Common to all services +x-common: &common + restart: "no" + secrets: + - source: CERT_PUBLIC_KEY + - source: CERT_PRIVATE_KEY + - source: CERT_AUTHORITY + +x-traefik-https-redirect-middleware: &traefik-https-redirect-middleware + traefik.enable: true + traefik.http.middlewares.https-redirect.redirectscheme.permanent: true + traefik.http.middlewares.https-redirect.redirectscheme.scheme: https + +x-traefik-https-redirect: &traefik-https-redirect https-redirect + +networks: + default: + +volumes: + activemq-data: {} + blazegraph-data: {} + cantaloupe-data: {} + code-server-data: {} + drupal-private-files: {} + drupal-public-files: {} + drupal-root: {} + drupal-solr-config: {} + fcrepo-data: {} + mariadb-data: {} + matomo-data: {} + solr-data: {} + +secrets: + CERT_PUBLIC_KEY: + file: ./build/certs/cert.pem + CERT_PRIVATE_KEY: + file: ./build/certs/privkey.pem + CERT_AUTHORITY: + file: ./build/certs/rootCA.pem + +services: + alpaca: + <<: *common + image: ${REPOSITORY:-local}/alpaca:${TAG:-latest} + environment: + # Increase the throughput of consumption from the queue. + ALPACA_ACTIVEMQ_CONNECTIONS: 100 + ALPACA_ACTIVEMQ_CONSUMERS: 10 + crayfits: + <<: *common + image: ${REPOSITORY:-local}/crayfits:${TAG:-latest} + fits: + <<: *common + image: ${REPOSITORY:-local}/fits:${TAG:-latest} + homarus: + <<: *common + image: ${REPOSITORY:-local}/homarus:${TAG:-latest} + houdini: + <<: *common + image: ${REPOSITORY:-local}/houdini:${TAG:-latest} + hypercube: + <<: *common + image: ${REPOSITORY:-local}/hypercube:${TAG:-latest} + mariadb: + <<: *common + image: ${REPOSITORY:-local}/mariadb:${TAG:-latest} + volumes: + - mariadb-data:/var/lib/mysql:rw + milliner: + <<: *common + image: ${REPOSITORY:-local}/milliner:${TAG:-latest} + activemq: + <<: *common + image: ${REPOSITORY:-local}/activemq:${TAG:-latest} + labels: + <<: *traefik-https-redirect-middleware + traefik.http.routers.activemq_http.entrypoints: http + traefik.http.routers.activemq_http.middlewares: *traefik-https-redirect + traefik.http.routers.activemq_http.rule: &traefik-host-activemq Host(`activemq.islandora.dev`) + traefik.http.routers.activemq_http.service: activemq + traefik.http.routers.activemq_https.entrypoints: https + traefik.http.routers.activemq_https.rule: *traefik-host-activemq + traefik.http.routers.activemq_https.tls: true + traefik.http.services.activemq.loadbalancer.server.port: 8161 + traefik.subdomain: activemq + volumes: + - activemq-data:/opt/activemq/data:rw + blazegraph: + <<: *common + image: ${REPOSITORY:-local}/blazegraph:${TAG:-latest} + labels: + <<: *traefik-https-redirect-middleware + traefik.http.routers.blazegraph_http.entrypoints: http + traefik.http.routers.blazegraph_http.middlewares: *traefik-https-redirect + traefik.http.routers.blazegraph_http.rule: &traefik-host-blazegraph Host(`blazegraph.islandora.dev`) + traefik.http.routers.blazegraph_http.service: blazegraph + traefik.http.routers.blazegraph_https.entrypoints: https + traefik.http.routers.blazegraph_https.rule: *traefik-host-blazegraph + traefik.http.routers.blazegraph_https.tls: true + traefik.http.services.blazegraph.loadbalancer.server.port: 8080 + volumes: + - blazegraph-data:/data:rw + cantaloupe: + <<: *common + image: ${REPOSITORY:-local}/cantaloupe:${TAG:-latest} + labels: + <<: *traefik-https-redirect-middleware + traefik.http.routers.cantaloupe_http.entrypoints: http + traefik.http.routers.cantaloupe_http.middlewares: *traefik-https-redirect + traefik.http.routers.cantaloupe_http.rule: &traefik-host-cantaloupe Host(`islandora.dev`) && PathPrefix(`/cantaloupe`) + traefik.http.routers.cantaloupe_http.service: cantaloupe + traefik.http.routers.cantaloupe_https.entrypoints: https + traefik.http.routers.cantaloupe_https.rule: *traefik-host-cantaloupe + traefik.http.routers.cantaloupe_https.tls: true + traefik.http.services.cantaloupe.loadbalancer.server.port: 8080 + volumes: + - cantaloupe-data:/data:rw + drupal: + <<: *common + image: ${REPOSITORY:-local}/test:${TAG:-latest} + environment: &drupal-environment + # Keep this in sync with "islandora.drupal.properties" in the helm chart. + DRUPAL_DEFAULT_BROKER_URL: "tcp://activemq:61613" + DRUPAL_DEFAULT_CANTALOUPE_URL: "https://islandora.dev/cantaloupe/iiif/2" + DRUPAL_DEFAULT_CONFIGDIR: "/var/www/drupal/config/sync" + DRUPAL_DEFAULT_FCREPO_HOST: "fcrepo" + DRUPAL_DEFAULT_FCREPO_PORT: 8080 + DRUPAL_DEFAULT_FCREPO_URL: "https://fcrepo.islandora.dev/fcrepo/rest/" + DRUPAL_DEFAULT_INSTALL_EXISTING_CONFIG: "true" + DRUPAL_DEFAULT_MATOMO_URL: "https://islandora.dev/matomo/" + DRUPAL_DEFAULT_NAME: "Islandora Digital Collections" + DRUPAL_DEFAULT_PROFILE: "minimal" + DRUPAL_DEFAULT_SITE_URL: "islandora.dev" + DRUPAL_DEFAULT_SOLR_CORE: "default" + DRUPAL_DRUSH_URI: "https://islandora.dev" # Used by docker/drupal/rootfs/usr/local/share/custom/install.sh + volumes: + # Allow code-server to serve Drupal / override it. + - &drupal-root + type: volume + source: drupal-root + target: /var/www/drupal + - &drupal-public-files + type: volume + source: drupal-public-files + target: /var/www/drupal/web/sites/default/files + - &drupal-private-files + type: volume + source: drupal-private-files + target: /var/www/drupal/private + - &drupal-custom-modules ./test/rootfs/var/www/drupal/web/modules/custom/sample_content:/var/www/drupal/web/modules/custom/sample_content:rw + - drupal-solr-config:/opt/solr/server/solr/default:ro + ide: + <<: *common + image: ${REPOSITORY}/code-server:${TAG} + labels: + <<: *traefik-https-redirect-middleware + # All Drupal traefik is routed through the IDE so that XDebug can be + # easily used. + traefik.http.routers.drupal_http.entrypoints: http + traefik.http.routers.drupal_http.middlewares: *traefik-https-redirect + traefik.http.routers.drupal_http.rule: &traefik-host-drupal Host(`islandora.dev`) + traefik.http.routers.drupal_http.service: drupal + traefik.http.routers.drupal_https.entrypoints: https + traefik.http.routers.drupal_https.rule: *traefik-host-drupal + traefik.http.routers.drupal_https.service: drupal + traefik.http.routers.drupal_https.tls: true + traefik.http.services.drupal.loadbalancer.server.port: 80 + traefik.http.routers.ide_http.entrypoints: http + traefik.http.routers.ide_http.middlewares: *traefik-https-redirect + traefik.http.routers.ide_http.rule: &traefik-host-ide Host(`ide.islandora.dev`) + traefik.http.routers.ide_http.service: ide + traefik.http.routers.ide_https.entrypoints: https + traefik.http.routers.ide_https.rule: *traefik-host-ide + traefik.http.routers.ide_https.service: ide + traefik.http.routers.ide_https.tls: true + traefik.http.services.ide.loadbalancer.server.port: 8443 + traefik.tcp.routers.ssh.entrypoints: ssh + traefik.tcp.routers.ssh.rule: HostSNI(`*`) + traefik.tcp.routers.ssh.service: ssh + traefik.tcp.services.ssh.loadbalancer.server.port: 22 + + environment: + <<: *drupal-environment + # Allow XDebug to be used with Drush as well. + # Use the following command in the IDE shell to enable it: + # export XDEBUG_SESSION=1 + DRUSH_ALLOW_XDEBUG: 1 + XDEBUG_MODE: debug + # Do not request a password for accessing the IDE. + CODE_SERVER_AUTHENTICATION: none + # Bump up time outs to allow for debugging. + NGINX_CLIENT_BODY_TIMEOUT: 600s + NGINX_FASTCGI_CONNECT_TIMEOUT: 600s + NGINX_FASTCGI_READ_TIMEOUT: 1200s + NGINX_FASTCGI_SEND_TIMEOUT: 600s + NGINX_KEEPALIVE_TIMEOUT: 750s + NGINX_LINGERING_TIMEOUT: 50s + NGINX_PROXY_CONNECT_TIMEOUT: 600s + NGINX_PROXY_READ_TIMEOUT: 600s + NGINX_PROXY_SEND_TIMEOUT: 600s + NGINX_SEND_TIMEOUT: 600s + PHP_DEFAULT_SOCKET_TIMEOUT: 600 + PHP_MAX_EXECUTION_TIME: 300 + PHP_MAX_INPUT_TIME: 600 + PHP_PROCESS_CONTROL_TIMEOUT: 600 + PHP_REQUEST_TERMINATE_TIMEOUT: 600 + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + # Mount and serve contents of Drupal site. + - <<: *drupal-root + volume: + nocopy: true + # Mount and serve Drupal public files. + - <<: *drupal-public-files + volume: + nocopy: true + # Mount and serve Drupal private files. + - <<: *drupal-private-files + volume: + nocopy: true + # Volumes for code-server cache. + - type: volume + source: code-server-data + target: /opt/code-server/data + - *drupal-custom-modules + # Ensure drupal mounts the shared volumes first. + depends_on: + - drupal + fcrepo: + <<: *common + image: ${REPOSITORY}/fcrepo6:${TAG} + environment: + FCREPO_ALLOW_EXTERNAL_DEFAULT: "http://default/" + FCREPO_ALLOW_EXTERNAL_DRUPAL: "https://islandora.dev/" + labels: + <<: *traefik-https-redirect-middleware + # Due to weird logic in `fcrepo/static/js/common.js`, do not use https + # as it assumes it always needs to append /fcr:metadata to every request + # breaking the links. Though for files we do want that page to be accessed + # so check for a file extension. + traefik.http.middlewares.fcrepo-strip-suffix.replacepathregex.regex: "^(.*/fcrepo/rest/[^.]*)/fcr:metadata$$" + traefik.http.middlewares.fcrepo-strip-suffix.replacepathregex.replacement: "$$1" + traefik.http.routers.fcrepo_http.entrypoints: http + traefik.http.routers.fcrepo_http.middlewares: *traefik-https-redirect + traefik.http.routers.fcrepo_http.rule: &traefik-host-fcrepo Host(`fcrepo.islandora.dev`) + traefik.http.routers.fcrepo_http.service: fcrepo + traefik.http.routers.fcrepo_https.entrypoints: https + traefik.http.routers.fcrepo_https.middlewares: fcrepo-strip-suffix + traefik.http.routers.fcrepo_https.rule: *traefik-host-fcrepo + traefik.http.routers.fcrepo_https.tls: true + traefik.http.services.fcrepo.loadbalancer.server.port: 8080 + volumes: + - fcrepo-data:/data:rw + depends_on: + - activemq + matomo: + <<: *common + image: ${REPOSITORY:-local}/matomo:${TAG:-latest} + labels: + <<: *traefik-https-redirect-middleware + traefik.http.middlewares.matomo-custom-request-headers.headers.customrequestheaders.X-Forwarded-Uri: /matomo + traefik.http.middlewares.matomo-append-slash.redirectregex.regex: ^(https?://[^/]+/matomo)$$ + traefik.http.middlewares.matomo-append-slash.redirectregex.replacement: $${1}/ + traefik.http.middlewares.matomo-strip-prefix.stripprefix.prefixes: /matomo + traefik.http.middlewares.matomo.chain.middlewares: matomo-append-slash,matomo-strip-prefix,matomo-custom-request-headers + traefik.http.routers.matomo_http.entrypoints: http + traefik.http.routers.matomo_http.middlewares: *traefik-https-redirect + traefik.http.routers.matomo_http.rule: &traefik-host-matomo Host(`islandora.dev`) && PathPrefix(`/matomo`) + traefik.http.routers.matomo_http.service: matomo + traefik.http.routers.matomo_https.entrypoints: https + traefik.http.routers.matomo_https.middlewares: matomo + traefik.http.routers.matomo_https.rule: *traefik-host-matomo + traefik.http.routers.matomo_https.tls: true + traefik.http.services.matomo.loadbalancer.server.port: 80 + environment: + MATOMO_DEFAULT_HOST: "https://islandora.dev" + volumes: + - matomo-data:/var/www/matomo:rw + solr: + <<: *common + image: ${REPOSITORY:-local}/solr:${TAG:-latest} + labels: + <<: *traefik-https-redirect-middleware + traefik.http.routers.solr_http.entrypoints: http + traefik.http.routers.solr_http.middlewares: *traefik-https-redirect + traefik.http.routers.solr_http.rule: &traefik-host-solr Host(`solr.islandora.dev`) + traefik.http.routers.solr_http.service: solr + traefik.http.routers.solr_https.entrypoints: https + traefik.http.routers.solr_https.rule: *traefik-host-solr + traefik.http.routers.solr_https.tls: true + traefik.http.services.solr.loadbalancer.server.port: 8983 + volumes: + - solr-data:/data:rw + - type: volume + source: drupal-solr-config + target: /opt/solr/server/solr/default + volume: + nocopy: true + traefik: + <<: *common + image: traefik:v2.8.3 + command: >- + --api.insecure=true + --api.dashboard=true + --api.debug=true + --entryPoints.http.address=:80 + --entryPoints.https.address=:443 + --entryPoints.ssh.address=:22 + --providers.file.filename=/etc/traefik/tls.yml + --providers.docker=true + --providers.docker.network=default + --providers.docker.exposedByDefault=false + '--providers.docker.defaultRule=Host(`{{index .Labels "com.docker.compose.service" }}.islandora.dev`)' + labels: + <<: *traefik-https-redirect-middleware + traefik.http.routers.traefik_http.entrypoints: http + traefik.http.routers.traefik_http.middlewares: *traefik-https-redirect + traefik.http.routers.traefik_http.service: traefik + traefik.http.routers.traefik_https.entrypoints: https + traefik.http.routers.traefik_https.tls: true + traefik.http.services.traefik.loadbalancer.server.port: 8080 + ports: + - "80:80" + - "443:443" + - "2222:22" + volumes: + - ./build/certs:/etc/ssl/traefik:rw + - ./tls.yml:/etc/traefik/tls.yml:rw + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + default: + aliases: + # Allow services to connect on the same name/port as the outside. + - blazegraph.islandora.dev + - fcrepo.islandora.dev + - islandora.dev + - solr.islandora.dev + depends_on: + # Sometimes traefik doesn't pick up on new containers so make sure they are started before traefik. + - activemq + - blazegraph + - drupal + - fcrepo + - solr + - ide diff --git a/docs/maintainers/release_process.md b/docs/maintainers/release_process.md index 5dc67878..4ebdd923 100644 --- a/docs/maintainers/release_process.md +++ b/docs/maintainers/release_process.md @@ -52,7 +52,7 @@ When testing isle-buildkit #### Results -Describe output, expectation and steps. +Describe output, expectation and steps. Include screenshots etc. ``` @@ -80,7 +80,7 @@ Reporting results from testing process: #### Results -Describe output, expectation and steps. +Describe output, expectation and steps. Include screenshots etc. ``` diff --git a/docs/maintainers/testing_process.md b/docs/maintainers/testing_process.md index 8b8c74cf..e50ea8ef 100644 --- a/docs/maintainers/testing_process.md +++ b/docs/maintainers/testing_process.md @@ -5,7 +5,7 @@ When testing isle-buildkit image releases or possible changes, a tester can: * clone down the latest `isle-dc` to their local laptop / workstation * `git clone https://github.com/Islandora-Devops/isle-dc.git` -* Look up the last commit hash in the PR on the isle-buildkit Github.com PR page. +* Look up the last commit hash in the PR on the isle-buildkit Github.com PR page. * In this example - we'll be using this PR [Allow containers to run without allocating a tty.](https://github.com/Islandora-Devops/isle-buildkit/commits/issue-174) and the value `79de15828971c10894c3cdf14eec431434c457ea` which is both the commit hash and the resulting [Docker image](https://hub.docker.com/u/islandora) / tag needed for testing. * In the image below one would click the overlapping squares icon to copy the full SHA of the commit. diff --git a/docs/release-notes/release-template.md b/docs/release-notes/release-template.md index 5754365f..b53e6141 100644 --- a/docs/release-notes/release-template.md +++ b/docs/release-notes/release-template.md @@ -121,4 +121,4 @@ tomcat #### isle-varnish * `apt-get` dist-upgrades for dependencies security and package updates -* Github Actions [workflow](https://github.com/marketplace/actions/build-and-push-docker-images) updated \ No newline at end of file +* Github Actions [workflow](https://github.com/marketplace/actions/build-and-push-docker-images) updated diff --git a/download/Dockerfile b/download/Dockerfile index 7492ab56..d4dfe6f2 100644 --- a/download/Dockerfile +++ b/download/Dockerfile @@ -1,5 +1,5 @@ -# syntax=docker/dockerfile:1.2.1 -ARG alpine=3.15.0 +# syntax=docker/dockerfile:1.4.3 +ARG alpine=3.16.2 FROM alpine:${alpine} AS cache FROM alpine:${alpine} @@ -20,4 +20,4 @@ RUN --mount=type=cache,id=download-apk,sharing=locked,from=cache,target=/var/cac ENV DOWNLOAD_CACHE_DIRECTORY=/opt/downloads \ TERM=xterm -COPY rootfs / +COPY --link rootfs / diff --git a/download/rootfs/usr/local/bin/create-service-user.sh b/download/rootfs/usr/local/bin/create-service-user.sh index d6594176..c70e4b9e 100755 --- a/download/rootfs/usr/local/bin/create-service-user.sh +++ b/download/rootfs/usr/local/bin/create-service-user.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage() { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options Creates a user/group for the service and as well as a directory in /opt @@ -18,31 +19,31 @@ function usage() { Examples: Create user/group "activemq" and home folder /opt/activemq: - $PROGNAME --name "activemq" + $PROGNAME --name "activemq" EOF } function cmdline() { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --name) args="${args}-n ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --name) args="${args}-n " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "n:hx" OPTION - do + while getopts "n:hx" OPTION; do case $OPTION in n) readonly NAME=${OPTARG} @@ -52,9 +53,13 @@ function cmdline() { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -67,16 +72,18 @@ function cmdline() { } function main { - cmdline ${ARGS} - local install_directory=/opt/${NAME} - local user=${NAME} - local group=${NAME} - mkdir ${install_directory} - addgroup ${group} + local install_directory user group + cmdline "${ARGS[@]}" + + install_directory="/opt/${NAME}" + user="${NAME}" + group="${NAME}" + mkdir "${install_directory}" + addgroup "${group}" # Users that run services should permit login / do not require passwords. - adduser --system --disabled-password --no-create-home --ingroup ${group} --shell /sbin/nologin --home ${install_directory} ${user} + adduser --system --disabled-password --no-create-home --ingroup "${group}" --shell /sbin/nologin --home "${install_directory}" "${user}" # User also needs to be a member of tty to write directly to /dev/stdout, etc. - addgroup ${user} tty - chown ${user}:${group} ${install_directory} + addgroup "${user}" tty + chown "${user}:${group}" "${install_directory}" } main diff --git a/download/rootfs/usr/local/bin/download.sh b/download/rootfs/usr/local/bin/download.sh index 80bc71a5..cb8e8cfd 100755 --- a/download/rootfs/usr/local/bin/download.sh +++ b/download/rootfs/usr/local/bin/download.sh @@ -1,14 +1,15 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME DEST - - Downloads the file at the given url checking it against the given sha256. + + Downloads the file at the given url checking it against the given sha256. If checksum matches return 0 otherwise delete the downloaded file and return non-zero. Download is placed in the directory DEST. @@ -18,7 +19,7 @@ function usage { -c --sha256 The sha256 checksum to use to validate the download. -h --help Show this help. -x --debug Debug this script. - + Examples: $PROGNAME https://github.com/just-containers/s6-overlay/releases/download/v1.22.1.0/s6-overlay-amd64.tar.gz 7f3aba1d803543dd1df3944d014f055112cf8dadf0a583c76dd5f46578ebe3c2 /opt/downloads EOF @@ -26,26 +27,26 @@ EOF function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --url) args="${args}-u ";; - --sha256) args="${args}-c ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --url) args="${args}-u " ;; + --sha256) args="${args}-c " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done - + # Reset the positional parameters to the short options - eval set -- $args - - while getopts "u:c:hx" OPTION - do + eval set -- "${args}" + + while getopts "u:c:hx" OPTION; do case $OPTION in u) readonly URL=${OPTARG} @@ -58,9 +59,13 @@ function cmdline { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -70,12 +75,12 @@ function cmdline { fi # The only parameters is the destination directory. - shift $((OPTIND-1)) + shift $((OPTIND - 1)) if [ "$#" -ne 1 ]; then - echo "Illegal number of parameters" - usage - return 1 + echo "Illegal number of parameters" + usage + return 1 fi readonly DEST="${1}" @@ -83,15 +88,16 @@ function cmdline { return 0 } - function validate { local file=${1} - sha256sum "${file}" | cut -f1 -d' ' | xargs test "${CHECKSUM}" == + sha256sum "${file}" | cut -f1 -d' ' | xargs test "${CHECKSUM}" == } function main { - cmdline ${ARGS} - local file="${DEST}/$(basename ${URL})" + local file + cmdline "${ARGS[@]}" + + file="${DEST:?}/$(basename "${URL}")" # Remove the downloaded file if it exist and does not match the checksum so that it can be downloaded again. if [ -f "${file}" ] && ! validate "${file}"; then rm "${file}" diff --git a/download/rootfs/usr/local/bin/git-clone-cached.sh b/download/rootfs/usr/local/bin/git-clone-cached.sh index 2702063c..76820224 100755 --- a/download/rootfs/usr/local/bin/git-clone-cached.sh +++ b/download/rootfs/usr/local/bin/git-clone-cached.sh @@ -1,8 +1,9 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME trap 'cleanup $?' EXIT function cleanup() { @@ -15,7 +16,7 @@ function cleanup() { function usage() { cat <<-EOF usage: $PROGNAME options [FILE]... - + Does a git clone utilizing the Buildkit caching mechanism. OPTIONS: @@ -26,7 +27,7 @@ function usage() { -s --strip Remove the git repo as well as any files passed as parameters to save space. -h --help Show this help. -x --debug Debug this script. - + Examples: Clone repository: $PROGNAME \\ @@ -73,7 +74,7 @@ function cmdline() { done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" while getopts "u:d:c:w:shx" OPTION; do case $OPTION in @@ -94,13 +95,18 @@ function cmdline() { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done - readonly REPOSITORY=$(basename ${WORKTREE}) + REPOSITORY=$(basename "${WORKTREE}") + readonly REPOSITORY if [[ -z $URL || -z $CACHE_DIRECTORY || -z $COMMIT || -z $WORKTREE ]]; then echo "Missing one or more required options: --url --cache-dir --commit --worktree" >&2 @@ -115,29 +121,30 @@ function cmdline() { } function remove_cache() { - rm -fr ${CACHE_DIRECTORY}/${REPOSITORY} - rm -fr ${WORKTREE} + rm -fr "${CACHE_DIRECTORY:?}/${REPOSITORY:?}" + rm -fr "${WORKTREE:?}" } function update_cache() { - git clone --mirror ${URL} ${CACHE_DIRECTORY}/${REPOSITORY} || true - git clone ${CACHE_DIRECTORY}/${REPOSITORY} ${WORKTREE} - git -C ${WORKTREE} fetch --all + git clone --mirror "${URL}" "${CACHE_DIRECTORY:?}/${REPOSITORY:?}" || true + git clone --shallow-submodules --recurse-submodules --jobs "$(nproc)" "${CACHE_DIRECTORY:?}/${REPOSITORY:?}" "${WORKTREE}" + git -C "${WORKTREE}" fetch --all } function checkout() { - git -C ${WORKTREE} reset --hard ${COMMIT} + git -C "${WORKTREE}" reset --hard "${COMMIT}" + git -C "${WORKTREE}" submodule update --init --recursive } function main() { - cmdline ${ARGS} + cmdline "${ARGS[@]}" update_cache # Attempt twice in case the history of the cache has become invalid. checkout || (remove_cache && update_cache && checkout) if [[ -z $STRIP ]]; then - rm -fr ${WORKTREE}/.git + rm -fr "${WORKTREE:?}/.git" for i in "${REMOVE[@]}"; do - rm -fr "${WORKTREE}/${i}" + rm -fr "${WORKTREE:?}/${i}" done fi } diff --git a/download/rootfs/usr/local/bin/install-apache-service.sh b/download/rootfs/usr/local/bin/install-apache-service.sh index 0cc41b2d..9ad2e2f0 100755 --- a/download/rootfs/usr/local/bin/install-apache-service.sh +++ b/download/rootfs/usr/local/bin/install-apache-service.sh @@ -1,25 +1,26 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage() { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options [FILE]... - + Installs the given apache service in /opt. Creates a user/group for the service and ensuring that all files are owned by that user/group. Additional parameters are files to be removed from the installation to save on space. Things like "examples", and "docs". - + OPTIONS: -n --name The name of the services to install (used to create user/group and install directory). -f --file The name of the file to download. -h --help Show this help. -x --debug Debug this script. - + Examples: Install ActiveMQ: $PROGNAME \\ @@ -31,26 +32,26 @@ EOF function cmdline() { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --name) args="${args}-n ";; - --file) args="${args}-f ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --name) args="${args}-n " ;; + --file) args="${args}-f " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done - + # Reset the positional parameters to the short options - eval set -- $args - - while getopts "n:f:hx" OPTION - do + eval set -- "${args}" + + while getopts "n:f:hx" OPTION; do case $OPTION in n) readonly NAME=${OPTARG} @@ -63,9 +64,13 @@ function cmdline() { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -75,17 +80,14 @@ function cmdline() { fi # All remaning parameters are files to be removed from the installation. - shift $((OPTIND-1)) + shift $((OPTIND - 1)) readonly REMOVE=("$@") return 0 } function main { - cmdline ${ARGS} - local install_directory=/opt/${NAME} - local user=${NAME} - local group=${NAME} - install-service.sh --name "${NAME}" --file "${FILE}" ${REMOVE[@]} + cmdline "${ARGS[@]}" + install-service.sh --name "${NAME}" --file "${FILE}" "${REMOVE[@]}" } main diff --git a/download/rootfs/usr/local/bin/install-service.sh b/download/rootfs/usr/local/bin/install-service.sh index f9d89cf6..6d9d1a81 100755 --- a/download/rootfs/usr/local/bin/install-service.sh +++ b/download/rootfs/usr/local/bin/install-service.sh @@ -1,11 +1,12 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage() { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options [FILE]... Creates a user/group for the service and as well as a directory in /opt @@ -34,27 +35,27 @@ EOF function cmdline() { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --name) args="${args}-n ";; - --file) args="${args}-f ";; - --depth) args="${args}-d ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --name) args="${args}-n " ;; + --file) args="${args}-f " ;; + --depth) args="${args}-d " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done # Reset the positional parameters to the short options - eval set -- $args + eval set -- "${args}" - while getopts "n:f:d:hx" OPTION - do + while getopts "n:f:d:hx" OPTION; do case $OPTION in n) readonly NAME=${OPTARG} @@ -70,9 +71,13 @@ function cmdline() { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -87,19 +92,24 @@ function cmdline() { fi # All remaning parameters are files to be removed from the installation. - shift $((OPTIND-1)) + shift $((OPTIND - 1)) readonly REMOVE=("$@") return 0 } function main { - cmdline ${ARGS} - local install_directory=/opt/${NAME} - create-service-user.sh --name ${NAME} - case $FILE in - *.tar.gz|*.tgz) - tar -xzf ${FILE} -C ${install_directory} --strip-components ${DEPTH} + local install_directory + cmdline "${ARGS[@]}" + install_directory="/opt/${NAME}" + create-service-user.sh --name "${NAME}" + case "${FILE}" in + *.tar.gz | *.tgz) + tar -xzf "${FILE}" -C "${install_directory}" --strip-components "${DEPTH}" + chown -R "${NAME}:${NAME}" "${install_directory}" + ;; + *.jar) + cp ${FILE} ${install_directory} chown -R ${NAME}:${NAME} ${install_directory} ;; *) @@ -109,7 +119,7 @@ function main { esac # Remove extraneous files. for i in "${REMOVE[@]}"; do - rm -fr "${install_directory}/${i}" + rm -fr "${install_directory:?}/${i}" done } main diff --git a/download/rootfs/usr/local/bin/install-war-into-tomcat.sh b/download/rootfs/usr/local/bin/install-war-into-tomcat.sh index 1675eefc..3db0ed5c 100755 --- a/download/rootfs/usr/local/bin/install-war-into-tomcat.sh +++ b/download/rootfs/usr/local/bin/install-war-into-tomcat.sh @@ -1,13 +1,14 @@ #!/usr/bin/env bash set -e -readonly PROGNAME=$(basename $0) -readonly ARGS="$@" +ARGS=("$@") +PROGNAME=$(basename "$0") +readonly ARGS PROGNAME function usage { - cat <<- EOF + cat <<-EOF usage: $PROGNAME options [FILE]... - + Installs the given war into tomcat. OPTIONS: @@ -26,26 +27,26 @@ EOF function cmdline { local arg= - for arg - do + for arg; do local delim="" case "$arg" in - # Translate --gnu-long-options to -g (short options) - --name) args="${args}-n ";; - --file) args="${args}-f ";; - --help) args="${args}-h ";; - --debug) args="${args}-x ";; - # Pass through anything else - *) [[ "${arg:0:1}" == "-" ]] || delim="\"" - args="${args}${delim}${arg}${delim} ";; + # Translate --gnu-long-options to -g (short options) + --name) args="${args}-n " ;; + --file) args="${args}-f " ;; + --help) args="${args}-h " ;; + --debug) args="${args}-x " ;; + # Pass through anything else + *) + [[ "${arg:0:1}" == "-" ]] || delim="\"" + args="${args}${delim}${arg}${delim} " + ;; esac done - + # Reset the positional parameters to the short options - eval set -- $args - - while getopts "n:f:hx" OPTION - do + eval set -- "${args}" + + while getopts "n:f:hx" OPTION; do case $OPTION in n) readonly NAME=${OPTARG} @@ -59,9 +60,13 @@ function cmdline { exit 0 ;; x) - readonly DEBUG='-x' set -x ;; + *) + echo "Invalid Option: $OPTION" >&2 + usage + exit 1 + ;; esac done @@ -74,7 +79,7 @@ function cmdline { } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" mkdir -p "${DEPLOY_DIRECTORY}" unzip "${FILE}" -d "${DEPLOY_DIRECTORY}" chown -R 100:1000 /opt/tomcat diff --git a/drupal/.dockerignore b/drupal/.dockerignore index badf6cb7..94334b24 100644 --- a/drupal/.dockerignore +++ b/drupal/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/drupal/Dockerfile b/drupal/Dockerfile index e2adb85c..12dba230 100644 --- a/drupal/Dockerfile +++ b/drupal/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download ARG DRUSH_VERSION="0.6.0" @@ -31,6 +31,11 @@ RUN --mount=type=cache,id=drupal-apk,sharing=locked,from=cache,target=/var/cache addgroup nginx jwt && \ cleanup.sh +# Installation typically needs more than the default 30 seconds defined in the +# base image. Set to 10 minutes just incase it ran on very old or overallocated +# hardware. +ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=600000 + ENV \ DRUPAL_DEFAULT_ACCOUNT_EMAIL=webmaster@localhost.com \ DRUPAL_DEFAULT_ACCOUNT_NAME=admin \ @@ -45,6 +50,8 @@ ENV \ DRUPAL_DEFAULT_EMAIL=webmaster@localhost.com \ DRUPAL_DEFAULT_FCREPO_HOST=islandora.traefik.me \ DRUPAL_DEFAULT_FCREPO_PORT=8081 \ + DRUPAL_DEFAULT_FITS_HOST=fits \ + DRUPAL_DEFAULT_FITS_PORT=8080 \ DRUPAL_DEFAULT_INSTALL_EXISTING_CONFIG=false \ DRUPAL_DEFAULT_INSTALL=true \ DRUPAL_DEFAULT_LOCALE=en \ @@ -60,11 +67,14 @@ ENV \ DRUPAL_DEFAULT_TRIPLESTORE_HOST=blazegraph \ DRUPAL_DEFAULT_TRIPLESTORE_NAMESPACE=islandora \ DRUPAL_DEFAULT_TRIPLESTORE_PORT=8080 \ + DRUPAL_ENABLE_HTTPS=true \ DRUPAL_REVERSE_PROXY_IPS= \ DRUPAL_SITES=DEFAULT -COPY --from=download /usr/bin/drush /usr/bin/drush +WORKDIR /var/www/drupal + +COPY --link --from=download /usr/bin/drush /usr/bin/drush -COPY rootfs / +COPY --link rootfs / -WORKDIR /var/www/drupal \ No newline at end of file +RUN chown -R nginx:nginx /var/www diff --git a/drupal/README.md b/drupal/README.md index 91b5dda4..43347da5 100644 --- a/drupal/README.md +++ b/drupal/README.md @@ -21,6 +21,13 @@ additional settings, volumes, ports, etc. ## Settings +### Network Settings + +| Environment Variable | Confd Key | Default | Description | +| :----------------------- | :------------------------ | :------ | :--------------------------------------------------------------------------------- | +| DRUPAL_ENABLE_HTTPS | /drupal/enable/https | true | Inform PHP that `https` should be used. | +| DRUPAL_REVERSE_PROXY_IPS | /drupal/reverse/proxy/ips | | Use the IP address for the host 'traefik' if found otherwise default to `0.0.0.0`. | + ### Database Settings [Drupal] can make use of different database backends for storage. Please see the diff --git a/drupal/rootfs/etc/bash.bashrc b/drupal/rootfs/etc/bash.bashrc old mode 100644 new mode 100755 index 7d0415e6..f588dd7c --- a/drupal/rootfs/etc/bash.bashrc +++ b/drupal/rootfs/etc/bash.bashrc @@ -1,4 +1,6 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash # For bash login-shells include utilities so they can be called directly. +# shellcheck disable=SC1091 source /etc/islandora/utilities.sh diff --git a/drupal/rootfs/etc/confd/conf.d/drupal.fpm.conf.toml b/drupal/rootfs/etc/confd/conf.d/drupal.fpm.conf.toml new file mode 100644 index 00000000..f83a1508 --- /dev/null +++ b/drupal/rootfs/etc/confd/conf.d/drupal.fpm.conf.toml @@ -0,0 +1,7 @@ +[template] +src = "drupal.fpm.conf.tmpl" +dest = "/etc/nginx/shared/drupal.fpm.conf" +uid = 0 +gid = 0 +mode = "0644" +keys = [ "/" ] diff --git a/drupal/rootfs/etc/nginx/shared/drupal.fpm.conf b/drupal/rootfs/etc/confd/templates/drupal.fpm.conf.tmpl similarity index 90% rename from drupal/rootfs/etc/nginx/shared/drupal.fpm.conf rename to drupal/rootfs/etc/confd/templates/drupal.fpm.conf.tmpl index eb4ade03..4417f5a9 100644 --- a/drupal/rootfs/etc/nginx/shared/drupal.fpm.conf +++ b/drupal/rootfs/etc/confd/templates/drupal.fpm.conf.tmpl @@ -22,11 +22,13 @@ location ~ '\.php$|^/update.php' { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; + {{ if eq (getenv "DRUPAL_ENABLE_HTTPS") "true" }} fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; + {{ end }} fastcgi_intercept_errors on; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; - # PHP 7 socket location. - fastcgi_pass unix:/var/run/php-fpm7/php-fpm7.sock; + # PHP 8 socket location. + fastcgi_pass unix:/var/run/php-fpm81/php-fpm81.sock; } diff --git a/drupal/rootfs/etc/islandora/utilities.sh b/drupal/rootfs/etc/islandora/utilities.sh index e0c4a93a..92091139 100755 --- a/drupal/rootfs/etc/islandora/utilities.sh +++ b/drupal/rootfs/etc/islandora/utilities.sh @@ -1,28 +1,34 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash # Capitalize the given string. function capitalize { - local string="${1}"; shift - echo $(tr '[:lower:]' '[:upper:]' <<< ${string:0:1})$(tr '[:upper:]' '[:lower:]' <<< ${string:1}) + local string="${1}" + shift + tr '[:lower:]' '[:upper:]' <<<"${string:0:1}" && tr '[:upper:]' '[:lower:]' <<<"${string:1}" } # Transform the given string to uppercase. function uppercase { - local string="${1}"; shift - echo $(tr '[:lower:]' '[:upper:]' <<< ${string}) + local string="${1}" + shift + tr '[:lower:]' '[:upper:]' <<<"${string}" } # Joins the given array into a string delimited by the first argument. function join_by { - local IFS="${1}"; shift + local IFS="${1}" + shift echo "$*" } # Get variable value for given site. function drupal_site_env { - local site="$(uppercase ${1})"; shift - local suffix="$(uppercase ${1})"; shift - local var= + local site suffix var + site="$(uppercase "${1}")" + shift + suffix="$(uppercase "${1}")" + shift if [ "${site}" = "DEFAULT" ]; then var="DRUPAL_DEFAULT_${suffix}" echo "${!var}" @@ -35,11 +41,13 @@ function drupal_site_env { # Get the index of the given site in the lists of site. # Useful for generating distinct identifiers. function site_index { - local site="${1}"; shift - local array=(${DRUPAL_SITES}) - for i in "${!array[@]}"; do - if [[ "${array[$i]}" = "${site}" ]]; then - echo "${i}"; + local site sites + site="${1}" + shift + sites=("${DRUPAL_SITES[@]}") + for i in "${!sites[@]}"; do + if [[ "${sites[$i]}" = "${site}" ]]; then + echo "${i}" return 0 fi done @@ -49,14 +57,17 @@ function site_index { # Wait for service to respond. function wait_for_service { - local site="${1}"; shift - local service="${1}"; shift - local time="${1-300}"; - local host=$(drupal_site_env "${site}" "${service}_HOST") - local port=$(drupal_site_env "${site}" "${service}_PORT") - local service_name=$(capitalize "${service}") - - if timeout ${time} wait-for-open-port.sh "${host}" "${port}" ; then + local site service duration host port service_name + site="${1}" + shift + service="${1}" + shift + duration="${1-300}" + host=$(drupal_site_env "${site}" "${service}_HOST") + port=$(drupal_site_env "${site}" "${service}_PORT") + service_name=$(capitalize "${service}") + + if timeout "${duration}" wait-for-open-port.sh "${host}" "${port}"; then echo "${service_name} Found at ${host}:${port}" return 0 else @@ -67,10 +78,13 @@ function wait_for_service { # Waits for services that are required to be running to successfully ingest content. function wait_for_required_services { - local site="${1}"; shift + local site + site="${1}" + shift if [ $# -gt 0 ]; then while [ $# -gt 0 ]; do - local service="${1}"; shift + local service="${1}" + shift wait_for_service "${site}" "${service}" done else @@ -83,31 +97,35 @@ function wait_for_required_services { # Apply given function for all sites in parallel, up to the number of cores available. function for_all_sites { - local function="${1}"; shift - local n=$(nproc) - local pids=() + local func cpus pids + func="${1}" + shift + cpus=$(nproc) + pids=() for site in ${DRUPAL_SITES}; do - $function "${site}" ${@} & + "${func}" "${site}" "${@}" & pids+=(${!}) - # Allow only to execute ${n} jobs in parallel - if [[ $(jobs -r -p | wc -l) -gt ${n} ]]; then + # Allow only to execute ${cpu} jobs in parallel + if [[ $(jobs -r -p | wc -l) -gt ${cpus} ]]; then # Wait only for first job, exit code here will propigate wait -n fi done # To ensure the exit code propigates we must wait for each process individually - for pid in ${pids[@]}; do + for pid in "${pids[@]}"; do wait "${pid}" done } function execute_sql_file { - local site="${1}"; shift - local driver=$(drupal_site_env "${site}" "DB_DRIVER") - local host=$(drupal_site_env "${site}" "DB_HOST") - local port=$(drupal_site_env "${site}" "DB_PORT") - local user=$(drupal_site_env "${site}" "DB_ROOT_USER") - local password=$(drupal_site_env "${site}" "DB_ROOT_PASSWORD") + local site driver host port user password + site="${1}" + shift + driver=$(drupal_site_env "${site}" "DB_DRIVER") + host=$(drupal_site_env "${site}" "DB_HOST") + port=$(drupal_site_env "${site}" "DB_PORT") + user=$(drupal_site_env "${site}" "DB_ROOT_USER") + password=$(drupal_site_env "${site}" "DB_ROOT_PASSWORD") execute-sql-file.sh \ --driver "${driver}" \ --host "${host}" \ @@ -118,11 +136,13 @@ function execute_sql_file { } function mysql_query { - local site="${1}"; shift - local db_name=$(drupal_site_env "${site}" "DB_NAME") - local db_user=$(drupal_site_env "${site}" "DB_USER") - local db_password=$(drupal_site_env "${site}" "DB_PASSWORD") - cat <<- EOF + local site db_name db_user db_password + site="${1}" + shift + db_name=$(drupal_site_env "${site}" "DB_NAME") + db_user=$(drupal_site_env "${site}" "DB_USER") + db_password=$(drupal_site_env "${site}" "DB_PASSWORD") + cat <<-EOF -- Create if does not exist. CREATE DATABASE IF NOT EXISTS ${db_name} CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER IF NOT EXISTS ${db_user}@'%' IDENTIFIED BY "${db_password}"; @@ -135,16 +155,20 @@ EOF } function mysql_create_database { - local site="${1}"; shift + local site + site="${1}" + shift execute_sql_file "${site}" <(mysql_query "${site}") } function postgres_query { - local site="${1}"; shift - local db_name=$(drupal_site_env "${site}" "DB_NAME") - local db_user=$(drupal_site_env "${site}" "DB_USER") - local db_password=$(drupal_site_env "${site}" "DB_PASSWORD") - cat <<- EOF + local site db_name db_user db_password + site="${1}" + shift + db_name=$(drupal_site_env "${site}" "DB_NAME") + db_user=$(drupal_site_env "${site}" "DB_USER") + db_password=$(drupal_site_env "${site}" "DB_PASSWORD") + cat <<-EOF BEGIN; DO \$\$ @@ -166,14 +190,18 @@ EOF } function postgresql_database_exists { - local site="${1}"; shift - local db_name=$(drupal_site_env "${site}" "DB_NAME") + local site db_name + site="${1}" + shift + db_name=$(drupal_site_env "${site}" "DB_NAME") execute_sql_file "${site}" --database "${db_name}" <(echo 'select 1') } function postgresql_create_database { - local site="${1}"; shift - local db_name=$(drupal_site_env "${site}" "DB_NAME") + local site db_name + site="${1}" + shift + db_name=$(drupal_site_env "${site}" "DB_NAME") # Postgres does not support CREATE DATABASE IF NOT EXISTS so split our logic across multiple queries. if ! postgresql_database_exists "${site}"; then execute_sql_file "${site}" <(echo "CREATE DATABASE ${db_name}") @@ -183,48 +211,57 @@ function postgresql_create_database { # Create a database for the given site. function create_database { - local site="${1}"; shift - local driver=$(drupal_site_env "${site}" "DB_DRIVER") - + local site driver + site="${1}" + shift + driver=$(drupal_site_env "${site}" "DB_DRIVER") + case "${driver}" in - mysql) - mysql_create_database "${site}" - ;; - postgresql) - postgresql_create_database "${site}" - ;; - *) - echo "Only MySQL/PostgresSQL databases are supported for now." >&2 - exit 1 + mysql) + mysql_create_database "${site}" + ;; + postgresql) + postgresql_create_database "${site}" + ;; + *) + echo "Only MySQL/PostgresSQL databases are supported for now." >&2 + exit 1 + ;; esac } # Install the given site. function install_site { - local site="${1}"; shift - local drupal_root=$(drush drupal:directory) - local driver=$(drupal_site_env "${site}" "DB_DRIVER") - local host=$(drupal_site_env "${site}" "DB_HOST") - local port=$(drupal_site_env "${site}" "DB_PORT") - local user=$(drupal_site_env "${site}" "DB_USER") - local password=$(drupal_site_env "${site}" "DB_PASSWORD") - local db_name=$(drupal_site_env "${site}" "DB_NAME") - local account_email=$(drupal_site_env "${site}" "ACCOUNT_EMAIL") - local account_name=$(drupal_site_env "${site}" "ACCOUNT_NAME") - local account_password=$(drupal_site_env "${site}" "ACCOUNT_PASSWORD") - local profile=$(drupal_site_env "${site}" "PROFILE") - local site_email=$(drupal_site_env "${site}" "EMAIL") - local site_locale=$(drupal_site_env "${site}" "LOCALE") - local site_name=$(drupal_site_env "${site}" "NAME") - local subdir=$(drupal_site_env "${site}" "SUBDIR") - local site_directory=$(realpath "${drupal_root}/sites/${subdir}") - local files_directory=$(realpath "${site_directory}/files") - local install=$(drupal_site_env "${site}" "INSTALL") - local use_existing_config=$(drupal_site_env "${site}" "INSTALL_EXISTING_CONFIG") - local use_existing_config_arg= + local \ + site drupal_root driver host port user password db_name account_email \ + account_name account_password profile site_email site_locale site_name \ + subdir site_directory files_directory install use_existing_config \ + use_existing_config_arg + site="${1}" + shift + drupal_root=$(drush drupal:directory) + driver=$(drupal_site_env "${site}" "DB_DRIVER") + host=$(drupal_site_env "${site}" "DB_HOST") + port=$(drupal_site_env "${site}" "DB_PORT") + user=$(drupal_site_env "${site}" "DB_USER") + password=$(drupal_site_env "${site}" "DB_PASSWORD") + db_name=$(drupal_site_env "${site}" "DB_NAME") + account_email=$(drupal_site_env "${site}" "ACCOUNT_EMAIL") + account_name=$(drupal_site_env "${site}" "ACCOUNT_NAME") + account_password=$(drupal_site_env "${site}" "ACCOUNT_PASSWORD") + profile=$(drupal_site_env "${site}" "PROFILE") + site_email=$(drupal_site_env "${site}" "EMAIL") + site_locale=$(drupal_site_env "${site}" "LOCALE") + site_name=$(drupal_site_env "${site}" "NAME") + subdir=$(drupal_site_env "${site}" "SUBDIR") + site_directory=$(realpath "${drupal_root}/sites/${subdir}") + files_directory=$(realpath "${site_directory}/files") + install=$(drupal_site_env "${site}" "INSTALL") + use_existing_config=$(drupal_site_env "${site}" "INSTALL_EXISTING_CONFIG") + use_existing_config_arg= if [ "${install}" != "true" ]; then - echo "Skipping install of site: $(capitalize ${site})" + echo "Skipping install of site: $(capitalize "${site}")" return 0 fi @@ -242,8 +279,8 @@ function install_site { chmod -R ug+rw "${files_directory}" # Allow changes to settings.php if it exists. - if [[ -f "${site_directory}/settings.php" ]]; then - chmod a=rwx "${site_directory}/settings.php" + if [[ -f "${site_directory:?}/settings.php" ]]; then + chmod a=rwx "${site_directory:?}/settings.php" fi echo "--driver ${driver}" @@ -259,7 +296,7 @@ function install_site { echo "--site-name=${site_name}" echo "--sites-subdir=${subdir}" echo "USE_EXISTIG_CONFIG: ${use_existing_config_arg}" - echo "EVERYTHING ELSE: ${@}" + echo "EVERYTHING ELSE: $*" /usr/local/bin/install-drupal-site.sh \ --driver "${driver}" \ @@ -277,19 +314,21 @@ function install_site { --site-name="${site_name}" \ --sites-subdir="${subdir}" \ "${use_existing_config_arg}" \ - ${@} + "${@}" # Restrict changes to settings.php - if [[ -f "${site_directory}/settings.php" ]]; then - chmod a=,ug=r "${site_directory}/settings.php" + if [[ -f "${site_directory:?}/settings.php" ]]; then + chmod a=,ug=r "${site_directory:?}/settings.php" fi } # Get the base url of fedora. function fedora_url { - local site="${1}"; shift - local fcrepo_host=$(drupal_site_env "${site}" "FCREPO_HOST") - local fcrepo_port=$(drupal_site_env "${site}" "FCREPO_PORT") + local site fcrepo_host fcrepo_port + site="${1}" + shift + fcrepo_host=$(drupal_site_env "${site}" "FCREPO_HOST") + fcrepo_port=$(drupal_site_env "${site}" "FCREPO_PORT") # Indexing fails if port 80 is given explicitly. if [[ "${fcrepo_port}" == "80" ]]; then @@ -299,65 +338,72 @@ function fedora_url { fi } - # Allow modifications to settings.php by changing ownership and perms function allow_settings_modifications { - local site="${1}"; shift - local drupal_root=$(drush drupal:directory) - local subdir=$(drupal_site_env "${site}" "SUBDIR") - local site_directory=$(realpath "${drupal_root}/sites/${subdir}") + local site drupal_root subdir site_directory + site="${1}" + shift + drupal_root=$(drush drupal:directory) + subdir=$(drupal_site_env "${site}" "SUBDIR") + site_directory=$(realpath "${drupal_root}/sites/${subdir}") # send debug output to stderr because the caller typically captures output from this function. - #>&2 echo "adjusting ownership of ${site_directory}/settings.php" - if [ -f "${site_directory}/settings.php" ]; then - previous_owner_group=$(stat -c "%u:%g" "${site_directory}/settings.php") - chown 100:101 "${site_directory}/settings.php" - chmod a=rwx "${site_directory}/settings.php" + #>&2 echo "adjusting ownership of "${site_directory:?}/settings.php"" + if [ -f "${site_directory:?}/settings.php" ]; then + previous_owner_group=$(stat -c "%u:%g" "${site_directory:?}/settings.php") + chown 100:101 "${site_directory:?}/settings.php" + chmod a=rwx "${site_directory:?}/settings.php" fi - if [ ! -z "${previous_owner_group}" ]; then - echo ${previous_owner_group} + if [ -n "${previous_owner_group}" ]; then + echo "${previous_owner_group}" fi } # Restore ownership of settings.php so that it is readable/writable outside of docker function restore_settings_ownership { - local site="${1}"; shift - local previous_owner_group="${1}"; shift - local drupal_root=$(drush drupal:directory) - local subdir=$(drupal_site_env "${site}" "SUBDIR") - local site_directory=$(realpath "${drupal_root}/sites/${subdir}") - - # Restore owner/group to previous value. + local site previous_owner_group drupal_root subdir site_directory + site="${1}" + shift + previous_owner_group="${1}" + shift + drupal_root=$(drush drupal:directory) + subdir=$(drupal_site_env "${site}" "SUBDIR") + site_directory=$(realpath "${drupal_root}/sites/${subdir}") + + # Restore owner/group to previous value. # When the codebase is bind-mounted, this ensures the file remains readable/writable by the host user. - if [ ! -z "${previous_owner_group}" ]; then - chown "${previous_owner_group}" "${site_directory}/settings.php" + if [ -n "${previous_owner_group}" ]; then + chown "${previous_owner_group}" "${site_directory:?}/settings.php" fi # Restrict access to settings.php - chmod 444 "${site_directory}/settings.php" + chmod 444 "${site_directory:?}/settings.php" } - # Regenerate / Update settings.php function update_settings_php { - local site="${1}"; shift - local drupal_root=$(drush drupal:directory) - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local driver=$(drupal_site_env "${site}" "DB_DRIVER") - local host=$(drupal_site_env "${site}" "DB_HOST") - local port=$(drupal_site_env "${site}" "DB_PORT") - local user=$(drupal_site_env "${site}" "DB_USER") - local password=$(drupal_site_env "${site}" "DB_PASSWORD") - local db_name=$(drupal_site_env "${site}" "DB_NAME") - local config_dir=$(drupal_site_env "${site}" "CONFIGDIR") - local fcrepo_host=$(drupal_site_env "${site}" "FCREPO_HOST") - local fcrepo_port=$(drupal_site_env "${site}" "FCREPO_PORT") - local salt=$(drupal_site_env "${site}" "SALT") - local subdir=$(drupal_site_env "${site}" "SUBDIR") - local site_directory=$(realpath "${drupal_root}/sites/${subdir}") - local install=$(drupal_site_env "${site}" "INSTALL") - local fedora_url=$(fedora_url "${site}") - local previous_owner_group= + local \ + site drupal_root site_url driver host port user password db_name \ + config_dir fcrepo_host fcrepo_port salt subdir site_directory install \ + fedora_url previous_owner_group + site="${1}" + shift + drupal_root=$(drush drupal:directory) + site_url=$(drupal_site_env "${site}" "SITE_URL") + driver=$(drupal_site_env "${site}" "DB_DRIVER") + host=$(drupal_site_env "${site}" "DB_HOST") + port=$(drupal_site_env "${site}" "DB_PORT") + user=$(drupal_site_env "${site}" "DB_USER") + password=$(drupal_site_env "${site}" "DB_PASSWORD") + db_name=$(drupal_site_env "${site}" "DB_NAME") + config_dir=$(drupal_site_env "${site}" "CONFIGDIR") + fcrepo_host=$(drupal_site_env "${site}" "FCREPO_HOST") + fcrepo_port=$(drupal_site_env "${site}" "FCREPO_PORT") + salt=$(drupal_site_env "${site}" "SALT") + subdir=$(drupal_site_env "${site}" "SUBDIR") + site_directory=$(realpath "${drupal_root}/sites/${subdir}") + install=$(drupal_site_env "${site}" "INSTALL") + fedora_url=$(fedora_url "${site}") if [ "${install}" != "true" ]; then echo "Skipping update of settings.php for site: $(capitalize "${site}")" @@ -365,16 +411,18 @@ function update_settings_php { fi # Allow modifications to settings.php - local previous_owner_group=$(allow_settings_modifications ${site}) + previous_owner_group=$(allow_settings_modifications "${site}") - if ! grep -q 'global \$content_directories;' ${site_directory}/settings.php; then - echo 'global $content_directories;' >> ${site_directory}/settings.php - echo '$content_directories["sync"] = "/var/www/drupal/content/sync";' >> ${site_directory}/settings.php + # shellcheck disable=SC2016 + if ! grep -q 'global $content_directories;' "${site_directory:?}/settings.php"; then + echo 'global $content_directories;' >>"${site_directory:?}/settings.php" + echo '$content_directories["sync"] = "/var/www/drupal/content/sync";' >>"${site_directory:?}/settings.php" fi - if ! grep -q 'global \$content_directories;' ${site_directory}/settings.php; then - echo 'global $content_directories;' >> ${site_directory}/settings.php - echo '$content_directories["sync"] = "/var/www/drupal/content/sync";' >> ${site_directory}/settings.php + # shellcheck disable=SC2016 + if ! grep -q 'global $content_directories;' "${site_directory:?}/settings.php"; then + echo 'global $content_directories;' >>"${site_directory:?}/settings.php" + echo '$content_directories["sync"] = "/var/www/drupal/content/sync";' >>"${site_directory:?}/settings.php" fi drush -l "${site_url}" islandora:settings:create-settings-if-missing @@ -389,33 +437,36 @@ function update_settings_php { "${port}" \ "${driver}" - # Specifiying the config_dir is optional, some users will hardcode it in + # Specifiying the config_dir is optional, some users will hardcode it in # their settings.php so it does not need updating. - if [ ! -z "${config_dir}" ]; then - drush -l "${site_url}" islandora:settings:set-config-sync-directory ${config_dir} + if [ -n "${config_dir}" ]; then + drush -l "${site_url}" islandora:settings:set-config-sync-directory "${config_dir}" fi # Restore owner/group to previous value - restore_settings_ownership ${site} ${previous_owner_group} + restore_settings_ownership "${site}" "${previous_owner_group}" } # Enable module and apply configuration. function configure_jwt_module { - local site="${1}" - local site_url=$(drupal_site_env "${site}" "SITE_URL") + local site site_url + site="${1}" + site_url=$(drupal_site_env "${site}" "SITE_URL") drush -l "${site_url}" -y pm:enable jwt drush -l "${site_url}" -y config:import --partial --source=/etc/islandora/configs/jwt } # Install and configure the islandora module. function configure_islandora_module { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local broker_host=$(drupal_site_env "${site}" "BROKER_HOST") - local broker_port=$(drupal_site_env "${site}" "BROKER_PORT") - local broker_url="tcp://${broker_host}:${broker_port}" - - drush -l "${site_url}" -y pm:enable islandora_core_feature + local site site_url broker_host broker_port broker_url + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + broker_host=$(drupal_site_env "${site}" "BROKER_HOST") + broker_port=$(drupal_site_env "${site}" "BROKER_PORT") + broker_url="tcp://${broker_host}:${broker_port}" + + drush -l "${site_url}" -y pm:enable islandora_core_feature drush -l "${site_url}" -y config:set --input-format=yaml jsonld.settings remove_jsonld_format true drush -l "${site_url}" -y config:set --input-format=yaml islandora.settings broker_url "${broker_url}" @@ -429,14 +480,16 @@ function configure_islandora_module { # Configure Solr port and host. function configure_islandora_default_module { + local site site_url host port if ! drush pm-list --pipe --type=module --status=enabled --no-core | grep -q search_api; then echo "Search API is not installed. Skipping configuration" return 0 fi - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local host=$(drupal_site_env "${site}" "SOLR_HOST") - local port=$(drupal_site_env "${site}" "SOLR_PORT") + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + host=$(drupal_site_env "${site}" "SOLR_HOST") + port=$(drupal_site_env "${site}" "SOLR_PORT") drush -l "${site_url}" -y config:set search_api.server.default_solr_server backend_config.connector_config.host "${host}" drush -l "${site_url}" -y config:set search_api.server.default_solr_server backend_config.connector_config.port "${port}" @@ -444,9 +497,11 @@ function configure_islandora_default_module { # Install search_api_solr and configure. Also uninstall the default search module. function configure_search_api_solr_module { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local driver=$(drupal_site_env "${site}" "DB_DRIVER") + local site site_url driver + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + driver=$(drupal_site_env "${site}" "DB_DRIVER") drush -l "${site_url}" -y pm:enable search_api_solr @@ -458,13 +513,15 @@ function configure_search_api_solr_module { # Enables and sets carapace as the default theme. function set_carapace_default_theme { + local site site_url if ! drush pm-list --pipe --type=theme --status=enabled --no-core | grep -q carapace; then echo "carapace is not available. Skipping configuration." return 0 fi - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") drush -l "${site_url}" -y config:set system.theme default carapace } @@ -473,10 +530,12 @@ function set_carapace_default_theme { # Assumes the search_api_solr module has already been installed. # Assumes that the destination will be a shared volume. function generate_solr_config { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local core=$(drupal_site_env "${site}" "SOLR_CORE") - local dest="${1-/opt/solr/server/solr/${core}}"; + local site site_url core dest + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + core=$(drupal_site_env "${site}" "SOLR_CORE") + dest="${1-/opt/solr/server/solr/${core}}" mkdir -p "/tmp/${core}" || true chmod a+rwx "/tmp/${core}" @@ -494,41 +553,48 @@ function generate_solr_config { # Creates a SOLR core for the site using the Solr REST API. function create_solr_core { - local site="${1}"; shift - local core=$(drupal_site_env "${site}" "SOLR_CORE") - local host=$(drupal_site_env "${site}" "SOLR_HOST") - local port=$(drupal_site_env "${site}" "SOLR_PORT") + local site core host port + site="${1}" + shift + core=$(drupal_site_env "${site}" "SOLR_CORE") + host=$(drupal_site_env "${site}" "SOLR_HOST") + port=$(drupal_site_env "${site}" "SOLR_PORT") # Require a running Solr to create a core. wait_for_service "${site}" "SOLR" - curl -s "http://${host}:${port}/solr/admin/cores?action=CREATE&name=${core}&instanceDir=${core}&config=solrconfig.xml&dataDir=data" &> /dev/null + curl -s "http://${host}:${port}/solr/admin/cores?action=CREATE&name=${core}&instanceDir=${core}&config=solrconfig.xml&dataDir=data" &>/dev/null } # Generate solr config and create a core for it. function create_solr_core_with_default_config { + local site if ! drush pm-list --pipe --type=module --status=enabled --no-core | grep -q search_api_solr; then echo "search_api_solr is not installed. Skipping core setup." return 0 fi - local site="${1}"; shift + site="${1}" + shift generate_solr_config "${site}" || return 1 create_solr_core "${site}" } # Install matomo and configure. function configure_matomo_module { + local site site_url site_id matomo_url matomo_http_url + if ! drush pm-list --pipe --type=module --status=enabled --no-core | grep -q matomo; then echo "matomo is not installed. Skipping configuration" return 0 fi - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local site_id=$(($(site_index "${site}")+1)) - local matomo_url=$(drupal_site_env "${site}" "MATOMO_URL") - local matomo_http_url="http${matomo_url#https}" + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + site_id=$(($(site_index "${site}") + 1)) + matomo_url=$(drupal_site_env "${site}" "MATOMO_URL") + matomo_http_url="http${matomo_url#https}" drush -l "${site_url}" -y config-set matomo.settings site_id "${site_id}" drush -l "${site_url}" -y config-set matomo.settings url_http "${matomo_http_url}" @@ -536,15 +602,18 @@ function configure_matomo_module { } # Configure Openseadragon to point use cantaloupe. -function configure_openseadragon { +function configure_openseadragon { + local site site_url cantaloupe_url + if ! drush pm-list --pipe --type=module --status=enabled --no-core | grep -q openseadragon; then echo "openseadragon is not installed. Skipping configuration" return 0 fi - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local cantaloupe_url=$(drupal_site_env "${site}" "CANTALOUPE_URL") + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + cantaloupe_url=$(drupal_site_env "${site}" "CANTALOUPE_URL") drush -l "${site_url}" -y config-set --input-format=yaml media.settings standalone_url true drush -l "${site_url}" -y config-set --input-format=yaml openseadragon.settings iiif_server "${cantaloupe_url}" @@ -554,78 +623,95 @@ function configure_openseadragon { # Imports any migrations in the 'islandora' group. function import_islandora_migrations { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") + local site site_url + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") drush -l "${site_url}" -y --userid=1 migrate:import islandora_defaults_tags,islandora_tags } # Enable module and apply configuration. function enable_modules { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - drush -l "${site_url}" -y pm:enable ${@} + local site site_url + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + drush -l "${site_url}" -y pm:enable "${@}" } # Enable module and apply configuration. function import_features { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local features=$(join_by , ${@}); shift + local site site_url features + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + features=$(join_by , "${@}") + shift drush -l "${site_url}" fim --no-interaction --yes "${features}" } # Rebuild the cache for the given site. function cache_rebuild { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") + local site site_url + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") drush -l "${site_url}" -y cache:rebuild } # Changes the site ID to match the configuration folder to allow it to be imported. function set_site_uuid { - local site="${1}"; shift - local site_url=$(drupal_site_env "${site}" "SITE_URL") - local drupal_root=$(drush drupal:directory) - local config_dir=$(cd $drupal_root; realpath `drush php:eval "echo \Drupal\Core\Site\Settings::get('config_sync_directory');"`) # Handle the case if config_dir is a relative path. - local uuid=${1-$(cat ${config_dir}/system.site.yml | awk '/uuid/ { print $2 }')} - drush -l ${site_url} -y config:set --input-format=yaml system.site uuid ${uuid} + local site site_url drupal_root config_dir uuid + site="${1}" + shift + site_url=$(drupal_site_env "${site}" "SITE_URL") + drupal_root=$(drush drupal:directory) + # Handle the case if config_dir is a relative path. + config_dir=$(realpath "$(drush --root="${drupal_root}" php:eval "echo \Drupal\Core\Site\Settings::get('config_sync_directory');")") + uuid=$(awk '/uuid/ { print $2 }' "${config_dir:?}/system.site.yml") + drush -l "${site_url}" -y config:set --input-format=yaml system.site uuid "${uuid}" } # Replace references to standard profile in the config files with minimal. -# -# Often we build sites with the standard profile but it is not possible to install +# +# Often we build sites with the standard profile but it is not possible to install # from a configuration that was generated on a standard profile site. # # https://www.drupal.org/project/drupal/issues/2982052 function remove_standard_profile_references_from_config { + local config_files # Do not modify configuration in in the core module. - local config_files=$(find /var/www/drupal -name "core.extension.yml" ! -path '*/core/*') + config_files=$(find /var/www/drupal -name "core.extension.yml" ! -path '*/core/*') for config_file in ${config_files}; do # Remove standard profile references, and replace with minimal. - sed -i 's|\( *\)standard:\(.*\)|\1minimal:\2|' ${config_file} - sed -i 's|profile: *standard|profile: minimal|' ${config_file} + sed -i 's|\( *\)standard:\(.*\)|\1minimal:\2|' "${config_file}" + sed -i 's|profile: *standard|profile: minimal|' "${config_file}" done } # Import sites configuration. function import_config { - local site="${1}" - local site_url=$(drupal_site_env "${site}" "SITE_URL") - drush -l ${site_url} -y config:import + local site site_url + site="${1}" + site_url=$(drupal_site_env "${site}" "SITE_URL") + drush -l "${site_url}" -y config:import } # Export sites configuration. function export_config { - local site="${1}" - local site_url=$(drupal_site_env "${site}" "SITE_URL") - drush -l ${site_url} -y config:export + local site site_url + site="${1}" + site_url=$(drupal_site_env "${site}" "SITE_URL") + drush -l "${site_url}" -y config:export } # Generates blazegraph properties for the given site using its namespace. function default_blazegraph_properties { - local site="${1}"; shift - local namespace=$(drupal_site_env "${site}" "TRIPLESTORE_NAMESPACE") - cat <<- EOF + local site namespace + site="${1}" + shift + namespace=$(drupal_site_env "${site}" "TRIPLESTORE_NAMESPACE") + cat <<-EOF com.bigdata.rdf.store.AbstractTripleStore.textIndex=false com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.OwlAxioms com.bigdata.rdf.sail.isolatableIndices=false @@ -643,12 +729,15 @@ EOF # Create a namespace with the given properties file. function create_blazegraph_namespace { - local site="${1}"; shift - local properties_file="${1}"; shift - local host=$(drupal_site_env "${site}" "TRIPLESTORE_HOST") - local port=$(drupal_site_env "${site}" "TRIPLESTORE_PORT") - local namespace=$(drupal_site_env "${site}" "TRIPLESTORE_NAMESPACE") - local triplestore_url="http://${host}:${port}/bigdata" + local site properties_file host port namespace triplestore_url + site="${1}" + shift + properties_file="${1}" + shift + host=$(drupal_site_env "${site}" "TRIPLESTORE_HOST") + port=$(drupal_site_env "${site}" "TRIPLESTORE_PORT") + namespace=$(drupal_site_env "${site}" "TRIPLESTORE_NAMESPACE") + triplestore_url="http://${host}:${port}/bigdata" # Require a running blazegraph to update it. wait_for_service "${site}" "TRIPLESTORE" @@ -660,6 +749,7 @@ function create_blazegraph_namespace { # Create a namespace with default properties for the given site. function create_blazegraph_namespace_with_default_properties { - local site="${1}"; shift + local site="${1}" + shift create_blazegraph_namespace "${site}" <(default_blazegraph_properties "${site}") } diff --git a/drupal/rootfs/etc/nginx/http.d/default.conf b/drupal/rootfs/etc/nginx/http.d/default.conf index fc37d373..fad70f8e 100644 --- a/drupal/rootfs/etc/nginx/http.d/default.conf +++ b/drupal/rootfs/etc/nginx/http.d/default.conf @@ -4,4 +4,7 @@ server { include /etc/nginx/shared/drupal.defaults.conf; include /etc/nginx/shared/drupal.fpm.conf; + # Required for Nginx service to validate that fpm is working. + # @see nginx/rootfs/etc/s6-overlay/s6-rc.d/nginx/data/check + include /etc/nginx/shared/fpm.conf; } diff --git a/drupal/rootfs/etc/nginx/shared/drupal.defaults.conf b/drupal/rootfs/etc/nginx/shared/drupal.defaults.conf index b13de863..07329aaf 100644 --- a/drupal/rootfs/etc/nginx/shared/drupal.defaults.conf +++ b/drupal/rootfs/etc/nginx/shared/drupal.defaults.conf @@ -96,4 +96,4 @@ location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { # Could be done with 301 for permanent or other redirect codes. if ($request_uri ~* "^(.*/)index\.php(.*)") { return 307 $1$2; -} \ No newline at end of file +} diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/set-reverse-proxy b/drupal/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/set-reverse-proxy new file mode 100644 index 00000000..e69de29b diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/set-subsite-defaults b/drupal/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/set-subsite-defaults new file mode 100644 index 00000000..e69de29b diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/dependencies.d/base b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/dependencies.d/base new file mode 100644 index 00000000..e69de29b diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/type b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/type @@ -0,0 +1 @@ +oneshot diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/up b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/up new file mode 100755 index 00000000..9a225d14 --- /dev/null +++ b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-reverse-proxy/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/set-reverse-proxy.sh diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/dependencies.d/database-defaults b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/dependencies.d/database-defaults new file mode 100644 index 00000000..e69de29b diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/type b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/type @@ -0,0 +1 @@ +oneshot diff --git a/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/up b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/up new file mode 100755 index 00000000..868efc4c --- /dev/null +++ b/drupal/rootfs/etc/s6-overlay/s6-rc.d/set-subsite-defaults/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/set-subsite-defaults.sh diff --git a/drupal/rootfs/etc/cont-init.d/00-container-environment-04-set-revese-proxy.sh b/drupal/rootfs/etc/s6-overlay/scripts/set-reverse-proxy.sh similarity index 88% rename from drupal/rootfs/etc/cont-init.d/00-container-environment-04-set-revese-proxy.sh rename to drupal/rootfs/etc/s6-overlay/scripts/set-reverse-proxy.sh index b572a644..54ae0972 100755 --- a/drupal/rootfs/etc/cont-init.d/00-container-environment-04-set-revese-proxy.sh +++ b/drupal/rootfs/etc/s6-overlay/scripts/set-reverse-proxy.sh @@ -1,4 +1,5 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e # If not explicitly set by confd backend already attempt to set it from querying @@ -8,4 +9,4 @@ if [[ -z "${DRUPAL_REVERSE_PROXY_IPS}" ]]; then # Use the IP address for the host 'traefik' if found otherwise default to # '0.0.0.0'. s6-env -i DRUPAL_REVERSE_PROXY_IPS="${IPS:-0.0.0.0}" s6-dumpenv -- /var/run/s6/container_environment -fi \ No newline at end of file +fi diff --git a/drupal/rootfs/etc/cont-init.d/00-container-environment-03-set-subsite-defaults.sh b/drupal/rootfs/etc/s6-overlay/scripts/set-subsite-defaults.sh similarity index 75% rename from drupal/rootfs/etc/cont-init.d/00-container-environment-03-set-subsite-defaults.sh rename to drupal/rootfs/etc/s6-overlay/scripts/set-subsite-defaults.sh index 435514ab..3070f13c 100755 --- a/drupal/rootfs/etc/cont-init.d/00-container-environment-03-set-subsite-defaults.sh +++ b/drupal/rootfs/etc/s6-overlay/scripts/set-subsite-defaults.sh @@ -1,4 +1,5 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e # Update container environment with site specific environment @@ -12,13 +13,13 @@ set -e # subsite variable is explicitly overriden. # Import sites/subsites environment var so we can generate defaults for each site. -cat << EOF | /usr/local/bin/confd-import-environment.sh +cat <&2 + usage + exit 1 + ;; esac done @@ -96,8 +101,8 @@ function cmdline { fi # All remaning parameters are passed to 'drush site-install'. - shift $((OPTIND-1)) - readonly DRUSH_ARGS="$@" + shift $((OPTIND - 1)) + readonly DRUSH_ARGS=("$@") return 0 } @@ -113,7 +118,7 @@ function execute_sql_file { } function mysql_count_query { - cat <<- EOF + cat <<-EOF SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '${DB_NAME}'; @@ -125,7 +130,7 @@ function mysql_count { } function postgresql_count_query { - cat <<- EOF + cat <<-EOF SELECT count(*) FROM information_schema.tables WHERE table_schema = 'public'; @@ -133,28 +138,29 @@ EOF } function postgresql_count { - execute_sql_file --database ${DB_NAME} <(postgresql_count_query) -- -t 2>/dev/null + execute_sql_file --database "${DB_NAME}" <(postgresql_count_query) -- -t 2>/dev/null } # Check the number of tables to determine if it has already been installed. function installed { local count= case "${DRIVER}" in - mysql) - count=$(mysql_count) - ;; - postgresql) - count=$(postgresql_count) - ;; - *) - echo "Only MySQL/PostgresSQL databases are supported for now." >&2 - exit 1 + mysql) + count=$(mysql_count) + ;; + postgresql) + count=$(postgresql_count) + ;; + *) + echo "Only MySQL/PostgresSQL databases are supported for now." >&2 + exit 1 + ;; esac [[ $count -ne 0 ]] } function main { - cmdline ${ARGS} + cmdline "${ARGS[@]}" local protocol=mysql if installed; then echo "Site already is installed." @@ -166,7 +172,7 @@ function main { echo "Installing site." drush \ -n \ - si ${DRUSH_ARGS} \ + si "${DRUSH_ARGS[@]}" \ --db-url="${protocol}://${DB_USER}:${DB_PASSWORD}@${HOST}:${PORT}/${DB_NAME}" } main diff --git a/drupal/rootfs/usr/share/drush/Commands/UpdateSettingsCommands.php b/drupal/rootfs/usr/share/drush/Commands/UpdateSettingsCommands.php index 7276dcea..4e14020c 100644 --- a/drupal/rootfs/usr/share/drush/Commands/UpdateSettingsCommands.php +++ b/drupal/rootfs/usr/share/drush/Commands/UpdateSettingsCommands.php @@ -201,7 +201,7 @@ public function setReverseProxySettings($reverse_proxy_ips) { 'required' => TRUE, ]; $settings['settings']['reverse_proxy_trusted_headers'] = (object) [ - 'value' => \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED, + 'value' => \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL | \Symfony\Component\HttpFoundation\Request::HEADER_FORWARDED, 'required' => TRUE, ]; $this->writeSettings($settings); diff --git a/drupal/tests/ServiceStartsWithBackendMySQL/build.gradle.kts b/drupal/tests/ServiceStartsWithBackendMySQL/build.gradle.kts index be9d4595..f63a81cd 100644 --- a/drupal/tests/ServiceStartsWithBackendMySQL/build.gradle.kts +++ b/drupal/tests/ServiceStartsWithBackendMySQL/build.gradle.kts @@ -3,4 +3,4 @@ import tasks.tests.DockerComposeTest tasks.register("test") { timeout.convention(ofMinutes(10)) -} \ No newline at end of file +} diff --git a/drupal/tests/ServiceStartsWithBackendMySQL/docker-compose.yml b/drupal/tests/ServiceStartsWithBackendMySQL/docker-compose.yml index 0cae8752..630e7d50 100644 --- a/drupal/tests/ServiceStartsWithBackendMySQL/docker-compose.yml +++ b/drupal/tests/ServiceStartsWithBackendMySQL/docker-compose.yml @@ -12,4 +12,4 @@ services: command: - /test.sh # Run test and exit. mariadb: - image: ${DATABASE_IMAGE:-local/mariadb:latest} \ No newline at end of file + image: ${DATABASE_IMAGE:-local/mariadb:latest} diff --git a/drupal/tests/ServiceStartsWithBackendMySQL/test.sh b/drupal/tests/ServiceStartsWithBackendMySQL/test.sh index d50ae171..79bc4b5a 100755 --- a/drupal/tests/ServiceStartsWithBackendMySQL/test.sh +++ b/drupal/tests/ServiceStartsWithBackendMySQL/test.sh @@ -1,20 +1,24 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash +# shellcheck disable=SC1091 source /usr/local/share/isle/utilities.sh # Install basic Drupal +cd /var/www/drupal || exit 1 rm -fr /var/www/drupal/* composer create-project drupal/recommended-project:^9.4 \ - --prefer-dist \ - --no-interaction \ - --stability stable \ - --no-dev \ - -- /var/www/drupal + --prefer-dist \ + --no-interaction \ + --stability stable \ + --no-dev \ + -- /var/www/drupal # Install Drush. -(cd /var/www/drupal && composer require drush/drush:^11.0) +composer require drush/drush:^11.0 # Install actual site. +# shellcheck disable=SC1091 source /etc/islandora/utilities.sh mkdir -p /var/www/drupal/web/sites/default/files chown -R nginx:nginx /var/www/drupal @@ -22,12 +26,12 @@ create_database "DEFAULT" install_site "DEFAULT" # Exit non-zero if database does not exist. -cat <<- EOF | execute-sql-file.sh -use ${DB_NAME} +cat <<-EOF | execute-sql-file.sh + use ${DB_NAME} EOF # Wait for Drupal to start. wait_20x http://localhost:80/user # All tests were successful -exit 0 \ No newline at end of file +exit 0 diff --git a/drupal/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts b/drupal/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts index be9d4595..f63a81cd 100644 --- a/drupal/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts +++ b/drupal/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts @@ -3,4 +3,4 @@ import tasks.tests.DockerComposeTest tasks.register("test") { timeout.convention(ofMinutes(10)) -} \ No newline at end of file +} diff --git a/drupal/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml b/drupal/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml index 59e3d4f5..d7ac44cb 100644 --- a/drupal/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml +++ b/drupal/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml @@ -14,4 +14,4 @@ services: command: - bash # /test.sh # Run test and exit. postgresql: - image: ${MYSQL_IMAGE:-local/postgresql:latest} \ No newline at end of file + image: ${MYSQL_IMAGE:-local/postgresql:latest} diff --git a/drupal/tests/ServiceStartsWithBackendPostgreSQL/test.sh b/drupal/tests/ServiceStartsWithBackendPostgreSQL/test.sh index 150c6569..c52e770b 100755 --- a/drupal/tests/ServiceStartsWithBackendPostgreSQL/test.sh +++ b/drupal/tests/ServiceStartsWithBackendPostgreSQL/test.sh @@ -1,20 +1,24 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash +# shellcheck disable=SC1091 source /usr/local/share/isle/utilities.sh # Install basic Drupal +cd /var/www/drupal || exit 1 rm -fr /var/www/drupal/* -composer create-project drupal/recommended-project:^9.1 \ - --prefer-dist \ - --no-interaction \ - --stability stable \ - --no-dev \ - -- /var/www/drupal +composer create-project drupal/recommended-project:^9.4 \ + --prefer-dist \ + --no-interaction \ + --stability stable \ + --no-dev \ + -- /var/www/drupal # Install Drush. -(cd /var/www/drupal && composer require drush/drush:^10.0) +composer require drush/drush:^11.0 # Install actual site. +# shellcheck disable=SC1091 source /etc/islandora/utilities.sh mkdir -p /var/www/drupal/web/sites/default/files chown -R nginx:nginx /var/www/drupal @@ -23,14 +27,14 @@ install_site "DEFAULT" # Exit non-zero if database does not exist. PGPASSWORD="${DB_ROOT_PASSWORD}" psql \ - --host="${DB_HOST}" \ - --port="${DB_PORT}" \ - --username="${DB_ROOT_USER}" \ - --dbname="drupal_default" \ - -c "\q" + --host="${DB_HOST}" \ + --port="${DB_PORT}" \ + --username="${DB_ROOT_USER}" \ + --dbname="drupal_default" \ + -c "\q" # Wait for Drupal to start. wait_20x http://localhost:80/user # All tests were successful -exit 0 \ No newline at end of file +exit 0 diff --git a/drupal/tests/ServiceStartsWithDefaults/build.gradle.kts b/drupal/tests/ServiceStartsWithDefaults/build.gradle.kts index 646c3ddd..6a9fc027 100644 --- a/drupal/tests/ServiceStartsWithDefaults/build.gradle.kts +++ b/drupal/tests/ServiceStartsWithDefaults/build.gradle.kts @@ -1,2 +1,4 @@ import tasks.tests.ServiceStartsWithDefaultsTest -tasks.register("test") +tasks.register("test") { + waitForMessage.set("s6-rc: info: service legacy-services successfully started") +} diff --git a/fcrepo/.dockerignore b/fcrepo/.dockerignore index badf6cb7..94334b24 100644 --- a/fcrepo/.dockerignore +++ b/fcrepo/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/fcrepo/Dockerfile b/fcrepo/Dockerfile index f6638e28..c0334f86 100644 --- a/fcrepo/Dockerfile +++ b/fcrepo/Dockerfile @@ -1,4 +1,4 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download @@ -50,7 +50,8 @@ ENV \ FCREPO_S3_USER= \ FCREPO_TOMCAT_ADMIN_ROLES=manager-gui,fedoraAdmin -COPY --from=download --chown=tomcat:tomcat /opt/tomcat /opt/tomcat +COPY --link --from=download /opt/tomcat /opt/tomcat -COPY rootfs / -COPY --chown=tomcat:tomcat rootfs/opt/tomcat /opt/tomcat \ No newline at end of file +COPY --link rootfs / + +RUN chown -R tomcat:tomcat /opt/tomcat diff --git a/fcrepo/rootfs/etc/confd/templates/fcrepo-config.xml.tmpl b/fcrepo/rootfs/etc/confd/templates/fcrepo-config.xml.tmpl index f96e6449..e0b093ef 100644 --- a/fcrepo/rootfs/etc/confd/templates/fcrepo-config.xml.tmpl +++ b/fcrepo/rootfs/etc/confd/templates/fcrepo-config.xml.tmpl @@ -22,7 +22,7 @@ - + - + - + - {{ if eq (getenv "FCREPO_ACTIVEMQ_TOPIC_ENABLE") "true" }} + {{ if eq (getenv "FCREPO_ACTIVEMQ_TOPIC_ENABLE") "true" }} + + @@ -236,7 +236,7 @@ - + @@ -256,5 +256,5 @@ - + diff --git a/fcrepo/rootfs/etc/cont-init.d/00-container-environment-01-set-db-driver.sh b/fcrepo/rootfs/etc/cont-init.d/00-container-environment-01-set-db-driver.sh deleted file mode 100755 index 165638a4..00000000 --- a/fcrepo/rootfs/etc/cont-init.d/00-container-environment-01-set-db-driver.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/with-contenv bash -set -e - -# FCREPO_PERSISTENCE_TYPE dictates which DB_DRIVER should be used. -case "${FCREPO_PERSISTENCE_TYPE}" in - file) - DB_DRIVER=none - ;; - mysql) - DB_DRIVER=mysql - ;; - postgresql) - DB_DRIVER=postgresql - ;; - *) - echo "Only file/mysql/postgresql are supported values for FCREPO_PERSISTENCE_TYPE." >&2 - exit 1 -esac - -# Import derived value for DB_DRIVER into the container environment. -echo "DB_DRIVER=${DB_DRIVER}" | /usr/local/bin/confd-import-environment.sh diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/dependencies.d/set-db-driver b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/dependencies.d/set-db-driver new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/dependencies.d/ready b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/type b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/type @@ -0,0 +1 @@ +oneshot diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/up b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/up new file mode 100755 index 00000000..b4bef441 --- /dev/null +++ b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/fcrepo-setup.sh diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/dependencies.d/container-environment b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/dependencies.d/container-environment new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/type b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/type @@ -0,0 +1 @@ +oneshot diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/up b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/up new file mode 100755 index 00000000..68952fda --- /dev/null +++ b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/set-db-driver.sh diff --git a/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/tomcat/dependencies.d/fcrepo-setup b/fcrepo/rootfs/etc/s6-overlay/s6-rc.d/tomcat/dependencies.d/fcrepo-setup new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo/rootfs/etc/cont-init.d/03-fcrepo-setup.sh b/fcrepo/rootfs/etc/s6-overlay/scripts/fcrepo-setup.sh similarity index 75% rename from fcrepo/rootfs/etc/cont-init.d/03-fcrepo-setup.sh rename to fcrepo/rootfs/etc/s6-overlay/scripts/fcrepo-setup.sh index d68e21c2..5aeb960c 100755 --- a/fcrepo/rootfs/etc/cont-init.d/03-fcrepo-setup.sh +++ b/fcrepo/rootfs/etc/s6-overlay/scripts/fcrepo-setup.sh @@ -1,8 +1,9 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e function mysql_create_database { - cat <<- EOF | create-database.sh + cat <<-EOF | create-database.sh -- Create fcrepo database in mariadb or mysql. CREATE DATABASE IF NOT EXISTS ${FCREPO_DB_NAME} CHARACTER SET utf8 COLLATE utf8_general_ci; @@ -17,7 +18,7 @@ EOF } function postgresql_create_database { - cat <<- EOF | create-database.sh + cat <<-EOF | create-database.sh BEGIN; DO \$\$ @@ -41,18 +42,19 @@ EOF # Some persistence backends require setup. function setup_persistence_backend { case "${DB_DRIVER}" in - none) - # No action required. - ;; - mysql) - mysql_create_database - ;; - postgresql) - postgresql_create_database - ;; - *) - echo "Only mysql/postgresql are supported values for DB_DRIVER." >&2 - exit 1 + none) + # No action required. + ;; + mysql) + mysql_create_database + ;; + postgresql) + postgresql_create_database + ;; + *) + echo "Only mysql/postgresql are supported values for DB_DRIVER." >&2 + exit 1 + ;; esac } diff --git a/fcrepo/rootfs/etc/s6-overlay/scripts/set-db-driver.sh b/fcrepo/rootfs/etc/s6-overlay/scripts/set-db-driver.sh new file mode 100755 index 00000000..b1722335 --- /dev/null +++ b/fcrepo/rootfs/etc/s6-overlay/scripts/set-db-driver.sh @@ -0,0 +1,23 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# FCREPO_PERSISTENCE_TYPE dictates which DB_DRIVER should be used. +case "${FCREPO_PERSISTENCE_TYPE}" in +file) + DB_DRIVER=none + ;; +mysql) + DB_DRIVER=mysql + ;; +postgresql) + DB_DRIVER=postgresql + ;; +*) + echo "Only file/mysql/postgresql are supported values for FCREPO_PERSISTENCE_TYPE." >&2 + exit 1 + ;; +esac + +# Import derived value for DB_DRIVER into the container environment. +echo "DB_DRIVER=${DB_DRIVER}" | /usr/local/bin/confd-import-environment.sh diff --git a/fcrepo/rootfs/opt/tomcat/bin/setenv.sh b/fcrepo/rootfs/opt/tomcat/bin/setenv.sh index b2113108..e825e87a 100755 --- a/fcrepo/rootfs/opt/tomcat/bin/setenv.sh +++ b/fcrepo/rootfs/opt/tomcat/bin/setenv.sh @@ -1,9 +1,10 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash export JAVA_OPTS="${TOMCAT_JAVA_OPTS}" export CATALINA_OPTS="${TOMCAT_CATALINA_OPTS}" export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.home=/data/home" export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.velocity.runtime.log=/dev/stdout" export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.modeshape.configuration=${FCREPO_MODESHAPE_CONFIGURATION} -Dfcrepo.jms.baseUrl=http://${HOSTNAME}/fcrepo/rest" if [[ "${FCREPO_DISABLE_SYN}" == "true" ]]; then - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.properties.management=relaxed" + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.properties.management=relaxed" fi diff --git a/fcrepo/tests/ServiceStartsWithBackendMySQL/build.gradle.kts b/fcrepo/tests/ServiceStartsWithBackendMySQL/build.gradle.kts index 975756eb..1ddb795e 100644 --- a/fcrepo/tests/ServiceStartsWithBackendMySQL/build.gradle.kts +++ b/fcrepo/tests/ServiceStartsWithBackendMySQL/build.gradle.kts @@ -1,2 +1,2 @@ import tasks.tests.DockerComposeTest -tasks.register("test") \ No newline at end of file +tasks.register("test") diff --git a/fcrepo/tests/ServiceStartsWithBackendMySQL/docker-compose.yml b/fcrepo/tests/ServiceStartsWithBackendMySQL/docker-compose.yml index 99add84a..c37231ab 100644 --- a/fcrepo/tests/ServiceStartsWithBackendMySQL/docker-compose.yml +++ b/fcrepo/tests/ServiceStartsWithBackendMySQL/docker-compose.yml @@ -2,7 +2,7 @@ # # Tests that the base values for database environment variables can be # overridden by prefixing them. -# +# # `base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh` version: "3.8" services: @@ -15,4 +15,4 @@ services: - ./test.sh:/test.sh # Test to run. command: - /test.sh # Run test and exit. - image: ${BASE_IMAGE:-local/fcrepo:latest} \ No newline at end of file + image: ${BASE_IMAGE:-local/fcrepo:latest} diff --git a/fcrepo/tests/ServiceStartsWithBackendMySQL/test.sh b/fcrepo/tests/ServiceStartsWithBackendMySQL/test.sh index fcc5c74d..46b0b5e2 100755 --- a/fcrepo/tests/ServiceStartsWithBackendMySQL/test.sh +++ b/fcrepo/tests/ServiceStartsWithBackendMySQL/test.sh @@ -1,9 +1,11 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash +# shellcheck disable=SC1091 source /usr/local/share/isle/utilities.sh function count { - cat <<- EOF | execute-sql-file.sh --database "fcrepo" - -- -N 2>/dev/null + cat <<-EOF | execute-sql-file.sh --database "fcrepo" - -- -N 2>/dev/null SELECT COUNT(ID) as count FROM MODESHAPE_REPOSITORY; EOF } @@ -30,4 +32,4 @@ else fi # All tests were successful -exit 0 \ No newline at end of file +exit 0 diff --git a/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts b/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts index 975756eb..1ddb795e 100644 --- a/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts +++ b/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/build.gradle.kts @@ -1,2 +1,2 @@ import tasks.tests.DockerComposeTest -tasks.register("test") \ No newline at end of file +tasks.register("test") diff --git a/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml b/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml index 9658653c..f543dd10 100644 --- a/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml +++ b/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/docker-compose.yml @@ -2,7 +2,7 @@ # # Tests that the base values for database environment variables can be # overridden by prefixing them. -# +# # `base/rootfs/etc/cont-init.d/00-container-environment-00-init.sh` version: "3.8" services: @@ -16,4 +16,4 @@ services: - ./test.sh:/test.sh # Test to run. command: - /test.sh # Run test and exit. - image: ${BASE_IMAGE:-local/fcrepo:latest} \ No newline at end of file + image: ${BASE_IMAGE:-local/fcrepo:latest} diff --git a/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/test.sh b/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/test.sh index 79678d7f..409417c8 100755 --- a/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/test.sh +++ b/fcrepo/tests/ServiceStartsWithBackendPostgreSQL/test.sh @@ -1,5 +1,7 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash +# shellcheck disable=SC1091 source /usr/local/share/isle/utilities.sh function count { @@ -30,4 +32,4 @@ else fi # All tests were successful -exit 0 \ No newline at end of file +exit 0 diff --git a/fcrepo6/.dockerignore b/fcrepo6/.dockerignore index badf6cb7..94334b24 100644 --- a/fcrepo6/.dockerignore +++ b/fcrepo6/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/fcrepo6/Dockerfile b/fcrepo6/Dockerfile index 6e094fca..3b9c4e47 100644 --- a/fcrepo6/Dockerfile +++ b/fcrepo6/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:experimental +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download ARG FCREPO_VERSION="6.2.0" @@ -43,6 +43,11 @@ RUN --mount=type=cache,id=fcrepo6-apk,sharing=locked,from=cache,target=/var/cach addgroup tomcat jwt && \ cleanup.sh +# Fcrepo does not properly handle SIGTERM signals and can often hang. +ENV \ + S6_SERVICES_GRACETIME=3000 \ + S6_KILL_GRACETIME=3000 + ENV \ FCREPO_ACTIVEMQ_BROKER=tcp://activemq:61616 \ FCREPO_ACTIVEMQ_QUEUE=fedora \ @@ -57,8 +62,10 @@ ENV \ FCREPO_S3_PASSWORD= \ FCREPO_S3_USER= \ FCREPO_AWS_REGION=us-east-1 \ - FCREPO_S3_PREFIX= + FCREPO_S3_PREFIX= + +COPY --link --from=download /opt/tomcat /opt/tomcat + +COPY --link rootfs / -COPY --from=download --chown=tomcat:tomcat /opt/tomcat /opt/tomcat -COPY rootfs / -COPY --chown=tomcat:tomcat rootfs/opt/tomcat /opt/tomcat +RUN chown -R tomcat:tomcat /opt/tomcat diff --git a/fcrepo6/rootfs/etc/cont-init.d/00-container-environment-01-set-db-driver.sh b/fcrepo6/rootfs/etc/cont-init.d/00-container-environment-01-set-db-driver.sh deleted file mode 100755 index 165638a4..00000000 --- a/fcrepo6/rootfs/etc/cont-init.d/00-container-environment-01-set-db-driver.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/with-contenv bash -set -e - -# FCREPO_PERSISTENCE_TYPE dictates which DB_DRIVER should be used. -case "${FCREPO_PERSISTENCE_TYPE}" in - file) - DB_DRIVER=none - ;; - mysql) - DB_DRIVER=mysql - ;; - postgresql) - DB_DRIVER=postgresql - ;; - *) - echo "Only file/mysql/postgresql are supported values for FCREPO_PERSISTENCE_TYPE." >&2 - exit 1 -esac - -# Import derived value for DB_DRIVER into the container environment. -echo "DB_DRIVER=${DB_DRIVER}" | /usr/local/bin/confd-import-environment.sh diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/dependencies.d/set-db-driver b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/database-defaults/dependencies.d/set-db-driver new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/dependencies.d/ready b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/type b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/type @@ -0,0 +1 @@ +oneshot diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/up b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/up new file mode 100755 index 00000000..b4bef441 --- /dev/null +++ b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/fcrepo-setup/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/fcrepo-setup.sh diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/dependencies.d/container-environment b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/dependencies.d/container-environment new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/type b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/type @@ -0,0 +1 @@ +oneshot diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/up b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/up new file mode 100755 index 00000000..68952fda --- /dev/null +++ b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/set-db-driver/up @@ -0,0 +1,2 @@ +# Some directories must exist prior to rendering templates. +/etc/s6-overlay/scripts/set-db-driver.sh diff --git a/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/tomcat/dependencies.d/fcrepo-setup b/fcrepo6/rootfs/etc/s6-overlay/s6-rc.d/tomcat/dependencies.d/fcrepo-setup new file mode 100644 index 00000000..e69de29b diff --git a/fcrepo6/rootfs/etc/cont-init.d/03-fcrepo-setup.sh b/fcrepo6/rootfs/etc/s6-overlay/scripts/fcrepo-setup.sh similarity index 75% rename from fcrepo6/rootfs/etc/cont-init.d/03-fcrepo-setup.sh rename to fcrepo6/rootfs/etc/s6-overlay/scripts/fcrepo-setup.sh index d68e21c2..5aeb960c 100755 --- a/fcrepo6/rootfs/etc/cont-init.d/03-fcrepo-setup.sh +++ b/fcrepo6/rootfs/etc/s6-overlay/scripts/fcrepo-setup.sh @@ -1,8 +1,9 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash set -e function mysql_create_database { - cat <<- EOF | create-database.sh + cat <<-EOF | create-database.sh -- Create fcrepo database in mariadb or mysql. CREATE DATABASE IF NOT EXISTS ${FCREPO_DB_NAME} CHARACTER SET utf8 COLLATE utf8_general_ci; @@ -17,7 +18,7 @@ EOF } function postgresql_create_database { - cat <<- EOF | create-database.sh + cat <<-EOF | create-database.sh BEGIN; DO \$\$ @@ -41,18 +42,19 @@ EOF # Some persistence backends require setup. function setup_persistence_backend { case "${DB_DRIVER}" in - none) - # No action required. - ;; - mysql) - mysql_create_database - ;; - postgresql) - postgresql_create_database - ;; - *) - echo "Only mysql/postgresql are supported values for DB_DRIVER." >&2 - exit 1 + none) + # No action required. + ;; + mysql) + mysql_create_database + ;; + postgresql) + postgresql_create_database + ;; + *) + echo "Only mysql/postgresql are supported values for DB_DRIVER." >&2 + exit 1 + ;; esac } diff --git a/fcrepo6/rootfs/etc/s6-overlay/scripts/set-db-driver.sh b/fcrepo6/rootfs/etc/s6-overlay/scripts/set-db-driver.sh new file mode 100755 index 00000000..b1722335 --- /dev/null +++ b/fcrepo6/rootfs/etc/s6-overlay/scripts/set-db-driver.sh @@ -0,0 +1,23 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# FCREPO_PERSISTENCE_TYPE dictates which DB_DRIVER should be used. +case "${FCREPO_PERSISTENCE_TYPE}" in +file) + DB_DRIVER=none + ;; +mysql) + DB_DRIVER=mysql + ;; +postgresql) + DB_DRIVER=postgresql + ;; +*) + echo "Only file/mysql/postgresql are supported values for FCREPO_PERSISTENCE_TYPE." >&2 + exit 1 + ;; +esac + +# Import derived value for DB_DRIVER into the container environment. +echo "DB_DRIVER=${DB_DRIVER}" | /usr/local/bin/confd-import-environment.sh diff --git a/fcrepo6/rootfs/opt/tomcat/bin/setenv.sh b/fcrepo6/rootfs/opt/tomcat/bin/setenv.sh old mode 100644 new mode 100755 index 01b958d5..44116653 --- a/fcrepo6/rootfs/opt/tomcat/bin/setenv.sh +++ b/fcrepo6/rootfs/opt/tomcat/bin/setenv.sh @@ -1,4 +1,5 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash export JAVA_OPTS="${TOMCAT_JAVA_OPTS}" export CATALINA_OPTS="${TOMCAT_CATALINA_OPTS}" export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.home=/data/home" @@ -8,37 +9,38 @@ export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.external.content.allowed=/opt/to export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.autoversioning.enabled=false" export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.activemq.directory=file:///data/home/data/Activemq" export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.activemq.configuration=file:///opt/tomcat/conf/activemq.xml" -# Set timeout +# Set timeout export CATALINA_OPTS="${CATALINA_OPTS} -DconnectionTimeout=${FCREPO_CATALINA_TIMEOUT:=-1}" case "${DB_DRIVER}" in - none) - # No action required. - ;; - mysql) - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.url=jdbc:mysql://${DB_MYSQL_HOST}:${DB_MYSQL_PORT}/${FCREPO_DB_NAME}" - ;; - postgresql) - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.url=jdbc:postgresql://${DB_POSTGRESQL_HOST}:${DB_POSTGRESQL_PORT}/${FCREPO_DB_NAME}" - ;; - *) - echo "Only mysql/postgresql are supported values for DB_DRIVER." >&2 - exit 1 +none) + # No action required. + ;; +mysql) + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.url=jdbc:mysql://${DB_MYSQL_HOST}:${DB_MYSQL_PORT}/${FCREPO_DB_NAME}" + ;; +postgresql) + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.url=jdbc:postgresql://${DB_POSTGRESQL_HOST}:${DB_POSTGRESQL_PORT}/${FCREPO_DB_NAME}" + ;; +*) + echo "Only mysql/postgresql are supported values for DB_DRIVER." >&2 + exit 1 + ;; esac if [[ "${DB_DRIVER}" != "none" ]]; then - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.user=${FCREPO_DB_USER}" - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.password=${FCREPO_DB_PASSWORD}" + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.user=${FCREPO_DB_USER}" + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.db.password=${FCREPO_DB_PASSWORD}" fi if [[ "${FCREPO_DISABLE_SYN}" == "true" ]]; then - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.properties.management=relaxed" + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.properties.management=relaxed" fi if [[ "${FCREPO_BINARYSTORAGE_TYPE}" == "file" ]]; then - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.storage=ocfl-fs" + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.storage=ocfl-fs" fi if [[ "${FCREPO_BINARYSTORAGE_TYPE}" == "s3" ]]; then - # Enable S3 mode and set default options - export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.storage=ocfl-s3 -Dfcrepo.aws.region=${FCREPO_AWS_REGION} -Dfcrepo.ocfl.s3.bucket=${FCREPO_S3_BUCKET} -Dfcrepo.ocfl.s3.prefix=${FCREPO_S3_PREFIX}" + # Enable S3 mode and set default options + export CATALINA_OPTS="${CATALINA_OPTS} -Dfcrepo.storage=ocfl-s3 -Dfcrepo.aws.region=${FCREPO_AWS_REGION} -Dfcrepo.ocfl.s3.bucket=${FCREPO_S3_BUCKET} -Dfcrepo.ocfl.s3.prefix=${FCREPO_S3_PREFIX}" fi diff --git a/fits/.dockerignore b/fits/.dockerignore index badf6cb7..94334b24 100644 --- a/fits/.dockerignore +++ b/fits/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/fits/Dockerfile b/fits/Dockerfile index f01e2909..802b6b6f 100644 --- a/fits/Dockerfile +++ b/fits/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM --platform=$BUILDPLATFORM ${repository}/download:${tag} AS download ARG FITSSERVLET_VERSION="1.2.3" @@ -38,7 +38,7 @@ RUN --mount=type=cache,id=imagemagick-apk,sharing=locked,from=cache,target=/var/ libtool \ openjdk8 -COPY /build /build +COPY --link /build /build WORKDIR /build @@ -63,8 +63,8 @@ RUN --mount=type=bind,from=build,source=/packages,target=/packages \ apk add /packages/java-jna-*.apk && \ cleanup.sh -COPY --from=download --chown=tomcat:tomcat /opt/tomcat /opt/tomcat -COPY --from=download --chown=tomcat:tomcat /opt/fits /opt/fits +COPY --link --from=download /opt/tomcat /opt/tomcat +COPY --link --from=download /opt/fits /opt/fits # Replace linux shared libraries with ones that target muslibc and are platform specific. # Also add perl for exiftool, and platform specific jna so native libs can be loaded. @@ -85,6 +85,6 @@ ENV \ FITS_MAX_UPLOAD_FILE_SIZE=2000 \ FITS_SERVICE_LOG_LEVEL=INFO -COPY rootfs / -COPY --chown=tomcat:tomcat rootfs/opt/tomcat /opt/tomcat -COPY --chown=tomcat:tomcat rootfs/opt/fits /opt/fits \ No newline at end of file +COPY --link rootfs / + +RUN chown -R tomcat:tomcat /opt/tomcat /opt/fits diff --git a/fits/rootfs/etc/confd/templates/log4j2.xml.tmpl b/fits/rootfs/etc/confd/templates/log4j2.xml.tmpl index 5562ca09..8addbca1 100644 --- a/fits/rootfs/etc/confd/templates/log4j2.xml.tmpl +++ b/fits/rootfs/etc/confd/templates/log4j2.xml.tmpl @@ -13,4 +13,4 @@ - \ No newline at end of file + diff --git a/fits/rootfs/opt/fits/xml/mediainfo/mediainfo_video_to_fits.xslt b/fits/rootfs/opt/fits/xml/mediainfo/mediainfo_video_to_fits.xslt index ea111d27..07b5b486 100644 --- a/fits/rootfs/opt/fits/xml/mediainfo/mediainfo_video_to_fits.xslt +++ b/fits/rootfs/opt/fits/xml/mediainfo/mediainfo_video_to_fits.xslt @@ -359,7 +359,7 @@ @@ -381,7 +381,7 @@ Progressive - + + + + + + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/protwords_en.txt b/test/rootfs/opt/solr/server/solr/default/conf/protwords_en.txt new file mode 100644 index 00000000..e69de29b diff --git a/test/rootfs/opt/solr/server/solr/default/conf/protwords_und.txt b/test/rootfs/opt/solr/server/solr/default/conf/protwords_und.txt new file mode 100644 index 00000000..e69de29b diff --git a/test/rootfs/opt/solr/server/solr/default/conf/schema.xml b/test/rootfs/opt/solr/server/solr/default/conf/schema.xml new file mode 100644 index 00000000..7c463e03 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/schema.xml @@ -0,0 +1,478 @@ + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &extrafields; + + + &extratypes; + + + id + + + + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/schema_extra_fields.xml b/test/rootfs/opt/solr/server/solr/default/conf/schema_extra_fields.xml new file mode 100644 index 00000000..c21aeff2 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/schema_extra_fields.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/schema_extra_types.xml b/test/rootfs/opt/solr/server/solr/default/conf/schema_extra_types.xml new file mode 100644 index 00000000..91d11778 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/schema_extra_types.xml @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/solrconfig.xml b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig.xml new file mode 100644 index 00000000..c34beaeb --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig.xml @@ -0,0 +1,811 @@ + + + + + + +]> + + + + + + + ${solr.abortOnConfigurationError:true} + + + ${solr.luceneMatchVersion:LUCENE_80} + + + + + + + + + + + + + + + + + + + + + ${solr.data.dir:} + + + + + + + + + ${solr.hdfs.home:} + + ${solr.hdfs.confdir:} + + ${solr.hdfs.blockcache.enabled:true} + + ${solr.hdfs.blockcache.global:true} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ${solr.lock.type:native} + + + + + + + + + + + + + true + + + &index; + + + + + + + + + ${solr.ulog.dir:} + + + + + ${solr.autoCommit.MaxDocs:-1} + ${solr.autoCommit.MaxTime:15000} + false + + + + + + ${solr.autoSoftCommit.MaxDocs:-1} + ${solr.autoSoftCommit.MaxTime:5000} + + + + + + + + + + + + + + + + &query; + + + + + + + + + + + + static firstSearcher warming in solrconfig.xml + + + + + + false + + + + + + + + + &requestdispatcher; + + + + + + + &extra; + + + + + + + + + 100 + + + + + + + + 70 + + 0.5 + + [-\w ,/\n\"']{20,200} + + + + + + + ]]> + ]]> + + + + + + + + + + + + + + + + + + + + + + + + ,, + ,, + ,, + ,, + ,]]> + ]]> + + + + + + 10 + .,!? + + + + + + + WORD + + + en + US + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + + + + + + + + + + + + + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_extra.xml b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_extra.xml new file mode 100644 index 00000000..41ccf8ae --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_extra.xml @@ -0,0 +1,188 @@ + + + en + spellcheck_en + solr.DirectSolrSpellChecker + internal + 0.5 + 2 + 1 + 5 + 4 + 0.01 + .01 + true + + + + und + spellcheck_und + solr.DirectSolrSpellChecker + internal + 0.5 + 2 + 1 + 5 + 4 + 0.01 + .01 + true + + + + + en + AnalyzingInfixLookupFactory + DocumentDictionaryFactory + twm_suggest + text_en + sm_context_tags + true + false + + + + und + AnalyzingInfixLookupFactory + DocumentDictionaryFactory + twm_suggest + text_und + sm_context_tags + true + false + + + + + + false + false + false + true + false + 1 + false + 10 + + + terms + spellcheck + suggest + + + + + + + true + ignored_ + true + links + ignored_ + + + + + + + 1 + 1 + false + ${solr.mlt.timeAllowed:2000} + + + + + + + lucene + id + explicit + true + ${solr.selectSearchHandler.timeAllowed:-1} + false + + + spellcheck + elevator + + + + + + + id + und + on + false + false + 1 + 5 + 5 + true + true + 10 + 5 + + + spellcheck + + + + + + + true + und + 10 + + + suggest + + + + + + + id + true + + + tvComponent + + + + + + string + elevate.xml + + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_index.xml b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_index.xml new file mode 100644 index 00000000..e69de29b diff --git a/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_query.xml b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_query.xml new file mode 100644 index 00000000..5bdd6969 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_query.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + true + + false + + 20 + 200 + 1024 diff --git a/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_requestdispatcher.xml b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_requestdispatcher.xml new file mode 100644 index 00000000..5f4b9949 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/solrconfig_requestdispatcher.xml @@ -0,0 +1,5 @@ + + diff --git a/test/rootfs/opt/solr/server/solr/default/conf/solrcore.properties b/test/rootfs/opt/solr/server/solr/default/conf/solrcore.properties new file mode 100644 index 00000000..749fd532 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/solrcore.properties @@ -0,0 +1,13 @@ +solr.replication.master=false +solr.replication.slave=false +solr.replication.pollInterval=00:00:60 +solr.replication.masterUrl=http://localhost:8983/solr +solr.replication.confFiles=schema.xml,schema_extra_types.xml,schema_extra_fields.xml,elevate.xml,stopwords_en.txt,protwords_en.txt,accents_en.txt,synonyms_en.txt,stopwords_und.txt,protwords_und.txt,accents_und.txt,synonyms_und.txt +solr.mlt.timeAllowed=2000 +solr.selectSearchHandler.timeAllowed=-1 +solr.autoCommit.MaxDocs=-1 +solr.autoCommit.MaxTime=15000 +solr.autoSoftCommit.MaxDocs=-1 +solr.autoSoftCommit.MaxTime=5000 + +solr.luceneMatchVersion=8.11 diff --git a/test/rootfs/opt/solr/server/solr/default/conf/stopwords_en.txt b/test/rootfs/opt/solr/server/solr/default/conf/stopwords_en.txt new file mode 100644 index 00000000..69810507 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/stopwords_en.txt @@ -0,0 +1,35 @@ +a +an +and +are +as +at +be +but +by +for +if +in +into +is +it +no +not +of +on +or +s +such +t +that +the +their +then +there +these +they +this +to +was +will +with diff --git a/test/rootfs/opt/solr/server/solr/default/conf/stopwords_und.txt b/test/rootfs/opt/solr/server/solr/default/conf/stopwords_und.txt new file mode 100644 index 00000000..e69de29b diff --git a/test/rootfs/opt/solr/server/solr/default/conf/synonyms_en.txt b/test/rootfs/opt/solr/server/solr/default/conf/synonyms_en.txt new file mode 100644 index 00000000..5dc4536b --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/synonyms_en.txt @@ -0,0 +1,17477 @@ +drupal, durpal +abettor's, abetter's +abettor, abetter +abettors, abetters +abnormalize, abnormalise +abnormalized, abnormalised +abnormalizing, abnormalising +abolitionize, abolitionise +abolitionized, abolitionised +abolitionizing, abolitionising +abridgment's, abridgement's +abridgment, abridgement +abridgments, abridgements +absinthe's, absinth's +absinthe, absinth +absinthes, absinths +academize, academise +academized, academised +academizing, academising +acalephe, acalephae +accessorize, accessorise +accessorized, accessorised +accessorizes, accessorises +accessorizing, accessorising +acclimatizable, acclimatisable +acclimatization's, acclimatisation's +acclimatization, acclimatisation +acclimatize, acclimatise +acclimatized, acclimatised +acclimatizer, acclimatiser +acclimatizers, acclimatisers +acclimatizes, acclimatises +acclimatizing, acclimatising +accorage, accourage +accoraged, accouraged +accorages, accourages +accoraging, accouraging +accouter, accoutre +accoutered, accoutred +accoutering, accoutring +accouterment's, accoutrement's +accouterment, accoutrement +accouterments, accoutrements +accouters, accoutres +Acemetae's, Acoemetae's +Acemetae, Acoemetae +Acemetic's, Acoemetic's +Acemetic, Acoemetic +Acer's, Acre's +Acer, Acre +acetonemia, acetonaemia +acetonemic, acetonaemic +achenia, achaenia +achenium, achaenium +acheniums, achaeniums +achenocarp, achaenocarp +achroiocythemia, achroiocythaemia +achromatization's, achromatisation's +achromatization, achromatisation +achromatizations, achromatisations +achromatize, achromatise +achromatized, achromatised +achromatizes, achromatises +achromatizing, achromatising +acidemia, acidaemia +acknowledgment's, acknowledgement's +acknowledgment, acknowledgement +acknowledgments, acknowledgements +acmesthesia, acmaesthesia +acroanesthesia, acroanaesthesia +acroesthesia, acroaesthesia +actualization's, actualisation's +actualization, actualisation +actualizations, actualisations +actualize, actualise +actualized, actualised +actualizes, actualises +actualizing, actualising +acuesthesia, acuaesthesia +adapter's, adaptor's +adapter, adaptor +adapters, adaptors +addable, addible +addenda, addendums +adjuster's, adjustor's +adjuster, adjustor +adjusters, adjustors +adonize, adonise +adonized, adonised +adonizes, adonises +adonizing, adonising +adrenalin's, adrenalin's +adrenaline, adrenalin +adulterize, adulterise +adulterized, adulterised +adulterizes, adulterises +adulterizing, adulterising +advene, advenae +adverbialize, adverbialise +adverbialized, adverbialised +adverbializes, adverbialises +adverbializing, adverbialising +advertise, advertize +advertised, advertized +advertisement's, advertizement's +advertisement, advertizement +advertisements, advertizements +advertises, advertizes +advertising, advertizing +advertizable, advertisable +adviser's, advisor's +adviser, advisor +advisers, advisors +adze's, adz's +adze, adz +aedile's, edile's +aedile, edile +aediles, ediles +Aedon's, Aaedon's +Aedon, Aaedon +Aeetes's, Aeaetes's +Aeetes, Aeaetes +aegis's, egis's +aegis, egis +aegises, egises +aerialness's, aaerialness's +aerialness, aaerialness +aeric, areic +aerogram, aerogramme +aerograms, aerogrammes +aerographer, areographer +aerographic, areographic +aerographical, areographical +aerographies, areographies +aerography's, areography's +aerography, areography +aerologic, areologic +aerological, areological +aerologies, areologies +aerologist's, areologist's +aerologist, areologist +aerology's, areology's +aerology, areology +aerometer, areometer +aerometers, areometers +aerometric, areometric +Aerope's, Aaerope's +Aerope, Aaerope +aesthete's, esthete's +aesthete, esthete +aesthetes, esthetes +aesthetic's, esthetic's +aesthetic, esthetic +aesthetically, esthetically +aestheticize, aestheticise +aestheticized, aestheticised +aestheticizes, aestheticises +aestheticizing, aestheticising +aesthetics, esthetics +affeer, affere +Africanization's, Africanisation's +Africanization, Africanisation +Africanizations, Africanisations +Africanize, Africanise +Africanized, Africanised +Africanizes, Africanises +Africanizing, Africanising +Afrikanerization, Afrikanerisation +Afrikanerize, Afrikanerise +Afrikanerized, Afrikanerised +Afrikanerizes, Afrikanerises +Afrikanerizing, Afrikanerising +agathodemon, agathodaemon +agatize, agatise +agatizes, agatises +ageism, agism +agenize, agenise +ager, agre +aggrandizable's, aggrandisable's +aggrandizable, aggrandisable +aggrandizables, aggrandisables +aggrandization, aggrandisation +aggrandize, aggrandise +aggrandized, aggrandised +aggrandizement's, aggrandisement's +aggrandizement, aggrandisement +aggrandizements, aggrandisements +aggrandizer's, aggrandiser's +aggrandizer, aggrandiser +aggrandizers, aggrandisers +aggrandizes, aggrandises +aggrandizing, aggrandising +aging's, ageing's +aging, ageing +agings, ageings +agnize, agnise +agnized, agnised +agnizes, agnises +agnizing, agnising +agonize, agonise +agonized, agonised +agonizedlies, agonisedlies +agonizedly, agonisedly +agonizer, agoniser +agonizers, agonisers +agonizes, agonises +agonizing, agonising +agonizinglier, agonisinglier +agonizingliest, agonisingliest +agonizingly, agonisingly +agrarianize, agrarianise +agrarianizes, agrarianises +agrize, agrise +agrized, agrised +agrizes, agrises +agrizing, agrising +aguize, aguise +aguized, aguised +aguizes, aguises +aguizing, aguising +aiger, aigre +air_gun, airgun +air_letter, airletter +airfoil's, aerofoil's +airfoil, aerofoil +airfoils, aerofoils +airgel, aerogel +airplane's, aeroplane's +airplane, aeroplane +airplanes, aeroplanes +airstrike's, air_strike's +airstrike, air_strike +airstrikes, air_strikes +aker, akre +Aktistete's, Aktistetae's +Aktistete, Aktistetae +albitize, albitise +albitized, albitised +albitizes, albitises +albitizing, albitising +albumenizer, albumeniser +albuminisation's, albuminization's +albuminisation, albuminization +albuminisations, albuminizations +albuminise, albuminize +albuminised, albuminized +albuminises, albuminizes +albuminising, albuminizing +alchemize, alchemise +alchemized, alchemised +alchemizes, alchemises +alchemizing, alchemising +Alcide's, Alcidae's +Alcide, Alcidae +Alcithoe's, Alcithoae's +Alcithoe, Alcithoae +alcoholizable's, alcoholisable's +alcoholizable, alcoholisable +alcoholizables, alcoholisables +alcoholization's, alcoholisation's +alcoholization, alcoholisation +alcoholizations, alcoholisations +alcoholize, alcoholise +alcoholized, alcoholised +alcoholizes, alcoholises +alcoholizing, alcoholising +aleucemic, aleucaemic +aleukemic, aleukaemic +Aleus's, Aloeus's +Aleus, Aloeus +algebraization's, algebraisation's +algebraization, algebraisation +algebraizations, algebraisations +algebraize, algebraise +algebraizes, algebraises +algesthesis, algaesthesis +alienize, alienise +alienizes, alienises +align, aline +aligned, alined +aligning, alining +alignment's, alinement's +alignment, alinement +alignments, alinements +aligns, alines +alkalinization's, alkalinisation's +alkalinization, alkalinisation +alkalinizations, alkalinisations +alkalinize, alkalinise +alkalinized, alkalinised +alkalinizes, alkalinises +alkalinizing, alkalinising +alkalizable, alkalisable +alkalization's, alkalisation's +alkalization, alkalisation +alkalizations, alkalisations +alkalize, alkalise +alkalized, alkalised +alkalizer's, alkaliser's +alkalizer, alkaliser +alkalizes, alkalises +alkalizing, alkalising +allegorization's, allegorisation's +allegorization, allegorisation +allegorizations, allegorisations +allegorize, allegorise +allegorized, allegorised +allegorizer's, allegoriser's +allegorizer, allegoriser +allegorizers, allegorisers +allegorizes, allegorises +allegorizing, allegorising +alleluia's, halleluiah's +alleluia, halleluiah +alleluias, halleluiahs +alloxuremia, alloxuraemia +almanac, almanack +almanacs, almanacks +alphabetization's, alphabetisation's +alphabetization, alphabetisation +alphabetizations, alphabetisations +alphabetize, alphabetise +alphabetized, alphabetised +alphabetizer's, alphabetiser's +alphabetizer, alphabetiser +alphabetizers, alphabetisers +alphabetizes, alphabetises +alphabetizing, alphabetising +alternize, alternise +alternizes, alternises +althea's, althaea's +althea, althaea +altheas, althaeas +althein, althaein +although, altho +aluminization, aluminisation +aluminize, aluminise +aluminized, aluminised +aluminizes, aluminises +aluminizing, aluminising +aluminum's, aluminium's +aluminum, aluminium +aluminums, aluminiums +alumni, alumnuses +alveole, alveolae +amalgamatize, amalgamatise +amalgamatizes, amalgamatises +amalgamization's, amalgamisation's +amalgamization, amalgamisation +amalgamizations, amalgamisations +amalgamize, amalgamise +amalgamizes, amalgamises +Amalthea's, Amalthaea's +Amalthea, Amalthaea +ambiance's, ambience's +ambiance, ambience +ambiances, ambiences +ambicolorate, ambicolourate +ambicoloration, ambicolouration +ambilevous, ambilaevous +ameban, amoeban +amebas, amebae +amebean, amoebean +amebian, amoebian +amebiases, amoebiases +amebiasis, amoebiasis +amebicidal, amoebicidal +amebicide, amoebicide +amebid, amoebid +amebiform, amoebiform +amebiosis, amoebiosis +amebocyte's, amoebocyte's +amebocyte, amoebocyte +amebocytes, amoebocytes +ameboidism's, amoeboidism's +ameboidism, amoeboidism +amebous, amoebous +amebula, amoebula +amenorrhea's, amenorrhoea's +amenorrhea, amenorrhoea +amenorrheal, amenorrhoeal +amenorrheas, amenorrhoeas +amenorrheic, amenorrhoeic +Americanization's, Americanisation's +Americanization, Americanisation +americanization, americanisation +Americanizations, Americanisations +Americanize, Americanise +Americanized, Americanised +americanized, americanised +Americanizer's, Americaniser's +Americanizer, Americaniser +Americanizers, Americanisers +Americanizes, Americanises +Americanizing, Americanising +amid, amidst +amir's, ameer's +amir, ameer +amirs, ameers +ammocete's, ammocoete's +ammocete, ammocoete +ammocetes, ammocoetes +ammoniemia, ammoniaemia +amoeba's, ameba's +amoeba, ameba +amoebic, amebic +amoeboid, ameboid +amok's, amuck's +amok, amuck +amoks, amucks +among, amongst +amoralize, amoralise +amoralizes, amoralises +amoret, amouret +amorism's, amourism's +amorism, amourism +amorisms, amourisms +amorist's, amourist's +amorist, amourist +amoristic, amouristic +amoristics, amouristics +amorists, amourists +amorphization, amorphisation +amorphize, amorphise +amortizable's, amortisable's +amortizable, amortisable +amortizabler, amortisabler +amortizables, amortisables +amortizablest, amortisablest +amortization's, amortisation's +amortization, amortisation +amortizations, amortisations +amortize, amortise +amortized, amortised +amortizement's, amortisement's +amortizement, amortisement +amortizements, amortisements +amortizes, amortises +amortizing, amortising +amphigean, amphigaean +amphitheater's, amphitheatre's +amphitheater, amphitheatre +amphitheaters, amphitheatres +ampoule's, ampul's +ampoule, ampul +ampoules, ampuls +amygdale, amygdalae +amyxorrhea, amyxorrhoea +anabaptize, anabaptise +anabaptized, anabaptised +anabaptizes, anabaptises +anabaptizing, anabaptising +anaesthetization's, anesthetisation's +anaesthetization, anesthetisation +anaesthetizations, anesthetisations +anaesthetize, anesthetise +anaesthetized, anesthetised +anaesthetizer, anesthetiser +anaesthetizers, anesthetisers +anaesthetizes, anesthetises +anaesthetizing, anesthetising +anagrammatize, anagrammatise +anagrammatized, anagrammatised +anagrammatizes, anagrammatises +anagrammatizing, anagrammatising +analogize, analogise +analogized, analogised +analogizes, analogises +analogizing, analogising +analytical, analytic +analytically, analyticalally +analyticiti, analyticaliti +analyticitis, analyticalitis +analyticity, analyticality +analyzability's, analysability's +analyzability, analysability +analyzable, analysable +analyzabler, analysabler +analyzablest, analysablest +analyzation's, analysation's +analyzation, analysation +analyzations, analysations +analyze, analyse +analyzed, analysed +analyzer's, analyser's +analyzer, analyser +analyzers, analysers +analyzes, analyses +analyzing, analysing +anapestically, anapaestically +anapneic, anapnoeic +anarchize, anarchise +anarchized, anarchised +anarchizes, anarchises +anarchizing, anarchising +anathematization's, anathematisation's +anathematization, anathematisation +anathematizations, anathematisations +anathematize, anathematise +anathematized, anathematised +anathematizer's, anathematiser's +anathematizer, anathematiser +anathematizes, anathematises +anathematizing, anathematising +anatomizable, anatomisable +anatomization's, anatomisation's +anatomization, anatomisation +anatomize, anatomise +anatomized, anatomised +anatomizer's, anatomiser's +anatomizer, anatomiser +anatomizes, anatomises +anatomizing, anatomising +Anchinoe's, Anchinoae's +Anchinoe, Anchinoae +ancille, ancillae +anematosis, anaematosis +anemia's, anaemia's +anemia, anaemia +anemias, anaemias +anemic, anaemic +anemically, anaemically +anemicer, anaemicer +anemicest, anaemicest +anemics, anaemics +aneretic, anaeretic +anesis, anoesis +anesthesia's, anaesthesia's +anesthesia, anaesthesia +anesthesiant, anaesthesiant +anesthesias, anaesthesias +anesthesiologies, anaesthesiologies +anesthesiologist's, anaesthesiologist's +anesthesiologist, anaesthesiologist +anesthesiologists, anaesthesiologists +anesthesiology's, anaesthesiology's +anesthesiology, anaesthesiology +anesthesis, anaesthesis +anesthetic's, anaesthetic's +anesthetic, anaesthetic +anesthetically, anaesthetically +anestheticer, anaestheticer +anestheticest, anaestheticest +anesthetics, anaesthetics +anesthetist's, anaesthetist's +anesthetist, anaesthetist +anesthetists, anaesthetists +anesthyl, anaesthyl +anestra, anoestra +anestri, anoestri +anestrous, anoestrous +anestrum, anoestrum +anestrus's, anoestrus's +anestrus, anoestrus +anestruses, anoestruses +anetic, anoetic +anetiological, anaetiological +aneurysm's, aneurism's +aneurysm, aneurism +aneurysms, aneurisms +angelicize, angelicise +angelicizes, angelicises +angelize, angelise +angelizes, angelises +Anglicanize's, Anglicanise's +Anglicanize, Anglicanise +Anglicanizes, Anglicanises +anglicization's, anglicisation's +anglicization, anglicisation +anglicizations, anglicisations +anglicize, anglicise +anglicized, anglicised +anglicizes, anglicises +anglicizing, anglicising +angrecum, angraecum +angularization's, angularisation's +angularization, angularisation +angularizations, angularisations +angularize, angularise +angularizes, angularises +anhematopoiesis's, anhaematopoiesis's +anhematopoiesis, anhaematopoiesis +anhematosis, anhaematosis +anhemolytic, anhaemolytic +anhydremia, anhydraemia +anhydremic, anhydraemic +anhydridization's, anhydridisation's +anhydridization, anhydridisation +anhydridizations, anhydridisations +anhydridize, anhydridise +anhydridizes, anhydridises +animalization's, animalisation's +animalization, animalisation +animalizations, animalisations +animalize, animalise +animalized, animalised +animalizes, animalises +animalizing, animalising +animized, animised +annalize, annalise +annalized, annalised +annalizes, annalises +annalizing, annalising +annualization, annualisation +annualize, annualise +annualized, annualised +annualizes, annualises +annualizing, annualising +anodization, anodisation +anodize, anodise +anodized, anodised +anodizes, anodises +anodizing, anodising +anonymize, anonymise +anonymized, anonymised +anonymizes, anonymises +anonymizing, anonymising +Anora's, Anoura's +Anora, Anoura +anoxemia's, anoxaemia's +anoxemia, anoxaemia +anoxemic, anoxaemic +anserine, anserinae +antagonizable, antagonisable +antagonization's, antagonisation's +antagonization, antagonisation +antagonizations, antagonisations +antagonize, antagonise +antagonized, antagonised +antagonizer, antagoniser +antagonizers, antagonisers +antagonizes, antagonises +antagonizing, antagonising +antennae, antenna +antennas, antenna +anthecological, anthoecological +anthecologist, anthoecologist +anthecology, anthoecology +anthologization, anthologisation +anthologize, anthologise +anthologized, anthologised +anthologizer, anthologiser +anthologizes, anthologises +anthologizing, anthologising +anthracemia, anthracaemia +anthracitization's, anthracitisation's +anthracitization, anthracitisation +anthracitizations, anthracitisations +anthropomorphization's, anthropomorphisation's +anthropomorphization, anthropomorphisation +anthropomorphizations, anthropomorphisations +anthropomorphize, anthropomorphise +anthropomorphized, anthropomorphised +anthropomorphizes, anthropomorphises +anthropomorphizing, anthropomorphising +anticatalyzer's, anticatalyser's +anticatalyzer, anticatalyser +anticatalyzers, anticatalysers +anticentralization's, anticentralisation's +anticentralization, anticentralisation +anticentralizations, anticentralisations +anticize, anticise +anticizes, anticises +antiepicenter's, antiepicentre's +antiepicenter, antiepicentre +antiepicenters, antiepicentres +antifertilizer's, antifertiliser's +antifertilizer, antifertiliser +antifertilizers, antifertilisers +antilabor's, antilabour's +antilabor, antilabour +antilabors, antilabours +antilemic, antiloemic +antimedieval, antimediaeval +antimedievalism's, antimediaevalism's +antimedievalism, antimediaevalism +antimedievalist's, antimediaevalist's +antimedievalist, antimediaevalist +antimedievally, antimediaevally +antioxidizer's, antioxidiser's +antioxidizer, antioxidiser +antioxidizers, antioxidisers +antioxidizing's, antioxidising's +antioxidizing, antioxidising +antioxidizings, antioxidisings +antipathize, antipathise +antipathizes, antipathises +antiquarianize, antiquarianise +antiquarianizes, antiquarianises +antirumor's, antirumour's +antirumor, antirumour +antirumors, antirumours +antisensitize, antisensitise +antisensitizer's, antisensitiser's +antisensitizer, antisensitiser +antisensitizers, antisensitisers +antisensitizes, antisensitises +antisepticize, antisepticise +antisepticized, antisepticised +antisepticizes, antisepticises +antisepticizing, antisepticising +antiseptize, antiseptise +antiseptizes, antiseptises +antisiphon's, antisyphon's +antisiphon, antisyphon +antisiphons, antisyphons +antithesize, antithesise +antithesizes, antithesises +anviled, anvilled +anviling, anvilling +apesthesia, apaesthesia +apesthetic, apaesthetic +aphereses, aphaereses +apheresis's, aphaeresis's +apheresis, aphaeresis +apheretic, aphaeretic +aphetize, aphetise +aphetized, aphetised +aphetizes, aphetises +aphetizing, aphetising +aphorize, aphorise +aphorized, aphorised +aphorizer's, aphoriser's +aphorizer, aphoriser +aphorizers, aphorisers +aphorizes, aphorises +aphorizing, aphorising +apnea's, apnoea's +apnea, apnoea +apneal, apnoeal +apneas, apnoeas +apneic, apnoeic +apocenter, apocentre +apogeic, apogaeic +apologize, apologise +apologized, apologised +apologizer's, apologiser's +apologizer, apologiser +apologizers, apologisers +apologizes, apologises +apologizing, apologising +apophthegmatize, apophthegmatise +apophthegmatized, apophthegmatised +apophthegmatizes, apophthegmatises +apophthegmatizing, apophthegmatising +aporrhea, aporrhoea +apostatization, apostatisation +apostatize, apostatise +apostatized, apostatised +apostatizes, apostatises +apostatizing, apostatising +apostolize, apostolise +apostolized, apostolised +apostolizes, apostolises +apostolizing, apostolising +apostrophize, apostrophise +apostrophized, apostrophised +apostrophizes, apostrophises +apostrophizing, apostrophising +apothegmatize, apothegmatise +apothegmatized, apothegmatised +apothegmatizes, apothegmatises +apothegmatizing, apothegmatising +apotheosize, apotheosise +apotheosized, apotheosised +apotheosizes, apotheosises +apotheosizing, apotheosising +appall, appal +appalls, appals +appareled, apparelled +appareling, apparelling +appendices, appendix +appendixes, appendix +appetize, appetise +appetized, appetised +appetizement's, appetisement's +appetizement, appetisement +appetizements, appetisements +appetizer's, appetiser's +appetizer, appetiser +appetizers, appetisers +appetizes, appetises +appetizing, appetising +appetizingly, appetisingly +apprizal, apprisal +apprizer, appriser +apprizers, apprisers +apprizings, apprisings +aquaculture's, aquiculture's +aquaculture, aquiculture +Arabianize's, Arabianise's +Arabianize, Arabianise +Arabianizes, Arabianises +Arabicize, Arabicise +Arabicizes, Arabicises +arabization's, arabisation's +arabization, arabisation +arabizations, arabisations +Arabize, Arabise +arabize, arabise +Arabized, Arabised +arabized, arabised +Arabizes, Arabises +arabizes, arabises +Arabizing, Arabising +arabizing, arabising +Aramean, Aramaean +Arameans, Aramaeans +arbalester, arbalestre +arbor's, arbour's +arbor, arbour +arbored, arboured +arbores, arboures +arborization's, arborisation's +arborization, arborisation +arborizations, arborisations +arborize, arborise +arborized, arborised +arborizes, arborises +arborizing, arborising +arbors, arbours +archaeologic, archeologic +archaeological, archeological +archaeologically, archeologically +archaeologies, archeologies +archaeologist's, archeologist's +archaeologist, archeologist +archaeologists, archeologists +archaeology's, archeology's +archaeology, archeology +archaize, archaise +archaized, archaised +archaizer's, archaiser's +archaizer, archaiser +archaizers, archaisers +archaizes, archaises +archaizing, archaising +arche, archae +archeal, archaeal +archean, archaean +archei, archaei +archeoastronomies, archaeoastronomies +archeoastronomy, archaeoastronomy +archeocyte's, archaeocyte's +archeocyte, archaeocyte +archeol, archaeol +archeolithic, archaeolithic +archeologian, archaeologian +archeometries, archaeometries +archeometry, archaeometry +Archeozic, Archaeozic +Archeozoic, Archaeozoic +archeozoic, archaeozoic +archetypal, archetypical +archetypally, archetypically +archeus, archaeus +arcticize, arcticise +arcticizes, arcticises +Arctogea's, Arctogaea's +Arctogea, Arctogaea +Arctogean's, Arctogaean's +Arctogean, Arctogaean +Arctogeic's, Arctogaeic's +Arctogeic, Arctogaeic +ardor's, ardour's +ardor, ardour +ardors, ardours +arenicolor, arenicolour +areole, areolae +areometric, araeometric +areometrical, araeometrical +areostyle, araeostyle +areostyles, araeostyles +areosystyle, araeosystyle +Arianize's, Arianise's +Arianize, Arianise +Arianized's, Arianised's +Arianized, Arianised +Arianizes, Arianises +Arianizing's, Arianising's +Arianizing, Arianising +Arimathea's, Arimathaea's +Arimathea, Arimathaea +Arimathean's, Arimathaean's +Arimathean, Arimathaean +ariste, aristae +arithmetization's, arithmetisation's +arithmetization, arithmetisation +arithmetizations, arithmetisations +arithmetize, arithmetise +arithmetized, arithmetised +arithmetizes, arithmetises +armor's, armour's +armor, armour +armorbearer's, armourbearer's +armorbearer, armourbearer +armored, armoured +armorer's, armourer's +armorer, armourer +armorers, armourers +armoried, armouried +armoring, armouring +armorless, armourless +armors, armours +armory's, armoury's +armory, armoury +aromatite, aromatitae +aromatization's, aromatisation's +aromatization, aromatisation +aromatize, aromatise +aromatized, aromatised +aromatizer's, aromatiser's +aromatizer, aromatiser +aromatizes, aromatises +aromatizing, aromatising +arsenicize, arsenicise +arsenicizes, arsenicises +Arsinoe's, Arsinoae's +Arsinoe, Arsinoae +arterialization's, arterialisation's +arterialization, arterialisation +arterializations, arterialisations +arterialize, arterialise +arterialized, arterialised +arterializes, arterialises +arterializing, arterialising +arthrempyesis, arthroempyesis +artifact's, artefact's +artifact, artefact +artifacts, artefacts +artificialize, artificialise +artificialized, artificialised +artificializes, artificialises +artificializing, artificialising +Aryanization, Aryanisation +Aryanize, Aryanise +Aryanized's, Aryanised's +Aryanized, Aryanised +Aryanizes, Aryanises +Aryanizing's, Aryanising's +Aryanizing, Aryanising +arytenoid, arytaenoid +arytenoids, arytaenoids +asafetida's, asafoetida's +asafetida, asafoetida +asafetidas, asafoetidas +ascendance's, ascendence's +ascendance, ascendence +ascendancy's, ascendency's +ascendancy, ascendency +ascendant's, ascendent's +ascendant, ascendent +ascendants, ascendents +Asclepiade's, Asclepiadae's +Asclepiade, Asclepiadae +Asel's, Asael's +Asel, Asael +asepticize, asepticise +asepticized, asepticised +asepticizes, asepticises +asepticizing, asepticising +asexualization's, asexualisation's +asexualization, asexualisation +asexualize, asexualise +asexualized, asexualised +asexualizing, asexualising +Asiaticization's, Asiaticisation's +Asiaticization, Asiaticisation +Asiaticizations, Asiaticisations +Asiaticize's, Asiaticise's +Asiaticize, Asiaticise +Asiaticizes, Asiaticises +Asmonean's, Asmonaean's +Asmonean, Asmonaean +aspheterize, aspheterise +aspheterized, aspheterised +aspheterizes, aspheterises +aspheterizing, aspheterising +assafetida, assafoetida +assafetidas, assafoetidas +asshole's, arsehole's +asshole, arsehole +assholes, arseholes +Assidean's, Assidaean's +Assidean, Assidaean +Assyrianize's, Assyrianise's +Assyrianize, Assyrianise +Assyrianizes, Assyrianises +Astera's, Astrea's +Astera, Astrea +astigmatizer's, astigmatiser's +astigmatizer, astigmatiser +astigmatizers, astigmatisers +Astrea's, Astraea's +Astrea, Astraea +astrean, astraean +astronomize, astronomise +astronomized, astronomised +astronomizes, astronomises +astronomizing, astronomising +asynchronize, asynchronise +asynchronized, asynchronised +asynchronizes, asynchronises +asynchronizing, asynchronising +atheize, atheise +atheized, atheised +atheizes, atheises +atheizing, atheising +athetize, athetise +athetized, athetised +athetizes, athetises +athetizing, athetising +atmolyze, atmolyse +atmolyzed, atmolysed +atmolyzes, atmolyses +atmolyzing, atmolysing +atomizability, atomisability +atomizable, atomisable +atomization's, atomisation's +atomization, atomisation +atomizations, atomisations +atomize, atomise +atomized, atomised +atomizer's, atomiser's +atomizer, atomiser +atomizers, atomisers +atomizes, atomises +atomizing, atomising +atroceruleus, atrocoeruleus +attemper, attempre +Atticize, Atticise +atticize, atticise +Atticized, Atticised +Atticizes, Atticises +atticizes, atticises +Atticizing, Atticising +attitudinization, attitudinisation +attitudinize, attitudinise +attitudinized, attitudinised +attitudinizer's, attitudiniser's +attitudinizer, attitudiniser +attitudinizers, attitudinisers +attitudinizes, attitudinises +attitudinizing, attitudinising +attitudinizings, attitudinisings +aunter, auntre +auntie's, aunty's +auntie, aunty +aureole's, aureola's +aureole, aureola +Australianize's, Australianise's +Australianize, Australianise +Australianizes, Australianises +Australopithecine's, Australopithecinae's +Australopithecine, Australopithecinae +Austrianize's, Austrianise's +Austrianize, Austrianise +Austrianizes, Austrianises +autecious, autoecious +auteciously, autoeciously +auteciousness's, autoeciousness's +auteciousness, autoeciousness +autecism's, autoecism's +autecism, autoecism +autecisms, autoecisms +autecy, autoecy +authorizable, authorisable +authorization's, authorisation's +authorization, authorisation +authorizations, authorisations +authorize, authorise +authorized, authorised +authorizer's, authoriser's +authorizer, authoriser +authorizers, authorisers +authorizes, authorises +authorizing, authorising +autocatalyze, autocatalyse +autocatalyzed, autocatalysed +autocatalyzes, autocatalyses +autocatalyzing, autocatalysing +autodialer, autodialler +autoimmunization, autoimmunisation +autoionization's, autoionisation's +autoionization, autoionisation +autolyzate, autolysate +autolyzates, autolysates +autolyze, autolyse +autolyzed, autolysed +autolyzes, autolyses +autolyzing, autolysing +automatization's, automatisation's +automatization, automatisation +automatizations, automatisations +automatize, automatise +automatized, automatised +automatizes, automatises +automatizing, automatising +Autonoe's, Autonoae's +Autonoe, Autonoae +autotomize, autotomise +autotomized, autotomised +autotomizes, autotomises +autotomizing, autotomising +autotoxemia's, autotoxaemia's +autotoxemia, autotoxaemia +autotoxemias, autotoxaemias +avianize, avianise +avianized, avianised +avianizes, avianises +avianizing, avianising +avizandum, avisandum +avizandums, avisandums +avize, avise +avized, avised +avizes, avises +avizing, avising +awestruck, awestricken +AWOL, awol +ax's, axe's +ax, axe +axiomatization's, axiomatisation's +axiomatization, axiomatisation +axiomatizations, axiomatisations +axiomatize, axiomatise +axiomatized, axiomatised +axiomatizes, axiomatises +axiomatizing, axiomatising +aye's, ay's +aye, ay +azotemia, azotaemia +azotization, azotisation +azotize, azotise +azotized, azotised +azotizes, azotises +azotizing, azotising +azotorrhea, azotorrhoea +Babelization's, Babelisation's +Babelization, Babelisation +Babelize's, Babelise's +Babelize, Babelise +Babelized's, Babelised's +Babelized, Babelised +Babelizing's, Babelising's +Babelizing, Babelising +Babylonize's, Babylonise's +Babylonize, Babylonise +Babylonizes, Babylonises +bachelorize, bachelorise +bachelorizes, bachelorises +bacillemia, bacillaemia +bacillemias, bacillaemias +bacilli, bacilluses +backpedaled, backpedalled +backpedaling, backpedalling +baconize, baconise +baconizes, baconises +bacteremia's, bacteraemia's +bacteremia, bacteraemia +bacteremias, bacteraemias +bacteria, bacteria +bacteriemia, bacteriaemia +bacterize, bacterise +bacterized, bacterised +bacterizes, bacterises +bacterizing, bacterising +baddie's, baddy's +baddie, baddy +Baer's, Bare's +Baer, Bare +balk's, baulk's +balk, baulk +Balkanization's, Balkanisation's +balkanization's, balkanisation's +Balkanization, Balkanisation +balkanization, balkanisation +Balkanizations, Balkanisations +balkanizations, balkanisations +Balkanize, Balkanise +balkanize, balkanise +Balkanized, Balkanised +balkanized, balkanised +Balkanizes, Balkanises +balkanizes, balkanises +Balkanizing, Balkanising +balkanizing, balkanising +balked, baulked +balking, baulking +balks, baulks +balladize, balladise +balladized, balladised +balladizes, balladises +balladizing, balladising +baloney's, boloney's +baloney, boloney +balsamize, balsamise +balsamizes, balsamises +banalization, banalisation +banalizations, banalisations +banalize, banalise +banalized, banalised +banalizes, banalises +banalizing, banalising +bandanna's, bandana's +bandanna, bandana +bandannas, bandanas +bandoleer's, bandolier's +bandoleer, bandolier +bandoleers, bandoliers +banister's, bannister's +banister, bannister +banisters, bannisters +banshee's, banshie's +banshee, banshie +banshees, banshies +bantamize, bantamise +bantamizes, bantamises +baptisteries, baptistries +baptistery's, baptistry's +baptistery, baptistry +baptizable's, baptisable's +baptizable, baptisable +baptizables, baptisables +baptize, baptise +baptized, baptised +baptizement's, baptisement's +baptizement, baptisement +baptizements, baptisements +baptizer's, baptiser's +baptizer, baptiser +baptizers, baptisers +baptizes, baptises +baptizing, baptising +barbarianize, barbarianise +barbarianizes, barbarianises +barbarization's, barbarisation's +barbarization, barbarisation +barbarizations, barbarisations +barbarize, barbarise +barbarized, barbarised +barbarizes, barbarises +barbarizing, barbarising +barbecue's, barbeque's +barbecue, barbeque +barbecued, barbequed +barbecues, barbeques +barbecuing, barbequing +barcarole's, barcarolle's +barcarole, barcarolle +barcaroles, barcarolles +baronetize, baronetise +baronetized, baronetised +baronetizing, baronetising +baronize, baronise +baronizes, baronises +barreled, barrelled +barreling, barrelling +bartizan, bartisan +bartizaned, bartisaned +bartizans, bartisans +barycenter, barycentre +bastardization's, bastardisation's +bastardization, bastardisation +bastardizations, bastardisations +bastardize, bastardise +bastardized, bastardised +bastardizes, bastardises +bastardizing, bastardising +bastinaded, bastinadoed +bastinades, bastinadoes +bathyscaphe's, bathyscaph's +bathyscaphe, bathyscaph +bathyscaphes, bathyscaphs +battleaxe's, battleax's +battleaxe, battleax +battologize, battologise +battologized, battologised +battologizing, battologising +beaverize, beaverise +beaverizes, beaverises +beclamor, beclamour +beclamored, beclamoured +beclamoring, beclamouring +beclamors, beclamours +becolor, becolour +becudgeled, becudgelled +becudgeling, becudgelling +bedeviled, bedevilled +bedeviling, bedevilling +bedlamize, bedlamise +bedlamized, bedlamised +bedlamizes, bedlamises +bedlamizing, bedlamising +bedriveled, bedrivelled +bedriveling, bedrivelling +Beera's, Berea's +Beera, Berea +beeves, beef +befavor, befavour +beglamor, beglamour +beglamored, beglamoured +beglamoring, beglamouring +beglamors, beglamours +behavior's, behaviour's +behavior, behaviour +behavioral, behavioural +behavioraler, behaviouraler +behavioralest, behaviouralest +behaviorally, behaviourally +behaviored, behavioured +behaviorism's, behaviourism's +behaviorism, behaviourism +behaviorisms, behaviourisms +behaviorist's, behaviourist's +behaviorist, behaviourist +behavioristic, behaviouristic +behavioristicer, behaviouristicer +behavioristicest, behaviouristicest +behavioristics, behaviouristics +behaviorists, behaviourists +behaviors, behaviours +Behmenism's, Boehmenism's +Behmenism, Boehmenism +behmenism, boehmenism +Behmenist's, Boehmenist's +Behmenist, Boehmenist +Behmenite's, Boehmenite's +Behmenite, Boehmenite +behoove's, behove's +behoove, behove +behooved, behoved +behooves, behoves +behooving's, behoving's +behooving, behoving +behoovingly, behovingly +behoovings, behovings +bejeweled, bejewelled +bejeweling, bejewelling +bel's, bael's +bel, bael +belabor's, belabour's +belabor, belabour +belabored, belaboured +belaboring, belabouring +belabors, belabours +bels, baels +Belter's, Boelter's +Belter, Boelter +Belus's, Boelus's +Belus, Boelus +bemedaled, bemedalled +Beria's, Baeria's +Beria, Baeria +berk, burk +berks, burks +Berl's, Baerl's +Berl, Baerl +Berlinize's, Berlinise's +Berlinize, Berlinise +Berlinizes, Berlinises +berloque, breloque +berme, breme +bern, bren +Bessemerize's, Bessemerise's +Bessemerize, Bessemerise +Bessemerizes, Bessemerises +bestialize, bestialise +bestialized, bestialised +bestializes, bestialises +bestializing, bestialising +beveled, bevelled +beveler's, beveller's +beveler, beveller +bevelers, bevellers +beveling, bevelling +bevelings, bevellings +Beyer's, Baeyer's +Beyer, Baeyer +biased, biassed +biasing, biassing +bichromatize, bichromatise +bichromatizes, bichromatises +bicolor's, bicolour's +bicolor, bicolour +bicolored, bicoloured +bicoloredder, bicolouredder +bicoloreddest, bicoloureddest +bicolorous, bicolourous +bicolorrer, bicolourer +bicolorrest, bicolourest +bicolors, bicolours +bimetalist, bimetallist +bimetalistic, bimetallistic +bingeing, binging +biocenology, biocoenology +biocenose, biocoenose +biocenoses, biocoenoses +biocenosis, biocoenosis +biocenotic, biocoenotic +biographize, biographise +biographizes, biographises +biologize, biologise +biologizes, biologises +biosynthesized, biosynthesised +bipolarization, bipolarisation +bipolarize, bipolarise +bipolarizes, bipolarises +Birminghamize's, Birminghamise's +Birminghamize, Birminghamise +Birminghamizes, Birminghamises +bister's, bistre's +bister, bistre +bistered, bistred +bisteredder, bistredder +bistereddest, bistreddest +bisters, bistres +bittor, bittour +bittors, bittours +bituminization's, bituminisation's +bituminization, bituminisation +bituminizations, bituminisations +bituminize, bituminise +bituminized, bituminised +bituminizes, bituminises +bituminizing, bituminising +bize's, bise's +bize, bise +bizet, biset +blaize, blaise +blamable, blameable +blastocele, blastocoele +blastule, blastulae +blennemesis, blennoemesis +blennorrhea, blennorrhoea +blowzier, blowsier +blowziest, blowsiest +blowzy, blowsy +bluing's, blueing's +bluing, blueing +bo's'n's, bos'n's +bo'suns, bos'ns +bocce's, bocci's +bocce, bocci +Boedromius's, Boaedromius's +Boedromius, Boaedromius +bogeyed, bogied +bogeying, bogieing +bogeys, bogies +bogie's, bogey's +bogie, bogey +bogies, bogeys +bogy's, bogie's +bogy, bogie +boled, boloed +Bolshevize, Bolshevise +bolshevize, bolshevise +Bolshevized, Bolshevised +bolshevized, bolshevised +bolshevizes, bolshevises +Bolshevizing, Bolshevising +bolshevizing, bolshevising +bolshie, bolshy +bonderize, bonderise +bonny, bonnie +bony, boney +boogeyman's, boogerman's +boogeyman, boogerman +boogeymen, boogermans +boombox's, boom_box's +boombox, boom_box +boomboxes, boom_boxes +bor, bour +borage, bourage +borasque, bourasque +bord, bourd +bords, bourds +borg, bourg +borize, borise +borizes, borises +borscht's, borsch's +borscht, borsch +bos'n, bo's'n +Boswellize, Boswellise +Boswellized, Boswellised +Boswellizes, Boswellises +Boswellizing, Boswellising +botanize, botanise +botanized, botanised +botanizer's, botaniser's +botanizer, botaniser +botanizes, botanises +botanizing, botanising +boulder's, bowlder's +boulder, bowlder +boulders, bowlders +boulevardize, boulevardise +boulevardizes, boulevardises +bourbonize, bourbonise +bourbonizes, bourbonises +bowdlerization's, bowdlerisation's +bowdlerization, bowdlerisation +bowdlerizations, bowdlerisations +bowdlerize, bowdlerise +bowdlerized, bowdlerised +bowdlerizer's, bowdleriser's +bowdlerizer, bowdleriser +bowdlerizers, bowdlerisers +bowdlerizes, bowdlerises +bowdlerizing, bowdlerising +boweled, bowelled +boweling, bowelling +bradypnea, bradypnoea +breathalyze, breathalyse +breathalyzed, breathalysed +breathalyzer's, breathalyser's +breathalyzer, breathalyser +breathalyzers, breathalysers +breathalyzes, breathalyses +breathalyzing, breathalysing +brier's, briar's +brier, briar +briers, briars +brimful, brimfull +brinkmanship's, brinksmanship's +brinkmanship, brinksmanship +briquette's, briquet's +briquette, briquet +briquettes, briquets +briza's, brisa's +briza, brisa +bromethylene, bromoethylene +brominize, brominise +brominizes, brominises +bromization's, bromisation's +bromization, bromisation +bromize, bromise +bromized, bromised +bromizing, bromising +bronco's, broncho's +bronco, broncho +broncos, bronchos +brusque, brusk +brusquely, bruskly +brusqueness's, bruskness's +brusqueness, bruskness +brusquenesses, brusknesses +brusquer, brusker +brusquest, bruskest +brutalization's, brutalisation's +brutalization, brutalisation +brutalizations, brutalisations +brutalize, brutalise +brutalized, brutalised +brutalizes, brutalises +brutalizing, brutalising +Budenny's, Budaenny's +Budenny, Budaenny +bunco's, bunko's +bunco, bunko +buncoed, bunkoed +buncoing, bunkoing +buncos, bunkos +bunkum's, buncombe's +bunkum, buncombe +bunkums, buncombes +bureaucratization's, bureaucratisation's +bureaucratization, bureaucratisation +bureaucratizations, bureaucratisations +bureaucratize, bureaucratise +bureaucratized, bureaucratised +bureaucratizes, bureaucratises +bureaucratizing, bureaucratising +burglarize, burglarise +burglarized, burglarised +burglarizes, burglarises +burglarizing, burglarising +burnettize, burnettise +burnettized, burnettised +burnettizes, burnettises +burnettizing, burnettising +burnoose's, burnous's +burnoose, burnous +burnooses, burnouses +burqa's, burkha's +burqa, burkha +burqas, burkhas +busheled, bushelled +busheler's, busheller's +busheler, busheller +bushelers, bushellers +busheling, bushelling +bushelings, bushellings +bylaw's, byelaw's +bylaw, byelaw +bylaws, byelaws +Byronize's, Byronise's +Byronize, Byronise +Byronizes, Byronises +Byzantinize's, Byzantinise's +Byzantinize, Byzantinise +Byzantinizes, Byzantinises +cabbala, cabbalah +cabby's, cabbie's +cabby, cabbie +cacesthesia, cacaesthesia +cachemia, cachaemia +cachemic, cachaemic +cacodemon, cacodaemon +cacodemoniac, cacodaemoniac +cacodemonial, cacodaemonial +cacodemonic, cacodaemonic +cacodemons, cacodaemons +cacoethes's, cacoaethes's +cacoethes, cacoaethes +cadaster's, cadastre's +cadaster, cadastre +cadasters, cadastres +cadaverize, cadaverise +cadaverizes, cadaverises +cadmiumize, cadmiumise +cadmiumizes, cadmiumises +caesarian's, cesarian's +caesarian, cesarian +caesarians, cesarians +Caesarize's, Caesarise's +Caesarize, Caesarise +Caesarizes, Caesarises +caffer, caffre +caftan's, kaftan's +caftan, kaftan +caftans, kaftans +cagey, cagy +caginess's, cageyness's +caginess, cageyness +caginesses, cageynesses +caiman's, cayman's +caiman, cayman +caimans, caymans +calander, calandre +calcemia, calcaemia +calendarization, calendarisation +calendarizations, calendarisations +calendarize, calendarise +calendarized, calendarised +calendarizes, calendarises +calendarizing, calendarising +Calender's, Calendre's +Calender, Calendre +caliber's, calibre's +caliber, calibre +calibers, calibres +calif's, khalif's +calif, khalif +califs, khalifs +caliper's, calliper's +caliper, calliper +calipered, callipered +calipering, callipering +calipers, callipers +calisthenic, callisthenic +calisthenics, callisthenics +calk's, caulk's +calk, caulk +calked, caulked +calking, caulking +calks, caulks +Callirrhoe's, Callirrhoae's +Callirrhoe, Callirrhoae +calodemon, calodaemon +Calvinize's, Calvinise's +Calvinize, Calvinise +Calvinizes, Calvinises +camisades, camisadoes +camize, camise +Canadianization's, Canadianisation's +Canadianization, Canadianisation +Canadianizations, Canadianisations +Canadianize's, Canadianise's +Canadianize, Canadianise +Canadianizes, Canadianises +canaled, canalled +canaler, canaller +canalers, canallers +canaling, canalling +canalization's, canalisation's +canalization, canalisation +canalizations, canalisations +canalize, canalise +canalized, canalised +canalizes, canalises +canalizing, canalising +Cananean's, Cananaean's +Cananean, Cananaean +cancelable, cancellable +cancelate, cancellate +cancelated, cancellated +canceled, cancelled +canceler's, canceller's +canceler, canceller +cancelers, cancellers +canceling, cancelling +cancellation, cancelation +cancelous, cancellous +candor's, candour's +candor, candour +candors, candours +canephore, canephorae +canephore, canephoroe +canisterization, canisterisation +canisterizations, canisterisations +canisterize, canisterise +canisterized, canisterised +canisterizes, canisterises +canisterizing, canisterising +cannibalization's, cannibalisation's +cannibalization, cannibalisation +cannibalizations, cannibalisations +cannibalize, cannibalise +cannibalized, cannibalised +cannibalizes, cannibalises +cannibalizing, cannibalising +canonicalization, canonicalisation +canonicalize, canonicalise +canonicalized, canonicalised +canonicalizes, canonicalises +canonicalizing, canonicalising +canonization's, canonisation's +canonization, canonisation +canonizations, canonisations +canonize, canonise +canonized, canonised +canonizer's, canoniser's +canonizer, canoniser +canonizers, canonisers +canonizes, canonises +canonizing, canonising +cantaloupe's, cantaloup's +cantaloupe, cantaloup +cantaloupes, cantaloups +cantonization, cantonisation +cantonizations, cantonisations +cantonize, cantonise +cantonized, cantonised +cantonizes, cantonises +cantonizing, cantonising +capitalizable's, capitalisable's +capitalizable, capitalisable +capitalizabler, capitalisabler +capitalizables, capitalisables +capitalizablest, capitalisablest +capitalization's, capitalisation's +capitalization, capitalisation +capitalizations, capitalisations +capitalize, capitalise +capitalized, capitalised +capitalizer's, capitaliser's +capitalizer, capitaliser +capitalizers, capitalisers +capitalizes, capitalises +capitalizing, capitalising +caponization's, caponisation's +Caponization, Caponisation +caponization, caponisation +caponize, caponise +caponized, caponised +caponizer's, caponiser's +caponizer, caponiser +caponizes, caponises +caponizing, caponising +capsulization, capsulisation +capsulize, capsulise +capsulized, capsulised +capsulizes, capsulises +capsulizing, capsulising +caracoled, caracolled +caracoling, caracolling +caramelization's, caramelisation's +caramelization, caramelisation +caramelizations, caramelisations +caramelize, caramelise +caramelized, caramelised +caramelizes, caramelises +caramelizing, caramelising +caravansarais, caravansarai +caravansary's, caravanserai's +caravansary, caravanserai +carbolization, carbolisation +carbolize, carbolise +carbolized, carbolised +carbolizes, carbolises +carbolizing, carbolising +carbonades, carbonadoes +carbonatization's, carbonatisation's +carbonatization, carbonatisation +carbonatizations, carbonatisations +carbonizable's, carbonisable's +carbonizable, carbonisable +carbonizabler, carbonisabler +carbonizables, carbonisables +carbonizablest, carbonisablest +carbonization's, carbonisation's +carbonization, carbonisation +carbonizations, carbonisations +carbonize, carbonise +carbonized, carbonised +carbonizer's, carboniser's +carbonizer, carboniser +carbonizers, carbonisers +carbonizes, carbonises +carbonizing, carbonising +carburettor's, carburetter's +carburettor, carburetter +carburettors, carburetters +carburization's, carburisation's +carburization, carburisation +carburizations, carburisations +carburize, carburise +carburized, carburised +carburizer's, carburiser's +carburizer, carburiser +carburizes, carburises +carburizing, carburising +cardie, cardiae +cardueline, carduelinae +carnalize, carnalise +carnalized, carnalised +carnalizes, carnalises +carnalizing, carnalising +carney's, carnie's +carney, carnie +carnies, carneys +caroled, carolled +caroler's, caroller's +caroler, caroller +carolers, carollers +caroling, carolling +carotinemia, carotinaemia +carousel's, carrousel's +carousel, carrousel +carousels, carrousels +cartelization's, cartelisation's +cartelization, cartelisation +cartelizations, cartelisations +cartelize, cartelise +cartelized, cartelised +cartelizes, cartelises +cartelizing, cartelising +caster's, castor's +caster's, castor's +caster, castor +caster, castor +casters, castors +casters, castors +castorized's, castorised's +castorized, castorised +castorizeds, castoriseds +casualization, casualisation +casualizations, casualisations +casualize, casualise +casualized, casualised +casualizes, casualises +casualizing, casualising +catabolize, catabolise +catalog's, catalogue's +catalog, catalogue +cataloged, catalogued +cataloger's, cataloguer's +cataloger, cataloguer +catalogers, cataloguers +cataloging, cataloguing +catalogs, catalogues +cataloguize, cataloguise +cataloguized, cataloguised +cataloguizes, cataloguises +cataloguizing, cataloguising +catalyze, catalyse +catalyzed, catalysed +catalyzer's, catalyser's +catalyzer, catalyser +catalyzers, catalysers +catalyzes, catalyses +catalyzing, catalysing +catechizable's, catechisable's +catechizable, catechisable +catechizabler, catechisabler +catechizables, catechisables +catechizablest, catechisablest +catechization's, catechisation's +catechization, catechisation +catechizations, catechisations +catechize, catechise +catechized, catechised +catechizer's, catechiser's +catechizer, catechiser +catechizers, catechisers +catechizes, catechises +catechizing, catechising +catechizings, catechisings +categorization's, categorisation's +categorization, categorisation +categorizations, categorisations +categorize, categorise +categorized, categorised +categorizer, categoriser +categorizers, categorisers +categorizes, categorises +categorizing, categorising +catharize, catharise +catharized, catharised +catharizes, catharises +catharizing, catharising +catheterization's, catheterisation's +catheterization, catheterisation +catheterizations, catheterisations +catheterize, catheterise +catheterized, catheterised +catheterizes, catheterises +catheterizing, catheterising +catholicization's, catholicisation's +Catholicization, Catholicisation +catholicization, catholicisation +catholicizations, catholicisations +catholicize, catholicise +Catholicized, Catholicised +catholicized, catholicised +catholicizer's, catholiciser's +catholicizer, catholiciser +catholicizers, catholicisers +catholicizes, catholicises +Catholicizing, Catholicising +catholicizing, catholicising +catsup's, catchup's +catsup, catchup +catsups, catchups +cauldron's, caldron's +cauldron, caldron +cauldrons, caldrons +caulk, calk +caulked, calked +caulking, calking +caulks, calks +causticization's, causticisation's +causticization, causticisation +causticizations, causticisations +causticize, causticise +causticizer, causticiser +causticizers, causticisers +causticizes, causticises +cauterization's, cauterisation's +cauterization, cauterisation +cauterizations, cauterisations +cauterize, cauterise +cauterized, cauterised +cauterizes, cauterises +cauterizing, cauterising +caviar's, caviare's +caviar, caviare +caviars, caviares +cavilation, cavillation +caviled, cavilled +caviler's, caviller's +caviler, caviller +cavilers, cavillers +caviling, cavilling +cavilings, cavillings +ce, coe +cecally, caecally +cecitis, caecitis +cecitises, caecitises +cecity, caecity +cecostomy, caecostomy +cecotomy, caecotomy +Celastraceae's, Coelastraceae's +Celastraceae, Coelastraceae +celastraceous, coelastraceous +celestialize, celestialise +celestializes, celestialises +celestine, coelestine +celiac, coeliac +celiacs, coeliacs +celialgia, coelialgia +celiomyalgia, coeliomyalgia +celiorrhea, coeliorrhea +celioscopy, coelioscopy +celiotomy, coeliotomy +celom's, coelom's +celom, coelom +celoma, coeloma +celomata, coelomata +celoscope's, coeloscope's +celoscope, coeloscope +Celticize's, Celticise's +Celticize, Celticise +Celticizes, Celticises +cenacle's, coenacle's +cenacle, coenacle +cenaculum, coenaculum +cenesthesia's, coenesthesia's +cenesthesia, coenesthesia +cenesthesias, coenesthesias +cenesthesis, coenesthesis +Cenis's, Caenis's +Cenis, Caenis +cenobe, coenobe +cenobite's, coenobite's +cenobite, coenobite +cenobites, coenobites +cenobitic, coenobitic +cenobitical, coenobitical +cenobitism's, coenobitism's +cenobitism, coenobitism +cenobium, coenobium +cenoby, coenoby +cenogenetic, caenogenetic +cenogenetic, coenogenetic +cenogenetically, caenogenetically +cenosite, coenosite +cenospecies, coenospecies +cenospecific, coenospecific +cenospecifically, coenospecifically +cenozoic, caenozoic +center's, centre's +center, centre +centerable's, centreable's +centerable, centreable +centerables, centreables +centerboard's, centreboard's +centerboard, centreboard +centerboards, centreboards +centered, centred +centerer, centrer +centerers, centrers +centerfold's, centrefold's +centerfold, centrefold +centerfolds, centrefolds +centering's, centring's +centering, centring +centerings, centrings +centerless, centreless +centerlesser, centrelesser +centerlessest, centrelessest +centerline's, centreline's +centerline, centreline +centerlines, centrelines +centermost, centremost +centerpiece's, centrepiece's +centerpiece, centrepiece +centerpieces, centrepieces +centers, centres +Centerville's, Centreville's +Centerville, Centreville +centigram's, centigramme's +centigram, centigramme +centigrams, centigrammes +centiliter's, centilitre's +centiliter, centilitre +centiliters, centilitres +centimeter's, centimetre's +centimeter, centimetre +centimeters, centimetres +centralization's, centralisation's +centralization, centralisation +centralizations, centralisations +centralize, centralise +centralized, centralised +centralizer's, centraliser's +centralizer, centraliser +centralizers, centralisers +centralizes, centralises +centralizing, centralising +centrifugalization's, centrifugalisation's +centrifugalization, centrifugalisation +centrifugalizations, centrifugalisations +centrifugalize, centrifugalise +centrifugalized, centrifugalised +centrifugalizes, centrifugalises +centrifugalizing, centrifugalising +cephalization's, cephalisation's +cephalization, cephalisation +cephalizations, cephalisations +cer, cre +cera, crea +cerat, creat +ceratin, creatin +ceratins, creatins +cere's, cree's +cere, cree +cerebralization's, cerebralisation's +cerebralization, cerebralisation +cerebralizations, cerebralisations +cerebralize, cerebralise +cerebralizes, cerebralises +ceremonialize, ceremonialise +ceremonializes, ceremonialises +ceres, crees +cerolite, creolite +cerule, caerule +ceruleolactite, coeruleolactite +cesar, caesar +Cesaria's, Caesaria's +Cesaria, Caesaria +cesious, caesious +cesium's, caesium's +cesium, caesium +cesiums, caesiums +cespitose, caespitose +cespitosely, caespitosely +cestus, caestus +cestuses, caestuses +cesural, caesural +cetus, coetus +chaces, chacoes +chalaze, chalazae +Chaldeans, Chaldaeans +chameleonize, chameleonise +chameleonizes, chameleonises +Chamizal's, Chamisal's +Chamizal, Chamisal +chamomile's, camomile's +chamomile, camomile +chamomiles, camomiles +championize, championise +championizes, championises +channeled, channelled +channeler's, channeller's +channeler, channeller +channelers, channellers +channeling, channelling +channelization's, channelisation's +channelization, channelisation +channelizations, channelisations +channelize, channelise +channelized, channelised +channelizes, channelises +channelizing, channelising +chaperon's, chaperone's +chaperon, chaperone +chaperons, chaperones +chaptalization, chaptalisation +chaptalizations, chaptalisations +chaptalize, chaptalise +chaptalized, chaptalised +chaptalizes, chaptalises +chaptalizing, chaptalising +characterizable's, characterisable's +characterizable, characterisable +characterizabler, characterisabler +characterizables, characterisables +characterizablest, characterisablest +characterization's, characterisation's +characterization, characterisation +characterizations, characterisations +characterize, characterise +characterized, characterised +characterizer's, characteriser's +characterizer, characteriser +characterizers, characterisers +characterizes, characterises +characterizing, characterising +charer, charre +chattelization's, chattelisation's +chattelization, chattelisation +chattelizations, chattelisations +chattelize, chattelise +chattelizes, chattelises +checkbook's, chequebook's +checkbook, chequebook +checkbooks, chequebooks +checkerboard's, chequerboard's +checkerboard, chequerboard +checkerboards, chequerboards +cheerfulize, cheerfulise +cheerfulizes, cheerfulises +cheerly, cherely +chelicere, chelicerae +chemicalization's, chemicalisation's +chemicalization, chemicalisation +chemicalizations, chemicalisations +chemicalize, chemicalise +chemicalizes, chemicalises +chenix, choenix +chenixes, choenixes +chetopod, chaetopod +chiffer, chiffre +childer, childre +chile's, chilli's +chile, chilli +chilis, chillies +chimera's, chimaera's +chimera, chimaera +chimeras, chimaeras +chimerid, chimaerid +chimerids, chimaerids +chimerism, chimaerism +chimerisms, chimaerisms +chiseled, chiselled +chiseler's, chiseller's +chiseler, chiseller +chiselers, chisellers +chiseling, chiselling +chitlins's, chitlings's +chitlins, chitlings +chivied, chivvied +chivies, chivvies +chivy, chivvy +chivying, chivvying +chloranemia, chloranaemia +chloremia, chloraemia +chloridize, chloridise +chloridized, chloridised +chloridizes, chloridises +chloridizing, chloridising +chlorinize, chlorinise +chlorinized, chlorinised +chlorinizes, chlorinises +chlorinizing, chlorinising +chloritization, chloritisation +chloritizations, chloritisations +chloroanemia, chloroanaemia +chloroformization's, chloroformisation's +chloroformization, chloroformisation +chloroformizations, chloroformisations +chloroformize, chloroformise +chloroformizes, chloroformises +chlorophyll's, chlorophyl's +chlorophyll, chlorophyl +chlorophylls, chlorophyls +chocoholic's, chocaholic's +chocoholic, chocaholic +chocoholics, chocaholics +chocolaty, chocolatey +Choephori's, Choaephori's +Choephori, Choaephori +cholemia, cholaemia +cholemias, cholaemias +cholophein, cholophaein +choosy, choosey +chorization's, chorisation's +chorization, chorisation +chorizations, chorisations +Christianization's, Christianisation's +Christianization, Christianisation +christianization, christianisation +Christianizations, Christianisations +christianizations, christianisations +Christianize, Christianise +christianize, christianise +Christianized, Christianised +christianized, christianised +Christianizer's, Christianiser's +Christianizer, Christianiser +christianizer, christianiser +Christianizers, Christianisers +christianizers, christianisers +Christianizes, Christianises +christianizes, christianises +Christianizing, Christianising +christianizing, christianising +chromatize, chromatise +chromatizes, chromatises +chromesthesia, chromaesthesia +chromicize, chromicise +chromicizes, chromicises +chromize, chromise +chromized, chromised +chromizes, chromises +chromizing, chromising +chronologize, chronologise +chronologized, chronologised +chronologizes, chronologises +chronologizing, chronologising +chutzpa's, hutzpah's +chutzpa, hutzpah +chutzpas, hutzpahes +cicatrices, cicatrixes +cicatricule, cicatriculae +cicatrix's, cicatrice's +cicatrix, cicatrice +cicatrizant, cicatrisant +cicatrizate, cicatrisate +cicatrization's, cicatrisation's +cicatrization, cicatrisation +cicatrizations, cicatrisations +cicatrize, cicatrise +cicatrized, cicatrised +cicatrizer's, cicatriser's +cicatrizer, cicatriser +cicatrizes, cicatrises +cicatrizing, cicatrising +Ciceronianize's, Ciceronianise's +Ciceronianize, Ciceronianise +Ciceronianizes, Ciceronianises +cigarette's, cigaret's +cigarette, cigaret +cigarettes, cigarets +cimicide, cimicidae +cinchonization's, cinchonisation's +cinchonization, cinchonisation +cinchonizations, cinchonisations +cinchonize, cinchonise +cinchonized, cinchonised +cinchonizes, cinchonises +cinchonizing, cinchonising +cinematize, cinematise +cinter, cintre +cipher's, cypher's +cipher, cypher +ciphered, cyphered +ciphering, cyphering +ciphers, cyphers +Circean, Circaean +circularization's, circularisation's +circularization, circularisation +circularizations, circularisations +circularize, circularise +circularized, circularised +circularizer's, circulariser's +circularizer, circulariser +circularizers, circularisers +circularizes, circularises +circularizing, circularising +circumcenter, circumcentre +circumcenters, circumcentres +circumesophagal, circumoesophagal +cithern, cithren +citherns, cithrens +citizenize, citizenise +citizenized, citizenised +citizenizes, citizenises +citizenizing, citizenising +civilianization, civilianisation +civilianizations, civilianisations +civilianize, civilianise +civilianized, civilianised +civilianizes, civilianises +civilianizing, civilianising +civilizable's, civilisable's +civilizable, civilisable +civilizabler, civilisabler +civilizables, civilisables +civilizablest, civilisablest +civilization's, civilisation's +civilization, civilisation +civilizational's, civilisational's +civilizational, civilisational +civilizationaler, civilisationaler +civilizationalest, civilisationalest +civilizationals, civilisationals +civilizations, civilisations +civilizatory, civilisatory +civilize, civilise +civilized, civilised +civilizedness's, civilisedness's +civilizedness, civilisedness +civilizednesses, civilisednesses +civilizer's, civiliser's +civilizer, civiliser +civilizers, civilisers +civilizes, civilises +civilizing, civilising +civvies, civies +civvy's, civie's +civvy, civie +cize, cise +clamor's, clamour's +clamor, clamour +clamored, clamoured +clamorer's, clamourer's +clamorer, clamourer +clamorers, clamourers +clamoring, clamouring +clamorist's, clamourist's +clamorist, clamourist +clamors, clamours +clamorsome, clamoursome +clangor's, clangour's +clangor, clangour +clangored, clangoured +clangoring, clangouring +clangors, clangours +clares, claroes +clarinetist's, clarinettist's +clarinetist, clarinettist +clarinetists, clarinettists +classicalize, classicalise +classicalizes, classicalises +classicization, classicisation +classicize, classicise +classicized, classicised +classicizes, classicises +classicizing, classicising +clausule, clausulae +clericalize, clericalise +clericalizes, clericalises +Clete's, Cloete's +Clete, Cloete +climatize, climatise +climatized, climatised +climatizes, climatises +climatizing, climatising +clower, clowre +Clytie's, Clytiae's +Clytie, Clytiae +coalize, coalise +coalized, coalised +coalizer, coaliser +coalizers, coalisers +coalizes, coalises +coalizing, coalising +cocaine's, cocain's +cocaine, cocain +cocainization's, cocainisation's +cocainization, cocainisation +cocainizations, cocainisations +cocainize, cocainise +cocainized, cocainised +cocainizes, cocainises +cocainizing, cocainising +coconut's, cocoanut's +coconut, cocoanut +coconuts, cocoanuts +cocuiza, cocuisa +Coe's, Cooe's +Coe, Cooe +coeducationalize, coeducationalise +coeducationalizes, coeducationalises +coeloms, coelomata +coenamor, coenamour +coenamored, coenamoured +coenamoring, coenamouring +coenamorment, coenamourment +coenamors, coenamours +coequalize, coequalise +coequalizes, coequalises +cognizability's, cognisability's +cognizability, cognisability +cognizable, cognisable +cognizableness's, cognisableness's +cognizableness, cognisableness +cognizabler, cognisabler +cognizablest, cognisablest +cognizablier, cognisablier +cognizabliest, cognisabliest +cognizably, cognisably +cognizance's, cognisance's +cognizance, cognisance +cognizances, cognisances +cognizant, cognisant +cognizanter, cognisanter +cognizantest, cognisantest +cognize, cognise +cognized, cognised +cognizer's, cogniser's +cognizer, cogniser +cognizers, cognisers +cognizes, cognises +cognizing, cognising +colander's, cullender's +colander, cullender +colanders, cullenders +collateralize, collateralise +collectibilities, collectabilities +collectibility's, collectability's +collectibility, collectability +collectible's, collectable's +collectible, collectable +collectibles, collectables +collectivization's, collectivisation's +collectivization, collectivisation +collectivizations, collectivisations +collectivize, collectivise +collectivized, collectivised +collectivizes, collectivises +collectivizing, collectivising +colloquialize, colloquialise +colloquializes, colloquialises +colloquize, colloquise +colloquized, colloquised +colloquizes, colloquises +colloquizing, colloquising +colonialize, colonialise +colonialized, colonialised +colonializes, colonialises +colonializing, colonialising +colonizabilities, colonisabilities +colonizability's, colonisability's +colonizability, colonisability +colonizable's, colonisable's +colonizable, colonisable +colonizabler, colonisabler +colonizables, colonisables +colonizablest, colonisablest +colonization's, colonisation's +colonization, colonisation +colonizationist's, colonisationist's +colonizationist, colonisationist +colonizationists, colonisationists +colonizations, colonisations +colonize, colonise +colonized, colonised +colonizer's, coloniser's +colonizer, coloniser +colonizers, colonisers +colonizes, colonises +colonizing, colonising +color's, colour's +color, colour +colorabilities, colourabilities +colorability's, colourability's +colorability, colourability +colorable's, colourable's +colorable, colourable +colorableness's, colourableness's +colorableness, colourableness +colorablenesses, colourablenesses +colorabler, colourabler +colorables, colourables +colorablest, colourablest +colorablier, colourablier +colorablies, colourablies +colorabliest, colourabliest +colorably, colourably +coloradoite's, colouradoite's +coloradoite, colouradoite +colorama, colourama +colorant's, colourant's +colorant, colourant +colorants, colourants +colorate, colourate +coloration's, colouration's +coloration, colouration +colorational, colourational +colorationaler, colourationaler +colorationalest, colourationalest +colorationallier, colourationallier +colorationalliest, colourationalliest +colorationally, colourationally +colorations, colourations +colorative, colourative +colorbearer's, colourbearer's +colorbearer, colourbearer +colorblind, colourblind +colorblindness's, colourblindness's +colorblindness, colourblindness +colorblindnesses, colourblindnesses +colorbred, colourbred +colorbreed, colourbreed +colorbreeding, colourbreeding +colorbreeds, colourbreeds +colorcast's, colourcast's +colorcast, colourcast +colorcasted, colourcasted +colorcaster, colourcaster +colorcasters, colourcasters +colorcasting, colourcasting +colorcasts, colourcasts +colorectal, colourectal +colorectitis, colourectitis +colorectostomy, colourectostomy +colored's, coloured's +colored, coloured +coloreds, coloureds +colorer's, colourer's +colorer, colourer +colorers, colourers +colorfast, colourfast +colorfastness's, colourfastness's +colorfastness, colourfastness +colorfastnesses, colourfastnesses +colorful, colourful +colorfuler, colourfuler +colorfulest, colourfulest +colorfullier, colourfullier +colorfulliest, colourfulliest +colorfully, colourfully +colorfulness's, colourfulness's +colorfulness, colourfulness +colorfulnesses, colourfulnesses +colorific's, colourific's +colorific, colourific +colorifics, colourifics +colorimeter's, colourimeter's +colorimeter, colourimeter +colorimeters, colourimeters +colorimetric, colourimetric +colorimetrical, colourimetrical +colorimetrically, colourimetrically +colorimetrics, colourimetrics +colorimetries, colourimetries +colorimetrist's, colourimetrist's +colorimetrist, colourimetrist +colorimetry, colourimetry +coloring's, colouring's +coloring, colouring +colorings, colourings +colorism, colourism +colorisms, colourisms +colorist's, colourist's +colorist, colourist +coloristic, colouristic +coloristically, colouristically +coloristicer, colouristicer +coloristicest, colouristicest +coloristics, colouristics +colorists, colourists +colorless, colourless +colorlesser, colourlesser +colorlessest, colourlessest +colorlesslier, colourlesslier +colorlessliest, colourlessliest +colorlessly, colourlessly +colorlessness's, colourlessness's +colorlessness, colourlessness +colorlessnesses, colourlessnesses +colormaker, colourmaker +colormaking, colourmaking +colorman's, colourman's +colorman, colourman +colormap's, colourmap's +colormap, colourmap +colormaps, colourmaps +colormen, colourmen +coloroto, colouroto +colorpoint, colourpoint +colorpoints, colourpoints +colorrest, colourest +colorrhaphy, colourrhaphy +colors, colours +colortype, colourtype +colorway, colourway +colorways, colourways +colory, coloury +colourisation's, colourization's +colourisation, colourization +colourisations, colourizations +colourise, colourize +colourised, colourized +colourises, colourizes +colourising, colourizing +columnization's, columnisation's +columnization, columnisation +columnizations, columnisations +columnize, columnise +columnized, columnised +columnizes, columnises +columnizing, columnising +comedia, comoedia +commercialization's, commercialisation's +commercialization, commercialisation +commercializations, commercialisations +commercialize, commercialise +commercialized, commercialised +commercializes, commercialises +commercializing, commercialising +commonize, commonise +commonizes, commonises +communalization's, communalisation's +communalization, communalisation +communalizations, communalisations +communalize, communalise +communalized, communalised +communalizer's, communaliser's +communalizer, communaliser +communalizers, communalisers +communalizes, communalises +communalizing, communalising +communization's, communisation's +communization, communisation +communizations, communisations +communize, communise +communized, communised +communizes, communises +communizing, communising +companionize, companionise +companionizes, companionises +compartmentalization's, compartmentalisation's +compartmentalization, compartmentalisation +compartmentalizations, compartmentalisations +compartmentalize, compartmentalise +compartmentalized, compartmentalised +compartmentalizes, compartmentalises +compartmentalizing, compartmentalising +compartmentize, compartmentise +compartmentizes, compartmentises +comper, compoer +complementizer's, complementiser's +complementizer, complementiser +Composite, Compositae +comprehensivization, comprehensivisation +comprehensivizations, comprehensivisations +comprehensivize, comprehensivise +comprehensivized, comprehensivised +comprehensivizes, comprehensivises +comprehensivizing, comprehensivising +comprizable, comprisable +comprizal's, comprisal's +comprizal, comprisal +computerizable, computerisable +computerization's, computerisation's +computerization, computerisation +computerizations, computerisations +computerize, computerise +computerized, computerised +computerizes, computerises +computerizing, computerising +concenter, concentre +concentered, concentred +concentering, concentring +concenters, concentres +conceptualization's, conceptualisation's +conceptualization, conceptualisation +conceptualizations, conceptualisations +conceptualize, conceptualise +conceptualized, conceptualised +conceptualizer, conceptualiser +conceptualizes, conceptualises +conceptualizing, conceptualising +concertist, concretist +concertize, concertise +concertized, concertised +concertizer's, concertiser's +concertizer, concertiser +concertizers, concertisers +concertizes, concertises +concertizing, concertising +conche, conchae +concolor, concolour +concolorous, concolourous +concretization's, concretisation's +concretization, concretisation +concretizations, concretisations +concretize, concretise +concretized, concretised +concretizes, concretises +concretizing, concretising +conditionalize, conditionalise +conditionalizes, conditionalises +coneys, conies +confederatize, confederatise +confederatizes, confederatises +congenialize, congenialise +congenializes, congenialises +conges, congoes +congregationalize, congregationalise +congregationalizes, congregationalises +conjurer's, conjuror's +conjurer, conjuror +conjurers, conjurors +connectable, connectible +connection's, connexion's +connection, connexion +connections, connexions +connector's, connecter's +connector, connecter +connectors, connecters +conservatize, conservatise +conservatized, conservatised +conservatizes, conservatises +conservatizing, conservatising +consonantize, consonantise +consonantized, consonantised +consonantizes, consonantises +consonantizing, consonantising +constitutionalization's, constitutionalisation's +constitutionalization, constitutionalisation +constitutionalizations, constitutionalisations +constitutionalize, constitutionalise +constitutionalized, constitutionalised +constitutionalizes, constitutionalises +constitutionalizing, constitutionalising +containerization's, containerisation's +containerization, containerisation +containerizations, containerisations +containerize, containerise +containerized, containerised +containerizes, containerises +containerizing, containerising +contemporization, contemporisation +contemporize, contemporise +contemporized, contemporised +contemporizes, contemporises +contemporizing, contemporising +contextualization, contextualisation +contextualizations, contextualisations +contextualize, contextualise +contextualized, contextualised +contextualizes, contextualises +contextualizing, contextualising +Continentalize, Continentalise +Continentalizes, Continentalises +controversialize, controversialise +controversializes, controversialises +conundrumize, conundrumise +conundrumizes, conundrumises +convener's, convenor's +convener, convenor +conveners, convenors +conventionalization's, conventionalisation's +conventionalization, conventionalisation +conventionalizations, conventionalisations +conventionalize, conventionalise +conventionalized, conventionalised +conventionalizes, conventionalises +conventionalizing, conventionalising +conventionize, conventionise +conventionizes, conventionises +conversationize, conversationise +conversationizes, conversationises +converter's, convertor's +converter's, convertor's +converter, convertor +converter, convertor +converters, convertors +converters, convertors +conveyor's, conveyer's +conveyor, conveyer +conveyorize, conveyorise +conveyorized, conveyorised +conveyorizes, conveyorises +conveyorizing, conveyorising +conveyors, conveyers +convivialize, convivialise +convivializes, convivialises +cony's, coney's +cony, coney +cookie's, cooky's +cookie, cooky +copolymerization's, copolymerisation's +copolymerization, copolymerisation +copolymerizations, copolymerisations +copolymerize, copolymerise +copolymerized, copolymerised +copolymerizes, copolymerises +copolymerizing, copolymerising +copperization's, copperisation's +copperization, copperisation +copperizations, copperisations +copperize, copperise +copperizes, copperises +copremia, copraemia +copremic, copraemic +coraled, coralled +coranto, couranto +corantoes, courantoes +corantos, courantos +corbe, courbe +corbed, courbed +corbeled, corbelled +corbeling's, corbelling's +corbeling, corbelling +corbelings, corbellings +cordialize, cordialise +cordialized, cordialised +cordializes, cordialises +cordializing, cordialising +corge, courge +Corinthianize's, Corinthianise's +Corinthianize, Corinthianise +corinthianize, corinthianise +corinthianized, corinthianised +Corinthianizes, Corinthianises +corinthianizes, corinthianises +corinthianizing, corinthianising +corporealization's, corporealisation's +corporealization, corporealisation +corporealizations, corporealisations +corporealize, corporealise +corporealized, corporealised +corporealizes, corporealises +corporealizing, corporealising +corsy, coursy +cortage, courtage +cortin, courtin +cortine, cortinae +corve, corvae +coryphe, coryphae +coryphes, coryphaes +cosmeticize, cosmeticise +cosmeticized, cosmeticised +cosmeticizes, cosmeticises +cosmeticizing, cosmeticising +cosmopolitanization's, cosmopolitanisation's +cosmopolitanization, cosmopolitanisation +cosmopolitanizations, cosmopolitanisations +cosmopolitanize, cosmopolitanise +cosmopolitanized, cosmopolitanised +cosmopolitanizes, cosmopolitanises +cosmopolitanizing, cosmopolitanising +cosplendor, cosplendour +coste, costae +costumier, costumire +cottar's, cotter's +cottar, cotter +cottars, cotters +cotte, cottae +cottonization's, cottonisation's +cottonization, cottonisation +cottonizations, cottonisations +cottonize, cottonise +cottonizes, cottonises +cotyle, cotylae +councilor's, councillor's +councilor, councillor +councilors, councillors +councilorship's, councillorship's +councilorship, councillorship +councilorships, councillorships +counseled, counselled +counselee, counsellee +counseling, counselling +counselor's, counsellor's +counselor, counsellor +counselors, counsellors +counselorship's, counsellorship's +counselorship, counsellorship +counselorships, counsellorships +countercolored, countercoloured +countor, countour +cozied, cosied +cozier, cosier +cozies, cosies +coziest, cosiest +cozily, cosily +coziness's, cosiness's +coziness, cosiness +cozy's, cosy's +cozy, cosy +cozying, cosying +craizey, craisey +crambes, cramboes +crawlerize, crawlerise +crawlerizes, crawlerises +creaturize, creaturise +creaturizes, creaturises +crenelate, crenellate +crenelated, crenellated +crenelater, crenellater +crenelates, crenellates +crenelatest, crenellatest +crenelating, crenellating +crenelation's, crenellation's +crenelation, crenellation +crenelations, crenellations +creneled, crenelled +creneling, crenelling +Creolization, Creolisation +creolization, creolisation +creolizations, creolisations +Creolize, Creolise +creolize, creolise +Creolized, Creolised +creolized, creolised +Creolizes, Creolises +creolizes, creolises +Creolizing, Creolising +creolizing, creolising +cretinization's, cretinisation's +cretinization, cretinisation +cretinizations, cretinisations +cretinize, cretinise +cretinized, cretinised +cretinizes, cretinises +cretinizing, cretinising +criminalization's, criminalisation's +criminalization, criminalisation +criminalizations, criminalisations +criminalize, criminalise +criminalized, criminalised +criminalizes, criminalises +criminalizing, criminalising +criticizable's, criticisable's +criticizable, criticisable +criticizabler, criticisabler +criticizables, criticisables +criticizablest, criticisablest +criticize, criticise +criticized, criticised +criticizer's, criticiser's +criticizer, criticiser +criticizers, criticisers +criticizes, criticises +criticizing, criticising +criticizinglier, criticisinglier +criticizinglies, criticisinglies +criticizingliest, criticisingliest +criticizingly, criticisingly +crofterization's, crofterisation's +crofterization, crofterisation +crofterizations, crofterisations +crofterize, crofterise +crofterizes, crofterises +crosier's, crozier's +crosier, crozier +crosiers, croziers +crueler, crueller +cruelest, cruellest +cruelize, cruelise +cruelizes, cruelises +cryesthesia, cryaesthesia +cryoanesthesia, cryoanaesthesia +cryptanalyzes, cryptanalyses +cryptesthesia, cryptaesthesia +cryptesthesias, cryptaesthesias +cryptesthetic, cryptaesthetic +crystalize, crystallise +crystalized, crystallised +crystalizes, crystallises +crystalizing, crystallising +crystallizabilities, crystallisabilities +crystallizability's, crystallisability's +crystallizability, crystallisability +crystallizable's, crystallisable's +crystallizable, crystallisable +crystallizabler, crystallisabler +crystallizables, crystallisables +crystallizablest, crystallisablest +crystallization's, crystallisation's +crystallization, crystallisation +crystallizations, crystallisations +crystallizer, crystalliser +crystallizers, crystallisers +Cubanize's, Cubanise's +Cubanize, Cubanise +Cubanizes, Cubanises +cuckoldize, cuckoldise +cuckoldized, cuckoldised +cuckoldizes, cuckoldises +cuckoldizing, cuckoldising +cudgeled, cudgelled +cudgeler's, cudgeller's +cudgeler, cudgeller +cudgelers, cudgellers +cudgeling, cudgelling +cudgelings, cudgellings +culicide, culicidae +culturization's, culturisation's +culturization, culturisation +culturizations, culturisations +culturize, culturise +culturizes, culturises +cupelation, cupellation +cupeled, cupelled +cupeler's, cupeller's +cupeler, cupeller +cupelers, cupellers +cupeling, cupelling +cupule, cupulae +curarize, curarise +curarized, curarised +curarizes, curarises +curarizing, curarising +curatize, curatise +curatizes, curatises +curricularization's, curricularisation's +curricularization, curricularisation +curricularizations, curricularisations +curricularize, curricularise +curricularizes, curricularises +curtsied, curtseyed +curtsies, curtseys +curtsy's, curtsey's +curtsy, curtsey +curtsying, curtseying +curvaceous, curvacious +customizable, customisable +customization's, customisation's +customization, customisation +customizations, customisations +customize, customise +customized, customised +customizer, customiser +customizers, customisers +customizes, customises +customizing, customising +cutesy, cutesie +cuticolor, cuticolour +cutinization's, cutinisation's +cutinization, cutinisation +cutinizations, cutinisations +cutinize, cutinise +cutinized, cutinised +cutinizes, cutinises +cutinizing, cutinising +cutization's, cutisation's +cutization, cutisation +cutizations, cutisations +cutlass's, cutlas's +cutlass, cutlas +cutlasses, cutlases +cuve, cuvae +Cyanee's, Cyaneae's +Cyanee, Cyaneae +cyanize, cyanise +cyanized, cyanised +cyanizes, cyanises +cyanizing, cyanising +cyanomethemoglobin, cyanomethaemoglobin +cyclization's, cyclisation's +cyclization, cyclisation +cyclizations, cyclisations +cyclize, cyclise +cyclized, cyclised +cyclizes, cyclises +cyclizing, cyclising +cyclopedia's, cyclopaedia's +cyclopedia, cyclopaedia +cyclopedias, cyclopaedias +cyclopedic, cyclopaedic +cyclopedically, cyclopaedically +cyclopedist's, cyclopaedist's +cyclopedist, cyclopaedist +cyme, cymae +Czechization's, Czechisation's +Czechization, Czechisation +Czechizations, Czechisations +d'oh's, doh's +d'oh, doh +d'ohs, dohs +danaide, danaidae +dandizette, dandisette +dandyize, dandyise +dandyizes, dandyises +dane, danae +Danization's, Danisation's +Danization, Danisation +Danizations, Danisations +Danize's, Danise's +Danize, Danise +Danizes, Danises +Darwinize's, Darwinise's +Darwinize, Darwinise +Darwinizes, Darwinises +dastardize, dastardise +dastardizes, dastardises +deaconize, deaconise +deaconizes, deaconises +deadrize, deadrise +dealcoholize, dealcoholise +dealcoholized, dealcoholised +dealcoholizes, dealcoholises +dealcoholizing, dealcoholising +deaminize, deaminise +deary's, dearie's +deary, dearie +decagram's, decagramme's +decagram, decagramme +decagrams, decagrammes +decaliter, decalitre +decaliter, decalitre's +decaliter, decalitres +decameter, decametre +decameter, decametre's +decameter, decametres +decapitalization, decapitalisation +decapitalizations, decapitalisations +decapitalize, decapitalise +decapitalized, decapitalised +decapitalizes, decapitalises +decapitalizing, decapitalising +decarbonization's, decarbonisation's +decarbonization, decarbonisation +decarbonizations, decarbonisations +decarbonize, decarbonise +decarbonized, decarbonised +decarbonizer's, decarboniser's +decarbonizer, decarboniser +decarbonizers, decarbonisers +decarbonizes, decarbonises +decarbonizing, decarbonising +decarburization's, decarburisation's +decarburization, decarburisation +decarburizations, decarburisations +decarburize, decarburise +decarburized, decarburised +decarburizes, decarburises +decarburizing, decarburising +decasualization's, decasualisation's +decasualization, decasualisation +decasualizations, decasualisations +decasualize, decasualise +decasualized, decasualised +decasualizing, decasualising +decenters, decentres +decentralization's, decentralisation's +decentralization, decentralisation +decentralizationist, decentralisationist +decentralizations, decentralisations +decentralize, decentralise +decentralized, decentralised +decentralizes, decentralises +decentralizing, decentralising +decerebrize, decerebrise +decerebrized, decerebrised +decerebrizes, decerebrises +decerebrizing, decerebrising +dechristianization, dechristianisation +dechristianizations, dechristianisations +dechristianize, dechristianise +dechristianized, dechristianised +dechristianizes, dechristianises +dechristianizing, dechristianising +decigram's, decigramme's +decigram, decigramme +decigrams, decigrammes +deciliter's, decilitre's +deciliter, decilitre +deciliters, decilitres +decimalization's, decimalisation's +decimalization, decimalisation +decimalizations, decimalisations +decimalize, decimalise +decimalized, decimalised +decimalizes, decimalises +decimalizing, decimalising +decimeter's, decimetre's +decimeter, decimetre +decimeters, decimetres +decivilize, decivilise +decivilized, decivilised +decivilizes, decivilises +decivilizing, decivilising +decolonization's, decolonisation's +decolonization, decolonisation +decolonizations, decolonisations +decolonize, decolonise +decolonized, decolonised +decolonizes, decolonises +decolonizing, decolonising +decolor, decolour +decolorant, decolourant +decolorants, decolourants +decolorate, decolourate +decolorated, decolourated +decolorates, decolourates +decoloration's, decolouration's +decoloration, decolouration +decolorations, decolourations +decolored, decoloured +decolorimeter, decolourimeter +decoloring, decolouring +decolors, decolours +decolourisation's, decolourization's +decolourisation, decolourization +decolourisations, decolourizations +decolourise, decolourize +decolourised, decolourized +decolouriser's, decolourizer's +decolouriser, decolourizer +decolourisers, decolourizers +decolourises, decolourizes +decolourising, decolourizing +decriminalization's, decriminalisation's +decriminalization, decriminalisation +decriminalizations, decriminalisations +decriminalize, decriminalise +decriminalized, decriminalised +decriminalizes, decriminalises +decriminalizing, decriminalising +dedal, daedal +dedalian, daedalian +dedramatize, dedramatise +dedramatized, dedramatised +dedramatizes, dedramatises +dedramatizing, dedramatising +deemphasization's, deemphasisation's +deemphasization, deemphasisation +deemphasize, deemphasise +deemphasized, deemphasised +deemphasizer, deemphasiser +deemphasizers, deemphasisers +deemphasizes, deemphasises +deemphasizing, deemphasising +deenergize, deenergise +deenergized, deenergised +deenergizer, deenergiser +deenergizes, deenergises +deenergizing, deenergising +defedation, defoedation +defeminization's, defeminisation's +defeminization, defeminisation +defeminize, defeminise +defeminized, defeminised +defeminizes, defeminises +defeminizing, defeminising +defense's, defence's +defense, defence +defensed, defenced +defenseless, defenceless +defenselesser, defencelesser +defenselessest, defencelessest +defenselesslier, defencelesslier +defenselessliest, defencelessliest +defenselessly, defencelessly +defenselessness's, defencelessness's +defenselessness, defencelessness +defenselessnesses, defencelessnesses +defenseman's, defenceman's +defenseman, defenceman +defensemen, defencemen +defenses, defences +defensing, defencing +defeudalize, defeudalise +defeudalized, defeudalised +defeudalizes, defeudalises +defeudalizing, defeudalising +defibrinize, defibrinise +defibrinized, defibrinised +defibrinizes, defibrinises +defibrinizing, defibrinising +definitization's, definitisation's +definitization, definitisation +definitizations, definitisations +definitize, definitise +definitized, definitised +definitizes, definitises +definitizing, definitising +deflectionization's, deflectionisation's +deflectionization, deflectionisation +deflectionizations, deflectionisations +deflectionize, deflectionise +deflectionizes, deflectionises +deformalize, deformalise +defunctionalization's, defunctionalisation's +defunctionalization, defunctionalisation +defunctionalizations, defunctionalisations +defunctionalize, defunctionalise +defunctionalizes, defunctionalises +deglycerolized, deglycerolised +dehumanization's, dehumanisation's +dehumanization, dehumanisation +dehumanizations, dehumanisations +dehumanize, dehumanise +dehumanized, dehumanised +dehumanizes, dehumanises +dehumanizing, dehumanising +dehydrogenization's, dehydrogenisation's +dehydrogenization, dehydrogenisation +dehydrogenize, dehydrogenise +dehydrogenized, dehydrogenised +dehydrogenizer's, dehydrogeniser's +dehydrogenizer, dehydrogeniser +dehydrogenizing, dehydrogenising +dehypnotization's, dehypnotisation's +dehypnotization, dehypnotisation +dehypnotizations, dehypnotisations +dehypnotize, dehypnotise +dehypnotized, dehypnotised +dehypnotizes, dehypnotises +dehypnotizing, dehypnotising +deindustrialization's, deindustrialisation's +deindustrialization, deindustrialisation +deindustrializations, deindustrialisations +deindustrialize, deindustrialise +deindustrialized, deindustrialised +deindustrializes, deindustrialises +deindustrializing, deindustrialising +deionization's, deionisation's +deionization, deionisation +deionize, deionise +deionized, deionised +deionizes, deionises +deionizing, deionising +delimitize, delimitise +delimitizes, delimitises +delocalization's, delocalisation's +delocalization, delocalisation +delocalizations, delocalisations +delocalize, delocalise +delocalized, delocalised +delocalizes, delocalises +delocalizing, delocalising +deluster, delustre +demagnetizable's, demagnetisable's +demagnetizable, demagnetisable +demagnetizabler, demagnetisabler +demagnetizables, demagnetisables +demagnetizablest, demagnetisablest +demagnetization's, demagnetisation's +demagnetization, demagnetisation +demagnetizations, demagnetisations +demagnetize, demagnetise +demagnetized, demagnetised +demagnetizer's, demagnetiser's +demagnetizer, demagnetiser +demagnetizers, demagnetisers +demagnetizes, demagnetises +demagnetizing, demagnetising +demagogue's, demagog's +demagogue, demagog +demagogued, demagoged +demagogueri, demagogri +demagogueris, demagogris +demagoguery, demagogry +demagogues, demagogs +demagoguing, demagoging +demasculinization's, demasculinisation's +demasculinization, demasculinisation +demasculinize, demasculinise +demasculinized, demasculinised +demasculinizing, demasculinising +dematerialization's, dematerialisation's +dematerialization, dematerialisation +dematerializations, dematerialisations +dematerialize, dematerialise +dematerialized, dematerialised +dematerializes, dematerialises +dematerializing, dematerialising +demeanor's, demeanour's +demeanor, demeanour +demeanors, demeanours +demilitarization's, demilitarisation's +demilitarization, demilitarisation +demilitarizations, demilitarisations +demilitarize, demilitarise +demilitarized, demilitarised +demilitarizes, demilitarises +demilitarizing, demilitarising +demiluster, demilustre +demineralization's, demineralisation's +demineralization, demineralisation +demineralizations, demineralisations +demineralize, demineralise +demineralized, demineralised +demineralizer, demineraliser +demineralizes, demineralises +demineralizing, demineralising +demobilization's, demobilisation's +demobilization, demobilisation +demobilizations, demobilisations +demobilize, demobilise +demobilized, demobilised +demobilizes, demobilises +demobilizing, demobilising +democratization's, democratisation's +democratization, democratisation +democratizations, democratisations +democratize, democratise +democratized, democratised +democratizer, democratiser +democratizes, democratises +democratizing, democratising +demonetization's, demonetisation's +demonetization, demonetisation +demonetizations, demonetisations +demonetize, demonetise +demonetized, demonetised +demonetizes, demonetises +demonetizing, demonetising +demonian, daemonian +demonization, demonisation +demonize, demonise +demonized, demonised +demonizes, demonises +demonizing, demonising +demoralization's, demoralisation's +demoralization, demoralisation +demoralizations, demoralisations +demoralize, demoralise +demoralized, demoralised +demoralizer's, demoraliser's +demoralizer, demoraliser +demoralizers, demoralisers +demoralizes, demoralises +demoralizing, demoralising +demoralizingly, demoralisingly +demutualization, demutualisation +demutualizations, demutualisations +demutualize, demutualise +demutualized, demutualised +demutualizes, demutualises +demutualizing, demutualising +demythologization's, demythologisation's +demythologization, demythologisation +demythologizations, demythologisations +demythologize, demythologise +demythologized, demythologised +demythologizer, demythologiser +demythologizes, demythologises +demythologizing, demythologising +denationalization's, denationalisation's +denationalization, denationalisation +denationalizations, denationalisations +denationalize, denationalise +denationalized, denationalised +denationalizes, denationalises +denationalizing, denationalising +denaturalization's, denaturalisation's +denaturalization, denaturalisation +denaturalizations, denaturalisations +denaturalize, denaturalise +denaturalized, denaturalised +denaturalizes, denaturalises +denaturalizing, denaturalising +denaturization's, denaturisation's +denaturization, denaturisation +denaturizations, denaturisations +denaturize, denaturise +denaturized, denaturised +denaturizer's, denaturiser's +denaturizer, denaturiser +denaturizers, denaturisers +denaturizes, denaturises +denaturizing, denaturising +denicotinize, denicotinise +denizenize, denizenise +denizenizes, denizenises +denominationalize, denominationalise +denominationalizes, denominationalises +denormalize, denormalise +dentalization's, dentalisation's +dentalization, dentalisation +dentalizations, dentalisations +dentalize, dentalise +dentalized, dentalised +dentalizes, dentalises +dentalizing, dentalising +dentin's, dentine's +dentin, dentine +dentins, dentines +denuclearization's, denuclearisation's +denuclearization, denuclearisation +denuclearizations, denuclearisations +denuclearize, denuclearise +denuclearized, denuclearised +denuclearizes, denuclearises +denuclearizing, denuclearising +deodorization's, deodorisation's +deodorization, deodorisation +deodorizations, deodorisations +deodorize, deodorise +deodorized, deodorised +deodorizer's, deodoriser's +deodorizer, deodoriser +deodorizers, deodorisers +deodorizes, deodorises +deodorizing, deodorising +deoxidization's, deoxidisation's +deoxidization, deoxidisation +deoxidizations, deoxidisations +deoxidize, deoxidise +deoxidized, deoxidised +deoxidizer's, deoxidiser's +deoxidizer, deoxidiser +deoxidizers, deoxidisers +deoxidizes, deoxidises +deoxidizing, deoxidising +deoxygenize, deoxygenise +deoxygenized, deoxygenised +deoxygenizes, deoxygenises +deoxygenizing, deoxygenising +departmentalization's, departmentalisation's +departmentalization, departmentalisation +departmentalizations, departmentalisations +departmentalize, departmentalise +departmentalized, departmentalised +departmentalizes, departmentalises +departmentalizing, departmentalising +departmentization's, departmentisation's +departmentization, departmentisation +departmentizations, departmentisations +departmentize, departmentise +departmentizes, departmentises +depauperization, depauperisation +depauperize, depauperise +depauperized, depauperised +depauperizes, depauperises +depauperizing, depauperising +dependence's, dependance's +dependence, dependance +dependences, dependances +depersonalization's, depersonalisation's +depersonalization, depersonalisation +depersonalizations, depersonalisations +depersonalize, depersonalise +depersonalized, depersonalised +depersonalizes, depersonalises +depersonalizing, depersonalising +depolarization's, depolarisation's +depolarization, depolarisation +depolarizations, depolarisations +depolarize, depolarise +depolarized, depolarised +depolarizer's, depolariser's +depolarizer, depolariser +depolarizers, depolarisers +depolarizes, depolarises +depolarizing, depolarising +depoliticization, depoliticisation +depoliticize, depoliticise +depoliticized, depoliticised +depoliticizes, depoliticises +depoliticizing, depoliticising +depolymerization's, depolymerisation's +depolymerization, depolymerisation +depolymerizations, depolymerisations +depolymerize, depolymerise +depolymerized, depolymerised +depolymerizes, depolymerises +depolymerizing, depolymerising +depressurization's, depressurisation's +depressurization, depressurisation +depressurizations, depressurisations +depressurize, depressurise +depressurized, depressurised +depressurizes, depressurises +depressurizing, depressurising +deputationize, deputationise +deputationizes, deputationises +deputization, deputisation +deputize, deputise +deputized, deputised +deputizes, deputises +deputizing, deputising +deracialize, deracialise +deracialized, deracialised +deracializes, deracialises +deracializing, deracialising +derationalization's, derationalisation's +derationalization, derationalisation +derationalizations, derationalisations +derationalize, derationalise +derationalizes, derationalises +deratization's, deratisation's +deratization, deratisation +deratizations, deratisations +derealization, derealisation +derecognize, derecognise +derecognized, derecognised +derecognizes, derecognises +derecognizing, derecognising +deregulationize, deregulationise +deregulationizes, deregulationises +dereligionize, dereligionise +dereligionized, dereligionised +dereligionizes, dereligionises +dereligionizing, dereligionising +derk, drek +dermatorrhea, dermatorrhoea +Derr's, Drer's +Derr, Drer +desacralization, desacralisation +desacralizations, desacralisations +desacralize, desacralise +desacralized, desacralised +desacralizes, desacralises +desacralizing, desacralising +desalinization's, desalinisation's +desalinization, desalinisation +desalinizations, desalinisations +desalinize, desalinise +desalinized, desalinised +desalinizes, desalinises +desalinizing, desalinising +desensitization's, desensitisation's +desensitization, desensitisation +desensitizations, desensitisations +desensitize, desensitise +desensitized, desensitised +desensitizer's, desensitiser's +desensitizer, desensitiser +desensitizers, desensitisers +desensitizes, desensitises +desensitizing, desensitising +desertization, desertisation +desertizations, desertisations +desexualization's, desexualisation's +desexualization, desexualisation +desexualizations, desexualisations +desexualize, desexualise +desexualized, desexualised +desexualizes, desexualises +desexualizing, desexualising +desilverization, desilverisation +desilverizations, desilverisations +desilverize, desilverise +desilverized, desilverised +desilverizes, desilverises +desilverizing, desilverising +despiritualization, despiritualisation +despiritualize, despiritualise +despotize, despotise +despotizes, despotises +destabilization, destabilisation +destabilize, destabilise +destabilized, destabilised +destabilizer, destabiliser +destabilizers, destabilisers +destabilizes, destabilises +destabilizing, destabilising +destalinize, destalinise +destalinized, destalinised +destalinizes, destalinises +destalinizing, destalinising +desterilize, desterilise +destigmatization, destigmatisation +desulfurizer's, desulfuriser's +desulfurizer, desulfuriser +desulphurisation's, desulphurization's +desulphurisation, desulphurization +desulphurisations, desulphurizations +desulphurise, desulphurize +desulphurised, desulphurized +desulphurises, desulphurizes +desulphurising, desulphurizing +desulphurizer, desulphuriser +desulphurizers, desulphurisers +desynchronization's, desynchronisation's +desynchronization, desynchronisation +desynchronizations, desynchronisations +desynchronize, desynchronise +desynchronized, desynchronised +desynchronizes, desynchronises +desynchronizing, desynchronising +detribalization's, detribalisation's +detribalization, detribalisation +detribalizations, detribalisations +detribalize, detribalise +detribalized, detribalised +detribalizes, detribalises +detribalizing, detribalising +deva, daeva +devalorization, devalorisation +devalorizations, devalorisations +devalorize, devalorise +devalorized, devalorised +devalorizes, devalorises +devalorizing, devalorising +develed, develled +develing, develling +deviled, devilled +deviling, devilling +devilize, devilise +devilizes, devilises +devitalization's, devitalisation's +devitalization, devitalisation +devitalizations, devitalisations +devitalize, devitalise +devitalized, devitalised +devitalizes, devitalises +devitalizing, devitalising +devocalization's, devocalisation's +devocalization, devocalisation +devocalize, devocalise +devocalized, devocalised +devocalizes, devocalises +devocalizing, devocalising +devolatilization's, devolatilisation's +devolatilization, devolatilisation +devolatilizations, devolatilisations +devolatilize, devolatilise +devolatilized, devolatilised +devolatilizes, devolatilises +devolatilizing, devolatilising +dexterous, dextrous +dexterously, dextrously +dexterousness, dextrousness +diabolization's, diabolisation's +diabolization, diabolisation +diabolizations, diabolisations +diabolize, diabolise +diabolized, diabolised +diabolizes, diabolises +diabolizing, diabolising +diagonalizable, diagonalisable +diagonalization, diagonalisation +diagonalize, diagonalise +diagonalized, diagonalised +diagonalizes, diagonalises +diagonalizing, diagonalising +dialecticize, dialecticise +dialecticizes, dialecticises +dialed, dialled +dialer's, dialler's +dialer, dialler +dialers, diallers +dialing's, dialling's +dialing, dialling +dialings, diallings +dialist's, diallist's +dialist, diallist +dialists, diallists +dialogize, dialogise +dialogized, dialogised +dialogizes, dialogises +dialogizing, dialogising +dialogue's, dialog's +dialogue, dialog +dialogued, dialogged +dialogues, dialogs +dialoguing, dialogging +dialyzabilities, dialysabilities +dialyzability's, dialysability's +dialyzability, dialysability +dialyzable's, dialysable's +dialyzable, dialysable +dialyzabler, dialysabler +dialyzables, dialysables +dialyzablest, dialysablest +dialyzate's, dialysate's +dialyzate, dialysate +dialyzates, dialysates +dialyzation's, dialysation's +dialyzation, dialysation +dialyze, dialyse +dialyzed, dialysed +dialyzer's, dialyser's +dialyzer, dialyser +dialyzers, dialysers +dialyzes, dialyses +dialyzing, dialysing +diamondize, diamondise +diamondizes, diamondises +diarize, diarise +diarized, diarised +diarizes, diarises +diarizing, diarising +diarrhea's, diarrhoea's +diarrhea, diarrhoea +diarrheal, diarrhoeal +diarrhealer, diarrhoealer +diarrhealest, diarrhoealest +diarrheas, diarrhoeas +diarrheic, diarrhoeic +diarrheicer, diarrhoeicer +diarrheicest, diarrhoeicest +diarrhetic, diarrhoetic +diarrheticer, diarrhoeticer +diarrheticest, diarrhoeticest +dichotomization's, dichotomisation's +dichotomization, dichotomisation +dichotomizations, dichotomisations +dichotomize, dichotomise +dichotomized, dichotomised +dichotomizes, dichotomises +dichotomizing, dichotomising +dickeys, dickies +dicky's, dickie's +dicky, dickie +diene, diaene +dieretic, diaeretic +dieselization's, dieselisation's +dieselization, dieselisation +dieselizations, dieselisations +dieselize, dieselise +dieselized, dieselised +dieselizes, dieselises +dieselizing, dieselising +diestrous, dioestrous +diestrual, dioestrual +diestrum, dioestrum +diestrus's, dioestrus's +diestrus, dioestrus +diestruses, dioestruses +diethylstilbestrol's, diethylstilboestrol's +diethylstilbestrol, diethylstilboestrol +dietitian's, dietician's +dietitian, dietician +dietitians, dieticians +differentialize, differentialise +differentializes, differentialises +digitalization's, digitalisation's +digitalization, digitalisation +digitalizations, digitalisations +digitalize, digitalise +digitalized, digitalised +digitalizes, digitalises +digitalizing, digitalising +digitization's, digitisation's +digitization, digitisation +digitizations, digitisations +digitize, digitise +digitized, digitised +digitizer's, digitiser's +digitizer, digitiser +digitizers, digitisers +digitizes, digitises +digitizing, digitising +dike's, dyke's +dike, dyke +diked, dyked +dikes, dykes +diking, dyking +dimensionalization, dimensionalisation +dimensionalize, dimensionalise +dimensionalized, dimensionalised +dimensionalizes, dimensionalises +dimensionalizing, dimensionalising +dimerization's, dimerisation's +dimerization, dimerisation +dimerizations, dimerisations +dimerize, dimerise +dimerized, dimerised +dimerizes, dimerises +dimerizing, dimerising +diminutivize, diminutivise +diminutivizes, diminutivises +dingoes, dingos +dioecious, diecious +dioeciously, dieciously +dionize, dionise +diopter's, dioptre's +diopter, dioptre +diopters, dioptres +diphthongization's, diphthongisation's +diphthongization, diphthongisation +diphthongizations, diphthongisations +diphthongize, diphthongise +diphthongized, diphthongised +diphthongizes, diphthongises +diphthongizing, diphthongising +diple, diploe +diploe's, diploae's +diploe, diploae +diplomatize, diplomatise +diplomatized, diplomatised +diplomatizes, diplomatises +diplomatizing, diplomatising +dis's, diss's +dis, diss +disangularize, disangularise +disangularizes, disangularises +disauthorize, disauthorise +disauthorized, disauthorised +disauthorizes, disauthorises +disauthorizing, disauthorising +disboweled, disbowelled +disboweling, disbowelling +discanonization's, discanonisation's +discanonization, discanonisation +discanonizations, discanonisations +discanonize, discanonise +discanonizes, discanonises +discolor's, discolour's +discolor, discolour +discolorate, discolourate +discolorated, discolourated +discoloration's, discolouration's +discoloration, discolouration +discolorations, discolourations +discolored's, discoloured's +discolored, discoloured +discoloredness, discolouredness +discoloreds, discoloureds +discoloring, discolouring +discolorment's, discolourment's +discolorment, discolourment +discolorments, discolourments +discolors, discolours +discolourisation's, discolourization's +discolourisation, discolourization +discolourisations, discolourizations +discretization, discretisation +discretize, discretise +disdenominationalize, disdenominationalise +disdenominationalizes, disdenominationalises +disdiplomatize, disdiplomatise +disdiplomatizes, disdiplomatises +disemboweled, disembowelled +disemboweling, disembowelling +disequalize's, disequalise's +disequalize, disequalise +disequalizer, disequaliser +disequalizers, disequalisers +disequalizes, disequalises +disfavor's, disfavour's +disfavor, disfavour +disfavored, disfavoured +disfavorer's, disfavourer's +disfavorer, disfavourer +disfavorers, disfavourers +disfavoring, disfavouring +disfavors, disfavours +dishabille's, deshabille's +dishabille, deshabille +dishabilles, deshabilles +disharmonize, disharmonise +disharmonized, disharmonised +disharmonizes, disharmonises +disharmonizing, disharmonising +disheveled, dishevelled +disheveler, disheveller +disheveling, dishevelling +dishonor's, dishonour's +dishonor, dishonour +dishonorable's, dishonourable's +dishonorable, dishonourable +dishonorableness's, dishonourableness's +dishonorableness, dishonourableness +dishonorablenesses, dishonourablenesses +dishonorabler, dishonourabler +dishonorables, dishonourables +dishonorablest, dishonourablest +dishonorablier, dishonourablier +dishonorablies, dishonourablies +dishonorabliest, dishonourabliest +dishonorably, dishonourably +dishonorary, dishonourary +dishonored, dishonoured +dishonorer's, dishonourer's +dishonorer, dishonourer +dishonorers, dishonourers +dishonoring, dishonouring +dishonors, dishonours +dishumanize, dishumanise +dishumanizes, dishumanises +dishumor, dishumour +dishumored, dishumoured +dishumors, dishumours +disillusionize, disillusionise +disillusionized, disillusionised +disillusionizer's, disillusioniser's +disillusionizer, disillusioniser +disillusionizers, disillusionisers +disillusionizes, disillusionises +disillusionizing, disillusionising +disindividualize, disindividualise +disindividualized, disindividualised +disindividualizes, disindividualises +disindividualizing, disindividualising +disindustrialization, disindustrialisation +disindustrializations, disindustrialisations +disindustrialize, disindustrialise +disindustrialized, disindustrialised +disindustrializes, disindustrialises +disindustrializing, disindustrialising +disluster, dislustre +dismalize, dismalise +dismalizes, dismalises +disnaturalization's, disnaturalisation's +disnaturalization, disnaturalisation +disnaturalizations, disnaturalisations +disnaturalize, disnaturalise +disnaturalized, disnaturalised +disnaturalizes, disnaturalises +disnaturalizing, disnaturalising +disorganization's, disorganisation's +disorganization, disorganisation +disorganizations, disorganisations +disorganize, disorganise +disorganized, disorganised +disorganizer's, disorganiser's +disorganizer, disorganiser +disorganizers, disorganisers +disorganizes, disorganises +disorganizing, disorganising +disozonize, disozonise +disozonizes, disozonises +dispapalize, dispapalise +dispapalizes, dispapalises +dispatch's, despatch's +dispatch, despatch +dispatched, despatched +dispatches, despatches +dispatching, despatching +dispauperize, dispauperise +dispauperized, dispauperised +dispauperizes, dispauperises +dispauperizing, dispauperising +dispersonalize, dispersonalise +dispersonalizes, dispersonalises +dispopularize, dispopularise +dispopularizes, dispopularises +disrealize, disrealise +disrealizes, disrealises +disscepter's, dissceptre's +disscepter, dissceptre +disscepters, dissceptres +disseize, disseise +disseized, disseised +disseizee, disseisee +disseizes, disseises +disseizin's, disseisin's +disseizin, disseisin +disseizing, disseising +disseizins, disseisins +disseizor's, disseisor's +disseizor, disseisor +disseizors, disseisors +dissensualize, dissensualise +dissensualizes, dissensualises +disses, dises +dissocialize, dissocialise +dissocialized, dissocialised +dissocializes, dissocialises +dissocializing, dissocialising +dissyllabize, dissyllabise +dissyllabized, dissyllabised +dissyllabizing, dissyllabising +dissympathize, dissympathise +dissympathizes, dissympathises +distill, distil +distills, distils +disutilize, disutilise +disutilizes, disutilises +ditsier, ditzier +ditsy, ditzy +ditziness's, ditsiness's +ditziness, ditsiness +ditzinesses, ditsinesses +diversicolored, diversicoloured +divinister, divinistre +divinization's, divinisation's +divinization, divinisation +divinizations, divinisations +divinize, divinise +divinized, divinised +divinizes, divinises +divinizing, divinising +divisionalization, divisionalisation +divisionalizations, divisionalisations +djellaba's, djellabah's +djellaba, djellabah +djellabas, djellabahes +djinni's, djinn's +djinni, djinn +Docete's, Docetae's +Docete, Docetae +dockization's, dockisation's +dockization, dockisation +dockizations, dockisations +dockize, dockise +dockized, dockised +dockizes, dockises +dockizing, dockising +doctorization's, doctorisation's +doctorization, doctorisation +doctorizations, doctorisations +doctorize, doctorise +doctorizes, doctorises +doctrinization's, doctrinisation's +doctrinization, doctrinisation +doctrinizations, doctrinisations +doctrinize, doctrinise +doctrinizes, doctrinises +documentarization, documentarisation +documentarizations, documentarisations +documentarize, documentarise +documentarized, documentarised +documentarizes, documentarises +documentarizing, documentarising +documentize, documentise +documentizes, documentises +Dodonean's, Dodonaean's +Dodonean, Dodonaean +doggy's, doggie's +doggy, doggie +dogie's, dogy's +dogie, dogy +dogmatization's, dogmatisation's +dogmatization, dogmatisation +dogmatizations, dogmatisations +dogmatize, dogmatise +dogmatized, dogmatised +dogmatizer's, dogmatiser's +dogmatizer, dogmatiser +dogmatizers, dogmatisers +dogmatizes, dogmatises +dogmatizing, dogmatising +dognaped, dognapped +dognaping, dognapping +dollarization, dollarisation +dollarizations, dollarisations +dolomitization's, dolomitisation's +dolomitization, dolomitisation +dolomitizations, dolomitisations +dolomitize, dolomitise +dolomitized, dolomitised +dolomitizes, dolomitises +dolomitizing, dolomitising +dolor's, dolour's +dolor, dolour +dolors, dolours +domesticize, domesticise +domesticized, domesticised +domesticizes, domesticises +domesticizing, domesticising +domine, dominae +dopey, dopy +dora, doura +Doricize's, Doricise's +Doricize, Doricise +Doricizes, Doricises +dorize, dorise +dorized, dorised +dorizes, dorises +dorizing, dorising +doryline, dorylinae +doughnut's, donut's +doughnut, donut +doughnuts, donuts +doweled, dowelled +doweler, doweller +doweling, dowelling +downdraft's, downdraught's +downdraft, downdraught +dracena, dracaena +dracenaceae, dracaenaceae +dracenas, dracaenas +draftier, draughtier +draftiest, draughtiest +draftilier, draughtilier +draftiliest, draughtiliest +draftily, draughtily +draftiness's, draughtiness's +draftiness, draughtiness +draftinesses, draughtinesses +draftsman's, draughtsman's +draftsman, draughtsman +draftsmanship's, draughtsmanship's +draftsmanship, draughtsmanship +draftsmanships, draughtsmanships +draftsmen, draughtsmen +draftsperson, draughtsperson +draftswoman's, draughtswoman's +draftswoman, draughtswoman +draftswomen, draughtswomen +drafty, draughty +dragonize, dragonise +dragonized, dragonised +dragonizes, dragonises +dragonizing, dragonising +dramatizable's, dramatisable's +dramatizable, dramatisable +dramatizabler, dramatisabler +dramatizables, dramatisables +dramatizablest, dramatisablest +dramatization's, dramatisation's +dramatization, dramatisation +dramatizations, dramatisations +dramatize, dramatise +dramatized, dramatised +dramatizer's, dramatiser's +dramatizer, dramatiser +dramatizers, dramatisers +dramatizes, dramatises +dramatizing, dramatising +dreamed, dreamt +driveled, drivelled +driveler's, driveller's +driveler, driveller +drivelers, drivellers +driveling, drivelling +drought's, drouth's +drought, drouth +droughtiness, drouthiness +droughts, drouthes +droughty, drouthy +dryly, drily +dualization's, dualisation's +dualization, dualisation +dualizations, dualisations +dualize, dualise +dualizes, dualises +ductilize, ductilise +ductilizes, ductilises +dueled, duelled +dueler's, dueller's +dueler, dueller +duelers, duellers +dueling, duelling +duelings, duellings +duelist's, duellist's +duelist, duellist +duelists, duellists +duer, dure +dullness's, dulness's +dullness, dulness +dullnesses, dulnesses +dumbfound, dumfound +dumbfounded, dumfounded +dumbfounding, dumfounding +dumbfoundingly, dumfoundingly +dumbfounds, dumfounds +dumpster's, Dumpster's +dumpster, Dumpster +dumpsters, Dumpsters +dynamize, dynamise +dynamized, dynamised +dynamizes, dynamises +dynamizing, dynamising +dysesthesia, dysaesthesia +dysesthetic, dysaesthetic +dysmenorrhea's, dysmenorrhoea's +dysmenorrhea, dysmenorrhoea +dysmenorrheal, dysmenorrhoeal +dysmenorrheas, dysmenorrhoeas +dysmenorrheic, dysmenorrhoeic +dyspnea's, dyspnoea's +dyspnea, dyspnoea +dyspneal, dyspnoeal +dyspneas, dyspnoeas +dyspneic, dyspnoeic +earlierize, earlierise +earlierized, earlierised +earlierizes, earlierises +earlierizing, earlierising +easternize, easternise +ebionize, ebionise +ebionized, ebionised +ebionizes, ebionises +ebionizing, ebionising +ebonization, ebonisation +ebonize, ebonise +ebonized, ebonised +ebonizes, ebonises +ebonizing, ebonising +ec, aec +ecclesiasticize, ecclesiasticise +ecclesiasticizes, ecclesiasticises +echoize, echoise +echoized, echoised +echoizes, echoises +echoizing, echoising +eclecticize, eclecticise +eclecticizes, eclecticises +ecoid, oecoid +economization's, economisation's +economization, economisation +economizations, economisations +economize, economise +economized, economised +economizer's, economiser's +economizer, economiser +economizers, economisers +economizes, economises +economizing, economising +ecophobia, oecophobia +ecstasize, ecstasise +ecstasized, ecstasised +ecstasizes, ecstasises +ecstasizing, ecstasising +ecstaticize, ecstaticise +ecstaticizes, ecstaticises +ectethmoid, ectoethmoid +ectocelic, ectocoelic +ecumenic, oecumenic +ecumenicalism, oecumenicalism +ecumenicity, oecumenicity +ecumenism, oecumenism +ecus, oecus +edema's, oedema's +edema, oedema +edemas, oedemas +edematose, oedematose +edematous, oedematous +Edenization's, Edenisation's +Edenization, Edenisation +Edenizations, Edenisations +Edenize's, Edenise's +Edenize, Edenise +Edenizes, Edenises +edicule's, aedicule's +edicule, aedicule +edility, aedility +editorialization's, editorialisation's +editorialization, editorialisation +editorializations, editorialisations +editorialize, editorialise +editorialized, editorialised +editorializer's, editorialiser's +editorializer, editorialiser +editorializes, editorialises +editorializing, editorialising +eerie, eery +Eetion's, Eaetion's +Eetion, Eaetion +effectualize, effectualise +effectualizes, effectualises +effeminatize, effeminatise +effeminatizes, effeminatises +effeminization's, effeminisation's +effeminization, effeminisation +effeminize, effeminise +effeminized, effeminised +effeminizes, effeminises +effeminizing, effeminising +eger, aeger +eger, egre +egilops, aegilops +eglogue, aeglogue +egoize, egoise +egoizer, egoiser +egoizers, egoisers +egoizes, egoises +egophony, aegophony +egotize, egotise +egotized, egotised +egotizes, egotises +egotizing, egotising +egritude, aegritude +Egyptianization's, Egyptianisation's +Egyptianization, Egyptianisation +Egyptianizations, Egyptianisations +Egyptianize's, Egyptianise's +Egyptianize, Egyptianise +Egyptianized's, Egyptianised's +Egyptianized, Egyptianised +Egyptianizes, Egyptianises +Egyptianizing's, Egyptianising's +Egyptianizing, Egyptianising +Egyptize's, Egyptise's +Egyptize, Egyptise +Egyptizes, Egyptises +elasticization, elasticisation +elasticize, elasticise +elasticized, elasticised +elasticizer, elasticiser +elasticizers, elasticisers +elasticizes, elasticises +elasticizing, elasticising +electricalize, electricalise +electricalizes, electricalises +electricize, electricise +electricizes, electricises +electrization, electrisation +electrizations, electrisations +electrize, electrise +electrized, electrised +electrizes, electrises +electrizing, electrising +electroanesthesia's, electroanaesthesia's +electroanesthesia, electroanaesthesia +electroanesthesias, electroanaesthesias +electrocauterization's, electrocauterisation's +electrocauterization, electrocauterisation +electrocauterizations, electrocauterisations +electrodialyze, electrodialyse +electrodialyzer's, electrodialyser's +electrodialyzer, electrodialyser +electrodialyzers, electrodialysers +electrodialyzes, electrodialyses +electrogalvanize, electrogalvanise +electrogalvanizes, electrogalvanises +electrohomeopathies, electrohomoeopathies +electrohomeopathy's, electrohomoeopathy's +electrohomeopathy, electrohomoeopathy +electrolyzation's, electrolysation's +electrolyzation, electrolysation +electrolyze, electrolyse +electrolyzed, electrolysed +electrolyzer's, electrolyser's +electrolyzer, electrolyser +electrolyzes, electrolyses +electrolyzing, electrolysing +electromagnetizable, electromagnetisable +electrotonize, electrotonise +electrotonizes, electrotonises +elegize, elegise +elegized, elegised +elegizes, elegises +elegizing, elegising +elementalize, elementalise +elementalizes, elementalises +eleoblast, elaeoblast +eleolite, elaeolite +eleomargaric, elaeomargaric +eleometer, elaeometer +eleoptene's, elaeoptene's +eleoptene, elaeoptene +Elizabethanize's, Elizabethanise's +Elizabethanize, Elizabethanise +Elizabethanizes, Elizabethanises +Elizabethville's, Elisabethville's +Elizabethville, Elisabethville +embedment, imbedment +embedments, imbedments +emblematicize, emblematicise +emblematicizes, emblematicises +emblematization, emblematisation +emblematize, emblematise +emblematized, emblematised +emblematizes, emblematises +emblematizing, emblematising +emblemize, emblemise +emblemized, emblemised +emblemizes, emblemises +emblemizing, emblemising +embolization, embolisation +emboweled, embowelled +emboweling, embowelling +emotionalization's, emotionalisation's +emotionalization, emotionalisation +emotionalizations, emotionalisations +emotionalize, emotionalise +emotionalized, emotionalised +emotionalizes, emotionalises +emotionalizing, emotionalising +emotionize, emotionise +emotionizes, emotionises +empathize, empathise +empathized, empathised +empathizes, empathises +empathizing, empathising +emperize, emperise +emperized, emperised +emperizes, emperises +emperizing, emperising +empestic, empaestic +emphasize, emphasise +emphasized, emphasised +emphasizer, emphasiser +emphasizers, emphasisers +emphasizes, emphasises +emphasizing, emphasising +employee's, employe's +employee, employe +employees, employes +emprise, emprize +emprises, emprizes +empyreumatize, empyreumatise +empyreumatized, empyreumatised +empyreumatizes, empyreumatises +empyreumatizing, empyreumatising +emule, aemule +emuled, aemuled +emules, aemules +emuling, aemuling +emulsionize, emulsionise +emulsionized, emulsionised +emulsionizes, emulsionises +emulsionizing, emulsionising +enameled, enamelled +enameler's, enameller's +enameler, enameller +enamelers, enamellers +enameling, enamelling +enamelings, enamellings +enamelist's, enamellist's +enamelist, enamellist +enamelists, enamellists +enamor's, enamour's +enamor, enamour +enamored's, enamoured's +enamored, enamoured +enamoredness's, enamouredness's +enamoredness, enamouredness +enamorednesses, enamourednesses +enamoreds, enamoureds +enamoring, enamouring +enamorment's, enamourment's +enamorment, enamourment +enamorments, enamourments +enamors, enamours +enarbor's, enarbour's +enarbor, enarbour +enarbors, enarbours +encarnalization, encarnalisation +encarnalize, encarnalise +encarnalized, encarnalised +encarnalizes, encarnalises +encarnalizing, encarnalising +encephalocele, encephalocoele +enclose, inclose +enclosed, inclosed +encloses, incloses +enclosing, inclosing +enclosure's, inclosure's +enclosure, inclosure +enclosures, inclosures +encolor's, encolour's +encolor, encolour +encolored, encoloured +encoloring, encolouring +encolors, encolours +encrust, incrust +encrusted, incrusted +encrusting, incrusting +encrusts, incrusts +encumber, incumber +encumbered, incumbered +encumbering, incumbering +encumbers, incumbers +encyclopedia's, encyclopaedia's +encyclopedia, encyclopaedia +encyclopediac, encyclopaediac +encyclopedial, encyclopaedial +encyclopedian, encyclopaedian +encyclopedias, encyclopaedias +encyclopedic, encyclopaedic +encyclopedical, encyclopaedical +encyclopedically, encyclopaedically +encyclopedism, encyclopaedism +encyclopedisms, encyclopaedisms +encyclopedist, encyclopaedist +encyclopedists, encyclopaedists +endameba, endamoeba +endamebae, endamoebae +endamebas, endamoebas +endamebiasis, endamoebiasis +endamebic, endamoebic +endeavor's, endeavour's +endeavor, endeavour +endeavored, endeavoured +endeavorer's, endeavourer's +endeavorer, endeavourer +endeavorers, endeavourers +endeavoring, endeavouring +endeavors, endeavours +Enders, Endres +endorse, indorse +endorsed, indorsed +endorsement's, indorsement's +endorsement, indorsement +endorsements, indorsements +endorses, indorses +endorsing, indorsing +endue, indue +endued, indued +endues, indues +enduing, induing +eneid, aeneid +energization, energisation +energize, energise +energized, energised +energizer's, energiser's +energizer, energiser +energizers, energisers +energizes, energises +energizing, energising +Englishize's, Englishise's +Englishize, Englishise +Englishizes, Englishises +engrandize, engrandise +engrandizement's, engrandisement's +engrandizement, engrandisement +engrandizements, engrandisements +engrandizes, engrandises +enharbor, enharbour +enhemospore, enhaemospore +enhypostatize, enhypostatise +enhypostatized, enhypostatised +enhypostatizes, enhypostatises +enhypostatizing, enhypostatising +enigmatize, enigmatise +enigmatized, enigmatised +enigmatizes, enigmatises +enigmatizing, enigmatising +enjambment's, enjambement's +enjambment, enjambement +enjambments, enjambements +enocyte, oenocyte +enolic, oenolic +enolization's, enolisation's +enolization, enolisation +enolizations, enolisations +enolize, enolise +enolizes, enolises +enological, oenological +enologist, oenologist +enologists, oenologists +enomania, oenomania +enroll, enrol +enrollment's, enrolment's +enrollment, enrolment +enrollments, enrolments +enrolls, enrols +ensepulcher's, ensepulchre's +ensepulcher, ensepulchre +ensepulcherred, ensepulchred +ensepulcherring, ensepulchring +ensepulchers, ensepulchres +ensorceled, ensorcelled +ensorcels, ensorcells +entameba, entamoeba +entamebae, entamoebae +entamebas, entamoebas +entamebic, entamoebic +entender, entendre +entenders, entendres +enterocele, enterocoele +enteroceles, enterocoeles +enthrall, enthral +enthrallment's, enthralment's +enthrallment, enthralment +enthrallments, enthralments +enthralls, enthrals +enthronization's, enthronisation's +enthronization, enthronisation +enthronizations, enthronisations +enthronize, enthronise +enthronized, enthronised +enthronizes, enthronises +enthronizing, enthronising +entocele, entocoele +entomologize, entomologise +entomologized, entomologised +entomologizes, entomologises +entomologizing, entomologising +entre, entrae +entrench, intrench +entrenched, intrenched +entrenches, intrenches +entrenching, intrenching +entrenchment's, intrenchment's +entrenchment, intrenchment +entrenchments, intrenchments +entrust, intrust +entrusted, intrusted +entrusting, intrusting +entrustment, intrustment +entrustments, intrustments +entrusts, intrusts +envapor's, envapour's +envapor, envapour +envapors, envapours +envenomization, envenomisation +eolic, aeolic +eolipile's, aeolipile's +eolipile, aeolipile +eolipiles, aeolipiles +eolotropic, aeolotropic +eon's, aeon's +eon, aeon +eonian, aeonian +eonism's, aeonism's +eonism, aeonism +eonisms, aeonisms +eons, aeons +Eopaleozoic's, Eopalaeozoic's +Eopaleozoic, Eopalaeozoic +epaulet's, epaulette's +epaulet, epaulette +epaulets, epaulettes +epenetic, epaenetic +ephete, ephetae +epicele, epicoele +epicenter's, epicentre's +epicenter, epicentre +epicenters, epicentres +Epicurize's, Epicurise's +Epicurize, Epicurise +epicurize, epicurise +epicurized, epicurised +Epicurizes, Epicurises +epicurizes, epicurises +epicurizing, epicurising +epidotization, epidotisation +epidotizations, epidotisations +epidotized, epidotised +epigeal, epigaeal +epigean, epigaean +epigeous, epigaeous +epigrammatization, epigrammatisation +epigrammatize, epigrammatise +epigrammatized, epigrammatised +epigrammatizer, epigrammatiser +epigrammatizes, epigrammatises +epigrammatizing, epigrammatising +epilogize, epilogise +epilogized, epilogised +epilogizes, epilogises +epilogizing, epilogising +epilogue's, epilog's +epilogue, epilog +epilogues, epilogs +epiloguize, epiloguise +epiloguized, epiloguised +epiloguizes, epiloguises +epiloguizing, epiloguising +epimerize, epimerise +epimerized, epimerised +epimerizing, epimerising +epinephrine's, epinephrin's +epinephrine, epinephrin +epinephrines, epinephrins +epiphanize, epiphanise +epiphanized, epiphanised +epiphanizing, epiphanising +Episcopalianize's, Episcopalianise's +Episcopalianize, Episcopalianise +Episcopalianizes, Episcopalianises +episcopize, episcopise +episcopized, episcopised +episcopizes, episcopises +episcopizing, episcopising +epistolize, epistolise +epistolized, epistolised +epistolizes, epistolises +epistolizing, epistolising +epitaphize, epitaphise +epitaphizes, epitaphises +epithetize, epithetise +epithetizes, epithetises +epitomization's, epitomisation's +epitomization, epitomisation +epitomizations, epitomisations +epitomize, epitomise +epitomized, epitomised +epitomizer's, epitomiser's +epitomizer, epitomiser +epitomizers, epitomisers +epitomizes, epitomises +epitomizing, epitomising +eq, aeq +equaled, equalled +equaling, equalling +equalization's, equalisation's +equalization, equalisation +equalizations, equalisations +equalize, equalise +equalized, equalised +equalizer's, equaliser's +equalizer, equaliser +equalizers, equalisers +equalizes, equalises +equalizing, equalising +equalizings, equalisings +equestrianize, equestrianise +equestrianizes, equestrianises +erbia, rebia +erbias, rebias +ergotize, ergotise +ergotized, ergotised +ergotizes, ergotises +ergotizing, ergotising +eric, aeric +erical, aerical +erke, reke +ern, ren +ernes, renes +ernest, renest +erns, rens +erogenesis, aerogenesis +erogenic, aerogenic +eros, aeros +erose, aerose +eroticization, eroticisation +eroticize, eroticise +eroticized, eroticised +eroticizes, eroticises +eroticizing, eroticising +erses, reses +ersh, resh +ert, ret +eruginous, aeruginous +erugo, aerugo +erugos, aerugos +ervalenta, revalenta +ervalentas, revalentas +erythrean, erythraean +erythremia, erythraemia +esc, aesc +escalades, escaladoes +eschynite, aeschynite +escollope's, escalop's +escollope, escalop +escollopes, escalops +esculapian, aesculapian +esculetin, aesculetin +esculin's, aesculin's +esculin, aesculin +Eskimoized's, Eskimoised's +Eskimoized, Eskimoised +Eskimoizeds, Eskimoiseds +esop, aesop +esophagal, oesophagal +esophagean, oesophagean +esophagism, oesophagism +esophagismus, oesophagismus +esophagitis, oesophagitis +esophagus, oesophagus +Essenize's, Essenise's +Essenize, Essenise +Essenizes, Essenises +essentialize, essentialise +essentializes, essentialises +esterization's, esterisation's +esterization, esterisation +esterizations, esterisations +esterize, esterise +esterizes, esterises +estheses, aestheses +esthesia's, aesthesia's +esthesia, aesthesia +esthesias, aesthesias +esthesiogen, aesthesiogen +esthesiogenic, aesthesiogenic +esthesiogens, aesthesiogens +esthesis, aesthesis +esthetical, aesthetical +esthetician's, aesthetician's +esthetician, aesthetician +estheticians, aestheticians +estival, aestival +estivate, aestivate +estivated, aestivated +estivates, aestivates +estivating, aestivating +estivation's, aestivation's +estivation, aestivation +estivations, aestivations +estivator's, aestivator's +estivator, aestivator +estive, aestive +estradiol's, oestradiol's +estradiol, oestradiol +estradiols, oestradiols +estral, oestral +estrin's, oestrin's +estrin, oestrin +estrins, oestrins +estriol's, oestriol's +estriol, oestriol +estriols, oestriols +estrogen's, oestrogen's +estrogen, oestrogen +estrogenic, oestrogenic +estrogens, oestrogens +estrone's, oestrone's +estrone, oestrone +estrones, oestrones +estrous, oestrous +estrual, oestrual +estruate, oestruate +estruation, oestruation +estrum, oestrum +estrums, oestrums +estrus's, oestrus's +estrus, oestrus +estruses, oestruses +estuate, aestuate +estuous, aestuous +esture, aesture +estus, aestus +et, aet +eternalization's, eternalisation's +eternalization, eternalisation +eternalizations, eternalisations +eternalize, eternalise +eternalized, eternalised +eternalizes, eternalises +eternalizing, eternalising +eternization's, eternisation's +eternization, eternisation +eternizations, eternisations +eternize, eternise +eternized, eternised +eternizes, eternises +eternizing, eternising +etheling, aetheling +etherealization's, etherealisation's +etherealization, etherealisation +etherealizations, etherealisations +etherealize, etherealise +etherealized, etherealised +etherealizes, etherealises +etherealizing, etherealising +ethered, aethered +etherialization's, etherialisation's +etherialization, etherialisation +etherialize, etherialise +etherialized, etherialised +etherializing, etherialising +etheric, aetheric +etherization's, etherisation's +etherization, etherisation +etherizations, etherisations +etherize, etherise +etherized, etherised +etherizer's, etheriser's +etherizer, etheriser +etherizers, etherisers +etherizes, etherises +etherizing, etherising +ethicization, ethicisation +ethicize, ethicise +ethicized, ethicised +ethicizes, ethicises +ethicizing, ethicising +ethnicize, ethnicise +ethnicizes, ethnicises +etiogenic, aetiogenic +etiologically, aetiologically +etiologist's, aetiologist's +etiologist, aetiologist +etiologue, aetiologue +etiology's, aetiology's +etiology, aetiology +etiophyllin, aetiophyllin +etiotropic, aetiotropic +etiotropically, aetiotropically +etymologizable, etymologisable +etymologization, etymologisation +etymologize, etymologise +etymologized, etymologised +etymologizes, etymologises +etymologizing, etymologising +eudemon, eudaemon +eudemonia, eudaemonia +eudemonic, eudaemonic +eudemonics, eudaemonics +eudemonism, eudaemonism +eudemonisms, eudaemonisms +eudemonist's, eudaemonist's +eudemonist, eudaemonist +eudemonistic, eudaemonistic +eudemonistical, eudaemonistical +eudemonistically, eudaemonistically +eudemonists, eudaemonists +eudemons, eudaemons +eudemony, eudaemony +euhemerize, euhemerise +euhemerized, euhemerised +euhemerizes, euhemerises +euhemerizing, euhemerising +eukaryote's, eucaryote's +eukaryote, eucaryote +eukaryotes, eucaryotes +eukaryotic, eucaryotic +eulogization's, eulogisation's +eulogization, eulogisation +eulogizations, eulogisations +eulogize, eulogise +eulogized, eulogised +eulogizer's, eulogiser's +eulogizer, eulogiser +eulogizers, eulogisers +eulogizes, eulogises +eulogizing, eulogising +eunuchize, eunuchise +eunuchized, eunuchised +eunuchizes, eunuchises +eunuchizing, eunuchising +euphemization's, euphemisation's +euphemization, euphemisation +euphemize, euphemise +euphemized, euphemised +euphemizer's, euphemiser's +euphemizer, euphemiser +euphemizers, euphemisers +euphemizes, euphemises +euphemizing, euphemising +euphonization, euphonisation +euphonize, euphonise +euphonized, euphonised +euphonizes, euphonises +euphonizing, euphonising +euphuize, euphuise +euphuized, euphuised +euphuizes, euphuises +euphuizing, euphuising +eupnea's, eupnoea's +eupnea, eupnoea +eupneas, eupnoeas +eupneic, eupnoeic +Europeanization's, Europeanisation's +Europeanization, Europeanisation +Europeanizations, Europeanisations +Europeanize, Europeanise +europeanize, europeanise +Europeanized, Europeanised +europeanized, europeanised +Europeanizes, Europeanises +europeanizes, europeanises +Europeanizing, Europeanising +europeanizing, europeanising +Euryale's, Euryalae's +Euryale, Euryalae +evangelization's, evangelisation's +evangelization, evangelisation +evangelizations, evangelisations +evangelize, evangelise +evangelized, evangelised +evangelizer's, evangeliser's +evangelizer, evangeliser +evangelizers, evangelisers +evangelizes, evangelises +evangelizing, evangelising +eventualize, eventualise +eventualized, eventualised +eventualizes, eventualises +eventualizing, eventualising +eviler, eviller +evilest, evillest +eviternal, aeviternal +evolutionize, evolutionise +evolutionizes, evolutionises +excursionize, excursionise +excursionized, excursionised +excursionizes, excursionises +excursionizing, excursionising +exestuate, exaestuate +exhibitionize, exhibitionise +exhibitionizes, exhibitionises +existentialize, existentialise +existentializes, existentialises +exorcise, exorcize +exorcised, exorcized +exorcises, exorcizes +exorcising, exorcizing +exorcization, exorcisation +exorcizement, exorcisement +exorcizer's, exorciser's +exorcizer, exorciser +exorcizers, exorcisers +expediter's, expeditor's +expediter, expeditor +expediters, expeditors +experimentalize, experimentalise +experimentalized, experimentalised +experimentalizes, experimentalises +experimentalizing, experimentalising +experimentize, experimentise +experimentizes, experimentises +expertized, expertised +expertizing, expertising +exsiccate, exsiccatae +extemporization's, extemporisation's +extemporization, extemporisation +extemporizations, extemporisations +extemporize, extemporise +extemporized, extemporised +extemporizer's, extemporiser's +extemporizer, extemporiser +extemporizers, extemporisers +extemporizes, extemporises +extemporizing, extemporising +extendable, extendible +exteriorization's, exteriorisation's +exteriorization, exteriorisation +exteriorizations, exteriorisations +exteriorize, exteriorise +exteriorized, exteriorised +exteriorizes, exteriorises +exteriorizing, exteriorising +externalization's, externalisation's +externalization, externalisation +externalizations, externalisations +externalize, externalise +externalized, externalised +externalizes, externalises +externalizing, externalising +extol, extoll +extols, extolls +extrovert's, extravert's +extrovert, extravert +extroverted, extraverted +extroverts, extraverts +eyeing, eying +fabulize, fabulise +fabulized, fabulised +fabulizes, fabulises +fabulizing, fabulising +facsimilize, facsimilise +facsimilizes, facsimilises +factorization's, factorisation's +factorization, factorisation +factorizations, factorisations +factorize, factorise +factorized, factorised +factorizes, factorises +factorizing, factorising +faence's, faoence's +faence, faoence +faerie's, faery's +faerie, faery +faitor, faitour +faitors, faitours +falafel's, felafel's +falafel, felafel +familiarization's, familiarisation's +familiarization, familiarisation +familiarizations, familiarisations +familiarize, familiarise +familiarized, familiarised +familiarizer's, familiariser's +familiarizer, familiariser +familiarizers, familiarisers +familiarizes, familiarises +familiarizing, familiarising +familiarizingly, familiarisingly +fanaticize, fanaticise +fanaticized, fanaticised +fanaticizes, fanaticises +fanaticizing, fanaticising +fantasied, phantasied +fantasies, phantasies +fantasize, fantasise +fantasized, fantasised +fantasizer, fantasiser +fantasizes, fantasises +fantasizing, fantasising +fantasy's, phantasy's +fantasy, phantasy +fantasying, phantasying +faradization's, faradisation's +faradization, faradisation +faradizations, faradisations +faradize, faradise +faradized, faradised +faradizer's, faradiser's +faradizer, faradiser +faradizers, faradisers +faradizes, faradises +faradizing, faradising +fasciole, fasciolae +fascisticization's, fascisticisation's +fascisticization, fascisticisation +fascisticizations, fascisticisations +fascisticize, fascisticise +fascisticizes, fascisticises +fascistization's, fascistisation's +fascistization, fascistisation +fascistizations, fascistisations +fascistize, fascistise +fascistized, fascistised +fascistizes, fascistises +fascistizing, fascistising +fashionize, fashionise +fashionizes, fashionises +fatalize, fatalise +fatalizes, fatalises +favor's, favour's +favor, favour +favorable's, favourable's +favorable, favourable +favorableness's, favourableness's +favorableness, favourableness +favorablenesses, favourablenesses +favorabler, favourabler +favorables, favourables +favorablest, favourablest +favorablier, favourablier +favorabliest, favourabliest +favorably, favourably +favored's, favoured's +favored, favoured +favoredlier, favouredlier +favoredliest, favouredliest +favoredly, favouredly +favoredness's, favouredness's +favoredness, favouredness +favorednesses, favourednesses +favoreds, favoureds +favorer's, favourer's +favorer, favourer +favorers, favourers +favoress, favouress +favoring's, favouring's +favoring, favouring +favoringlier, favouringlier +favoringliest, favouringliest +favoringly, favouringly +favorings, favourings +favorite's, favourite's +favorite, favourite +favoriter, favouriter +favorites, favourites +favoritest, favouritest +favoritism's, favouritism's +favoritism, favouritism +favoritisms, favouritisms +favorless, favourless +favorlesser, favourlesser +favorlesses, favourlesses +favorlessest, favourlessest +favors, favours +fayer, fayre +fe, fae +fecal, faecal +fecalith, faecalith +feces's, faeces's +feces, faeces +fecula, faecula +feculence, faeculence +Fecunditatis's, Foecunditatis's +Fecunditatis, Foecunditatis +fecundize, fecundise +fecundizes, fecundises +fedarie, foedarie +fedaries, foedaries +federalization's, federalisation's +federalization, federalisation +federalizations, federalisations +federalize, federalise +federalized, federalised +federalizes, federalises +federalizing, federalising +Fedor's, Faedor's +Fedor, Faedor +feer, fere +feers, feres +femalize, femalise +femalizes, femalises +feminization's, feminisation's +feminization, feminisation +feminizations, feminisations +feminize, feminise +feminized, feminised +feminizes, feminises +feminizing, feminising +femtometer, femtometre +femtometers, femtometres +feralized, feralised +ferd, fred +ferie, feriae +ferity, freity +Ferneau's, Freneau's +Ferneau, Freneau +ferreled, ferrelled +ferreling, ferrelling +ferritization's, ferritisation's +ferritization, ferritisation +ferritizations, ferritisations +fertilizability's, fertilisability's +fertilizability, fertilisability +fertilizable's, fertilisable's +fertilizable, fertilisable +fertilizabler, fertilisabler +fertilizables, fertilisables +fertilizablest, fertilisablest +fertilization's, fertilisation's +fertilization, fertilisation +fertilizational's, fertilisational's +fertilizational, fertilisational +fertilizationaler, fertilisationaler +fertilizationalest, fertilisationalest +fertilizationals, fertilisationals +fertilizations, fertilisations +fertilize, fertilise +fertilized, fertilised +fertilizer's, fertiliser's +fertilizer, fertiliser +fertilizers, fertilisers +fertilizes, fertilises +fertilizing, fertilising +fervor's, fervour's +fervor, fervour +fervorless, fervourless +fervorlesses, fervourlesses +fervors, fervours +fetal, foetal +fetalism, foetalism +fetation's, foetation's +fetation, foetation +fetichize, fetichise +fetichized, fetichised +fetichizes, fetichises +fetichizing, fetichising +feticidal, foeticidal +feticide's, foeticide's +feticide, foeticide +feticides, foeticides +fetid, foetid +fetiferous, foetiferous +fetiparous, foetiparous +fetish's, fetich's +fetish, fetich +fetishes, fetiches +fetishization's, fetishisation's +fetishization, fetishisation +fetishizations, fetishisations +fetishize, fetishise +fetishized, fetishised +fetishizes, fetishises +fetishizing, fetishising +fetor's, foetor's +fetor, foetor +fetors, foetors +fetoscopies, foetoscopies +fetoscopy, foetoscopy +feture, foeture +fetus's, foetus's +fetus, foetus +fetuses, foetuses +feudalizable's, feudalisable's +feudalizable, feudalisable +feudalizables, feudalisables +feudalization's, feudalisation's +feudalization, feudalisation +feudalizations, feudalisations +feudalize, feudalise +feudalized, feudalised +feudalizes, feudalises +feudalizing, feudalising +feuter, feutre +fiber's, fibre's +fiber, fibre +fiberboard's, fibreboard's +fiberboard, fibreboard +fiberboards, fibreboards +fibered, fibred +fiberfill's, fibrefill's +fiberfill, fibrefill +fiberfills, fibrefills +fiberglass's, fibreglass's +fiberglass, fibreglass +fiberglasses, fibreglasses +fiberless, fibreless +fiberlesser, fibrelesser +fiberlesses, fibrelesses +fiberlessest, fibrelessest +fibers, fibres +fiberscope, fibrescope +fiberscopes, fibrescopes +fiberware, fibreware +fibrisation, fibrization +fibrise, fibrize +fibrised, fibrized +fibriser, fibrizer +fibrisers, fibrizers +fibrises, fibrizes +fibrising, fibrizing +fictionalization's, fictionalisation's +fictionalization, fictionalisation +fictionalizations, fictionalisations +fictionalize, fictionalise +fictionalized, fictionalised +fictionalizes, fictionalises +fictionalizing, fictionalising +fictionization's, fictionisation's +fictionization, fictionisation +fictionizations, fictionisations +fictionize, fictionise +fictionized, fictionised +fictionizes, fictionises +fictionizing, fictionising +figurize, figurise +figurizes, figurises +filmize, filmise +filmizes, filmises +filterable, filtrable +finalization's, finalisation's +finalization, finalisation +finalizations, finalisations +finalize, finalise +finalized, finalised +finalizes, finalises +finalizing, finalising +Finlandization, Finlandisation +Finlandizations, Finlandisations +fiscalization's, fiscalisation's +fiscalization, fiscalisation +fiscalizations, fiscalisations +fiscalize, fiscalise +fiscalizes, fiscalises +fjord's, fiord's +fjord, fiord +fjords, fiords +flamboyantize, flamboyantise +flamboyantizes, flamboyantises +flanneled, flannelled +flannelette's, flannelet's +flannelette, flannelet +flanneling, flannelling +flavor's, flavour's +flavor, flavour +flavored, flavoured +flavorer's, flavourer's +flavorer, flavourer +flavorers, flavourers +flavorful, flavourful +flavorfuler, flavourfuler +flavorfulest, flavourfulest +flavorfullier, flavourfullier +flavorfulliest, flavourfulliest +flavorfully, flavourfully +flavorier, flavourier +flavoriest, flavouriest +flavoring's, flavouring's +flavoring, flavouring +flavorings, flavourings +flavorless, flavourless +flavorlesser, flavourlesser +flavorlesses, flavourlesses +flavorlessest, flavourlessest +flavorous, flavourous +flavors, flavours +flavorsome, flavoursome +flavorsomer, flavoursomer +flavorsomest, flavoursomest +flavory, flavoury +fledgling's, fledgeling's +fledgling, fledgeling +fledglings, fledgelings +Fletcherize's, Fletcherise's +Fletcherize, Fletcherise +Fletcherized's, Fletcherised's +Fletcherized, Fletcherised +Fletcherizes, Fletcherises +Fletcherizing's, Fletcherising's +Fletcherizing, Fletcherising +flextime's, flexitime's +flextime, flexitime +flextimes, flexitimes +floozy's, floozie's +floozy, floozie +floralize, floralise +floralizes, floralises +floramor, floramour +flotation's, floatation's +flotation, floatation +flotations, floatations +fluidization's, fluidisation's +fluidization, fluidisation +fluidizations, fluidisations +fluidize, fluidise +fluidized, fluidised +fluidizer's, fluidiser's +fluidizer, fluidiser +fluidizers, fluidisers +fluidizes, fluidises +fluidizing, fluidising +fluky, flukey +flunkey's, flunkie's +flunkie, flunkey +flunkies, flunkeys +fluoridization's, fluoridisation's +fluoridization, fluoridisation +fluoridizations, fluoridisations +fluoridize, fluoridise +fluoridized, fluoridised +fluoridizes, fluoridises +fluoridizing, fluoridising +flutist's, flautist's +flutist, flautist +flutists, flautists +fo'c'sle's, fo'c's'le's +fo'c'sle, fo'c's'le +fo'c'sles, fo'c's'les +focalization's, focalisation's +focalization, focalisation +focalizations, focalisations +focalize, focalise +focalized, focalised +focalizes, focalises +focalizing, focalising +focused, focussed +focusing, focussing +fogies, fogeys +fogy's, fogey's +fogy, fogey +fondue's, fondu's +fondue, fondu +fondues, fondus +fontanel's, fontanelle's +fontanel, fontanelle +fontanels, fontanelles +foolhardize, foolhardise +foolhardized, foolhardised +foolhardizes, foolhardises +foolhardizing, foolhardising +forb, fourb +forche, fourche +foreignization's, foreignisation's +foreignization, foreignisation +foreignizations, foreignisations +foreignize, foreignise +foreignizes, foreignises +forejudgment's, forejudgement's +forejudgment, forejudgement +forejudgments, forejudgements +foreprize, foreprise +forgather, foregather +forgathered, foregathered +forgathering, foregathering +forgathers, foregathers +forgo, forego +forgoes, foregoes +forgoing, foregoing +forgone, foregone +formalizable, formalisable +formalization's, formalisation's +formalization, formalisation +formalizations, formalisations +formalize, formalise +formalized, formalised +formalizer's, formaliser's +formalizer, formaliser +formalizers, formalisers +formalizes, formalises +formalizing, formalising +forme, formae +formicide, formicidae +formularization's, formularisation's +formularization, formularisation +formularizations, formularisations +formularize, formularise +formularized, formularised +formularizer's, formulariser's +formularizer, formulariser +formularizers, formularisers +formularizes, formularises +formularizing's, formularising's +formularizing, formularising +formulization's, formulisation's +formulization, formulisation +formulizations, formulisations +formulize, formulise +formulized, formulised +formulizer's, formuliser's +formulizer, formuliser +formulizes, formulises +formulizing, formulising +forswear, foreswear +forswearing, foreswearing +forswears, foreswears +forswore, foreswore +forsworn, foresworn +forsworn, foresworn +forumize, forumise +forumizes, forumises +forwent, forewent +fosse, fossae +fossiled, fossilled +fossilizable's, fossilisable's +fossilizable, fossilisable +fossilizabler, fossilisabler +fossilizables, fossilisables +fossilizablest, fossilisablest +fossilization's, fossilisation's +fossilization, fossilisation +fossilizations, fossilisations +fossilize, fossilise +fossilized, fossilised +fossilizes, fossilises +fossilizing, fossilising +fossule, fossulae +foulder, fouldre +fouter, foutre +fouters, foutres +foveole, foveolae +fractionalization's, fractionalisation's +fractionalization, fractionalisation +fractionalizations, fractionalisations +fractionalize, fractionalise +fractionalized, fractionalised +fractionalizes, fractionalises +fractionalizing, fractionalising +fractionization's, fractionisation's +fractionization, fractionisation +fractionizations, fractionisations +fractionize, fractionise +fractionized, fractionised +fractionizes, fractionises +fractionizing, fractionising +fragmentization's, fragmentisation's +fragmentization, fragmentisation +fragmentize, fragmentise +fragmentized, fragmentised +fragmentizer, fragmentiser +fragmentizes, fragmentises +fragmentizing, fragmentising +frambesia's, framboesia's +frambesia, framboesia +frambesias, framboesias +Francize's, Francise's +Francize, Francise +Francizes, Francises +Franklinization's, Franklinisation's +Franklinization, Franklinisation +Franklinizations, Franklinisations +fraternization's, fraternisation's +fraternization, fraternisation +fraternizations, fraternisations +fraternize, fraternise +fraternized, fraternised +fraternizer's, fraterniser's +fraternizer, fraterniser +fraternizers, fraternisers +fraternizes, fraternises +fraternizing, fraternising +freebie's, freebee's +freebie, freebee +freebies, freebees +frena, fraena +Frenchize's, Frenchise's +Frenchize, Frenchise +Frenchizes, Frenchises +frenetic, phrenetic +frenula, fraenula +frenular, fraenular +frenulum's, fraenulum's +frenulum, fraenulum +frenum's, fraenum's +frenum, fraenum +frenums, fraenums +friborg, fribourg +frictionize, frictionise +frictionizes, frictionises +frivoled, frivolled +frivoler's, frivoller's +frivoler, frivoller +frivolers, frivollers +frivoling, frivolling +frizado, frisado +frize, frise +frizette's, frisette's +frizette, frisette +frizettes, frisettes +frizz's, friz's +frizz, friz +frowzier, frowsier +frowziest, frowsiest +frowzy, frowsy +fryer's, frier's +fryer, frier +fryers, friers +fuehrer's, f¸hrer's +fuehrer, f¸hrer +fuehrers, f¸hrers +fueled, fuelled +fueler's, fueller's +fueler, fueller +fuelers, fuellers +fueling, fuelling +fuelizer's, fueliser's +fuelizer, fueliser +fuelizers, fuelisers +fulfill, fulfil +fulfillment's, fulfilment's +fulfillment, fulfilment +fulfillments, fulfilments +fulfills, fulfils +fulgor, fulgour +fulgorous, fulgourous +fulgors, fulgours +fullness's, fulness's +fullness, fulness +fullnesses, fulnesses +functionalize, functionalise +functionalizes, functionalises +functionize, functionise +functionizes, functionises +funeralize, funeralise +funeralizes, funeralises +funneled, funnelled +funneler, funneller +funneling, funnelling +furcule, furculae +Furie's, Furiae's +Furie, Furiae +furor's, furore's +furor, furore +furors, furores +fusilier's, fusileer's +fusilier, fusileer +fusiliers, fusileers +fustianize, fustianise +fustianized, fustianised +fustianizes, fustianises +fustianizing, fustianising +futilize, futilise +futilizes, futilises +futurize, futurise +futurizes, futurises +gaberdine's, gabardine's +gaberdine, gabardine +gaberdines, gabardines +Gaelicization's, Gaelicisation's +Gaelicization, Gaelicisation +Gaelicizations, Gaelicisations +Gaelicize's, Gaelicise's +Gaelicize, Gaelicise +gaelicize, gaelicise +gaelicized, gaelicised +Gaelicizes, Gaelicises +gaelicizes, gaelicises +gaelicizing, gaelicising +gaiety's, gayety's +gaiety, gayety +gaily, gayly +galactorrhea, galactorrhoea +galactorrheas, galactorrhoeas +galactosemia, galactosaemia +galactosemias, galactosaemias +galee, galeae +gallantize, gallantise +gallantizes, gallantises +galliardize, galliardise +Gallicization's, Gallicisation's +Gallicization, Gallicisation +Gallicizations, Gallicisations +Gallicize, Gallicise +gallicize, gallicise +Gallicized, Gallicised +gallicized, gallicised +Gallicizer's, Galliciser's +Gallicizer, Galliciser +Gallicizes, Gallicises +gallicizes, gallicises +Gallicizing, Gallicising +gallicizing, gallicising +gallisize, gallisise +gallisized, gallisised +gallisizes, gallisises +gallisizing, gallisising +gallize, gallise +gallized, gallised +gallizes, gallises +gallizing, gallising +galosh's, galoshe's +galosh, galoshe +galvanization's, galvanisation's +galvanization, galvanisation +galvanizations, galvanisations +galvanize, galvanise +galvanized, galvanised +galvanizer's, galvaniser's +galvanizer, galvaniser +galvanizers, galvanisers +galvanizes, galvanises +galvanizing, galvanising +gambades, gambadoes +gamboled, gambolled +gamboling, gambolling +gamy, gamey +gargarize, gargarise +gargarized, gargarised +gargarizes, gargarises +gargarizing, gargarising +garotting, garoting +garrotte's, garote's +garrotte, garote +garrotted, garoted +garrottes, garotes +garruline, garrulinae +gases, gasses +gasoline's, gasolene's +gasoline, gasolene +gasolines, gasolenes +gastrea, gastraea +gastreas, gastraeas +gastrocele, gastrocoele +gaufer, gaufre +gaufers, gaufres +gauffer, gauffre +gauge's, gage's +gauge, gage +gauged, gaged +gauges, gages +gauging, gaging +gaveled, gavelled +gaveler, gaveller +gaveling, gavelling +ge, gae +ge, goe +ged, gaed +gelatin's, gelatine's +gelatin, gelatine +gelatinizabilities, gelatinisabilities +gelatinizability's, gelatinisability's +gelatinizability, gelatinisability +gelatinizable's, gelatinisable's +gelatinizable, gelatinisable +gelatinizables, gelatinisables +gelatinization's, gelatinisation's +gelatinization, gelatinisation +gelatinizations, gelatinisations +gelatinize, gelatinise +gelatinized, gelatinised +gelatinizer's, gelatiniser's +gelatinizer, gelatiniser +gelatinizers, gelatinisers +gelatinizes, gelatinises +gelatinizing, gelatinising +gelatins, gelatines +gelofer, gelofre +gemologies, gemmologies +gemology's, gemmology's +gemology, gemmology +genealogize, genealogise +genealogized, genealogised +genealogizes, genealogises +genealogizing, genealogising +generalizability, generalisability +generalizable's, generalisable's +generalizable, generalisable +generalizabler, generalisabler +generalizables, generalisables +generalizablest, generalisablest +generalization's, generalisation's +generalization, generalisation +generalizational, generalisational +generalizations, generalisations +generalize, generalise +generalized, generalised +generalizer's, generaliser's +generalizer, generaliser +generalizers, generalisers +generalizes, generalises +generalizing, generalising +genialize, genialise +genialized, genialised +genializes, genialises +genializing, genialising +genteelize, genteelise +genteelized, genteelised +genteelizes, genteelises +genteelizing, genteelising +gentilization's, gentilisation's +gentilization, gentilisation +gentilizations, gentilisations +gentilize, gentilise +gentilized, gentilised +gentilizes, gentilises +gentilizing, gentilising +gentlemanize, gentlemanise +gentlemanizes, gentlemanises +geodesia, geodaesia +geologize, geologise +geologized, geologised +geologizes, geologises +geologizing, geologising +geometricize, geometricise +geometricizes, geometricises +geometrization, geometrisation +geometrizations, geometrisations +geometrize, geometrise +geometrized, geometrised +geometrizes, geometrises +geometrizing, geometrising +ger, gre +gerenuk, greenuk +Germanization's, Germanisation's +germanization's, germanisation's +Germanization, Germanisation +germanization, germanisation +germanizations, germanisations +Germanize, Germanise +germanize, germanise +Germanized, Germanised +germanized, germanised +Germanizer's, Germaniser's +Germanizer, Germaniser +germanizer, germaniser +germanizers, germanisers +Germanizes, Germanises +germanizes, germanises +Germanizing, Germanising +germanizing, germanising +gerne, grene +gers, gres +Ges, Goes +gessed, gessoed +gesses, gessoes +geste, gestae +Getae's, Goetae's +Getae, Goetae +Getz's, Goetz's +Getz, Goetz +Getzville's, Goetzville's +Getzville, Goetzville +gewgaw's, geegaw's +gewgaw, geegaw +gewgaws, geegaws +gey, goey +Gheber's, Ghebre's +Gheber, Ghebre +Ghebers, Ghebres +ghettoization's, ghettoisation's +ghettoization, ghettoisation +ghettoizations, ghettoisations +ghettoize, ghettoise +ghettoized, ghettoised +ghettoizes, ghettoises +ghettoizing, ghettoising +giantize, giantise +giantizes, giantises +gigagram, gigagramme +gigagrams, gigagrammes +gigameter, gigametre +gigameters, gigametres +gimbaled, gimballed +gimbaling, gimballing +gingkos, gingkoes +ginkgo's, gingko's +ginkgo, gingko +girly, girlie +gizmo's, gismo's +gizmo, gismo +gizmos, gismos +glacialize, glacialise +glacializes, glacialises +glamorization's, glamorisation's +glamorizations, glamorisations +glamorless, glamourless +glamorous, glamourous +glamorousness's, glamourousness's +glamorousness, glamourousness +glamour's, glamor's +glamour, glamor +glamoured, glamored +glamouring, glamoring +glamourization, glamorisation +glamourize, glamorise +glamourized, glamorised +glamourizer's, glamoriser's +glamourizer, glamoriser +glamourizers, glamorisers +glamourizes, glamorises +glamourizing, glamorising +glamours, glamors +glauconitization, glauconitisation +glauconitizations, glauconitisations +glebe, glebae +globalization's, globalisation's +globalization, globalisation +globalizations, globalisations +globalize, globalise +globalized, globalised +globalizes, globalises +globalizing, globalising +globigerine, globigerinae +glottalization's, glottalisation's +glottalization, glottalisation +glottalize, glottalise +glottalizes, glottalises +glucemia, glucaemia +glucosemia, glucosaemia +gluing, glueing +gluteal, glutaeal +glutei, glutaei +gluteus, glutaeus +gluttonize, gluttonise +gluttonized, gluttonised +gluttonizes, gluttonises +gluttonizing, gluttonising +glycemia, glycaemia +glycemic, glycaemic +glycerin's, glycerine's +glycerin, glycerine +glycerinize, glycerinise +glycerinizes, glycerinises +glycerins, glycerines +glycerolize, glycerolise +glycerolized, glycerolised +glycerolizes, glycerolises +glycogenize, glycogenise +glycogenizes, glycogenises +glycohemia, glycohaemia +glycosemia, glycosaemia +Gnosticize, Gnosticise +gnosticize, gnosticise +Gnosticized's, Gnosticised's +Gnosticized, Gnosticised +Gnosticizer's, Gnosticiser's +Gnosticizer, Gnosticiser +gnosticizer, gnosticiser +gnosticizers, gnosticisers +Gnosticizes, Gnosticises +gnosticizes, gnosticises +Gnosticizing's, Gnosticising's +Gnosticizing, Gnosticising +gobbledygook's, gobbledegook's +gobbledygook, gobbledegook +gobbledygooks, gobbledegooks +goddamn's, goddam's +goddamn, goddam +goddamned, goddamed +goddamning, goddaming +goddamns, goddams +goddize, goddise +goddizes, goddises +goiter's, goitre's +goiter, goitre +goiters, goitres +gole, goloe +goliathize, goliathise +goliathized, goliathised +goliathizes, goliathises +goliathizing, goliathising +goloshes, goloshoes +gonorrhea's, gonorrhoea's +gonorrhea, gonorrhoea +gonorrheal, gonorrhoeal +gonorrhealer, gonorrhoealer +gonorrhealest, gonorrhoealest +gonorrheas, gonorrhoeas +gonorrheic, gonorrhoeic +goodbye's, goodby's +goodbye, goodby +goodbyes, goodbys +goody's, goodie's +goody, goodie +gor, gour +Gora's, Goura's +Gora, Goura +gora, goura +goramies, gouramies +gorgonize, gorgonise +gorgonized, gorgonised +gorgonizes, gorgonises +gorgonizing, gorgonising +gormandism's, gourmandism's +gormandism, gourmandism +gormandisms, gourmandisms +gormandize's, gormandise's +gormandize, gormandise +gormandized, gormandised +gormandizer's, gormandiser's +gormandizer, gormandiser +gormandizers, gormandisers +gormandizes, gormandises +gormandizing, gormandising +gormandizings, gormandisings +gospeler's, gospeller's +gospeler, gospeller +gospelers, gospellers +gospelize, gospelise +gospelized, gospelised +gospelizes, gospelises +gospelizing, gospelising +gospellize, gospellise +gospellized, gospellised +gospellizes, gospellises +gospellizing, gospellising +Gothicize, Gothicise +gothicize, gothicise +Gothicized, Gothicised +gothicized, gothicised +Gothicizer's, Gothiciser's +Gothicizer, Gothiciser +Gothicizers, Gothicisers +Gothicizes, Gothicises +gothicizes, gothicises +Gothicizing, Gothicising +gothicizing, gothicising +gourmandize, gourmandise +gourmandized, gourmandised +gourmandizes, gourmandises +gourmandizing, gourmandising +governmentalize, governmentalise +governmentalized, governmentalised +governmentalizes, governmentalises +governmentalizing, governmentalising +Goyesque, Goyaesque +Graecize, Graecise +Graecized, Graecised +Graecizes, Graecises +grammaticize, grammaticise +grammaticized, grammaticised +grammaticizes, grammaticises +grammaticizing, grammaticising +granddad's, grandad's +granddad, grandad +granddads, grandads +grangerization's, grangerisation's +grangerization, grangerisation +grangerizations, grangerisations +grangerize, grangerise +grangerized, grangerised +grangerizer's, grangeriser's +grangerizer, grangeriser +grangerizers, grangerisers +grangerizes, grangerises +grangerizing, grangerising +granitization's, granitisation's +granitization, granitisation +granitizations, granitisations +granitize, granitise +granitized, granitised +granitizes, granitises +granitizing, granitising +granny's, grannie's +granny, grannie +granulitization, granulitisation +granulitizations, granulitisations +granulize, granulise +granulizes, granulises +graphitizable, graphitisable +graphitization's, graphitisation's +graphitization, graphitisation +graphitizations, graphitisations +graphitize, graphitise +graphitized, graphitised +graphitizes, graphitises +graphitizing, graphitising +graveled, gravelled +graveling, gravelling +gray's, grey's +gray, grey +grayed, greyed +grayer, greyer +grayest, greyest +graying, greying +grayish, greyish +grayness's, greyness's +grayness, greyness +grays, greys +grecian, graecian +Grecianize, Grecianise +Grecianizes, Grecianises +Grecise's, Graecise's +Grecise, Graecise +Grecised's, Graecised's +Grecised, Graecised +Grecising's, Graecising's +Grecising, Graecising +Grecism's, Graecism's +Grecism, Graecism +grecism, graecism +Grecisms, Graecisms +Grecize, Grecise +grecize, grecise +Grecized, Grecised +grecized, grecised +grecizes, grecises +Grecizing, Grecising +grecizing, grecising +Greekize's, Greekise's +Greekize, Greekise +Greekizes, Greekises +greisenization, greisenisation +greisenizations, greisenisations +greisenize, greisenise +greisenized, greisenised +greisenizes, greisenises +greisenizing, greisenising +grizard, grisard +grize, grise +grizes, grises +groveled, grovelled +groveler's, groveller's +groveler, groveller +grovelers, grovellers +groveling, grovelling +grovelinglier, grovellinglier +grovelingliest, grovellingliest +grovelingly, grovellingly +grueled, gruelled +grueler's, grueller's +grueler, grueller +gruelers, gruellers +grueling's, gruelling's +grueling, gruelling +gruelingly, gruellingly +gruelings, gruellings +Gueber's, Guebre's +Gueber, Guebre +Guebers, Guebres +guerrilla's, guerilla's +guerrilla, guerilla +guerrillas, guerillas +guizer, guiser +guizers, guisers +gule, gulae +gunwale's, gunnel's +gunwale, gunnel +gunwales, gunnels +gutte, guttae +guttule, guttulae +gutturalization's, gutturalisation's +gutturalization, gutturalisation +gutturalizations, gutturalisations +gutturalize, gutturalise +gutturalized, gutturalised +gutturalizes, gutturalises +gutturalizing, gutturalising +gyne, gynae +gynecic, gynaecic +gynecocracies, gynaecocracies +gynecocracy's, gynaecocracy's +gynecocracy, gynaecocracy +gynecocrat's, gynaecocrat's +gynecocrat, gynaecocrat +gynecocratic, gynaecocratic +gynecocraticer, gynaecocraticer +gynecocraticest, gynaecocraticest +gynecocrats, gynaecocrats +gynecoid, gynaecoid +gynecol, gynaecol +gynecologic, gynaecologic +gynecological's, gynaecological's +gynecological, gynaecological +gynecologicaler, gynaecologicaler +gynecologicalest, gynaecologicalest +gynecologicals, gynaecologicals +gynecologicer, gynaecologicer +gynecologicest, gynaecologicest +gynecologics, gynaecologics +gynecologies, gynaecologies +gynecologist's, gynaecologist's +gynecologist, gynaecologist +gynecologists, gynaecologists +gynecology's, gynaecology's +gynecology, gynaecology +gynecomastia's, gynaecomastia's +gynecomastia, gynaecomastia +gynecomastias, gynaecomastias +gynecomasty's, gynaecomasty's +gynecomasty, gynaecomasty +gynecomorphous, gynaecomorphous +gyneconitis, gynaeconitis +gyneocracy, gynaeocracy +gyneolater, gynaeolater +gyneolatry, gynaeolatry +gynomonecious, gynomonoecious +gypsies, gipsies +gypsy's, gipsy's +gypsy, gipsy +gyrostabilization, gyrostabilisation +gyrostabilizations, gyrostabilisations +gyrostabilizer's, gyrostabiliser's +gyrostabilizer, gyrostabiliser +gyrostabilizers, gyrostabilisers +ha, hah +habitualize, habitualise +habitualizes, habitualises +hairdryer's, hairdrier's +hairdryer, hairdrier +hairdryers, hairdriers +hajj's, hadj's +hajj, hadj +hajji's, hadji's +hajji, hadji +hajjis, hadjis +hajjs, hadjs +hallo's, hollo's +hallo, hollo +halloing, holloing +hamletization's, hamletisation's +hamletization, hamletisation +hamletizations, hamletisations +hamletize, hamletise +hamletizes, hamletises +handseled, handselled +handseling, handselling +hankie's, hanky's +hankie, hanky +Hanoverianize's, Hanoverianise's +Hanoverianize, Hanoverianise +Hanoverianizes, Hanoverianises +Hanoverize's, Hanoverise's +Hanoverize, Hanoverise +Hanoverizes, Hanoverises +hansardize, hansardise +hansardized, hansardised +hansardizes, hansardises +hansardizing, hansardising +hanseled, hanselled +hanseling, hanselling +harbor's, harbour's +harbor, harbour +harborage's, harbourage's +harborage, harbourage +harborages, harbourages +harbored, harboured +harborer's, harbourer's +harborer, harbourer +harborers, harbourers +harborful, harbourful +harboring, harbouring +harborless, harbourless +harborlesser, harbourlesser +harborlesses, harbourlesses +harborlessest, harbourlessest +harborous, harbourous +harbors, harbours +harborside, harbourside +harborward, harbourward +harmonizable's, harmonisable's +harmonizable, harmonisable +harmonizabler, harmonisabler +harmonizables, harmonisables +harmonizablest, harmonisablest +harmonization's, harmonisation's +harmonization, harmonisation +harmonizations, harmonisations +harmonize, harmonise +harmonized, harmonised +harmonizer's, harmoniser's +harmonizer, harmoniser +harmonizers, harmonisers +harmonizes, harmonises +harmonizing, harmonising +Harmothoe's, Harmothoae's +Harmothoe, Harmothoae +Harvardize's, Harvardise's +Harvardize, Harvardise +Harvardizes, Harvardises +Harveyize's, Harveyise's +Harveyize, Harveyise +Harveyizes, Harveyises +hasheesh's, haschisch's +hasheesh, haschisch +Hasidean's, Hasidaean's +Hasidean, Hasidaean +Hasmonean, Hasmonaean +Hasmoneans, Hasmonaeans +hatcheled, hatchelled +hatcheling, hatchelling +Hattize's, Hattise's +Hattize, Hattise +Hattizes, Hattises +haussmannization, haussmannisation +haussmannizations, haussmannisations +haussmannize, haussmannise +haussmannized, haussmannised +haussmannizes, haussmannises +haussmannizing, haussmannising +havior, haviour +haviored, havioured +haviors, haviours +hazardize, hazardise +hazardizes, hazardises +heathenization, heathenisation +heathenize, heathenise +heathenized, heathenised +heathenizes, heathenises +heathenizing, heathenising +heavenize, heavenise +heavenizes, heavenises +Hebraicize's, Hebraicise's +Hebraicize, Hebraicise +Hebraicizes, Hebraicises +Hebraization's, Hebraisation's +Hebraization, Hebraisation +hebraization, hebraisation +hebraizations, hebraisations +Hebraize, Hebraise +hebraize, hebraise +Hebraized, Hebraised +hebraized, hebraised +Hebraizer's, Hebraiser's +Hebraizer, Hebraiser +Hebraizes, Hebraises +hebraizes, hebraises +Hebraizing, Hebraising +hebraizing, hebraising +Hecatean's, Hecataean's +Hecatean, Hecataean +hectogram's, hectogramme's +hectogram, hectogramme +hectograms, hectogrammes +hectoliter's, hectolitre's +hectoliter, hectolitre +hectoliters, hectolitres +hectometer's, hectometre's +hectometer, hectometre +hectometers, hectometres +hed, haed +Hegelianize's, Hegelianise's +Hegelianize, Hegelianise +Hegelianizes, Hegelianises +Hekatean's, Hekataean's +Hekatean, Hekataean +hele, heloe +helled, helloed +Hellenization's, Hellenisation's +Hellenization, Hellenisation +Hellenizations, Hellenisations +Hellenize, Hellenise +hellenize, hellenise +Hellenized, Hellenised +hellenized, hellenised +Hellenizer's, Helleniser's +Hellenizer, Helleniser +Hellenizes, Hellenises +hellenizes, hellenises +Hellenizing, Hellenising +hellenizing, hellenising +hemachrome's, haemachrome's +hemachrome, haemachrome +hemacytometer's, haemacytometer's +hemacytometer, haemacytometer +hemad, haemad +hemagglutinate, haemagglutinate +hemagglutinated, haemagglutinated +hemagglutinating, haemagglutinating +hemagglutination's, haemagglutination's +hemagglutination, haemagglutination +hemagglutinative, haemagglutinative +hemagglutinin, haemagglutinin +hemagogue, haemagogue +hemal, haemal +hemameba, hemamoeba +hemangioma's, haemangioma's +hemangioma, haemangioma +hemangiomas, haemangiomas +hemangiomata, haemangiomata +hemangiomatosis, haemangiomatosis +hemapophysis, haemapophysis +hemaspectroscope, haemaspectroscope +hematal, haematal +hematein's, haematein's +hematein, haematein +hematemesis, haematemesis +hematherm, haematherm +hemathermal, haemathermal +hemathermous, haemathermous +hematic, haematic +hematics, haematics +hematid, haematid +hematin's, haematin's +hematin, haematin +hematinic's, haematinic's +hematinic, haematinic +hematinics, haematinics +hematins, haematins +hematite's, haematite's +hematite, haematite +hematites, haematites +hematitic, haematitic +hematoblast's, haematoblast's +hematoblast, haematoblast +hematoblasts, haematoblasts +hematobranchiate, haematobranchiate +hematocele's, haematocele's +hematocele, haematocele +hematocrit's, haematocrit's +hematocrit, haematocrit +hematocrits, haematocrits +hematocryal, haematocryal +hematocyst's, haematocyst's +hematocyst, haematocyst +hematocystis, haematocystis +hematocyte's, haematocyte's +hematocyte, haematocyte +hematogeneses, haematogeneses +hematogenesis's, haematogenesis's +hematogenesis, haematogenesis +hematogenous, haematogenous +hematoid, haematoid +hematoidin, haematoidin +hematologic, haematologic +hematological, haematological +hematologies, haematologies +hematologist's, haematologist's +hematologist, haematologist +hematologists, haematologists +hematology's, haematology's +hematology, haematology +hematolysis, haematolysis +hematoma's, haematoma's +hematoma, haematoma +hematomas, haematomas +hematomata, haematomata +hematometer, haematometer +hematophyte's, haematophyte's +hematophyte, haematophyte +hematopoieses, haematopoieses +hematopoiesis, haematopoiesis +hematopoietic, haematopoietic +hematorrhachis, haematorrhachis +hematosepsis, haematosepsis +hematosin, haematosin +hematosis's, haematosis's +hematosis, haematosis +hematothermal, haematothermal +hematoxylic, haematoxylic +hematoxylin's, haematoxylin's +hematoxylin, haematoxylin +hematoxylins, haematoxylins +hematozoa, haematozoa +hematozoal, haematozoal +hematozoic, haematozoic +hematozoon's, haematozoon's +hematozoon, haematozoon +hematozzoa, haematozzoa +hematuria's, haematuria's +hematuria, haematuria +hematurias, haematurias +heme, haem +hemerythrin, hemoerythrin +hemic, haemic +hemihypesthesia, hemihypoesthesia +hemin's, haemin's +hemin, haemin +hemins, haemins +hemoblast's, haemoblast's +hemoblast, haemoblast +hemochromatoses, haemochromatoses +hemochromatosis, haemochromatosis +hemochrome, haemochrome +hemocoel, haemocoel +hemocoels, haemocoels +hemoconcentration's, haemoconcentration's +hemoconcentration, haemoconcentration +hemoconia, haemoconia +hemocyanin, haemocyanin +hemocyanins, haemocyanins +hemocyte's, haemocyte's +hemocyte, haemocyte +hemocytes, haemocytes +hemocytoblast's, haemocytoblast's +hemocytoblast, haemocytoblast +hemocytoblastic, haemocytoblastic +hemocytometer, haemocytometer +hemodialyses, haemodialyses +hemodialysis's, haemodialysis's +hemodialysis, haemodialysis +hemodilution, haemodilution +hemodynamic, haemodynamic +hemodynamics's, haemodynamics's +hemodynamics, haemodynamics +hemoflagellate's, haemoflagellate's +hemoflagellate, haemoflagellate +hemoglobic, haemoglobic +hemoglobin's, haemoglobin's +hemoglobin, haemoglobin +hemoglobinopathies, haemoglobinopathies +hemoglobinopathy, haemoglobinopathy +hemoglobinous, haemoglobinous +hemoglobinuria's, haemoglobinuria's +hemoglobinuria, haemoglobinuria +hemogram, haemogram +hemoid, haemoid +hemolysin's, haemolysin's +hemolysin, haemolysin +hemolysis, haemolysis +hemolytic, haemolytic +hemometer, haemometer +Hemon's, Haemon's +Hemon, Haemon +hemophile's, haemophile's +hemophile, haemophile +hemophilia's, haemophilia's +hemophilia, haemophilia +hemophiliac's, haemophiliac's +hemophiliac, haemophiliac +hemophiliacs, haemophiliacs +hemophilic, haemophilic +hemopod, haemopod +hemopoiesis, haemopoiesis +hemoptyses, haemoptyses +hemoptysis's, haemoptysis's +hemoptysis, haemoptysis +hemorrhage's, haemorrhage's +hemorrhage, haemorrhage +hemorrhaged, haemorrhaged +hemorrhages, haemorrhages +hemorrhaging, haemorrhaging +hemorrhoid, haemorrhoid +hemorrhoidal, haemorrhoidal +hemorrhoidectomy's, haemorrhoidectomy's +hemorrhoidectomy, haemorrhoidectomy +hemorrhoids, haemorrhoids +hemosporid, haemosporid +hemosporidian, haemosporidian +hemostases, haemostases +hemostasia, haemostasia +hemostasis's, haemostasis's +hemostasis, haemostasis +hemostatic, haemostatic +hemothorax's, haemothorax's +hemothorax, haemothorax +hemotoxic, haemotoxic +hemotoxin's, haemotoxin's +hemotoxin, haemotoxin +heparinize, heparinise +hepatization's, hepatisation's +hepatization, hepatisation +hepatizations, hepatisations +hepatize, hepatise +hepatized, hepatised +hepatizes, hepatises +hepatizing, hepatising +hepatorrhea, hepatorrhoea +heraldize, heraldise +heraldizes, heraldises +herborization, herborisation +herborizations, herborisations +herborize, herborise +herborized, herborised +herborizes, herborises +herborizing, herborising +heredes, haeredes +hereticize, hereticise +hereticizes, hereticises +heroinize, heroinise +heroinizes, heroinises +heroization's, heroisation's +heroization, heroisation +heroizations, heroisations +heroize, heroise +heroized, heroised +heroizes, heroises +heroizing, heroising +het, haet +heterecious, heteroecious +heteric, hetaeric +heterism, hetaerism +hets, haets +hexachlorethane, hexachloroethane +hexachlorethanes, hexachloroethanes +hexametrize, hexametrise +hexametrized, hexametrised +hexametrizes, hexametrises +hexametrizing, hexametrising +hexestrol, hexoestrol +Hibernicize's, Hibernicise's +Hibernicize, Hibernicise +hibernicize, hibernicise +Hibernicized's, Hibernicised's +Hibernicized, Hibernicised +hibernicized, hibernicised +hibernicizes, hibernicises +Hibernicizing's, Hibernicising's +Hibernicizing, Hibernicising +hibernicizing, hibernicising +hibernization, hibernisation +hibernizations, hibernisations +hibernize, hibernise +hibernized, hibernised +hibernizes, hibernises +hibernizing, hibernising +hiccuped, hiccupped +hiccuping, hiccupping +hierarchize, hierarchise +hierarchized, hierarchised +hierarchizing, hierarchising +hifalutin, highfaluting +high_jinks, hijinks +hijack's, highjack's +hijack, highjack +hijacked, highjacked +hijacker's, highjacker's +hijacker, highjacker +hijackers, highjackers +hijacking, highjacking +hijacks, highjacks +hilloed, hilloaed +Hinduize's, Hinduise's +Hinduize, Hinduise +Hinduized's, Hinduised's +Hinduized, Hinduised +Hinduizes, Hinduises +Hinduizing's, Hinduising's +Hinduizing, Hinduising +hippieness's, hippiness's +hippieness, hippiness +hippienesses, hippinesses +hirseled, hirselled +hirseling, hirselling +Hispanicization's, Hispanicisation's +Hispanicization, Hispanicisation +Hispanicizations, Hispanicisations +Hispanicize, Hispanicise +hispanicize, hispanicise +Hispanicized, Hispanicised +hispanicized, hispanicised +Hispanicizes, Hispanicises +hispanicizes, hispanicises +Hispanicizing, Hispanicising +hispanicizing, hispanicising +Hispaniolize's, Hispaniolise's +Hispaniolize, Hispaniolise +hispaniolize, hispaniolise +Hispaniolized's, Hispaniolised's +Hispaniolized, Hispaniolised +hispaniolized, hispaniolised +Hispaniolizes, Hispaniolises +hispaniolizes, hispaniolises +Hispaniolizing's, Hispaniolising's +Hispaniolizing, Hispaniolising +hispaniolizing, hispaniolising +historicize, historicise +historicized, historicised +historicizes, historicises +historicizing, historicising +hmm, hm +hoagie's, hoagy's +hoagie, hoagy +hollos, hallos +Hollywoodize's, Hollywoodise's +Hollywoodize, Hollywoodise +Hollywoodized's, Hollywoodised's +Hollywoodized, Hollywoodised +Hollywoodizes, Hollywoodises +Hollywoodizing's, Hollywoodising's +Hollywoodizing, Hollywoodising +homeoblastic, homoeoblastic +homeobox, homoeobox +homeochromatic, homoeochromatic +homeochronous, homoeochronous +homeocrystalline, homoeocrystalline +homeogenic, homoeogenic +homeogenous, homoeogenous +homeoid, homoeoid +homeokinesis, homoeokinesis +homeomeric, homoeomeric +homeomeries, homoeomeries +homeomerous, homoeomerous +homeomery, homoeomery +homeomorph's, homoeomorph's +homeomorph, homoeomorph +homeomorphic, homoeomorphic +homeomorphies, homoeomorphies +homeomorphous, homoeomorphous +homeomorphs, homoeomorphs +homeomorphy, homoeomorphy +homeopath's, homoeopath's +homeopath, homoeopath +homeopathic, homoeopathic +homeopathicallier, homoeopathicallier +homeopathicalliest, homoeopathicalliest +homeopathically, homoeopathically +homeopathicer, homoeopathicer +homeopathicest, homoeopathicest +homeopathician, homoeopathician +homeopathicity, homoeopathicity +homeopathies, homoeopathies +homeopathist's, homoeopathist's +homeopathist, homoeopathist +homeopathists, homoeopathists +homeopaths, homoeopaths +homeopathy's, homoeopathy's +homeopathy, homoeopathy +homeophony, homoeophony +homeoplasia, homoeoplasia +homeoplastic, homoeoplastic +homeoplasy, homoeoplasy +homeopolar, homoeopolar +homeoses, homoeoses +homeosis, homoeosis +homeostases, homoeostases +homeostasis's, homoeostasis's +homeostasis, homoeostasis +homeostatic, homoeostatic +homeoteleuton, homoeoteleuton +homeoteleutons, homoeoteleutons +homeothermal, homoeothermal +homeothermic, homoeothermic +homeothermous, homoeothermous +homeotic, homoeotic +homeotype, homoeotype +homeotypic, homoeotypic +homeotypical, homoeotypical +homeozoic, homoeozoic +homeyness's, hominess's +homeyness, hominess +homeynesses, hominesses +hominization, hominisation +hominized, hominised +homogenization's, homogenisation's +homogenization, homogenisation +homogenizations, homogenisations +homogenize, homogenise +homogenized, homogenised +homogenizer's, homogeniser's +homogenizer, homogeniser +homogenizers, homogenisers +homogenizes, homogenises +homogenizing, homogenising +homologization, homologisation +homologize, homologise +homologized, homologised +homologizer's, homologiser's +homologizer, homologiser +homologizers, homologisers +homologizes, homologises +homologizing, homologising +homologue's, homolog's +homologue, homolog +homologues, homologs +honkie's, honkey's +honkie, honkey +honkies, honkeys +honor's, honour's +honor, honour +honorabilities, honourabilities +honorability's, honourability's +honorability, honourability +honorable's, honourable's +honorable, honourable +honorableness's, honourableness's +honorableness, honourableness +honorablenesses, honourablenesses +honorabler, honourabler +honorables, honourables +honorableship's, honourableship's +honorableship, honourableship +honorableships, honourableships +honorablest, honourablest +honorablier, honourablier +honorablies, honourablies +honorabliest, honourabliest +honorably, honourably +honored, honoured +honoree's, honouree's +honoree, honouree +honorees, honourees +honorer's, honourer's +honorer, honourer +honorers, honourers +honoring, honouring +honorless, honourless +honorlesser, honourlesser +honorlesses, honourlesses +honorlessest, honourlessest +honors, honours +hooch, hootch +hoodlumize, hoodlumise +hoodlumizes, hoodlumises +hookies, hookeys +hooky's, hookey's +hooky, hookey +hooliganize, hooliganise +hooliganizes, hooliganises +hoorah's, hurray's +hoorah, hurray +hoorayed, hurrayed +hooraying, hurraying +Hoosierize's, Hoosierise's +Hoosierize, Hoosierise +Hoosierizes, Hoosierises +Hooverize's, Hooverise's +Hooverize, Hooverise +Hooverizes, Hooverises +hore, horae +horizontalization's, horizontalisation's +horizontalization, horizontalisation +horizontalizations, horizontalisations +horizontalize, horizontalise +horizontalizes, horizontalises +hormonize, hormonise +hormonizes, hormonises +horrorize, horrorise +horrorizes, horrorises +horsey, horsy +hospitalization's, hospitalisation's +hospitalization, hospitalisation +hospitalizations, hospitalisations +hospitalize, hospitalise +hospitalized, hospitalised +hospitalizes, hospitalises +hospitalizing, hospitalising +hostilize, hostilise +hostilizes, hostilises +hotelization's, hotelisation's +hotelization, hotelisation +hotelizations, hotelisations +hotelize, hotelise +hotelizes, hotelises +houseled, houselled +houseling, houselling +houselings, housellings +hoveled, hovelled +hoveler, hoveller +hovelers, hovellers +hoveling, hovelling +hucksterize, hucksterise +hucksterizes, hucksterises +huer, hure +humanitarianize, humanitarianise +humanitarianizes, humanitarianises +humanization's, humanisation's +humanization, humanisation +humanizations, humanisations +humanize, humanise +humanized, humanised +humanizer's, humaniser's +humanizer, humaniser +humanizers, humanisers +humanizes, humanises +humanizing, humanising +humongous, humungous +humor's, humour's +humor, humour +humoral, humoural +humored, humoured +humorer, humourer +humorers, humourers +humorful, humourful +humoring, humouring +humorize, humorise +humorizes, humorises +humorless, humourless +humorlesser, humourlesser +humorlesses, humourlesses +humorlessest, humourlessest +humorlessness's, humourlessness's +humorlessness, humourlessness +humorlessnesses, humourlessnesses +humors, humours +humorsome, humoursome +humorsomeness, humoursomeness +hurrays, hurrahes +hurricanize, hurricanise +hurricanizes, hurricanises +huzzah's, huzza's +huzzah, huzza +huzzahed, huzzaed +huzzahing, huzzaing +huzzahs, huzzas +hyalinization's, hyalinisation's +hyalinization, hyalinisation +hyalinizations, hyalinisations +hyalinize, hyalinise +hyalinized, hyalinised +hyalinizes, hyalinises +hyalinizing, hyalinising +hybridizable's, hybridisable's +hybridizable, hybridisable +hybridizabler, hybridisabler +hybridizables, hybridisables +hybridizablest, hybridisablest +hybridization's, hybridisation's +hybridization, hybridisation +hybridizations, hybridisations +hybridize, hybridise +hybridized, hybridised +hybridizer's, hybridiser's +hybridizer, hybridiser +hybridizers, hybridisers +hybridizes, hybridises +hybridizing, hybridising +hydremia's, hydraemia's +hydremia, hydraemia +hydremias, hydraemias +hydremic, hydraemic +hydrocele, hydrocoele +hydrocephalus's, hydrocephaly's +hydrocephalus, hydrocephaly +hydrocephaluses, hydrocephalies +hydrogenization's, hydrogenisation's +hydrogenization, hydrogenisation +hydrogenizations, hydrogenisations +hydrogenize, hydrogenise +hydrogenized, hydrogenised +hydrogenizes, hydrogenises +hydrogenizing, hydrogenising +hydrolize, hydrolise +hydrolyzable's, hydrolysable's +hydrolyzable, hydrolysable +hydrolyzabler, hydrolysabler +hydrolyzables, hydrolysables +hydrolyzablest, hydrolysablest +hydrolyzate, hydrolysate +hydrolyzates, hydrolysates +hydrolyzation's, hydrolysation's +hydrolyzation, hydrolysation +hydrolyze, hydrolyse +hydrolyzed, hydrolysed +hydrolyzer's, hydrolyser's +hydrolyzer, hydrolyser +hydrolyzes, hydrolyses +hydrolyzing, hydrolysing +hydrorrhea, hydrorrhoea +hydroxylization's, hydroxylisation's +hydroxylization, hydroxylisation +hydroxylizations, hydroxylisations +hydroxylize, hydroxylise +hydroxylizes, hydroxylises +hyena's, hyaena's +hyena, hyaena +hyenic, hyaenic +hygienization's, hygienisation's +hygienization, hygienisation +hygienizations, hygienisations +hygienize, hygienise +hygienizes, hygienises +hymenean, hymenaean +hyperbolize, hyperbolise +hyperbolized, hyperbolised +hyperbolizes, hyperbolises +hyperbolizing, hyperbolising +hypercalcemia, hypercalcaemia +hypercalcemias, hypercalcaemias +hypercalcinemia, hypercalcinaemia +hypercatharsises, hypercatharses +hyperchloremia, hyperchloraemia +hypercholesterolemia, hypercholesterolaemia +hypercholesterolemias, hypercholesterolaemias +hypercivilization's, hypercivilisation's +hypercivilization, hypercivilisation +hypercivilizations, hypercivilisations +hypercivilized's, hypercivilised's +hypercivilized, hypercivilised +hypercivilizeds, hyperciviliseds +hypercriticize, hypercriticise +hypercriticized, hypercriticised +hypercriticizes, hypercriticises +hypercriticizing, hypercriticising +hypercryesthesia, hypercryaesthesia +hyperemia's, hyperaemia's +hyperemia, hyperaemia +hyperemias, hyperaemias +hyperemic, hyperaemic +hyperemphasize, hyperemphasise +hyperemphasizes, hyperemphasises +hyperesthesia's, hyperaesthesia's +hyperesthesia, hyperaesthesia +hyperesthesias, hyperaesthesias +hyperesthete's, hyperaesthete's +hyperesthete, hyperaesthete +hyperesthetic, hyperaesthetic +hyperestheticer, hyperaestheticer +hyperestheticest, hyperaestheticest +hyperglycemic, hyperglycaemic +hyperimmunization's, hyperimmunisation's +hyperimmunization, hyperimmunisation +hyperimmunizations, hyperimmunisations +hyperimmunize, hyperimmunise +hyperimmunizes, hyperimmunises +hyperinsulinization's, hyperinsulinisation's +hyperinsulinization, hyperinsulinisation +hyperinsulinizations, hyperinsulinisations +hyperinsulinize, hyperinsulinise +hyperinsulinizes, hyperinsulinises +hyperlipemia, hyperlipaemia +hyperlipemic, hyperlipaemic +hyperlipidemia, hyperlipidaemia +hypernatremia, hypernatraemia +hyperoxygenize, hyperoxygenise +hyperoxygenizes, hyperoxygenises +hyperparasitize, hyperparasitise +hyperparasitizes, hyperparasitises +hyperpnea's, hyperpnoea's +hyperpnea, hyperpnoea +hyperrealize, hyperrealise +hyperrealizes, hyperrealises +hypersensitization's, hypersensitisation's +hypersensitization, hypersensitisation +hypersensitizations, hypersensitisations +hypersensitize, hypersensitise +hypersensitized, hypersensitised +hypersensitizes, hypersensitises +hypersensitizing, hypersensitising +hyperspiritualizing's, hyperspiritualising's +hyperspiritualizing, hyperspiritualising +hyperspiritualizings, hyperspiritualisings +hyperthyroidization's, hyperthyroidisation's +hyperthyroidization, hyperthyroidisation +hyperthyroidizations, hyperthyroidisations +hyperthyroidize, hyperthyroidise +hyperthyroidizes, hyperthyroidises +hypervitalization's, hypervitalisation's +hypervitalization, hypervitalisation +hypervitalizations, hypervitalisations +hypervitalize, hypervitalise +hypervitalizes, hypervitalises +hypesthesia's, hypaesthesia's +hypesthesia, hypaesthesia +hypesthesias, hypaesthesias +hypesthesic, hypaesthesic +hypethral, hypaethral +hyphenization's, hyphenisation's +hyphenization, hyphenisation +hyphenizations, hyphenisations +hyphenize, hyphenise +hyphenized, hyphenised +hyphenizes, hyphenises +hyphenizing, hyphenising +hypnoidize, hypnoidise +hypnoidized, hypnoidised +hypnoidizes, hypnoidises +hypnoidizing, hypnoidising +hypnopedia, hypnopaedia +hypnopedias, hypnopaedias +hypnotizabilities, hypnotisabilities +hypnotizability's, hypnotisability's +hypnotizability, hypnotisability +hypnotizable's, hypnotisable's +hypnotizable, hypnotisable +hypnotizabler, hypnotisabler +hypnotizables, hypnotisables +hypnotizablest, hypnotisablest +hypnotization's, hypnotisation's +hypnotization, hypnotisation +hypnotizations, hypnotisations +hypnotize, hypnotise +hypnotized, hypnotised +hypnotizer's, hypnotiser's +hypnotizer, hypnotiser +hypnotizers, hypnotisers +hypnotizes, hypnotises +hypnotizing, hypnotising +hypocenter's, hypocentre's +hypocenter, hypocentre +hypocenters, hypocentres +hypogea, hypogaea +hypogeal, hypogaeal +hypogean, hypogaean +hypogeic, hypogaeic +hypogeous, hypogaeous +hypogeum, hypogaeum +hypomagnesemia, hypomagnesaemia +hypomagnesemias, hypomagnesaemias +hypomenorrhea, hypomenorrhoea +hypomenorrheas, hypomenorrhoeas +hypophysectomize, hypophysectomise +hypophysectomized, hypophysectomised +hypopnea's, hypopnoea's +hypopnea, hypopnoea +hyposensitization's, hyposensitisation's +hyposensitization, hyposensitisation +hyposensitize, hyposensitise +hypostasize, hypostasise +hypostasized, hypostasised +hypostasizes, hypostasises +hypostasizing, hypostasising +hypostatization's, hypostatisation's +hypostatization, hypostatisation +hypostatizations, hypostatisations +hypostatize, hypostatise +hypostatized, hypostatised +hypostatizes, hypostatises +hypostatizing, hypostatising +hypothesize, hypothesise +hypothesized, hypothesised +hypothesizer's, hypothesiser's +hypothesizer, hypothesiser +hypothesizers, hypothesisers +hypothesizes, hypothesises +hypothesizing, hypothesising +hypothetize, hypothetise +hypothetized, hypothetised +hypothetizes, hypothetises +hypothetizing, hypothetising +hypoxemia, hypoxaemia +hypoxemias, hypoxaemias +hypoxemic, hypoxaemic +hysterectomize, hysterectomise +hysterectomized, hysterectomised +hysterectomizes, hysterectomises +hysterectomizing, hysterectomising +ichneumonized's, ichneumonised's +ichneumonized, ichneumonised +ichneumonizeds, ichneumoniseds +ichorrhea, ichorrhoea +ichorrhemia, ichorrhaemia +icon's, ikon's +icon's, ikon's +icon, ikon +icon, ikon +iconic, ikonic +iconically, ikonically +iconize, iconise +iconized, iconised +iconizes, iconises +iconizing, iconising +icons, ikons +icons, ikons +Idea's, Idaea's +Idea, Idaea +idealization's, idealisation's +idealization, idealisation +idealizations, idealisations +idealize, idealise +idealized, idealised +idealizer's, idealiser's +idealizer, idealiser +idealizers, idealisers +idealizes, idealises +idealizing, idealising +Idean's, Idaean's +Idean, Idaean +ideologize, ideologise +ideologized, ideologised +ideologizing, ideologising +idiotize, idiotise +idiotized, idiotised +idiotizes, idiotises +idiotizing, idiotising +idolaster, idolastre +idolatrize, idolatrise +idolatrized, idolatrised +idolatrizer's, idolatriser's +idolatrizer, idolatriser +idolatrizes, idolatrises +idolatrizing, idolatrising +idolization's, idolisation's +idolization, idolisation +idolizations, idolisations +idolize, idolise +idolized, idolised +idolizer's, idoliser's +idolizer, idoliser +idolizers, idolisers +idolizes, idolises +idolizing, idolising +Idumea's, Idumaea's +Idumea, Idumaea +Idumean, Idumaean +Idumeans, Idumaeans +idyll's, idyl's +idyll, idyl +idylls, idyls +Ier's, Ire's +Ier, Ire +ignitable, ignitible +igniter's, ignitor's +igniter, ignitor +igniters, ignitors +ileocecal, ileocaecal +Iliadize's, Iliadise's +Iliadize, Iliadise +Iliadizes, Iliadises +illegalization's, illegalisation's +illegalization, illegalisation +illegalizations, illegalisations +illegalize, illegalise +illegalized, illegalised +illegalizes, illegalises +illegalizing, illegalising +illegitimatize, illegitimatise +illegitimatized, illegitimatised +illegitimatizes, illegitimatises +illegitimatizing, illegitimatising +illiberalize, illiberalise +illiberalized, illiberalised +illiberalizes, illiberalises +illiberalizing, illiberalising +Illuminize, Illuminise +Illuminizes, Illuminises +Imer's, Imre's +Imer, Imre +immaterialization, immaterialisation +immaterialize, immaterialise +immaterialized, immaterialised +immaterializes, immaterialises +immaterializing, immaterialising +immiserization, immiserisation +immiserizations, immiserisations +immiserize, immiserise +immiserized, immiserised +immiserizes, immiserises +immiserizing, immiserising +immobilization's, immobilisation's +immobilization, immobilisation +immobilizations, immobilisations +immobilize, immobilise +immobilized, immobilised +immobilizer, immobiliser +immobilizers, immobilisers +immobilizes, immobilises +immobilizing, immobilising +immoralize, immoralise +immoralized, immoralised +immoralizes, immoralises +immoralizing, immoralising +immortalizable's, immortalisable's +immortalizable, immortalisable +immortalizabler, immortalisabler +immortalizables, immortalisables +immortalizablest, immortalisablest +immortalization's, immortalisation's +immortalization, immortalisation +immortalizations, immortalisations +immortalize, immortalise +immortalized, immortalised +immortalizer's, immortaliser's +immortalizer, immortaliser +immortalizers, immortalisers +immortalizes, immortalises +immortalizing, immortalising +immunization's, immunisation's +immunization, immunisation +immunizations, immunisations +immunize, immunise +immunized, immunised +immunizer's, immuniser's +immunizer, immuniser +immunizes, immunises +immunizing, immunising +impactionize, impactionise +impactionizes, impactionises +impanel, empanel +impanelled, empanelled +impanelling, empanelling +impanelment, empanelment +impanels, empanels +impasted, impastoed +imperialization's, imperialisation's +imperialization, imperialisation +imperializations, imperialisations +imperialize, imperialise +imperialized, imperialised +imperializes, imperialises +imperializing, imperialising +imperiled, imperilled +imperiling, imperilling +imperscriptible, imprescriptible +impersonalization's, impersonalisation's +impersonalization, impersonalisation +impersonalizations, impersonalisations +impersonalize, impersonalise +impersonalized, impersonalised +impersonalizes, impersonalises +impersonalizing, impersonalising +impostor's, imposter's +impostor, imposter +impostors, imposters +improvisatorise, improvisatorize +improvisatorises, improvisatorizes +improviser's, improvisor's +improviser, improvisor +improvisers, improvisors +incarnalize, incarnalise +incarnalized, incarnalised +incarnalizing, incarnalising +incenter, incentre +incenters, incentres +incentivization, incentivisation +incentivizations, incentivisations +incentivize, incentivise +incentivized, incentivised +incentivizes, incentivises +incentivizing, incentivising +incerate, increate +incognizable, incognisable +incognizance's, incognisance's +incognizance, incognisance +incognizances, incognisances +incognizant, incognisant +Indianization's, Indianisation's +Indianization, Indianisation +Indianize, Indianise +Indianized, Indianised +Indianizes, Indianises +Indianizing, Indianising +indigene, indigenae +indigenization, indigenisation +indigenizations, indigenisations +indigenize, indigenise +indigenized, indigenised +indigenizes, indigenises +indigenizing, indigenising +individualization's, individualisation's +individualization, individualisation +individualizations, individualisations +individualize, individualise +individualized, individualised +individualizer's, individualiser's +individualizer, individualiser +individualizers, individualisers +individualizes, individualises +individualizing, individualising +individualizingly, individualisingly +indraft's, indraught's +indraft, indraught +indrafts, indraughts +industrialization's, industrialisation's +industrialization, industrialisation +industrializations, industrialisations +industrialize, industrialise +industrialized, industrialised +industrializes, industrialises +industrializing, industrialising +inesthetic, inaesthetic +infamize, infamise +infamized, infamised +infamizes, infamises +infamizing, infamising +infamonize, infamonise +infamonized, infamonised +infamonizes, infamonises +infamonizing, infamonising +infere, infree +inferiorize, inferiorise +inferiorizes, inferiorises +infernalize, infernalise +infernalizes, infernalises +infidelize, infidelise +infidelizes, infidelises +infinitize, infinitise +infinitizes, infinitises +inflection's, inflexion's +inflection, inflexion +inflections, inflexions +informalize, informalise +informalizes, informalises +Ingveonic's, Ingvaeonic's +Ingveonic, Ingvaeonic +Ingweonic's, Ingwaeonic's +Ingweonic, Ingwaeonic +inhumanize, inhumanise +inhumanizes, inhumanises +initialed, initialled +initialer's, initialler's +initialer, initialler +initialers, initiallers +initialing, initialling +initializable, initialisable +initialization's, initialisation's +initialization, initialisation +initializations, initialisations +initialize, initialise +initialized, initialised +initializer, initialiser +initializers, initialisers +initializes, initialises +initializing, initialising +inorganization, inorganisation +inorganizations, inorganisations +inorganized, inorganised +inquire, enquire +inquired, enquired +inquires, enquires +inquiries, enquiries +inquiring, enquiring +inquiry's, enquiry's +inquiry, enquiry +insignia's, insigne's +insignia, insigne +insolubilization's, insolubilisation's +insolubilization, insolubilisation +insolubilize, insolubilise +insolubilized, insolubilised +insolubilizes, insolubilises +insolubilizing, insolubilising +install, instal +installment's, instalment's +installment, instalment +installments, instalments +installs, instals +instill, instil +instills, instils +instituter's, institutor's +instituter, institutor +instituters, institutors +institutionalization's, institutionalisation's +institutionalization, institutionalisation +institutionalizations, institutionalisations +institutionalize, institutionalise +institutionalized, institutionalised +institutionalizes, institutionalises +institutionalizing, institutionalising +institutionize, institutionise +institutionizes, institutionises +instrumentalize, instrumentalise +instrumentalizes, instrumentalises +insularize, insularise +insularizes, insularises +insurrectionize, insurrectionise +insurrectionized, insurrectionised +insurrectionizes, insurrectionises +insurrectionizing, insurrectionising +integralization's, integralisation's +integralization, integralisation +integralizations, integralisations +integralize, integralise +integralizes, integralises +intellectualization's, intellectualisation's +intellectualization, intellectualisation +intellectualizations, intellectualisations +intellectualize, intellectualise +intellectualized, intellectualised +intellectualizer's, intellectualiser's +intellectualizer, intellectualiser +intellectualizers, intellectualisers +intellectualizes, intellectualises +intellectualizing, intellectualising +intercivilization's, intercivilisation's +intercivilization, intercivilisation +intercivilizations, intercivilisations +intercolonization's, intercolonisation's +intercolonization, intercolonisation +intercolonizations, intercolonisations +intercrystallization's, intercrystallisation's +intercrystallization, intercrystallisation +intercrystallizations, intercrystallisations +intercrystallize, intercrystallise +intercrystallizes, intercrystallises +interhemal, interhaemal +interhybridize, interhybridise +interhybridizes, interhybridises +interiorization, interiorisation +interiorize, interiorise +interiorized, interiorised +interiorizes, interiorises +interiorizing, interiorising +interjectionalize, interjectionalise +interjectionalized, interjectionalised +interjectionalizes, interjectionalises +interjectionalizing, interjectionalising +interjectionize, interjectionise +interjectionizes, interjectionises +interjudgment's, interjudgement's +interjudgment, interjudgement +interjudgments, interjudgements +internalization's, internalisation's +internalization, internalisation +internalizations, internalisations +internalize, internalise +internalized, internalised +internalizes, internalises +internalizing, internalising +internationalization's, internationalisation's +internationalization, internationalisation +internationalizations, internationalisations +internationalize, internationalise +internationalized, internationalised +internationalizes, internationalises +internationalizing, internationalising +internment, internement +internments, internements +internship, interneship +internships, interneships +interorganizational, interorganisational +intime, intimae +intraorganization's, intraorganisation's +intraorganization, intraorganisation +intraorganizations, intraorganisations +inure, enure +inured, enured +inures, enures +inuring, enuring +invigor, invigour +iodization's, iodisation's +iodization, iodisation +iodize, iodise +iodized, iodised +iodizer's, iodiser's +iodizer, iodiser +iodizers, iodisers +iodizes, iodises +iodizing, iodising +Ionicization's, Ionicisation's +Ionicization, Ionicisation +Ionicizations, Ionicisations +Ionicize's, Ionicise's +Ionicize, Ionicise +Ionicized's, Ionicised's +Ionicized, Ionicised +Ionicizes, Ionicises +Ionicizing's, Ionicising's +Ionicizing, Ionicising +ionizable's, ionisable's +ionizable, ionisable +ionizabler, ionisabler +ionizables, ionisables +ionizablest, ionisablest +ionization's, ionisation's +ionization, ionisation +ionizations, ionisations +ionize, ionise +ionized, ionised +ionizer's, ioniser's +ionizer, ioniser +ionizers, ionisers +ionizes, ionises +ionizing, ionising +ionizings, ionisings +ionizion, ionision +ionizions, ionisions +Iphinoe's, Iphinoae's +Iphinoe, Iphinoae +ipomea, ipomoea +Iranize's, Iranise's +Iranize, Iranise +Iranizes, Iranises +Iricize's, Iricise's +Iricize, Iricise +Iricized's, Iricised's +Iricized, Iricised +Iricizing's, Iricising's +Iricizing, Iricising +iridectomize, iridectomise +iridectomized, iridectomised +iridectomizing, iridectomising +iridization, iridisation +iridizations, iridisations +iridize, iridise +iridized, iridised +iridizes, iridises +iridizing, iridising +Irishize's, Irishise's +Irishize, Irishise +Irishized's, Irishised's +Irishized, Irishised +Irishizes, Irishises +Irishizing's, Irishising's +Irishizing, Irishising +ironize, ironise +ironized, ironised +ironizes, ironises +ironizing, ironising +irrationalize, irrationalise +irrationalized, irrationalised +irrationalizes, irrationalises +irrationalizing, irrationalising +irrealizable, irrealisable +irrecognizable, irrecognisable +irregularize, irregularise +irregularizes, irregularises +ischemia's, ischaemia's +ischemia, ischaemia +ischemias, ischaemias +ischemic, ischaemic +Islamicize's, Islamicise's +Islamicize, Islamicise +Islamicized's, Islamicised's +Islamicized, Islamicised +Islamicizes, Islamicises +Islamicizing's, Islamicising's +Islamicizing, Islamicising +Islamization's, Islamisation's +Islamization, Islamisation +Islamizations, Islamisations +Islamize, Islamise +Islamized, Islamised +Islamizes, Islamises +Islamizing, Islamising +isochronization, isochronisation +isochronize, isochronise +isochronized, isochronised +isochronizes, isochronises +isochronizing, isochronising +isoimmunization's, isoimmunisation's +isoimmunization, isoimmunisation +isoimmunizations, isoimmunisations +isoimmunize, isoimmunise +isoimmunizes, isoimmunises +isomerization's, isomerisation's +isomerization, isomerisation +isomerizations, isomerisations +isomerize, isomerise +isomerized, isomerised +isomerizes, isomerises +isomerizing, isomerising +Israelitize's, Israelitise's +Israelitize, Israelitise +Israelitizes, Israelitises +Italianization's, Italianisation's +Italianization, Italianisation +Italianizations, Italianisations +Italianize, Italianise +italianize, italianise +Italianized, Italianised +italianized, italianised +Italianizer's, Italianiser's +Italianizer, Italianiser +Italianizers, Italianisers +Italianizes, Italianises +italianizes, italianises +Italianizing, Italianising +italianizing, italianising +italicization's, italicisation's +italicization, italicisation +italicizations, italicisations +italicize, italicise +italicized, italicised +italicizes, italicises +italicizing, italicising +itemization's, itemisation's +itemization, itemisation +itemizations, itemisations +itemize, itemise +itemized, itemised +itemizer's, itemiser's +itemizer, itemiser +itemizers, itemisers +itemizes, itemises +itemizing, itemising +Iturean, Ituraean +Itureans, Ituraeans +izing, ising +jacobean, jacobaean +Jacobinization's, Jacobinisation's +Jacobinization, Jacobinisation +Jacobinize's, Jacobinise's +Jacobinize, Jacobinise +Jacobinized's, Jacobinised's +Jacobinized, Jacobinised +Jacobinizes, Jacobinises +Jacobinizing's, Jacobinising's +Jacobinizing, Jacobinising +jail's, gaol's +jail, gaol +jailbird's, gaolbird's +jailbird, gaolbird +jailbirds, gaolbirds +jailbreak's, gaolbreak's +jailbreak, gaolbreak +jailbreaks, gaolbreaks +jailed, gaoled +jailing, gaoling +jailor's, gaoler's +jailor, gaoler +jailors, gaolers +jails, gaols +janizaries, janisaries +janizary, janisary +Japanization's, Japanisation's +Japanization, Japanisation +Japanizations, Japanisations +Japanize, Japanise +Japanized, Japanised +Japanizes, Japanises +Japanizing, Japanising +jargonization's, jargonisation's +jargonization, jargonisation +jargonizations, jargonisations +jargonize, jargonise +jargonized, jargonised +jargonizes, jargonises +jargonizing, jargonising +jasmine's, jessamine's +jasmine, jessamine +jasmines, jessamines +jasperize, jasperise +jasperized, jasperised +jasperizes, jasperises +jasperizing, jasperising +jeez, geez +jeopardization, jeopardisation +jeopardize, jeopardise +jeopardized, jeopardised +jeopardizes, jeopardises +jeopardizing, jeopardising +jerrican's, jerry_can's +jerrican, jerry_can +jerricans, jerry_cans +Jesuitization's, Jesuitisation's +Jesuitization, Jesuitisation +Jesuitize, Jesuitise +Jesuitized, Jesuitised +Jesuitizes, Jesuitises +Jesuitizing, Jesuitising +jeweled, jewelled +jeweler's, jeweller's +jeweler, jeweller +jewelers, jewellers +jeweling, jewelling +jewelry's, jewellery's +jewelry, jewellery +jihad's, jehad's +jihad, jehad +jihads, jehads +jinricksha's, jinriksha's +jinricksha, jinriksha +jinrickshas, jinrikshas +jiujitsu's, jujutsu's +jokey, joky +Jonathanization's, Jonathanisation's +Jonathanization, Jonathanisation +Jonathanizations, Jonathanisations +jor, jour +jors, jours +journalization's, journalisation's +journalization, journalisation +journalizations, journalisations +journalize, journalise +journalized, journalised +journalizer's, journaliser's +journalizer, journaliser +journalizers, journalisers +journalizes, journalises +journalizing, journalising +jovialize, jovialise +jovializes, jovialises +Judaization's, Judaisation's +Judaization, Judaisation +Judaize, Judaise +Judaized, Judaised +Judaizer's, Judaiser's +Judaizer, Judaiser +judaizer, judaiser +Judaizing, Judaising +Judean, Judaean +Judeans, Judaeans +Judeophobia's, Judaeophobia's +Judeophobia, Judaeophobia +judgment's, judgement's +judgment, judgement +judgmental, judgemental +judgmentaler, judgementaler +judgmentalest, judgementalest +judgments, judgements +judicialize, judicialise +judicializes, judicialises +jujutsu, jiujitsu +jujutsus, jiujitsus +Julide's, Julidae's +Julide, Julidae +jumboize, jumboise +jumboized, jumboised +jumboizes, jumboises +jumboizing, jumboising +junketeer's, junketer's +junketeer, junketer +junketeers, junketers +juvenilize, juvenilise +juvenilizes, juvenilises +kabob, kebob +kabobs, kebobs +kane, kanae +kaolinization's, kaolinisation's +kaolinization, kaolinisation +kaolinizations, kaolinisations +kaolinize, kaolinise +kaolinized, kaolinised +kaolinizes, kaolinises +kaolinizing, kaolinising +kebob's, kabob's +ked, kaed +Keizer's, Keiser's +Keizer, Keiser +kellia, koellia +kembed, kemboed +kenneled, kennelled +kenneling, kennelling +Keppel's, Koeppel's +Keppel, Koeppel +keratinization's, keratinisation's +keratinization, keratinisation +keratinizations, keratinisations +keratinize, keratinise +keratinized, keratinised +keratinizes, keratinises +keratinizing, keratinising +Kerin's, Krein's +Kerin, Krein +kerneled, kernelled +kerneling, kernelling +kerosene's, kerosine's +kerosene, kerosine +kerosenes, kerosines +ketonemia, ketonaemia +ketonization's, ketonisation's +ketonization, ketonisation +ketonizations, ketonisations +ketonize, ketonise +ketonizes, ketonises +kiddie's, kiddy's +kiddie, kiddy +kidnapped, kidnaped +kidnappee's, kidnapee's +kidnappee, kidnapee +kidnappees, kidnapees +kidnapper's, kidnaper's +kidnapper, kidnaper +kidnappers, kidnapers +kidnapping, kidnaping +kilogram's, kilogramme's +kilogram, kilogramme +kilograms, kilogrammes +kiloliter's, kilolitre's +kiloliter, kilolitre +kiloliters, kilolitres +kilometer's, kilometre's +kilometer, kilometre +kilometers, kilometres +kindergartner's, kindergartener's +kindergartner, kindergartener +kindergartners, kindergarteners +kinestheses, kinaestheses +kinesthesia's, kinaesthesia's +kinesthesia, kinaesthesia +kinesthesias, kinaesthesias +kinesthesis's, kinaesthesis's +kinesthesis, kinaesthesis +kinesthetic, kinaesthetic +kinestheticallier, kinaestheticallier +kinestheticalliest, kinaestheticalliest +kinesthetically, kinaesthetically +kinestheticer, kinaestheticer +kinestheticest, kinaestheticest +kinesthetics, kinaesthetics +kissogram's, kissagram's +kissogram, kissagram +kissograms, kissagrams +knickknack's, nicknack's +knickknack, nicknack +knickknacks, nicknacks +knockwurst's, knackwurst's +knockwurst, knackwurst +knockwursts, knackwursts +kooky, kookie +kopek's, copeck's +kopek, copeck +kopeks, copecks +Kossean's, Kossaean's +Kossean, Kossaean +kumquat's, cumquat's +kumquat, cumquat +kumquats, cumquats +kyanize, kyanise +kyanized, kyanised +kyanizes, kyanises +kyanizing, kyanising +kyles, kyloes +labelable, labellable +labeled, labelled +labeler's, labeller's +labeler, labeller +labelers, labellers +labeling, labelling +labialization's, labialisation's +labialization, labialisation +labializations, labialisations +labialize, labialise +labialized, labialised +labializes, labialises +labializing, labialising +labiate, labiatae +labilization's, labilisation's +labilization, labilisation +labilizations, labilisations +labilize, labilise +labilizes, labilises +labiovelarization's, labiovelarisation's +labiovelarization, labiovelarisation +labiovelarize, labiovelarise +labiovelarized, labiovelarised +labiovelarizing, labiovelarising +labor's, labour's +labor, labour +laborabilities, labourabilities +laborability's, labourability's +laborability, labourability +laborable's, labourable's +laborable, labourable +laborables, labourables +laborage, labourage +labored, laboured +laboredlier, labouredlier +laboredliest, labouredliest +laboredly, labouredly +laboredness's, labouredness's +laboredness, labouredness +laborednesses, labourednesses +laborer's, labourer's +laborer, labourer +laborers, labourers +laboress, labouress +laborhood's, labourhood's +laborhood, labourhood +laborhoods, labourhoods +laboring's, labouring's +laboring, labouring +laboringlier, labouringlier +laboringliest, labouringliest +laboringly, labouringly +laborings, labourings +Laborism's, Labourism's +laborism's, labourism's +Laborism, Labourism +laborism, labourism +laborisms, labourisms +laborist's, labourist's +laborist, labourist +laborists, labourists +Laborite's, Labourite's +laborite's, labourite's +Laborite, Labourite +laborite, labourite +Laborites, Labourites +laborites, labourites +laborless, labourless +laborlesser, labourlesser +laborlesses, labourlesses +laborlessest, labourlessest +labors, labours +laborsaving, laboursaving +laborsome, laboursome +laborsomely, laboursomely +lachrymal, lacrimal +lackluster's, lacklustre's +lackluster, lacklustre +lacklusterrer, lacklustrer +lacklusterrest, lacklustrest +lacklusters, lacklustres +laconize, laconise +laconized, laconised +laconizes, laconises +laconizing, laconising +lactonized, lactonised +lagniappe's, lagnappe's +lagniappe, lagnappe +lagniappes, lagnappes +laicization's, laicisation's +laicization, laicisation +laicizations, laicisations +laicize, laicise +laicized, laicised +laicizes, laicises +laicizing, laicising +lairize, lairise +lairized, lairised +lairizes, lairises +lairizing, lairising +lambaste, lambast +lambastes, lambasts +laminarize, laminarise +laminarized, laminarised +laminarizes, laminarises +laminarizing, laminarising +Lander's, Landre's +Lander, Landre +Laothoe's, Laothoae's +Laothoe, Laothoae +lapeled, lapelled +lasagna's, lasagne's +lasagna, lasagne +lasagnas, lasagnes +laster, lastre +latentize, latentise +latentizes, latentises +lateralization's, lateralisation's +lateralization, lateralisation +lateralizations, lateralisations +lateralize, lateralise +lateralizes, lateralises +laterization's, laterisation's +laterization, laterisation +laterizations, laterisations +Latinization's, Latinisation's +Latinization, Latinisation +Latinizations, Latinisations +Latinize, Latinise +latinize, latinise +Latinized, Latinised +Latinizer, Latiniser +Latinizers, Latinisers +Latinizes, Latinises +Latinizing, Latinising +launderette's, laundrette's +launderette, laundrette +launderettes, laundrettes +laure, laurae +laureled, laurelled +laureling, laurelling +lavalier_microphone's, lavaliere_microphone's +lavalier_microphone, lavaliere_microphone +lavalier_microphones, lavaliere_microphones +lavolted, lavoltaed +leaped, leapt +learned, learnt +leatherize, leatherise +leatherizes, leatherises +lefty's, leftie's +lefty, leftie +legalization's, legalisation's +legalization, legalisation +legalizations, legalisations +legalize, legalise +legalized, legalised +legalizes, legalises +legalizing, legalising +legitimatize, legitimatise +legitimatized, legitimatised +legitimatizes, legitimatises +legitimatizing, legitimatising +legitimization's, legitimisation's +legitimization, legitimisation +legitimizations, legitimisations +legitimize, legitimise +legitimized, legitimised +legitimizer, legitimiser +legitimizes, legitimises +legitimizing, legitimising +leguminose, leguminosae +lemmatize, lemmatise +lemmatized, lemmatised +lemmatizes, lemmatises +lemmatizing, lemmatising +leporide, leporidae +leptospire, leptospirae +Lernean's, Lernaean's +Lernean, Lernaean +lernean, lernaean +lesses, loesses +lethalize, lethalise +lethalizes, lethalises +lethargize, lethargise +lethargized, lethargised +lethargizes, lethargises +lethargizing, lethargising +leucemia, leucaemia +leucemias, leucaemias +leucemic, leucaemic +leuchemia, leuchaemia +leucocythemia, leucocythaemia +leucocythemic, leucocythaemic +leucorrhea's, leucorrhoea's +leucorrhea, leucorrhoea +leucorrheal, leucorrhoeal +leucorrheas, leucorrhoeas +Leucothoe's, Leucothoae's +Leucothoe, Leucothoae +leukemia's, leukaemia's +leukemia, leukaemia +leukemias, leukaemias +leukemogeneses, leukaemogeneses +leukemogenesis, leukaemogenesis +leukorrhea, leukorrhoea +leukorrheal, leukorrhoeal +leveled, levelled +leveler's, leveller's +leveler, leveller +levelers, levellers +levelest, levellest +leveling's, levelling's +leveling, levelling +levigate, laevigate +levigated, laevigated +levigates, laevigates +levigating, laevigating +levo, laevo +levoduction, laevoduction +levogyrate, laevogyrate +levogyre, laevogyre +levogyrous, laevogyrous +levolactic, laevolactic +levorotation's, laevorotation's +levorotation, laevorotation +levorotations, laevorotations +levorotatory, laevorotatory +levotartaric, laevotartaric +levoversion, laevoversion +levulin, laevulin +levulose's, laevulose's +levulose, laevulose +levuloses, laevuloses +lexicalization, lexicalisation +lexicalizations, lexicalisations +lexiconize, lexiconise +lexiconizes, lexiconises +libelant's, libellant's +libelant, libellant +libelants, libellants +libeled, libelled +libelee's, libellee's +libelee, libellee +libelees, libellees +libeler's, libeller's +libeler, libeller +libelers, libellers +libeling, libelling +libelous, libellous +libelouser, libellouser +libelousest, libellousest +libelouslier, libellouslier +libelousliest, libellousliest +libelously, libellously +liberalization's, liberalisation's +liberalization, liberalisation +liberalizations, liberalisations +liberalize, liberalise +liberalized, liberalised +liberalizer's, liberaliser's +liberalizer, liberaliser +liberalizers, liberalisers +liberalizes, liberalises +liberalizing, liberalising +licenseless, licenceless +licenselesses, licencelesses +lichenization's, lichenisation's +lichenization, lichenisation +lichenizations, lichenisations +lichenize, lichenise +lichenized, lichenised +lichenizes, lichenises +lichenizing, lichenising +licorice's, liquorice's +licorice, liquorice +lignitize, lignitise +lignitizes, lignitises +lignose, lignosae +ligule, ligulae +likabilities, likeabilities +likability's, likeability's +likability, likeability +likable, likeable +likableness's, likeableness's +likableness, likeableness +likablenesses, likeablenesses +Lilliputianize's, Lilliputianise's +Lilliputianize, Lilliputianise +Lilliputianizes, Lilliputianises +linchpin's, lynchpin's +linchpin, lynchpin +linchpins, lynchpins +linearizable, linearisable +linearization's, linearisation's +linearization, linearisation +linearizations, linearisations +linearize, linearise +linearized, linearised +linearizes, linearises +linearizing, linearising +linearizion, linearision +linenize, linenise +linenizer, lineniser +linenizers, linenisers +linenizes, linenises +linge, lingoe +lingualize, lingualise +lingualizes, lingualises +linguine's, linguini's +linguine, linguini +linguines, linguinis +lionizable's, lionisable's +lionizable, lionisable +lionizables, lionisables +lionization's, lionisation's +lionization, lionisation +lionizations, lionisations +lionize, lionise +lionized, lionised +lionizer's, lioniser's +lionizer, lioniser +lionizers, lionisers +lionizes, lionises +lionizing, lionising +lipemia, lipaemia +lipemic, lipaemic +lipoidemia, lipoidaemia +liquefied, liquified +liquefier, liquifier +liquefiers, liquifiers +liquefies, liquifies +liquefy, liquify +liquefying, liquifying +liquidization, liquidisation +liquidize, liquidise +liquidized, liquidised +liquidizer's, liquidiser's +liquidizer, liquidiser +liquidizers, liquidisers +liquidizes, liquidises +liquidizing, liquidising +lissome, lissom +lissomely, lissomly +lissomeness, lissomness +lissomenesses, lissomnesses +Listerize's, Listerise's +Listerize, Listerise +Listerized's, Listerised's +Listerized, Listerised +Listerizes, Listerises +Listerizing's, Listerising's +Listerizing, Listerising +liter's, litre's +liter, litre +literalization's, literalisation's +literalization, literalisation +literalizations, literalisations +literalize, literalise +literalized, literalised +literalizer's, literaliser's +literalizer, literaliser +literalizers, literalisers +literalizes, literalises +literalizing, literalising +liters, litres +lithed, lithoed +lithemia, lithaemia +lithemic, lithaemic +lithographize, lithographise +lithographizes, lithographises +lithopedion, lithopaedion +lithopedium, lithopaedium +lithophyse, lithophysae +lithotritize, lithotritise +lithotritized, lithotritised +lithotritizes, lithotritises +lithotritizing, lithotritising +livable, liveable +livableness, liveableness +lobotomize, lobotomise +lobotomized, lobotomised +lobotomizes, lobotomises +lobotomizing, lobotomising +localizable's, localisable's +localizable, localisable +localizabler, localisabler +localizables, localisables +localizablest, localisablest +localization's, localisation's +localization, localisation +localizations, localisations +localize, localise +localized, localised +localizer's, localiser's +localizer, localiser +localizers, localisers +localizes, localises +localizing, localising +locator's, locater's +locator, locater +locators, locaters +lodestar's, loadstar's +lodestar, loadstar +lodestars, loadstars +lodestone's, loadstone's +lodestone, loadstone +lodestones, loadstones +lodgment's, lodgement's +lodgment, lodgement +lodgments, lodgements +lodicule, lodiculae +loed, looed +logicalization's, logicalisation's +logicalization, logicalisation +logicalizations, logicalisations +logicalize, logicalise +logicalizes, logicalises +logicize, logicise +logicized, logicised +logicizes, logicises +logicizing, logicising +logopedic, logopaedic +logopedics's, logopaedics's +logopedics, logopaedics +logorrhea's, logorrhoea's +logorrhea, logorrhoea +logorrheas, logorrhoeas +lollipop's, lollypop's +lollipop, lollypop +lollipops, lollypops +lollygag, lallygag +lollygagged, lallygagged +lollygagging, lallygagging +lollygags, lallygags +Londonization's, Londonisation's +Londonization, Londonisation +Londonizations, Londonisations +Londonize's, Londonise's +Londonize, Londonise +Londonized's, Londonised's +Londonized, Londonised +Londonizes, Londonises +Londonizing's, Londonising's +Londonizing, Londonising +longeval, longaeval +longevous, longaevous +looneyies, looneys +loonier, looneyier +loony's, looney's +loony, looney +lordy, lourdy +lorings, lourings +lory, loury +louter, loutre +louver's, louvre's +louver, louvre +louvered, louvred +louvers, louvres +lovability, lovaebility +lovable, loveable +lovableness, loveableness +lovably, loveably +love, luv +loves, luvs +lovey, luvvie +loveys, luvvies +loyalize, loyalise +loyalizes, loyalises +lumbarization's, lumbarisation's +lumbarization, lumbarisation +lumbarizations, lumbarisations +lunatize, lunatise +lunatizes, lunatises +lunule, lunulae +luster's, lustre's +luster, lustre +lustered, lustred +lustering's, lustring's +lustering, lustring +lusterless, lustreless +lusterlesser, lustrelesser +lusterlessest, lustrelessest +lusters, lustres +lusterware's, lustreware's +lusterware, lustreware +lusterwares, lustrewares +luteinization's, luteinisation's +luteinization, luteinisation +luteinizations, luteinisations +luteinize, luteinise +luteinized, luteinised +luteinizes, luteinises +luteinizing, luteinising +Lutheranize's, Lutheranise's +Lutheranize, Lutheranise +Lutheranizer's, Lutheraniser's +Lutheranizer, Lutheraniser +Lutheranizers, Lutheranisers +Lutheranizes, Lutheranises +lutrine, lutrinae +luvvy, luvvie +lychee's, lichee's +lychee, lichee +lychees, lichees +lymphedema, lymphoedema +lymphemia, lymphaemia +lyophilization's, lyophilisation's +lyophilization, lyophilisation +lyophilizations, lyophilisations +lyophilize, lyophilise +lyophilized, lyophilised +lyophilizer, lyophiliser +lyophilizes, lyophilises +lyophilizing, lyophilising +lyricization's, lyricisation's +lyricization, lyricisation +lyricize, lyricise +lyricized, lyricised +lyricizes, lyricises +lyricizing, lyricising +lysogenization, lysogenisation +lysogenize, lysogenise +lysogenized, lysogenised +lysogenizes, lysogenises +lysogenizing, lysogenising +mac's, mack's +mac, mack +macadamization's, macadamisation's +macadamization, macadamisation +macadamizations, macadamisations +macadamize, macadamise +macadamized, macadamised +macadamizes, macadamises +macadamizing, macadamising +macarize, macarise +macarized, macarised +macarizes, macarises +macarizing, macarising +Maccabean, Maccabaean +machinization's, machinisation's +machinization, machinisation +machinizations, machinisations +machinize, machinise +machinizes, machinises +mackintosh's, macintosh's +mackintosh, macintosh +mackintoshes, macintoshes +macrander, macrandre +macs, macks +macule, maculae +Madera's, Madoera's +Madera, Madoera +maderization, maderisation +maderizations, maderisations +maderize, maderise +maderized, maderised +maderizes, maderises +maderizing, maderising +maed, maaed +maenad's, menad's +maenad, menad +maenadic, menadic +maenads, menads +magicalize, magicalise +magicalizes, magicalises +magnetizabilities, magnetisabilities +magnetizability's, magnetisability's +magnetizability, magnetisability +magnetizable's, magnetisable's +magnetizable, magnetisable +magnetizables, magnetisables +magnetization's, magnetisation's +magnetization, magnetisation +magnetizations, magnetisations +magnetize, magnetise +magnetized, magnetised +magnetizer's, magnetiser's +magnetizer, magnetiser +magnetizers, magnetisers +magnetizes, magnetises +magnetizing, magnetising +maharajah's, maharaja's +maharajah, maharaja +maharajahs, maharajas +maharani's, maharanee's +maharani, maharanee +maharanis, maharanees +mahoganize, mahoganise +mahoganized, mahoganised +mahoganizes, mahoganises +mahoganizing, mahoganising +maiger, maigre +mainor, mainour +mainors, mainours +mainprize, mainprise +maisters, maistres +Maize's, Maise's +Maize, Maise +majolica's, maiolica's +majolica, maiolica +majolicas, maiolicas +majorize, majorise +majorizes, majorises +majuscule, majusculae +Malayize's, Malayise's +Malayize, Malayise +Malayizes, Malayises +malleablize, malleablise +malleablizes, malleablises +malodor's, malodour's +malodor, malodour +malodorousness, malodourousness +malodors, malodours +mandarinize, mandarinise +mandarinizes, mandarinises +Mandean's, Mandaean's +Mandean, Mandaean +Mandeans, Mandaeans +mandoer, mandore +mandrel's, mandril's +mandrel, mandril +mandrels, mandrils +maneuverabilities, manoeuvrabilities +maneuverability's, manoeuvrability's +maneuverability, manoeuvrability +maneuverable, manoeuvrable +maneuverabler, manoeuvrabler +maneuverablest, manoeuvrablest +maneuverer's, manoeuvrer's +maneuverer, manoeuvrer +maneuverers, manoeuvrers +Manhattanize, Manhattanise +Manhattanizes, Manhattanises +Manicheanism's, Manichaeanism's +Manicheanism, Manichaeanism +Manicheans, Manichaeans +Manicheism's, Manichaeism's +Manicheism, Manichaeism +Manicheisms, Manichaeisms +Manicheus's, Manichaeus's +Manicheus, Manichaeus +manikin's, mannikin's +manikin, mannikin +manikins, mannikins +mannerize, mannerise +mannerizes, mannerises +manoeuvre's, manoeuver's +manoeuvre, manoeuver +manoeuvred, manoeuvered +manoeuvres, manoeuvers +manoeuvring, manoeuvering +manoeuvrings, manoeuverings +mantelpiece, mantlepiece +mantelpieces, mantlepieces +mantes, mantoes +marabou's, marabout's +marabou, marabout +marabous, marabouts +marbleize, marbleise +marbleized, marbleised +marbleizes, marbleises +marbleizing, marbleising +margarite, margaritae +marginalization, marginalisation +marginalize, marginalise +marginalized, marginalised +marginalizes, marginalises +marginalizing, marginalising +marijuana's, marihuana's +marijuana, marihuana +marijuanas, marihuanas +marlinespike's, marlinspike's +marlinespike, marlinspike +marlinespikes, marlinspikes +marmarize, marmarise +marmarized, marmarised +marmarizes, marmarises +marmarizing, marmarising +marmelize, marmelise +marmelized, marmelised +marmelizes, marmelises +marmelizing, marmelising +marshaled, marshalled +marshaling, marshalling +marsupialization's, marsupialisation's +marsupialization, marsupialisation +marsupializations, marsupialisations +marsupialize, marsupialise +marsupialized, marsupialised +marsupializes, marsupialises +marsupializing, marsupialising +Marte's, Martae's +Marte, Martae +martialization's, martialisation's +martialization, martialisation +martializations, martialisations +martialize, martialise +martializes, martialises +martyrization's, martyrisation's +martyrization, martyrisation +martyrizations, martyrisations +martyrize, martyrise +martyrized, martyrised +martyrizer, martyriser +martyrizers, martyrisers +martyrizes, martyrises +martyrizing, martyrising +marveled, marvelled +marveler, marveller +marveling, marvelling +marvelous, marvellous +marvelouser, marvellouser +marvelousest, marvellousest +marvelouslier, marvellouslier +marvelousliest, marvellousliest +marvelously, marvellously +marvelousness's, marvellousness's +marvelousness, marvellousness +marvelousnesses, marvellousnesses +masculinization's, masculinisation's +masculinization, masculinisation +masculinizations, masculinisations +masculinize, masculinise +masculinized, masculinised +masculinizes, masculinises +masculinizing, masculinising +materialization's, materialisation's +materialization, materialisation +materializations, materialisations +materialize, materialise +materialized, materialised +materializer's, materialiser's +materializer, materialiser +materializers, materialisers +materializes, materialises +materializing, materialising +maternalize, maternalise +maternalized, maternalised +maternalizes, maternalises +maternalizing, maternalising +maters, matres +mathematicize, mathematicise +mathematicized, mathematicised +mathematicizes, mathematicises +mathematicizing, mathematicising +mathematization's, mathematisation's +mathematization, mathematisation +mathematizations, mathematisations +mathematize, mathematise +mathematized, mathematised +mathematizes, mathematises +mathematizing, mathematising +matronize, matronise +matronized, matronised +matronizes, matronises +matronizing, matronising +matte, mat +Matthean, Matthaean +maudlinize, maudlinise +maudlinizes, maudlinises +mauger, maugre +maven's, mavin's +maven, mavin +mavens, mavins +maximization's, maximisation's +maximization, maximisation +maximizations, maximisations +maximize, maximise +maximized, maximised +maximizer's, maximiser's +maximizer, maximiser +maximizers, maximisers +maximizes, maximises +maximizing, maximising +mazurka's, mazourka's +mazurka, mazourka +mazurkas, mazourkas +meager, meagre +meagerly, meagrely +meagerness's, meagreness's +meagerness, meagreness +meagernesses, meagrenesses +meagerrer, meagrer +meagerrest, meagrest +meandrine, maeandrine +meandriniform, maeandriniform +meanie's, meany's +meanie, meany +mechanicalization's, mechanicalisation's +mechanicalization, mechanicalisation +mechanicalizations, mechanicalisations +mechanicalize, mechanicalise +mechanicalizes, mechanicalises +mechanizable, mechanisable +mechanization's, mechanisation's +mechanization, mechanisation +mechanizations, mechanisations +mechanize, mechanise +mechanized, mechanised +mechanizer's, mechaniser's +mechanizer, mechaniser +mechanizers, mechanisers +mechanizes, mechanises +mechanizing, mechanising +meck, moeck +Med's, Moed's +Med, Moed +medaled, medalled +medaling, medalling +medalist's, medallist's +medalist, medallist +medalists, medallists +medalize, medalise +medalizes, medalises +medialization's, medialisation's +medialization, medialisation +medializations, medialisations +medialize, medialise +medializes, medialises +mediatization's, mediatisation's +mediatization, mediatisation +mediatizations, mediatisations +mediatize, mediatise +mediatized, mediatised +mediatizes, mediatises +mediatizing, mediatising +medicalization, medicalisation +medicalizations, medicalisations +medicalize, medicalise +medicalized, medicalised +medicalizes, medicalises +medicalizing, medicalising +medieval's, mediaeval's +medieval, mediaeval +medievalism's, mediaevalism's +medievalism, mediaevalism +medievalisms, mediaevalisms +medievally, mediaevally +medievals, mediaevals +Mediterraneanization's, Mediterraneanisation's +Mediterraneanization, Mediterraneanisation +Mediterraneanizations, Mediterraneanisations +Mediterraneanize's, Mediterraneanise's +Mediterraneanize, Mediterraneanise +Mediterraneanizes, Mediterraneanises +mediumization's, mediumisation's +mediumization, mediumisation +mediumizations, mediumisations +mediumize, mediumise +mediumizes, mediumises +megagram, megagramme +megagrams, megagrammes +megameter, megametre +megameters, megametres +megbote, maegbote +megerg, megaerg +melanemia, melanaemia +melanemic, melanaemic +melanization, melanisation +melanize, melanise +melanized, melanised +melanizes, melanises +melanizing, melanising +mele, meloe +melena, melaena +melenic, melaenic +Melie's, Meliae's +Melie, Meliae +meline, melinae +melitemia, melitaemia +melithemia, melithaemia +mellon, moellon +melodization, melodisation +melodize, melodise +melodized, melodised +melodizer's, melodiser's +melodizer, melodiser +melodizes, melodises +melodizing, melodising +melodramatization, melodramatisation +melodramatize, melodramatise +melodramatized, melodramatised +melodramatizes, melodramatises +melodramatizing, melodramatising +memorialization's, memorialisation's +memorialization, memorialisation +memorializations, memorialisations +memorialize, memorialise +memorialized, memorialised +memorializer's, memorialiser's +memorializer, memorialiser +memorializers, memorialisers +memorializes, memorialises +memorializing, memorialising +memorizable's, memorisable's +memorizable, memorisable +memorizables, memorisables +memorization's, memorisation's +memorization, memorisation +memorizations, memorisations +memorize, memorise +memorized, memorised +memorizer's, memoriser's +memorizer, memoriser +memorizers, memorisers +memorizes, memorises +memorizing, memorising +Mendelize's, Mendelise's +Mendelize, Mendelise +Mendelizes, Mendelises +meningorrhea, meningorrhoea +menorrhea, menorrhoea +menorrheas, menorrhoeas +menorrheic, menorrhoeic +mense, mensae +mentalization's, mentalisation's +mentalization, mentalisation +mentalizations, mentalisations +mentalize, mentalise +mentalizes, mentalises +meow's, miaow's +meow, miaow +meowed, miaowed +meowing, miaowing +meows, miaows +mephitine, mephitinae +Mera's, Maera's +Mera, Maera +mercerization's, mercerisation's +mercerization, mercerisation +mercerizations, mercerisations +mercerize, mercerise +mercerized, mercerised +mercerizer's, merceriser's +mercerizer, merceriser +mercerizers, mercerisers +mercerizes, mercerises +mercerizing, mercerising +merchandiser's, merchandizer's +merchandiser, merchandizer +merchandisers, merchandizers +mercurialization's, mercurialisation's +mercurialization, mercurialisation +mercurializations, mercurialisations +mercurialize, mercurialise +mercurialized, mercurialised +mercurializes, mercurialises +mercurializing, mercurialising +mercurize, mercurise +mercurized, mercurised +mercurizes, mercurises +mercurizing, mercurising +Meroe's, Meroae's +Meroe, Meroae +mesmerizabilities, mesmerisabilities +mesmerizability's, mesmerisability's +mesmerizability, mesmerisability +mesmerizable's, mesmerisable's +mesmerizable, mesmerisable +mesmerizables, mesmerisables +mesmerization's, mesmerisation's +mesmerization, mesmerisation +mesmerizations, mesmerisations +mesmerize, mesmerise +mesmerized, mesmerised +mesmerizer's, mesmeriser's +mesmerizer, mesmeriser +mesmerizers, mesmerisers +mesmerizes, mesmerises +mesmerizing, mesmerising +mesoglea, mesogloea +mesogleal, mesogloeal +mesogleas, mesogloeas +mesprize, mesprise +mesprizes, mesprises +mesquite's, mesquit's +mesquite, mesquit +mesquites, mesquits +metabolizable's, metabolisable's +metabolizable, metabolisable +metabolizables, metabolisables +metabolize, metabolise +metabolized, metabolised +metabolizes, metabolises +metabolizing, metabolising +metacenter's, metacentre's +metacenter, metacentre +metacenters, metacentres +metagrabolize, metagrabolise +metagrabolized, metagrabolised +metagrabolizes, metagrabolises +metagrabolizing, metagrabolising +metagrobolize, metagrobolise +metagrobolized, metagrobolised +metagrobolizes, metagrobolises +metagrobolizing, metagrobolising +metaled, metalled +metaling, metalling +metallisation's, metallization's +metallisation, metallization +metallisations, metallizations +metallise, metallize +metallised, metallized +metallises, metallizes +metallising, metallizing +metamerization's, metamerisation's +metamerization, metamerisation +metamerizations, metamerisations +metamerized's, metamerised's +metamerized, metamerised +metamerizeds, metameriseds +metaphonize, metaphonise +metaphonizes, metaphonises +metaphorize, metaphorise +metaphorizes, metaphorises +metaphysicize, metaphysicise +metaphysicizes, metaphysicises +metastasize, metastasise +metastasized, metastasised +metastasizes, metastasises +metastasizing, metastasising +metathesize, metathesise +metathesized, metathesised +metathesizes, metathesises +metathesizing, metathesising +meteorization's, meteorisation's +meteorization, meteorisation +meteorizations, meteorisations +meteorize, meteorise +meteorizes, meteorises +metergram, metregram +meterless, metreless +metership, metreship +metestrus's, metoestrus's +metestrus, metoestrus +methadone's, methadon's +methadone, methadon +methadones, methadons +methemoglobin, methaemoglobin +methodization's, methodisation's +methodization, methodisation +methodizations, methodisations +methodize, methodise +methodized, methodised +methodizer's, methodiser's +methodizer, methodiser +methodizers, methodisers +methodizes, methodises +methodizing, methodising +metope, metopae +metricize, metricise +metricized, metricised +metricizes, metricises +metricizing, metricising +metrize, metrise +metropolitanization, metropolitanisation +metropolitanize, metropolitanise +metropolitanized, metropolitanised +metropolitanizes, metropolitanises +metropolitanizing, metropolitanising +Mexicanize's, Mexicanise's +Mexicanize, Mexicanise +Mexicanizes, Mexicanises +micelle, micellae +micresthete, micraesthete +microcolorimeter, microcolourimeter +microcolorimetric, microcolourimetric +microcolorimetrically, microcolourimetrically +microcolorimetry, microcolourimetry +microgram, microgramme +micrograms, nanogrammes +microliter's, microlitre's +microliter, microlitre +microliters, microlitres +micromillimeter's, micromillimetre's +micromillimeter, micromillimetre +micromillimeters, micromillimetres +microminiaturization's, microminiaturisation's +microminiaturization, microminiaturisation +microminiaturizations, microminiaturisations +microminiaturize, microminiaturise +microminiaturized, microminiaturised +microminiaturizer, microminiaturiser +microminiaturizers, microminiaturisers +microminiaturizes, microminiaturises +microminiaturizing, microminiaturising +micronization's, micronisation's +micronization, micronisation +micronizations, micronisations +micronize, micronise +micronizes, micronises +micropaleontologies, micropalaeontologies +micropaleontologist, micropalaeontologist +micropaleontologists, micropalaeontologists +micropaleontology's, micropalaeontology's +micropaleontology, micropalaeontology +micropolarization's, micropolarisation's +micropolarization, micropolarisation +micropolarizations, micropolarisations +microscopize, microscopise +microscopizes, microscopises +microspheric, microsphaeric +Midlandize's, Midlandise's +Midlandize, Midlandise +Midlandizes, Midlandises +midsize, midsized +midwifed, midwived +midwifing, midwiving +migniardize, migniardise +militarization's, militarisation's +militarization, militarisation +militarizations, militarisations +militarize, militarise +militarized, militarised +militarizes, militarises +militarizing, militarising +milligram's, milligramme's +milligram, milligramme +milligrams, milligrammes +milliliter's, millilitre's +milliliter, millilitre +milliliters, millilitres +millimeter's, millimetre's +millimeter, millimetre +millimeters, millimetres +millionaire's, millionnaire's +millionaire, millionnaire +millionaires, millionnaires +millionize, millionise +millionizes, millionises +millipede's, millepede's +millipede, millepede +millipedes, millepedes +milometer's, mileometer's +milometer, mileometer +milometers, mileometers +Miltonize's, Miltonise's +Miltonize, Miltonise +Miltonized's, Miltonised's +Miltonized, Miltonised +Miltonizes, Miltonises +Miltonizing's, Miltonising's +Miltonizing, Miltonising +mineralizable's, mineralisable's +mineralizable, mineralisable +mineralizables, mineralisables +mineralization's, mineralisation's +mineralization, mineralisation +mineralizations, mineralisations +mineralize, mineralise +mineralized, mineralised +mineralizer's, mineraliser's +mineralizer, mineraliser +mineralizers, mineralisers +mineralizes, mineralises +mineralizing, mineralising +mineralogize, mineralogise +mineralogized, mineralogised +mineralogizes, mineralogises +mineralogizing, mineralogising +miniaturization's, miniaturisation's +miniaturization, miniaturisation +miniaturizations, miniaturisations +miniaturize, miniaturise +miniaturized, miniaturised +miniaturizes, miniaturises +miniaturizing, miniaturising +minibuses, minibusses +minimization's, minimisation's +minimization, minimisation +minimizations, minimisations +minimize, minimise +minimized, minimised +minimizer's, minimiser's +minimizer, minimiser +minimizers, minimisers +minimizes, minimises +minimizing, minimising +minuscule's, miniscule's +minuscule, miniscule +minuscules, miniscules +miraculize, miraculise +miraculized, miraculised +miraculizes, miraculises +miraculizing, miraculising +mirrorize, mirrorise +mirrorizes, mirrorises +misadvize, misadvise +misalphabetize, misalphabetise +misalphabetizes, misalphabetises +misanthropize, misanthropise +misanthropized, misanthropised +misanthropizes, misanthropises +misanthropizing, misanthropising +misauthorization's, misauthorisation's +misauthorization, misauthorisation +misauthorizations, misauthorisations +misauthorize, misauthorise +misauthorizes, misauthorises +misbaptize, misbaptise +misbaptizes, misbaptises +misbehavior's, misbehaviour's +misbehavior, misbehaviour +misbehaviors, misbehaviours +miscanonize, miscanonise +miscanonizes, miscanonises +mischaracterization's, mischaracterisation's +mischaracterization, mischaracterisation +mischaracterizations, mischaracterisations +mischaracterize, mischaracterise +mischaracterizes, mischaracterises +miscolor's, miscolour's +miscolor, miscolour +miscoloration, miscolouration +miscolored, miscoloured +miscoloring, miscolouring +miscolors, miscolours +misdemeanor's, misdemeanour's +misdemeanor, misdemeanour +misdemeanors, misdemeanours +misemphasize, misemphasise +misemphasizes, misemphasises +misjudgment's, misjudgement's +misjudgment, misjudgement +misjudgments, misjudgements +mislabeled, mislabelled +mislabeling, mislabelling +mislabor's, mislabour's +mislabor, mislabour +mislabored, mislaboured +mislaboring, mislabouring +mislabors, mislabours +misopedia, misopaedia +misopedism, misopaedism +misopedist's, misopaedist's +misopedist, misopaedist +misorganization's, misorganisation's +misorganization, misorganisation +misorganizations, misorganisations +misorganize, misorganise +misorganizes, misorganises +misprizal, misprisal +misprize, misprise +misprized, misprised +misprizer, mispriser +misprizes, misprises +misprizing, misprising +misrealize, misrealise +misrealizes, misrealises +misrecognize, misrecognise +misrecognizes, misrecognises +misrouting, misrouteing +missilery's, missilry's +missilery, missilry +missionarize, missionarise +missionarized, missionarised +missionarizes, missionarises +missionarizing, missionarising +missionization, missionisation +missionize, missionise +missionized, missionised +missionizer, missioniser +missionizers, missionisers +missionizes, missionises +missionizing, missionising +missus's, missis's +missus, missis +missuses, missises +miter's, mitre's +miter, mitre +mitered, mitred +miterer's, mitrer's +miterer, mitrer +miterflower, mitreflower +mitering, mitring +miters, mitres +miterwort's, mitrewort's +miterwort, mitrewort +miterworts, mitreworts +mithridatize, mithridatise +mithridatized, mithridatised +mithridatizes, mithridatises +mithridatizing, mithridatising +mize, mise +mobilizable's, mobilisable's +mobilizable, mobilisable +mobilizabler, mobilisabler +mobilizables, mobilisables +mobilizablest, mobilisablest +mobilization's, mobilisation's +mobilization, mobilisation +mobilizations, mobilisations +mobilize, mobilise +mobilized, mobilised +mobilizer's, mobiliser's +mobilizer, mobiliser +mobilizers, mobilisers +mobilizes, mobilises +mobilizing, mobilising +modalize, modalise +modalizes, modalises +modeled, modelled +modeler's, modeller's +modeler, modeller +modelers, modellers +modeling's, modelling's +modeling, modelling +modelings, modellings +modernizable's, modernisable's +modernizable, modernisable +modernizables, modernisables +modernization's, modernisation's +modernization, modernisation +modernizations, modernisations +modernize, modernise +modernized, modernised +modernizer's, moderniser's +modernizer, moderniser +modernizers, modernisers +modernizes, modernises +modernizing, modernising +modularization, modularisation +modularize, modularise +modularized, modularised +modularizes, modularises +modularizing, modularising +moggy's, moggie's +moggy, moggie +Mohammedanization's, Mohammedanisation's +Mohammedanization, Mohammedanisation +Mohammedanizations, Mohammedanisations +Mohammedanize's, Mohammedanise's +Mohammedanize, Mohammedanise +Mohammedanized's, Mohammedanised's +Mohammedanized, Mohammedanised +Mohammedanizes, Mohammedanises +Mohammedanizing's, Mohammedanising's +Mohammedanizing, Mohammedanising +moisturization, moisturisation +moisturize, moisturise +moisturized, moisturised +moisturizer's, moisturiser's +moisturizer, moisturiser +moisturizers, moisturisers +moisturizes, moisturises +moisturizing, moisturising +molarization, molarisation +molarizations, molarisations +mold's, mould's +mold, mould +molded, moulded +molder's, moulder's +molder, moulder +moldered, mouldered +moldering, mouldering +molders, moulders +moldier, mouldier +moldiest, mouldiest +molding's, moulding's +molding, moulding +moldings, mouldings +molds, moulds +moldy, mouldy +molluscan, molluskan +mollusk's, mollusc's +mollusk, mollusc +mollusks, molluscs +Molochize's, Molochise's +Molochize, Molochise +molochize, molochise +molochized, molochised +Molochizes, Molochises +molochizes, molochises +molochizing, molochising +molt's, moult's +molt, moult +molted, moulted +molting, moulting +molts, moults +mommy's, mommie's +mommy, mommie +monarchize, monarchise +monarchized, monarchised +monarchizer, monarchiser +monarchizers, monarchisers +monarchizes, monarchises +monarchizing, monarchising +monasticize, monasticise +monasticizes, monasticises +monecian, monoecian +monestrous, monoestrous +monetization's, monetisation's +monetization, monetisation +monetizations, monetisations +monetize, monetise +monetized, monetised +monetizes, monetises +monetizing, monetising +moneyed, monied +Mongolize's, Mongolise's +Mongolize, Mongolise +Mongolized's, Mongolised's +Mongolized, Mongolised +Mongolizes, Mongolises +Mongolizing's, Mongolising's +Mongolizing, Mongolising +mongrelization's, mongrelisation's +mongrelization, mongrelisation +mongrelizations, mongrelisations +mongrelize, mongrelise +mongrelized, mongrelised +mongrelizer, mongreliser +mongrelizes, mongrelises +mongrelizing, mongrelising +moniker's, monicker's +moniker, monicker +monikers, monickers +monochordize, monochordise +monochordizes, monochordises +monoecious, monecious +monologist's, monologuist's +monologist, monologuist +monologists, monologuists +monologize, monologise +monologized, monologised +monologizes, monologises +monologizing, monologising +monologue's, monolog's +monologue, monolog +monologues, monologs +monologuize, monologuise +monologuized, monologuised +monologuizes, monologuises +monologuizing, monologuising +monometalism, monometallism +monometalist, monometallist +monophthongize, monophthongise +monophthongized, monophthongised +monophthongizes, monophthongises +monophthongizing, monophthongising +monopolizable's, monopolisable's +monopolizable, monopolisable +monopolizables, monopolisables +monopolization's, monopolisation's +monopolization, monopolisation +monopolizations, monopolisations +monopolize, monopolise +monopolized, monopolised +monopolizer's, monopoliser's +monopolizer, monopoliser +monopolizers, monopolisers +monopolizes, monopolises +monopolizing, monopolising +monotonize, monotonise +monotonizes, monotonises +monumentalization's, monumentalisation's +monumentalization, monumentalisation +monumentalizations, monumentalisations +monumentalize, monumentalise +monumentalized, monumentalised +monumentalizes, monumentalises +monumentalizing, monumentalising +moralization's, moralisation's +moralization, moralisation +moralizations, moralisations +moralize, moralise +moralized, moralised +moralizer's, moraliser's +moralizer, moraliser +moralizers, moralisers +moralizes, moralises +moralizing, moralising +moralizinglies, moralisinglies +moralizingly, moralisingly +Moravianized's, Moravianised's +Moravianized, Moravianised +Moravianizeds, Moravianiseds +morbidize, morbidise +morbidizes, morbidises +Morea's, Moraea's +Morea, Moraea +morne, mourne +morningly, mourningly +morphinization's, morphinisation's +morphinization, morphinisation +morphinizations, morphinisations +morphinize, morphinise +morphinizes, morphinises +morseled, morselled +morseling, morselling +morselization's, morselisation's +morselization, morselisation +morselizations, morselisations +morselize, morselise +morselizes, morselises +mortalize, mortalise +mortalized, mortalised +mortalizes, mortalises +mortalizing, mortalising +mortarize, mortarise +mortarizes, mortarises +mortgagor's, mortgager's +mortgagor, mortgager +mortgagors, mortgagers +mortise's, mortice's +mortise, mortice +mortised, morticed +mortises, mortices +mortising, morticing +morule, morulae +Moslemize's, Moslemise's +Moslemize, Moslemise +Moslemizes, Moslemises +motorization's, motorisation's +motorization, motorisation +motorizations, motorisations +motorize, motorise +motorized, motorised +motorizes, motorises +motorizing, motorising +mousy, mousey +movability, moveability +movable's, moveable's +movable, moveable +movableness, moveableness +movablenesses, moveablenesses +movables, moveables +movably, moveably +mucorrhea, mucorrhoea +mucose, mucosae +mujahedin's, mujahedeen's +mujahedin, mujahedeen +multicolor's, multicolour's +multicolor, multicolour +multicolored, multicoloured +multicoloredder, multicolouredder +multicoloreddest, multicoloureddest +multicolorous, multicolourous +multicolors, multicolours +multifibered's, multifibred's +multifibered, multifibred +multifibereds, multifibreds +multileveled, multilevelled +multiplexer's, multiplexor's +multiplexer, multiplexor +multiplexers, multiplexors +municipalization's, municipalisation's +municipalization, municipalisation +municipalizations, municipalisations +municipalize, municipalise +municipalized, municipalised +municipalizer, municipaliser +municipalizers, municipalisers +municipalizes, municipalises +municipalizing, municipalising +murena, muraena +murenas, muraenas +muscularize, muscularise +muscularizes, muscularises +museumize, museumise +museumizes, museumises +musicalization's, musicalisation's +musicalization, musicalisation +musicalizations, musicalisations +musicalize, musicalise +musicalized, musicalised +musicalizes, musicalises +musicalizing, musicalising +Muslim's, Moslem's +Muslim, Moslem +mustache's, moustache's +mustache, moustache +mustached, moustached +mustaches, moustaches +mustachio's, moustachio's +mustachio, moustachio +mustachioed, moustachioed +mutagenize, mutagenise +mutagenized, mutagenised +mutagenizes, mutagenises +mutagenizing, mutagenising +mutualization's, mutualisation's +mutualization, mutualisation +mutualizations, mutualisations +mutualize, mutualise +mutualized, mutualised +mutualizes, mutualises +mutualizing, mutualising +mycohemia, mycohaemia +myelinization's, myelinisation's +myelinization, myelinisation +myelinizations, myelinisations +myelocele, myelocoele +myelocythemia, myelocythaemia +mylonitization, mylonitisation +mylonitizations, mylonitisations +mylonitize, mylonitise +mylonitized, mylonitised +mylonitizes, mylonitises +mylonitizing, mylonitising +myna's, mynah's +myna, mynah +mynas, mynahes +myocele, myocoele +myohematin, myohaematin +myrialiter, myrialitre +myriameter, myriametre +mysticize, mysticise +mysticizes, mysticises +mythicization, mythicisation +mythicize, mythicise +mythicized, mythicised +mythicizer's, mythiciser's +mythicizer, mythiciser +mythicizers, mythicisers +mythicizes, mythicises +mythicizing, mythicising +mythize, mythise +mythized, mythised +mythizes, mythises +mythizing, mythising +mythologization's, mythologisation's +mythologization, mythologisation +mythologizations, mythologisations +mythologize, mythologise +mythologized, mythologised +mythologizer's, mythologiser's +mythologizer, mythologiser +mythologizers, mythologisers +mythologizes, mythologises +mythologizing, mythologising +mythopeic, mythopoeic +mythopeist, mythopoeist +mythopoetize, mythopoetise +mythopoetized, mythopoetised +mythopoetizing, mythopoetising +myxameba, myxamoeba +myxedema's, myxoedema's +myxedema, myxoedema +myxedemas, myxoedemas +myxedematous, myxoedematous +myxedemic, myxoedemic +myxemia, myxaemia +naan's, nan's +naan, nan +naans, nans +Nabateans, Nabataeans +Nabathean's, Nabathaean's +Nabathean, Nabathaean +nakedize, nakedise +nakedizes, nakedises +nanization, nanisation +nanizations, nanisations +nanogram, nanogramme +nanograms, nanogrammes +nanometer's, nanometre's +nanometer, nanometre +nanometers, nanometres +napea, napaea +naphthalize, naphthalise +naphthalized, naphthalised +naphthalizes, naphthalises +naphthalizing, naphthalising +Napoleonize's, Napoleonise's +Napoleonize, Napoleonise +Napoleonizes, Napoleonises +narc's, nark's +narc, nark +narcotization's, narcotisation's +narcotization, narcotisation +narcotizations, narcotisations +narcotize, narcotise +narcotized, narcotised +narcotizes, narcotises +narcotizing, narcotising +narcs, narks +nasalization's, nasalisation's +nasalization, nasalisation +nasalizations, nasalisations +nasalize, nasalise +nasalized, nasalised +nasalizes, nasalises +nasalizing, nasalising +nationalization's, nationalisation's +nationalization, nationalisation +nationalizations, nationalisations +nationalize, nationalise +nationalized, nationalised +nationalizer's, nationaliser's +nationalizer, nationaliser +nationalizers, nationalisers +nationalizes, nationalises +nationalizing, nationalising +naturalization's, naturalisation's +naturalization, naturalisation +naturalizations, naturalisations +naturalize, naturalise +naturalized, naturalised +naturalizer's, naturaliser's +naturalizer, naturaliser +naturalizers, naturalisers +naturalizes, naturalises +naturalizing, naturalising +naturize, naturise +naturizes, naturises +nebularization's, nebularisation's +nebularization, nebularisation +nebularizations, nebularisations +nebularize, nebularise +nebularizes, nebularises +nebulization's, nebulisation's +nebulization, nebulisation +nebulizations, nebulisations +nebulize, nebulise +nebulized, nebulised +nebulizer's, nebuliser's +nebulizer, nebuliser +nebulizers, nebulisers +nebulizes, nebulises +nebulizing, nebulising +necremia, necraemia +necrotize, necrotise +necrotized, necrotised +necrotizes, necrotises +necrotizing, necrotising +nectarize, nectarise +nectarized, nectarised +nectarizes, nectarises +nectarizing, nectarising +neebor, neebour +neencephalon, neoencephalon +neer, nere +negligee's, neglig's +negligee, neglig +negligees, negligs +Negritize's, Negritise's +Negritize, Negritise +Negritized's, Negritised's +Negritized, Negritised +Negritizing's, Negritising's +Negritizing, Negritising +Negroization's, Negroisation's +Negroization, Negroisation +Negroizations, Negroisations +Negroize's, Negroise's +Negroize, Negroise +Negroized's, Negroised's +Negroized, Negroised +Negroizes, Negroises +Negroizing's, Negroising's +Negroizing, Negroising +neighbor's, neighbour's +neighbor, neighbour +neighbored, neighboured +neighborer's, neighbourer's +neighborer, neighbourer +neighborers, neighbourers +neighboress, neighbouress +neighborhood's, neighbourhood's +neighborhood, neighbourhood +neighborhoods, neighbourhoods +neighboring, neighbouring +neighborings, neighbourings +neighborless, neighbourless +neighborlesser, neighbourlesser +neighborlesses, neighbourlesses +neighborlessest, neighbourlessest +neighborlier, neighbourlier +neighborliest, neighbourliest +neighborlike's, neighbourlike's +neighborlike, neighbourlike +neighborlikes, neighbourlikes +neighborliness's, neighbourliness's +neighborliness, neighbourliness +neighborlinesses, neighbourlinesses +neighborly, neighbourly +neighbors, neighbours +neighborship's, neighbourship's +neighborship, neighbourship +neighborships, neighbourships +Neogea's, Neogaea's +Neogea, Neogaea +Neogeal's, Neogaeal's +Neogeal, Neogaeal +Neogean, Neogaean +Neogeic's, Neogaeic's +Neogeic, Neogaeic +neologization, neologisation +neologize, neologise +neologized, neologised +neologizes, neologises +neologizing, neologising +neopaganize, neopaganise +neopaganized, neopaganised +neopaganizes, neopaganises +neopaganizing, neopaganising +neoterize, neoterise +neoterized, neoterised +neoterizes, neoterises +neoterizing, neoterising +nephrectomize, nephrectomise +nephrectomized, nephrectomised +nephrectomizing, nephrectomising +nephrocele, nephrocoele +nephrotomize, nephrotomise +nesslerize, nesslerise +nesslerized, nesslerised +nesslerizing, nesslerising +net's, nett's +net, nett +nets, netts +neurepithelium, neuroepithelium +neurocele, neurocoele +neurocelian, neurocoelian +neuronal, neuronic +neuroticize, neuroticise +neuroticizes, neuroticises +neutralization's, neutralisation's +neutralization, neutralisation +neutralizations, neutralisations +neutralize, neutralise +neutralized, neutralised +neutralizer's, neutraliser's +neutralizer, neutraliser +neutralizers, neutralisers +neutralizes, neutralises +neutralizing, neutralising +neves, naeves +nevoid, naevoid +Newmanize's, Newmanise's +Newmanize, Newmanise +Newmanized's, Newmanised's +Newmanized, Newmanised +Newmanizes, Newmanises +Newmanizing's, Newmanising's +Newmanizing, Newmanising +newspaperized's, newspaperised's +newspaperized, newspaperised +newspaperizeds, newspaperiseds +nickeled, nickelled +nickeling, nickelling +nickelization's, nickelisation's +nickelization, nickelisation +nickelizations, nickelisations +nickelize, nickelise +nickelized, nickelised +nickelizes, nickelises +nickelizing, nickelising +nicotinize, nicotinise +nicotinized, nicotinised +nicotinizes, nicotinises +nicotinizing, nicotinising +nielled, nielloed +niger, nigre +niggardize, niggardise +niggardized, niggardised +niggardizes, niggardises +niggardizing, niggardising +night's, nite's +night, nite +nightie's, nighty's +nightie, nighty +nightingalize, nightingalise +nightingalizes, nightingalises +nights, nites +Nipponize's, Nipponise's +Nipponize, Nipponise +Nipponizes, Nipponises +niter's, nitre's +niter, nitre +niters, nitres +nitridization's, nitridisation's +nitridization, nitridisation +nitridizations, nitridisations +nitridize, nitridise +nitridizes, nitridises +nitrogenization's, nitrogenisation's +nitrogenization, nitrogenisation +nitrogenizations, nitrogenisations +nitrogenize, nitrogenise +nitrogenized, nitrogenised +nitrogenizes, nitrogenises +nitrogenizing, nitrogenising +nitroglycerin's, nitroglycerine's +nitroglycerin, nitroglycerine +nitroglycerins, nitroglycerines +nodalize, nodalise +nodalized, nodalised +nodalizes, nodalises +nodalizing, nodalising +nodulize, nodulise +nodulizes, nodulises +Noemon's, Noaemon's +Noemon, Noaemon +nomadization's, nomadisation's +nomadization, nomadisation +nomadizations, nomadisations +nomadize, nomadise +nomadized, nomadised +nomadizes, nomadises +nomadizing, nomadising +nominalization, nominalisation +nominalizations, nominalisations +nominalize, nominalise +nominalized, nominalised +nominalizes, nominalises +nominalizing, nominalising +nonacknowledgment's, nonacknowledgement's +nonacknowledgment, nonacknowledgement +nonacknowledgments, nonacknowledgements +nonanaesthetised, nonanaesthetized +nonanemic, nonanaemic +nonapostatizing's, nonapostatising's +nonapostatizing, nonapostatising +nonapostatizings, nonapostatisings +noncanonization's, noncanonisation's +noncanonization, noncanonisation +noncanonizations, noncanonisations +noncartelized's, noncartelised's +noncartelized, noncartelised +noncartelizeds, noncarteliseds +noncatechizable's, noncatechisable's +noncatechizable, noncatechisable +noncatechizables, noncatechisables +noncivilized's, noncivilised's +noncivilized, noncivilised +noncivilizeds, nonciviliseds +noncolor's, noncolour's +noncolor, noncolour +noncolorabilities, noncolourabilities +noncolorability's, noncolourability's +noncolorability, noncolourability +noncolorable's, noncolourable's +noncolorable, noncolourable +noncolorableness's, noncolourableness's +noncolorableness, noncolourableness +noncolorables, noncolourables +noncolorablies, noncolourablies +noncolorably, noncolourably +noncolored, noncoloured +noncolorer, noncolourer +noncolorers, noncolourers +noncolorfast, noncolourfast +noncoloring, noncolouring +noncolorings, noncolourings +noncolors, noncolours +noncrystallizable's, noncrystallisable's +noncrystallizable, noncrystallisable +noncrystallizables, noncrystallisables +noncrystallized's, noncrystallised's +noncrystallized, noncrystallised +noncrystallizeds, noncrystalliseds +noncrystallizing's, noncrystallising's +noncrystallizing, noncrystallising +noncrystallizings, noncrystallisings +nondemobilization's, nondemobilisation's +nondemobilization, nondemobilisation +nondemobilizations, nondemobilisations +nondialyzing's, nondialysing's +nondialyzing, nondialysing +nondialyzings, nondialysings +nondimensionalize, nondimensionalise +nondimensionalized, nondimensionalised +nonecumenic, nonoecumenic +nonecumenical, nonoecumenical +nonencyclopedic, nonencyclopaedic +nonesthetic, nonaesthetic +nonesthetical, nonaesthetical +nonesthetically, nonaesthetically +nonfavorite's, nonfavourite's +nonfavorite, nonfavourite +nonfavorites, nonfavourites +nonflavored, nonflavoured +nonfulfillment's, nonfulfilment's +nonfulfillment, nonfulfilment +nonfulfillments, nonfulfilments +nongalvanized's, nongalvanised's +nongalvanized, nongalvanised +nongalvanizeds, nongalvaniseds +nongelatinizing's, nongelatinising's +nongelatinizing, nongelatinising +nongelatinizings, nongelatinisings +nonhydrolyzable's, nonhydrolysable's +nonhydrolyzable, nonhydrolysable +nonhydrolyzables, nonhydrolysables +nonimmunized's, nonimmunised's +nonimmunized, nonimmunised +nonimmunizeds, nonimmuniseds +nonionized's, nonionised's +nonionized, nonionised +nonionizeds, nonioniseds +nonionizing's, nonionising's +nonionizing, nonionising +nonionizings, nonionisings +nonlocalized's, nonlocalised's +nonlocalized, nonlocalised +nonlocalizeds, nonlocaliseds +nonmagnetizable's, nonmagnetisable's +nonmagnetizable, nonmagnetisable +nonmagnetizables, nonmagnetisables +nonnitrogenized's, nonnitrogenised's +nonnitrogenized, nonnitrogenised +nonnitrogenizeds, nonnitrogeniseds +nonorganization's, nonorganisation's +nonorganization, nonorganisation +nonorganizations, nonorganisations +nonoxidizable's, nonoxidisable's +nonoxidizable, nonoxidisable +nonoxidizables, nonoxidisables +nonoxidizing's, nonoxidising's +nonoxidizing, nonoxidising +nonoxidizings, nonoxidisings +nonparlor's, nonparlour's +nonparlor, nonparlour +nonparlors, nonparlours +nonpenalized's, nonpenalised's +nonpenalized, nonpenalised +nonpenalizeds, nonpenaliseds +nonphosphorized's, nonphosphorised's +nonphosphorized, nonphosphorised +nonphosphorizeds, nonphosphoriseds +nonpolarizable's, nonpolarisable's +nonpolarizable, nonpolarisable +nonpolarizables, nonpolarisables +nonpolarized, nonpolarised +nonpolarizing's, nonpolarising's +nonpolarizing, nonpolarising +nonpolarizings, nonpolarisings +nonrationalized's, nonrationalised's +nonrationalized, nonrationalised +nonrationalizeds, nonrationaliseds +nonrealization's, nonrealisation's +nonrealization, nonrealisation +nonrealizations, nonrealisations +nonrecognized's, nonrecognised's +nonrecognized, nonrecognised +nonrecognizeds, nonrecogniseds +nonschematized's, nonschematised's +nonschematized, nonschematised +nonschematizeds, nonschematiseds +nonsensitized's, nonsensitised's +nonsensitized, nonsensitised +nonsensitizeds, nonsensitiseds +nonspecialized's, nonspecialised's +nonspecialized, nonspecialised +nonspecializeds, nonspecialiseds +nonstandardized's, nonstandardised's +nonstandardized, nonstandardised +nonstandardizeds, nonstandardiseds +nonstylized's, nonstylised's +nonstylized, nonstylised +nonstylizeds, nonstyliseds +nonsuccor, nonsuccour +nonsympathizer's, nonsympathiser's +nonsympathizer, nonsympathiser +nonsympathizers, nonsympathisers +nonsynthesized's, nonsynthesised's +nonsynthesized, nonsynthesised +nonsynthesizeds, nonsynthesiseds +nontemporizing's, nontemporising's +nontemporizing, nontemporising +nontemporizings, nontemporisings +nonutilized's, nonutilised's +nonutilized, nonutilised +nonutilizeds, nonutiliseds +nonvisualized's, nonvisualised's +nonvisualized, nonvisualised +nonvisualizeds, nonvisualiseds +nonvolatilized's, nonvolatilised's +nonvolatilized, nonvolatilised +nonvolatilizeds, nonvolatiliseds +nonvulcanizable's, nonvulcanisable's +nonvulcanizable, nonvulcanisable +nonvulcanizables, nonvulcanisables +norice, nourice +normalizable, normalisable +normalization's, normalisation's +normalization, normalisation +normalizations, normalisations +normalize, normalise +normalized, normalised +normalizer's, normaliser's +normalizer, normaliser +normalizers, normalisers +normalizes, normalises +normalizing, normalising +Normanization's, Normanisation's +Normanization, Normanisation +Normanizations, Normanisations +Normanize, Normanise +normanize, normanise +Normanized, Normanised +normanized, normanised +Normanizer's, Normaniser's +Normanizer, Normaniser +Normanizers, Normanisers +Normanizes, Normanises +normanizes, normanises +Normanizing, Normanising +normanizing, normanising +Northernize's, Northernise's +Northernize, Northernise +northernize, northernise +northernized, northernised +northernizes, northernises +northernizing, northernising +nosies, noseys +nosize, nosise +nosohemia, nosohaemia +nosy's, nosey's +nosy, nosey +notarization, notarisation +notarizations, notarisations +notarize, notarise +notarized, notarised +notarizes, notarises +notarizing, notarising +noter, notre +nothingize, nothingise +nothingizes, nothingises +Notogea's, Notogaea's +Notogea, Notogaea +nounize, nounise +nounizes, nounises +novelization's, novelisation's +novelization, novelisation +novelizations, novelisations +novelize, novelise +novelized, novelised +novelizer's, noveliser's +novelizer, noveliser +novelizers, novelisers +novelizes, novelises +novelizing, novelising +novene, novenae +nuclearization, nuclearisation +nuclearizations, nuclearisations +nuclearize, nuclearise +nuclearized, nuclearised +nuclearizes, nuclearises +nuclearizing, nuclearising +numskull's, numbskull's +numskull, numbskull +numskulls, numbskulls +nuptialize, nuptialise +nuptializes, nuptialises +nympheum, nymphaeum +Obe's, Oboe's +Obe, Oboe +obelize, obelise +obelized, obelised +obelizes, obelises +obelizing, obelising +objectivize, objectivise +objectivized, objectivised +objectivizes, objectivises +objectivizing, objectivising +objectization's, objectisation's +objectization, objectisation +objectizations, objectisations +objectize, objectise +objectizes, objectises +oblivionize, oblivionise +oblivionizes, oblivionises +Occidentalization's, Occidentalisation's +Occidentalization, Occidentalisation +Occidentalizations, Occidentalisations +Occidentalize, Occidentalise +occidentalize, occidentalise +Occidentalized, Occidentalised +occidentalized, occidentalised +Occidentalizes, Occidentalises +occidentalizes, occidentalises +Occidentalizing, Occidentalising +occidentalizing, occidentalising +ocher's, ochre's +ocher, ochre +ochered, ochred +ochering, ochring +ocherish, ochreish +ocherous, ochreous +ocherouser, ochreouser +ocherousest, ochreousest +ocherrer, ochrer +ocherrest, ochrest +ochers, ochres +ochery, ochrey +octet's, octette's +octet, octette +octets, octettes +Ocyrrhoe's, Ocyrrhoae's +Ocyrrhoe, Ocyrrhoae +odor's, odour's +odor, odour +odored, odoured +odorful, odourful +odorfuller, odourfuller +odorfullest, odourfullest +odorize, odorise +odorized, odorised +odorizer, odoriser +odorizes, odorises +odorizing, odorising +odorless, odourless +odorlesser, odourlesser +odorlesses, odourlesses +odorlessest, odourlessest +odors, odours +oesophagi, oesophaguses +offense's, offence's +offense, offence +offenseless, offenceless +offenselesser, offencelesser +offenselesses, offencelesses +offenselessest, offencelessest +offenselessly, offencelessly +offenses, offences +officialization's, officialisation's +officialization, officialisation +officializations, officialisations +officialize, officialise +officializes, officialises +OK's, okay's +OK, okay +OKed, okayed +OKing, okaying +OKs, okays +oleomargarine's, oleomargarin's +oleomargarine, oleomargarin +oleomargarines, oleomargarins +oligemia, oligaemia +oligocythemia, oligocythaemia +olpe, olpae +Olympianize's, Olympianise's +Olympianize, Olympianise +Olympianizes, Olympianises +omber's, ombre's +omber, ombre +ombers, ombres +omelet's, omelette's +omelet, omelette +omelets, omelettes +oneyer, oneyre +oneyers, oneyres +onionized's, onionised's +onionized, onionised +onionizeds, onioniseds +ontologize, ontologise +ooglea, oogloea +oophorectomize, oophorectomise +oophorectomized, oophorectomised +oophorectomizes, oophorectomises +oophorectomizing, oophorectomising +opaled, opalled +opalize, opalise +opalized, opalised +opalizes, opalises +operationalization, operationalisation +operationalizations, operationalisations +operationalize, operationalise +operationalized, operationalised +operatize, operatise +operatized, operatised +operatizes, operatises +operatizing, operatising +opiniaster, opiniastre +opiniater, opiniatre +optimalization, optimalisation +optimalizations, optimalisations +optimalize, optimalise +optimalized, optimalised +optimalizes, optimalises +optimalizing, optimalising +optimization's, optimisation's +optimization, optimisation +optimizations, optimisations +optimize, optimise +optimized, optimised +optimizer's, optimiser's +optimizer, optimiser +optimizers, optimisers +optimizes, optimises +optimizing, optimising +optionalize, optionalise +optionalizes, optionalises +oralization's, oralisation's +oralization, oralisation +oralizations, oralisations +oralize, oralise +oralizes, oralises +orang, ourang +orangize, orangise +orangizes, orangises +orangs, ourangs +orangutan's, orangutang's +orangutan, orangutang +orangutans, orangutangs +oratorize, oratorise +oratorizes, oratorises +orchester, orchestre +organdy's, organdie's +organdy, organdie +organizabilities, organisabilities +organizability's, organisability's +organizability, organisability +organizable's, organisable's +organizable, organisable +organizabler, organisabler +organizables, organisables +organizablest, organisablest +organization's, organisation's +organization, organisation +organizational's, organisational's +organizational, organisational +organizationaler, organisationaler +organizationalest, organisationalest +organizationallier, organisationallier +organizationalliest, organisationalliest +organizationally, organisationally +organizationals, organisationals +organizationist's, organisationist's +organizationist, organisationist +organizationists, organisationists +organizations, organisations +organize, organise +organized, organised +organizer's, organiser's +organizer, organiser +organizers, organisers +organizes, organises +organizing, organising +orientalization's, orientalisation's +orientalization, orientalisation +orientalizations, orientalisations +Orientalize, Orientalise +orientalize, orientalise +Orientalized, Orientalised +orientalized, orientalised +orientalizes, orientalises +Orientalizing, Orientalising +orientalizing, orientalising +orientization's, orientisation's +orientization, orientisation +orientizations, orientisations +orientize, orientise +orientizes, orientises +ornamentalize, ornamentalise +ornamentalizes, ornamentalises +orologies, ourologies +orology, ourology +orphanize, orphanise +orphanizes, orphanises +orsel, oursel +orthocenter's, orthocentre's +orthocenter, orthocentre +orthocenters, orthocentres +orthogonalization's, orthogonalisation's +orthogonalization, orthogonalisation +orthogonalize, orthogonalise +orthogonalized, orthogonalised +orthogonalizes, orthogonalises +orthogonalizing, orthogonalising +orthographize, orthographise +orthographized, orthographised +orthographizing, orthographising +orthopedia, orthopaedia +orthopedic's, orthopaedic's +orthopedic, orthopaedic +orthopedical, orthopaedical +orthopedicallier, orthopaedicallier +orthopedicalliest, orthopaedicalliest +orthopedically, orthopaedically +orthopedicer, orthopaedicer +orthopedicest, orthopaedicest +orthopedics's, orthopaedics's +orthopedics, orthopaedics +orthopedies, orthopaedies +orthopedist's, orthopaedist's +orthopedist, orthopaedist +orthopedists, orthopaedists +orthopedy, orthopaedy +orthopnea, orthopnoea +orthopneic, orthopnoeic +osteopedion, osteopaedion +ostracizable's, ostracisable's +ostracizable, ostracisable +ostracizables, ostracisables +ostracization's, ostracisation's +ostracization, ostracisation +ostracizations, ostracisations +ostracize, ostracise +ostracized, ostracised +ostracizer's, ostraciser's +ostracizer, ostraciser +ostracizers, ostracisers +ostracizes, ostracises +ostracizing, ostracising +othematoma, othaematoma +otorrhea, otorrhoea +Ottomanization's, Ottomanisation's +Ottomanization, Ottomanisation +Ottomanizations, Ottomanisations +Ottomanize's, Ottomanise's +Ottomanize, Ottomanise +Ottomanizes, Ottomanises +outcaviled, outcavilled +outcaviling, outcavilling +outclamor's, outclamour's +outclamor, outclamour +outclamors, outclamours +outerness, outreness +outhumor's, outhumour's +outhumor, outhumour +outhumored, outhumoured +outhumoring, outhumouring +outhumors, outhumours +outhyperbolize, outhyperbolise +outhyperbolizes, outhyperbolises +outlabor's, outlabour's +outlabor, outlabour +outlabors, outlabours +outluster, outlustre +outmaneuver, outmanoeuvre +outmaneuvered, outmanoeuvred +outmaneuvering, outmanoeuvring +outmaneuvers, outmanoeuvres +outrivaled, outrivalled +outrivaling, outrivalling +outsavor's, outsavour's +outsavor, outsavour +outsavoring, outsavouring +outsavors, outsavours +outsplendor's, outsplendour's +outsplendor, outsplendour +outsplendors, outsplendours +outtyrannize, outtyrannise +outtyrannizes, outtyrannises +ovalization's, ovalisation's +ovalization, ovalisation +ovalizations, ovalisations +ovalize, ovalise +ovalizes, ovalises +ovariectomized, ovariectomised +overagonize, overagonise +overagonizes, overagonises +overanalyze, overanalyse +overanalyzes, overanalyses +overbrutalize, overbrutalise +overbrutalizes, overbrutalises +overcapitalization's, overcapitalisation's +overcapitalization, overcapitalisation +overcapitalizations, overcapitalisations +overcapitalize, overcapitalise +overcapitalized, overcapitalised +overcapitalizes, overcapitalises +overcapitalizing, overcapitalising +overcentralization's, overcentralisation's +overcentralization, overcentralisation +overcentralizations, overcentralisations +overcentralize, overcentralise +overcentralizes, overcentralises +overcivilization's, overcivilisation's +overcivilization, overcivilisation +overcivilizations, overcivilisations +overcivilize, overcivilise +overcivilizes, overcivilises +overclamor's, overclamour's +overclamor, overclamour +overclamors, overclamours +overcolor's, overcolour's +overcolor, overcolour +overcoloration's, overcolouration's +overcoloration, overcolouration +overcoloring, overcolouring +overcolors, overcolours +overcriticize, overcriticise +overcriticizes, overcriticises +overdoctrinize, overdoctrinise +overdoctrinizes, overdoctrinises +overdramatize, overdramatise +overdramatized, overdramatised +overdramatizes, overdramatises +overdramatizing, overdramatising +overemotionalize, overemotionalise +overemotionalizes, overemotionalises +overemphasize, overemphasise +overemphasized, overemphasised +overemphasizer, overemphasiser +overemphasizers, overemphasisers +overemphasizes, overemphasises +overemphasizing, overemphasising +overfavor's, overfavour's +overfavor, overfavour +overfavorable's, overfavourable's +overfavorable, overfavourable +overfavorables, overfavourables +overfavorablies, overfavourablies +overfavorably, overfavourably +overfavors, overfavours +overfertilization, overfertilisation +overgeneralize, overgeneralise +overgeneralized, overgeneralised +overgeneralizes, overgeneralises +overgeneralizing, overgeneralising +overhonor's, overhonour's +overhonor, overhonour +overhonors, overhonours +overhumanize, overhumanise +overhumanizes, overhumanises +overindustrialization's, overindustrialisation's +overindustrialization, overindustrialisation +overindustrializations, overindustrialisations +overindustrialize, overindustrialise +overindustrializes, overindustrialises +overjudgment's, overjudgement's +overjudgment, overjudgement +overjudgments, overjudgements +overlabor's, overlabour's +overlabor, overlabour +overlabored, overlaboured +overlaboring, overlabouring +overlabors, overlabours +overnationalization's, overnationalisation's +overnationalization, overnationalisation +overnationalizations, overnationalisations +overrapturize, overrapturise +overrapturizes, overrapturises +overrationalize, overrationalise +overrationalizes, overrationalises +oversentimentalize, oversentimentalise +oversentimentalizes, oversentimentalises +oversize, oversized +overspecialization's, overspecialisation's +overspecialization, overspecialisation +overspecializations, overspecialisations +overspecialize, overspecialise +overspecialized, overspecialised +overspecializes, overspecialises +overspecializing, overspecialising +oversystematize, oversystematise +oversystematizes, oversystematises +overunionized's, overunionised's +overunionized, overunionised +overunionizeds, overunioniseds +overurbanization's, overurbanisation's +overurbanization, overurbanisation +overurbanizations, overurbanisations +overutilization, overutilisation +overwomanize, overwomanise +overwomanizes, overwomanises +ower, owre +owercome, owrecome +owerword, owreword +oxalemia, oxalaemia +oxidizabilities, oxidisabilities +oxidizability's, oxidisability's +oxidizability, oxidisability +oxidizable's, oxidisable's +oxidizable, oxidisable +oxidizables, oxidisables +oxidization's, oxidisation's +oxidization, oxidisation +oxidizations, oxidisations +oxidize, oxidise +oxidized, oxidised +oxidizement's, oxidisement's +oxidizement, oxidisement +oxidizements, oxidisements +oxidizer's, oxidiser's +oxidizer, oxidiser +oxidizers, oxidisers +oxidizes, oxidises +oxidizing, oxidising +oxidizings, oxidisings +oxygenizable's, oxygenisable's +oxygenizable, oxygenisable +oxygenizables, oxygenisables +oxygenize, oxygenise +oxygenized, oxygenised +oxygenizement's, oxygenisement's +oxygenizement, oxygenisement +oxygenizements, oxygenisements +oxygenizer's, oxygeniser's +oxygenizer, oxygeniser +oxygenizers, oxygenisers +oxygenizes, oxygenises +oxygenizing, oxygenising +oxyhematin, oxyhaematin +oxyhemoglobin, oxyhaemoglobin +oxyhemoglobins, oxyhaemoglobins +ozena, ozaena +ozena, ozoena +ozonization's, ozonisation's +ozonization, ozonisation +ozonizations, ozonisations +ozonize, ozonise +ozonized, ozonised +ozonizer's, ozoniser's +ozonizer, ozoniser +ozonizers, ozonisers +ozonizes, ozonises +ozonizing, ozonising +pachyemia, pachyaemia +pachyhemia, pachyhaemia +packetization, packetisation +packetize, packetise +packetized, packetised +packetizer's, packetiser's +packetizer, packetiser +packetizers, packetisers +packetizes, packetises +packetizing, packetising +paeanize, paeanise +paeanizes, paeanises +paganization's, paganisation's +paganization, paganisation +paganizations, paganisations +paganize, paganise +paganized, paganised +paganizer's, paganiser's +paganizer, paganiser +paganizers, paganisers +paganizes, paganises +paganizing, paganising +pagine, paginae +pajama's, pyjama's +pajama, pyjama +pajamaed, pyjamased +pajamas's, pyjamas's +pajamas, pyjamas +palame, palamae +palatalization's, palatalisation's +palatalization, palatalisation +palatalizations, palatalisations +palatalize, palatalise +palatalized, palatalised +palatalizes, palatalises +palatalizing, palatalising +palatization's, palatisation's +palatization, palatisation +palatizations, palatisations +palatize, palatise +palatizes, palatises +paleanthropic, palaeanthropic +Palearctic, Palaearctic +paleencephalon's, palaeencephalon's +paleencephalon, palaeencephalon +paleentomology, palaeentomology +paleethnologic, palaeethnologic +paleethnological, palaeethnological +paleethnologist, palaeethnologist +paleethnology, palaeethnology +paleichthyologist, palaeichthyologist +paleichthyology, palaeichthyology +paleoalchemical, palaeoalchemical +paleoanthropic, palaeoanthropic +paleoanthropography, palaeoanthropography +paleoanthropological, palaeoanthropological +paleoanthropologies, palaeoanthropologies +paleoanthropologist, palaeoanthropologist +paleoanthropologists, palaeoanthropologists +paleoanthropology, palaeoanthropology +Paleoanthropus's, Palaeoanthropus's +Paleoanthropus, Palaeoanthropus +paleoatavism, palaeoatavism +paleoatavistic, palaeoatavistic +paleobiogeography, palaeobiogeography +paleobiologic, palaeobiologic +paleobiological, palaeobiological +paleobiologies, palaeobiologies +paleobiologist's, palaeobiologist's +paleobiologist, palaeobiologist +paleobiologists, palaeobiologists +paleobiology's, palaeobiology's +paleobiology, palaeobiology +paleobotanic, palaeobotanic +paleobotanical, palaeobotanical +paleobotanically, palaeobotanically +paleobotanies, palaeobotanies +paleobotanist, palaeobotanist +paleobotanists, palaeobotanists +paleobotany's, palaeobotany's +paleobotany, palaeobotany +paleoceanography, palaeoceanography +paleochorology, palaeochorology +paleoclimatic, palaeoclimatic +paleoclimatologic, palaeoclimatologic +paleoclimatological, palaeoclimatological +paleoclimatologies, palaeoclimatologies +paleoclimatologist's, palaeoclimatologist's +paleoclimatologist, palaeoclimatologist +paleoclimatologists, palaeoclimatologists +paleoclimatology's, palaeoclimatology's +paleoclimatology, palaeoclimatology +Paleoconcha's, Palaeoconcha's +Paleoconcha, Palaeoconcha +paleocosmic, palaeocosmic +paleocosmology, palaeocosmology +paleocrystal, palaeocrystal +paleocrystallic, palaeocrystallic +paleocrystalline, palaeocrystalline +paleocrystic, palaeocrystic +paleocyclic, palaeocyclic +paleodendrologic, palaeodendrologic +paleodendrological, palaeodendrological +paleodendrologically, palaeodendrologically +paleodendrologist, palaeodendrologist +paleodendrology, palaeodendrology +paleoecologic, palaeoecologic +paleoecological, palaeoecological +paleoecologies, palaeoecologies +paleoecologist's, palaeoecologist's +paleoecologist, palaeoecologist +paleoecologists, palaeoecologists +paleoecology's, palaeoecology's +paleoecology, palaeoecology +paleoencephalon's, palaeoencephalon's +paleoencephalon, palaeoencephalon +paleoentomologic, palaeoentomologic +paleoentomological, palaeoentomological +paleoentomologist's, palaeoentomologist's +paleoentomologist, palaeoentomologist +paleoeremology, palaeoeremology +paleoethnic, palaeoethnic +paleoethnography, palaeoethnography +paleoethnologic, palaeoethnologic +paleoethnological, palaeoethnological +paleoethnologist, palaeoethnologist +paleoethnology, palaeoethnology +paleofauna, palaeofauna +paleogenesis's, palaeogenesis's +paleogenesis, palaeogenesis +paleogenetic, palaeogenetic +paleogeographer, palaeogeographer +paleogeographers, palaeogeographers +paleogeographic, palaeogeographic +paleogeographical, palaeogeographical +paleogeographically, palaeogeographically +paleogeographies, palaeogeographies +paleogeography, palaeogeography +paleogeology, palaeogeology +paleoglaciology, palaeoglaciology +paleoglyph, palaeoglyph +paleograph, palaeograph +paleographic, palaeographic +paleographical, palaeographical +paleographically, palaeographically +paleographist, palaeographist +paleoherpetologist, palaeoherpetologist +paleoherpetology, palaeoherpetology +paleohistology, palaeohistology +paleohydrography, palaeohydrography +paleoichthyology, palaeoichthyology +paleolatry, palaeolatry +paleolimnology, palaeolimnology +paleolith's, palaeolith's +paleolith, palaeolith +paleolithic, palaeolithic +Paleolithic, Palaeolithic +paleolithical, palaeolithical +paleolithist, palaeolithist +paleolithoid, palaeolithoid +paleoliths, palaeoliths +paleolithy, palaeolithy +paleological, palaeological +paleologist's, palaeologist's +paleologist, palaeologist +paleology, palaeology +paleomagnetism's, palaeomagnetism's +paleomagnetism, palaeomagnetism +paleomagnetisms, palaeomagnetisms +paleometallic, palaeometallic +paleometeorological, palaeometeorological +paleometeorology, palaeometeorology +paleontographic, palaeontographic +paleontographical, palaeontographical +paleontographies, palaeontographies +paleontography's, palaeontography's +paleontography, palaeontography +paleontol, palaeontol +paleontologic, palaeontologic +paleontological, palaeontological +paleontologically, palaeontologically +paleontologist's, palaeontologist's +paleontologist, palaeontologist +paleontologists, palaeontologists +paleontology's, palaeontology's +paleontology, palaeontology +paleopathologic, palaeopathologic +paleopathological, palaeopathological +paleopathologies, palaeopathologies +paleopathologist, palaeopathologist +paleopathologists, palaeopathologists +paleopathology, palaeopathology +paleopedology, palaeopedology +paleophysiography, palaeophysiography +paleophysiology, palaeophysiology +paleophytic, palaeophytic +paleophytological, palaeophytological +paleophytologist, palaeophytologist +paleophytology, palaeophytology +paleoplain, palaeoplain +paleopotamology, palaeopotamology +paleopsychic, palaeopsychic +paleopsychological, palaeopsychological +paleopsychology, palaeopsychology +paleornithological, palaeornithological +paleornithology, palaeornithology +paleostriatal, palaeostriatal +paleostriatum, palaeostriatum +paleostylic, palaeostylic +paleostyly, palaeostyly +paleotechnic, palaeotechnic +paleothalamus, palaeothalamus +Paleotropical's, Palaeotropical's +Paleotropical, Palaeotropical +paleovolcanic, palaeovolcanic +paleozoic, palaeozoic +paleozoologic, palaeozoologic +paleozoological, palaeozoological +paleozoologies, palaeozoologies +paleozoologist's, palaeozoologist's +paleozoologist, palaeozoologist +paleozoologists, palaeozoologists +paleozoology's, palaeozoology's +paleozoology, palaeozoology +palestra's, palaestra's +palestra, palaestra +palestrae, palaestrae +palestral, palaestral +palestras, palaestras +palestrian, palaestrian +palestric, palaestric +paletiology, palaetiology +palladiumize, palladiumise +palladiumizes, palladiumises +palletization's, palletisation's +palletization, palletisation +palletizations, palletisations +palletize, palletise +palletized, palletised +palletizer's, palletiser's +palletizer, palletiser +palletizers, palletisers +palletizes, palletises +palletizing, palletising +pamperize, pamperise +pamperizes, pamperises +pamphletize, pamphletise +pamphletizes, pamphletises +panderize, panderise +panderizes, panderises +pandora, pandoura +panegyrize, panegyrise +panegyrized, panegyrised +panegyrizes, panegyrises +panegyrizing, panegyrising +paneled, panelled +paneling's, panelling's +paneling, panelling +panelings, panellings +panelist's, panellist's +panelist, panellist +panelists, panellists +panelized, panelised +panellisation, panellization +panesthesia, panaesthesia +panesthesias, panaesthesias +panesthetic, panaesthetic +pangea, pangaea +pannier's, panier's +pannier, panier +panniers, paniers +panomphean, panomphaean +pantheonization's, pantheonisation's +pantheonization, pantheonisation +pantheonizations, pantheonisations +pantheonize, pantheonise +pantheonizes, pantheonises +pantie's, panty's +pantie, panty +papalization's, papalisation's +papalization, papalisation +papalizations, papalisations +papalize, papalise +papalized, papalised +papalizer, papaliser +papalizers, papalisers +papalizes, papalises +papalizing, papalising +papilledema, papilloedema +papule, papulae +parabolization's, parabolisation's +parabolization, parabolisation +parabolize, parabolise +parabolized, parabolised +parabolizes, parabolises +parabolizing, parabolising +paraffinize, paraffinise +paraffinizes, paraffinises +paragraphize, paragraphise +paragraphizes, paragraphises +parakeet's, parrakeet's +parakeet, parrakeet +parakeets, parrakeets +parallelization's, parallelisation's +parallelization, parallelisation +parallelizations, parallelisations +parallelize, parallelise +parallelized, parallelised +parallelizer, paralleliser +parallelizers, parallelisers +parallelizes, parallelises +parallelizing, parallelising +paralogize, paralogise +paralogized, paralogised +paralogizes, paralogises +paralogizing, paralogising +paralyzation's, paralysation's +paralyzation, paralysation +paralyzations, paralysations +paralyze, paralyse +paralyzed, paralysed +paralyzedlies, paralysedlies +paralyzedly, paralysedly +paralyzer's, paralyser's +paralyzer, paralyser +paralyzers, paralysers +paralyzes, paralyses +paralyzing, paralysing +paralyzinglies, paralysinglies +paralyzingly, paralysingly +Paramecium's, Paramoecium's +Paramecium, Paramoecium +parameterizable, parameterisable +parameterization's, parameterisation's +parameterization, parameterisation +parameterizations, parameterisations +parameterize, parameterise +parameterized, parameterised +parameterizes, parameterises +parameterizing, parameterising +parametrizable, parametrisable +parametrization's, parametrisation's +parametrization, parametrisation +parametrizations, parametrisations +parametrize, parametrise +parametrized, parametrised +parametrizes, parametrises +parametrizing, parametrising +paraselene, paraselenae +parasitemia, parasitaemia +parasitization, parasitisation +parasitize, parasitise +parasitized, parasitised +parasitizes, parasitises +parasitizing, parasitising +parathyroidectomize, parathyroidectomise +parathyroidectomized, parathyroidectomised +parathyroidectomizes, parathyroidectomises +parathyroidectomizing, parathyroidectomising +paratragedia, paratragoedia +parceled, parcelled +parceler, parceller +parceling's, parcelling's +parceling, parcelling +parchmentize, parchmentise +parchmentized, parchmentised +parchmentizes, parchmentises +parchmentizing, parchmentising +parecious, paroecious +pareciously, paroeciously +pareciousness, paroeciousness +parecism, paroecism +parecy, paroecy +pareneses, paraeneses +parenesis, paraenesis +parenetic, paraenetic +parenetical, paraenetical +parenthesization, parenthesisation +parenthesize, parenthesise +parenthesized, parenthesised +parenthesizes, parenthesises +parenthesizing, parenthesising +paresthesia's, paraesthesia's +paresthesia, paraesthesia +paresthesias, paraesthesias +paresthetic, paraesthetic +parfocalization, parfocalisation +parfocalize, parfocalise +Parisianization's, Parisianisation's +Parisianization, Parisianisation +Parisianizations, Parisianisations +Parisianize's, Parisianise's +Parisianize, Parisianise +Parisianizes, Parisianises +parlor's, parlour's +parlor, parlour +parlorish, parlourish +parlormaid, parlourmaid +parlors, parlours +parmigiana, parmigiano +parochialization's, parochialisation's +parochialization, parochialisation +parochializations, parochialisations +parochialize, parochialise +parochialized, parochialised +parochializes, parochialises +parochializing, parochialising +parrotize, parrotise +parrotizes, parrotises +parsonize, parsonise +parsonizes, parsonises +partialize, partialise +partialized, partialised +partializes, partialises +partializing, partialising +particolored, particoloured +particoloredder, particolouredder +particoloreddest, particoloureddest +particularization's, particularisation's +particularization, particularisation +particularizations, particularisations +particularize, particularise +particularized, particularised +particularizer's, particulariser's +particularizer, particulariser +particularizes, particularises +particularizing, particularising +partisan's, partizan's +partisan's, partizan's +partisan, partizan +partisan, partizan +partisanize, partisanise +partisanizes, partisanises +partisans, partizans +partisans, partizans +Pasiphae's, Pasiphaae's +Pasiphae, Pasiphaae +passades, passadoes +passivization, passivisation +passivize, passivise +passivized, passivised +passivizes, passivises +passivizing, passivising +pasteurization's, pasteurisation's +pasteurization, pasteurisation +pasteurizations, pasteurisations +pasteurize, pasteurise +pasteurized, pasteurised +pasteurizer's, pasteuriser's +pasteurizer, pasteuriser +Pasteurizers, Pasteurisers +pasteurizers, pasteurisers +pasteurizes, pasteurises +pasteurizing, pasteurising +pastoralize, pastoralise +pastoralizes, pastoralises +pastorize, pastorise +pastorizes, pastorises +paternalize, paternalise +paternalizes, paternalises +patine, patinae +patined, patinaed +patrialization, patrialisation +patrializations, patrialisations +patrialize, patrialise +patrialized, patrialised +patrializes, patrialises +patrializing, patrialising +patrices, patricoes +patronizable's, patronisable's +patronizable, patronisable +patronizabler, patronisabler +patronizables, patronisables +patronizablest, patronisablest +patronization's, patronisation's +patronization, patronisation +patronizations, patronisations +patronize, patronise +patronized, patronised +patronizer's, patroniser's +patronizer, patroniser +patronizers, patronisers +patronizes, patronises +patronizing's, patronising's +patronizing, patronising +patronizinglier, patronisinglier +patronizingliest, patronisingliest +patronizingly, patronisingly +patronizings, patronisings +patte, pattae +patternize, patternise +patternizes, patternises +Paulinize's, Paulinise's +Paulinize, Paulinise +Paulinizes, Paulinises +pauperization's, pauperisation's +pauperization, pauperisation +pauperizations, pauperisations +pauperize, pauperise +pauperized, pauperised +pauperizer's, pauperiser's +pauperizer, pauperiser +pauperizers, pauperisers +pauperizes, pauperises +pauperizing, pauperising +Pavior's, Paviour's +pavior's, paviour's +Pavior, Paviour +pavior, paviour +paviors, paviours +pawpaw's, papaw's +pawpaw, papaw +pawpaws, papaws +Paynize's, Paynise's +Paynize, Paynise +Paynizes, Paynises +pe, poe +pearlization, pearlisation +pearlize, pearlise +pearlized, pearlised +pearlizes, pearlises +pearlizing, pearlising +peasantize, peasantise +peasantizes, peasantises +pectization's, pectisation's +pectization, pectisation +pectizations, pectisations +pectize, pectise +pectized, pectised +pectizes, pectises +pectizing, pectising +peculiarize, peculiarise +peculiarized, peculiarised +peculiarizes, peculiarises +peculiarizing, peculiarising +pedagogism, paedagogism +pedagogue's, pedagog's +pedagogue, pedagog +pedagogues, pedagogs +pedaled, pedalled +pedaler's, pedaller's +pedaler, pedaller +pedalers, pedallers +pedaling, pedalling +pedanticize, pedanticise +pedanticized, pedanticised +pedanticizes, pedanticises +pedanticizing, pedanticising +pedantize, pedantise +pedantized, pedantised +pedantizes, pedantises +pedantizing, pedantising +pedatrophia, paedatrophia +pedatrophy, paedatrophy +peddler's, pedlar's +peddler, pedlar +peddlers, pedlars +pederast's, paederast's +pederast, paederast +pederastic, paederastic +pederastically, paederastically +pederasts, paederasts +pedestaled, pedestalled +pedestaling, pedestalling +pedestrianization's, pedestrianisation's +pedestrianization, pedestrianisation +pedestrianizations, pedestrianisations +pedestrianize, pedestrianise +pedestrianized, pedestrianised +pedestrianizes, pedestrianises +pedestrianizing, pedestrianising +pediatric, paediatric +pediatrics, paediatrics +pediatrist's, paediatrician's +pediatrist, paediatrician +pediatrists, paediatricians +pediatry, paediatry +pedobaptism's, paedobaptism's +pedobaptism, paedobaptism +pedobaptist's, paedobaptist's +pedobaptist, paedobaptist +pedodontic, paedodontic +pedodontics, paedodontics +pedogeneses, paedogeneses +pedogenesis, paedogenesis +pedogenetic, paedogenetic +pedogenic, paedogenic +pedological, paedological +pedologies, paedologies +pedologist, paedologist +pedologists, paedologists +pedology's, paedology's +pedology, paedology +pedometrical, paedometrical +pedomorphic, paedomorphic +pedomorphism, paedomorphism +pedomorphisms, paedomorphisms +pedomorphoses, paedomorphoses +pedomorphosis, paedomorphosis +pedophile, paedophile +pedophiles, paedophiles +pedophilia, paedophilia +pedophiliac, paedophiliac +pedophiliacs, paedophiliacs +pedophilias, paedophilias +pedophilic, paedophilic +pedotribe, paedotribe +pedotrophic, paedotrophic +pedotrophist, paedotrophist +pedotrophy, paedotrophy +peize, peise +peized, peised +peizes, peises +peizing, peising +Pekingese's, Pekinese's +Pekingese, Pekinese +pelletization's, pelletisation's +pelletization, pelletisation +pelletizations, pelletisations +pelletize, pelletise +pelletized, pelletised +pelletizer, pelletiser +pelletizes, pelletises +pelletizing, pelletising +pelorized, pelorised +pemmicanization's, pemmicanisation's +pemmicanization, pemmicanisation +pemmicanizations, pemmicanisations +pemmicanize's, pemmicanise's +pemmicanize, pemmicanise +pemmicanizes, pemmicanises +penalizable's, penalisable's +penalizable, penalisable +penalizabler, penalisabler +penalizables, penalisables +penalizablest, penalisablest +penalization's, penalisation's +penalization, penalisation +penalizations, penalisations +penalize, penalise +penalized, penalised +penalizes, penalises +penalizing, penalising +penciled, pencilled +penciler's, penciller's +penciler, penciller +pencilers, pencillers +penciling, pencilling +pencilings, pencillings +penelopize, penelopise +penelopized, penelopised +penelopizes, penelopises +penelopizing, penelopising +penlight's, penlite's +penlight, penlite +penlights, penlites +penne, pennae +pense, pensae +peptizable's, peptisable's +peptizable, peptisable +peptizables, peptisables +peptization's, peptisation's +peptization, peptisation +peptizations, peptisations +peptize, peptise +peptized, peptised +peptizer, peptiser +peptizers, peptisers +peptizes, peptises +peptizing, peptising +peptonemia, peptonaemia +peptonization's, peptonisation's +peptonization, peptonisation +peptonizations, peptonisations +peptonize, peptonise +peptonized, peptonised +peptonizer's, peptoniser's +peptonizer, peptoniser +peptonizes, peptonises +peptonizing, peptonising +peracid, preacid +peracidity, preacidity +peract, preact +peracute, preacute +perambulatory, preambulatory +perces, preces +perchlorethane, perchloroethane +perchlorethylene, perchloroethylene +perchloric, prechloric +perclose, preclose +percompound, precompound +percurrent, precurrent +percussionize, percussionise +percussionizes, percussionises +perdicine, perdicinae +perdiligent, prediligent +perdy, predy +perea, peraea +perennialize, perennialise +perennializes, perennialises +pereon, peraeon +pereopod, peraeopod +pereopods, peraeopods +perfectivize, perfectivise +perfectivizes, perfectivises +perfervor's, perfervour's +perfervor, perfervour +perfervors, perfervours +perfet, prefet +perfoliation, prefoliation +perfoliations, prefoliations +performant, preformant +performative, preformative +perhazard, prehazard +pericecal, pericaecal +pericecitis, pericaecitis +pericenter, pericentre +perichete, perichaete +pericope, pericopae +periesophageal, perioesophageal +periled, perilled +periling, perilling +periodicalize, periodicalise +periodicalizes, periodicalises +periodization's, periodisation's +periodization, periodisation +periodizations, periodisations +periodize, periodise +periodized, periodised +periodizes, periodises +periodizing, periodising +perjink, prejink +perlection, prelection +perlingual, prelingual +perlingually, prelingually +permissable, premissable +permixture, premixture +pernasal, prenasal +peroral, preoral +perorally, preorally +perotic, preotic +peroxidize, peroxidise +peroxidized, peroxidised +peroxidizement's, peroxidisement's +peroxidizement, peroxidisement +peroxidizements, peroxidisements +peroxidizes, peroxidises +peroxidizing, peroxidising +perperfect, preperfect +Perse's, Persae's +Perse, Persae +perse, prese +Persianization's, Persianisation's +Persianization, Persianisation +Persianizations, Persianisations +Persianize's, Persianise's +Persianize, Persianise +Persianized's, Persianised's +Persianized, Persianised +Persianizes, Persianises +Persianizing's, Persianising's +Persianizing, Persianising +Persicize's, Persicise's +Persicize, Persicise +Persicized's, Persicised's +Persicized, Persicised +Persicizes, Persicises +Persicizing's, Persicising's +Persicizing, Persicising +persolve, presolve +personalization's, personalisation's +personalization, personalisation +personalizations, personalisations +personalize, personalise +personalized, personalised +personalizes, personalises +personalizing, personalising +personization's, personisation's +personization, personisation +personizations, personisations +personize, personise +personized, personised +personizes, personises +personizing, personising +perst, prest +Peruvianize's, Peruvianise's +Peruvianize, Peruvianise +Peruvianizes, Peruvianises +perv, prev +perve, preve +perved, preved +perves, preves +perviable, previable +perving, preving +perviousness, previousness +perviousnesses, previousnesses +petaled, petalled +petling, poetling +Petrarchize's, Petrarchise's +Petrarchize, Petrarchise +Petrarchized's, Petrarchised's +Petrarchized, Petrarchised +Petrarchizes, Petrarchises +Petrarchizing's, Petrarchising's +Petrarchizing, Petrarchising +petrolization's, petrolisation's +petrolization, petrolisation +petrolizations, petrolisations +petrolize, petrolise +petrolizes, petrolises +phacochere, phacochoere +phacocherine, phacochoerine +Phaenna's, Phaaenna's +Phaenna, Phaaenna +phagedena, phagedaena +phagedenas, phagedaenas +phagedenic, phagedaenic +phagedenical, phagedaenical +phagedenous, phagedaenous +phagocytize, phagocytise +phagocytizes, phagocytises +phalanxes, phalanx +phantomize, phantomise +phantomizer, phantomiser +phantomizers, phantomisers +phantomizes, phantomises +Pharisean's, Pharisaean's +Pharisean, Pharisaean +pharmacopeian, pharmacopoeian +pharmacopoeia's, pharmacopeia's +pharmacopoeia, pharmacopeia +pharmacopoeial, pharmacopeial +pharmacopoeias, pharmacopeias +phelonion, phaelonion +phelonions, phaelonions +phenicia, phoenicia +phenicopter, phoenicopter +phenogam, phaenogam +phenogams, phaenogams +phenogenesis, phaenogenesis +phenogenetic, phaenogenetic +phenolization's, phenolisation's +phenolization, phenolisation +phenolizations, phenolisations +phenolize, phenolise +phenolizes, phenolises +phenological, phaenological +phenologies, phaenologies +phenology, phaenology +phenomenalization's, phenomenalisation's +phenomenalization, phenomenalisation +phenomenalizations, phenomenalisations +phenomenalize, phenomenalise +phenomenalized, phenomenalised +phenomenalizes, phenomenalises +phenomenalizing, phenomenalising +phenomenism, phaenomenism +phenomenize, phenomenise +phenomenized, phenomenised +phenomenizes, phenomenises +phenomenizing, phenomenising +phenozygous, phaenozygous +pheophyl, phaeophyl +pheophyll, phaeophyll +pheophytin, phaeophytin +phiale, phialae +philanthropize, philanthropise +philanthropized, philanthropised +philanthropizes, philanthropises +philanthropizing, philanthropising +Philippize's, Philippise's +Philippize, Philippise +Philippized's, Philippised's +Philippized, Philippised +Philippizes, Philippises +Philippizing's, Philippising's +Philippizing, Philippising +Philistinize's, Philistinise's +Philistinize, Philistinise +Philistinized's, Philistinised's +Philistinized, Philistinised +Philistinizes, Philistinises +Philistinizing's, Philistinising's +Philistinizing, Philistinising +philopena, philopoena +philopenas, philopoenas +philosophization's, philosophisation's +philosophization, philosophisation +philosophizations, philosophisations +philosophize, philosophise +philosophized, philosophised +philosophizer's, philosophiser's +philosophizer, philosophiser +philosophizers, philosophisers +philosophizes, philosophises +philosophizing, philosophising +philter's, philtre's +philter, philtre +philters, philtres +phlebotomization's, phlebotomisation's +phlebotomization, phlebotomisation +phlebotomizations, phlebotomisations +phlebotomize, phlebotomise +phlebotomized, phlebotomised +phlebotomizes, phlebotomises +phlebotomizing, phlebotomising +phleum, phloeum +phlyctena's, phlyctaena's +phlyctena, phlyctaena +phlyctenae, phlyctaenae +phlyctenula, phlyctaenula +Phocean, Phocaean +phonemicization, phonemicisation +phonemicizations, phonemicisations +phonemicize, phonemicise +phonemicized, phonemicised +phonemicizes, phonemicises +phonemicizing, phonemicising +phoneticization's, phoneticisation's +phoneticization, phoneticisation +phoneticizations, phoneticisations +phoneticize, phoneticise +phoneticized, phoneticised +phoneticizes, phoneticises +phoneticizing, phoneticising +phonetization, phonetisation +phonetizations, phonetisations +phonetize, phonetise +phonetized, phonetised +phonetizes, phonetises +phonetizing, phonetising +phorrhea, phorrhoea +phosphatization's, phosphatisation's +phosphatization, phosphatisation +phosphatizations, phosphatisations +phosphatize, phosphatise +phosphatized, phosphatised +phosphatizes, phosphatises +phosphatizing, phosphatising +phosphorize, phosphorise +phosphorized, phosphorised +phosphorizes, phosphorises +phosphorizing, phosphorising +photesthesis, photaesthesis +photesthesis, photoesthesis +photocatalyzer's, photocatalyser's +photocatalyzer, photocatalyser +photocatalyzers, photocatalysers +photoesthetic, photoaesthetic +photographize, photographise +photographizes, photographises +photoionization's, photoionisation's +photoionization, photoionisation +photoionizations, photoionisations +photoisomerization's, photoisomerisation's +photoisomerization, photoisomerisation +photoisomerizations, photoisomerisations +photolabeled, photolabelled +photolabeler, photolabeller +photolabeling, photolabelling +photolyzable, photolysable +photolyze, photolyse +photolyzed, photolysed +photolyzes, photolyses +photolyzing, photolysing +photopolymerization's, photopolymerisation's +photopolymerization, photopolymerisation +photopolymerizations, photopolymerisations +photosensitization's, photosensitisation's +photosensitization, photosensitisation +photosensitizations, photosensitisations +photosensitize, photosensitise +photosensitized, photosensitised +photosensitizer's, photosensitiser's +photosensitizer, photosensitiser +photosensitizers, photosensitisers +photosensitizes, photosensitises +photosensitizing, photosensitising +photosynthesize, photosynthesise +photosynthesized, photosynthesised +photosynthesizes, photosynthesises +photosynthesizing, photosynthesising +phrenologize, phrenologise +phrenologized, phrenologised +phrenologizes, phrenologises +phrenologizing, phrenologising +Phylactolema's, Phylactolaema's +Phylactolema, Phylactolaema +Phylactolemata's, Phylactolaemata's +Phylactolemata, Phylactolaemata +phytoecology, phytooecology +phytohemagglutinin, phytohaemagglutinin +piarhemic, piarhaemic +piaster's, piastre's +piaster, piastre +piasters, piastres +picogram's, picogramme's +picogram, picogramme +picograms, picogrammes +picometer's, picometre's +picometer, picometre +picometers, picometres +pictorialization's, pictorialisation's +pictorialization, pictorialisation +pictorializations, pictorialisations +pictorialize, pictorialise +pictorialized, pictorialised +pictorializes, pictorialises +pictorializing, pictorialising +picturization's, picturisation's +picturization, picturisation +picturizations, picturisations +picturize, picturise +picturized, picturised +picturizes, picturises +picturizing, picturising +pidginization's, pidginisation's +pidginization, pidginisation +pidginizations, pidginisations +pidginize, pidginise +pidginized, pidginised +pidginizes, pidginises +pidginizing, pidginising +piggyback's, pickaback's +piggyback, pickaback +piggybacking, pickabacking +piggybacks, pickabacks +pigmean, pigmaean +pigmentize, pigmentise +pigmentizes, pigmentises +pilau's, pilaff's +pilau, pilaff +pilaus, pilaffs +pilgrimize, pilgrimise +pilgrimized, pilgrimised +pilgrimizes, pilgrimises +pilgrimizing, pilgrimising +pillarize, pillarise +pillarizes, pillarises +pillorize, pillorise +pillorized, pillorised +pillorizes, pillorises +pillorizing, pillorising +pillowbeer, pillowbere +Pindarize's, Pindarise's +Pindarize, Pindarise +Pindarized's, Pindarised's +Pindarized, Pindarised +Pindarizes, Pindarises +Pindarizing's, Pindarising's +Pindarizing, Pindarising +piney, piny +pinkie's, pinky's +pinkie, pinky +pinnule, pinnulae +pinochle's, pinocle's +pinochle, pinocle +pinyon's, piÒon's +pinyon, piÒon +pinyons, piÒons +piratize, piratise +piratizes, piratises +piroshki's, pirozhki's +piroshki, pirozhki +piscine, piscinae +pistoled, pistolled +pistoling, pistolling +pixie's, pixy's +pixie, pixy +pixieish, pixyish +pizes, pises +pizzazz's, pizazz's +pizzazz, pizazz +pizzazzes, pizazzes +Placean's, Placaean's +Placean, Placaean +placebos, placeboes +plage, plagae +plagiarization's, plagiarisation's +plagiarization, plagiarisation +plagiarizations, plagiarisations +plagiarize, plagiarise +plagiarized, plagiarised +plagiarizer's, plagiariser's +plagiarizer, plagiariser +plagiarizers, plagiarisers +plagiarizes, plagiarises +plagiarizing, plagiarising +Plante's, Plantae's +Plante, Plantae +plantule, plantulae +plasmapheresis, plasmaphaeresis +plasmolyze, plasmolyse +plasmolyzed, plasmolysed +plasmolyzes, plasmolyses +plasmolyzing, plasmolysing +plasticization's, plasticisation's +plasticization, plasticisation +plasticizations, plasticisations +plasticize, plasticise +plasticized, plasticised +plasticizer's, plasticiser's +plasticizer, plasticiser +plasticizers, plasticisers +plasticizes, plasticises +plasticizing, plasticising +platea, plataea +platinization's, platinisation's +platinization, platinisation +platinizations, platinisations +platinize, platinise +platinized, platinised +platinizes, platinises +platinizing, platinising +platitudinization's, platitudinisation's +platitudinization, platitudinisation +platitudinizations, platitudinisations +platitudinize, platitudinise +platitudinized, platitudinised +platitudinizer's, platitudiniser's +platitudinizer, platitudiniser +platitudinizes, platitudinises +platitudinizing, platitudinising +Platonization's, Platonisation's +Platonization, Platonisation +platonization, platonisation +Platonize, Platonise +platonize, platonise +Platonized, Platonised +platonized, platonised +Platonizer's, Platoniser's +Platonizer, Platoniser +Platonizes, Platonises +platonizes, platonises +Platonizing, Platonising +platonizing, platonising +platycelian, platycoelian +platycelous, platycoelous +plebeianization's, plebeianisation's +plebeianization, plebeianisation +plebeianize, plebeianise +plebeianized, plebeianised +plebeianizes, plebeianises +plebeianizing, plebeianising +pleuroperitoneal, pleuroperitonaeal +plow's, plough's +plow, plough +plowable, ploughable +plowboy's, ploughboy's +plowboy, ploughboy +plowboys, ploughboys +plowed, ploughed +plower's, plougher's +plower, plougher +plowers, ploughers +plowhead, ploughhead +plowing's, ploughing's +plowing, ploughing +plowman's, ploughman's +plowman, ploughman +plowmen, ploughmen +plows, ploughs +plowshare's, ploughshare's +plowshare, ploughshare +plowshares, ploughshares +plumule, plumulae +pluralization's, pluralisation's +pluralization, pluralisation +pluralizations, pluralisations +pluralize, pluralise +pluralized, pluralised +pluralizer's, pluraliser's +pluralizer, pluraliser +pluralizers, pluralisers +pluralizes, pluralises +pluralizing, pluralising +poeticization, poeticisation +poeticize, poeticise +poeticized, poeticised +poeticizes, poeticises +poeticizing, poeticising +poetization's, poetisation's +poetization, poetisation +poetizations, poetisations +poetize, poetise +poetized, poetised +poetizer's, poetiser's +poetizer, poetiser +poetizers, poetisers +poetizes, poetises +poetizing, poetising +pogromize, pogromise +pogromizes, pogromises +poky, pokey +polarizabilities, polarisabilities +polarizability's, polarisability's +polarizability, polarisability +polarizable's, polarisable's +polarizable, polarisable +polarizables, polarisables +polarization's, polarisation's +polarization, polarisation +polarizations, polarisations +polarize, polarise +polarized, polarised +polarizer's, polariser's +polarizer, polariser +polarizers, polarisers +polarizes, polarises +polarizing, polarising +polemicize, polemicise +polemicized, polemicised +polemicizes, polemicises +polemicizing, polemicising +polemize, polemise +polemized, polemised +polemizes, polemises +polemizing, polemising +policize, policise +policizer, policiser +policizers, policisers +policizes, policises +poliencephalitis's, polioencephalitis's +poliencephalitis, polioencephalitis +poliencephalomyelitis, polioencephalomyelitis +politicalize, politicalise +politicalizes, politicalises +politicization's, politicisation's +politicization, politicisation +politicizations, politicisations +politicize, politicise +politicized, politicised +politicizer, politiciser +politicizers, politicisers +politicizes, politicises +politicizing, politicising +politize, politise +politizes, politises +pollack's, pollock's +pollack, pollock +pollenizer, polleniser +pollinize, pollinise +pollinized, pollinised +pollinizer, polliniser +pollinizes, pollinises +pollinizing, pollinising +polliwog's, pollywog's +polliwog, pollywog +polliwogs, pollywogs +Polonization's, Polonisation's +Polonization, Polonisation +polonize, polonise +polonized, polonised +polonizes, polonises +polonizing, polonising +polychetous, polychaetous +polychromatize, polychromatise +polychromatizes, polychromatises +polychromize, polychromise +polychromizes, polychromises +polycythemia, polycythaemia +polycythemias, polycythaemias +polycythemic, polycythaemic +polydemonism, polydaemonism +polydemonisms, polydaemonisms +polydemonist's, polydaemonist's +polydemonist, polydaemonist +polyemia, polyaemia +polyemic, polyaemic +polyestrous, polyoestrous +polygamize, polygamise +polygamizes, polygamises +polyhemia, polyhaemia +polyhemic, polyhaemic +polymerization's, polymerisation's +polymerization, polymerisation +polymerizations, polymerisations +polymerize, polymerise +polymerized, polymerised +polymerizes, polymerises +polymerizing, polymerising +polypnea, polypnoea +polypneic, polypnoeic +polysulphurization's, polysulphurisation's +polysulphurization, polysulphurisation +polysulphurizations, polysulphurisations +polytetrafluorethylene, polytetrafluoroethylene +polytetrafluorethylenes, polytetrafluoroethylenes +pomerium, pomoerium +pomme, pommae +pommeled, pommelled +pommeling, pommelling +popliteal, poplitaeal +popularization's, popularisation's +popularization, popularisation +popularizations, popularisations +popularize, popularise +popularized, popularised +popularizer's, populariser's +popularizer, populariser +popularizers, popularisers +popularizes, popularises +popularizing, popularising +porcelainization's, porcelainisation's +porcelainization, porcelainisation +porcelainizations, porcelainisations +porcelainize, porcelainise +porcelainized, porcelainised +porcelainizes, porcelainises +porcelainizing, porcelainising +porcellanize, porcellanise +porcellanized, porcellanised +porcellanizes, porcellanises +porcellanizing, porcellanising +porer, pourer +porers, pourers +poringly, pouringly +porphyrization's, porphyrisation's +porphyrization, porphyrisation +porte, portae +portionize, portionise +portionizes, portionises +positivize, positivise +positivizes, positivises +postcecal, postcaecal +postcenal, postcoenal +posterize, posterise +posterizes, posterises +postfetal, postfoetal +postilion's, postillion's +postilion, postillion +postilions, postillions +postmedieval, postmediaeval +postsynchronization, postsynchronisation +posturize, posturise +posturized, posturised +posturizes, posturises +posturizing, posturising +potentialization's, potentialisation's +potentialization, potentialisation +potentializations, potentialisations +potentialize, potentialise +potentializes, potentialises +potentize, potentise +potentized, potentised +potentizes, potentises +potentizing, potentising +pouder, poudre +pouders, poudres +pouffe's, pouf's +pouffe, pouf +pouffes, poufs +poulder, pouldre +poulders, pouldres +powderization's, powderisation's +powderization, powderisation +powderizations, powderisations +powderize, powderise +powderizer, powderiser +powderizers, powderisers +powderizes, powderises +powellize, powellise +powellized, powellised +powellizes, powellises +powellizing, powellising +practicer's, practiser's +practicer, practiser +practicers, practisers +praenomen's, prenomen's +praenomen, prenomen +praenomens, prenomens +pragmatization, pragmatisation +pragmatizations, pragmatisations +pragmatize, pragmatise +pragmatized, pragmatised +pragmatizer, pragmatiser +pragmatizers, pragmatisers +pragmatizes, pragmatises +pragmatizing, pragmatising +preabdomen, praeabdomen +preacetabular, praeacetabular +preacherize, preacherise +preacherizes, preacherises +preacknowledgment's, preacknowledgement's +preacknowledgment, preacknowledgement +preacknowledgments, preacknowledgements +preanal, praeanal +preanesthetic's, preanaesthetic's +preanesthetic, preanaesthetic +preanesthetics, preanaesthetics +preapprize, preapprise +preapprized, preapprised +preapprizing, preapprising +preauthorize, preauthorise +prebaptize, prebaptise +prebaptizes, prebaptises +precancelation, precancellation +precava, praecava +precavae, praecavae +precipe, praecipe +precipes, praecipes +precisionize, precisionise +precisionizes, precisionises +precivilization's, precivilisation's +precivilization, precivilisation +precivilizations, precivilisations +precocial, praecocial +precolor's, precolour's +precolor, precolour +precolorable's, precolourable's +precolorable, precolourable +precolorabler, precolourabler +precolorables, precolourables +precolorablest, precolourablest +precoloration's, precolouration's +precoloration, precolouration +precolorations, precolourations +precolored, precoloured +precoloring, precolouring +precolorings, precolourings +precolors, precolours +preconization's, preconisation's +preconization, preconisation +preconizations, preconisations +preconize, preconise +preconized, preconised +preconizer's, preconiser's +preconizer, preconiser +preconizers, preconisers +preconizes, preconises +preconizing, preconising +precoracoid, praecoracoid +precordia, praecordia +precordial, praecordial +precordium, praecordium +precornu, praecornu +precox, praecox +precriticize, precriticise +precriticizes, precriticises +precuneus, praecuneus +predial, praedial +predialist, praedialist +prediality, praediality +predials, praedials +preemptor's, preaemptor's +preemptor, preaemptor +preesophageal, praeesophageal +preesophageal, preoesophageal +preestival, preaestival +preexistent, preaexistent +prefavor's, prefavour's +prefavor, prefavour +prefavorable's, prefavourable's +prefavorable, prefavourable +prefavorables, prefavourables +prefavorablies, prefavourablies +prefavorably, prefavourably +prefavorite's, prefavourite's +prefavorite, prefavourite +prefavorites, prefavourites +prefavors, prefavours +prefectorial, praefectorial +prefertilization's, prefertilisation's +prefertilization, prefertilisation +prefertilizations, prefertilisations +prefertilize, prefertilise +prefertilizes, prefertilises +preflavor's, preflavour's +preflavor, preflavour +preflavoring, preflavouring +preflavorings, preflavourings +preflavors, preflavours +prefloration, praefloration +prefoliation, praefoliation +pregalvanize, pregalvanise +pregalvanizes, pregalvanises +prehallux, praehallux +prehumor's, prehumour's +prehumor, prehumour +prehumors, prehumours +preinitialize, preinitialise +preinitialized, preinitialised +preinitializes, preinitialises +preinitializing, preinitialising +prejudgment's, prejudgement's +prejudgment, prejudgement +prejudgments, prejudgements +prelabor's, prelabour's +prelabor, prelabour +prelabors, prelabours +prelabrum, praelabrum +prelatize, prelatise +prelatized, prelatised +prelatizes, prelatises +prelatizing, prelatising +prelect, praelect +prelected, praelected +prelecting, praelecting +prelection's, praelection's +prelection, praelection +prelector, praelector +prelectorship, praelectorship +prelectress, praelectress +prelects, praelects +prelocalization's, prelocalisation's +prelocalization, prelocalisation +prelocalizations, prelocalisations +preludium, praeludium +preludize, preludise +preludizes, preludises +premaxilla, praemaxilla +premial, proemial +premillennialize, premillennialise +premillennialized, premillennialised +premillennializing, premillennialising +premonopolize, premonopolise +premonopolizes, premonopolises +premunire, praemunire +prenarial, praenarial +preneural, praeneural +prenomina, praenomina +prenominal, praenominal +preoffense's, preoffence's +preoffense, preoffence +preoffenses, preoffences +preoperculum, praeoperculum +preorganization's, preorganisation's +preorganization, preorganisation +preorganizations, preorganisations +preorganize, preorganise +preorganizes, preorganises +preoxidize, preoxidise +preoxidized, preoxidised +preoxidizes, preoxidises +preoxidizing, preoxidising +prepaleolithic, prepalaeolithic +prepositor, praepositor +prepositure, praepositure +preposter, praeposter +prepostor's, praepostor's +prepostor, praepostor +prepostors, praepostors +preppy's, preppie's +preppy, preppie +preprogram, preprogramme +prepubis, praepubis +prerealization's, prerealisation's +prerealization, prerealisation +prerealizations, prerealisations +prerealize, prerealise +prerealizes, prerealises +prerecognize, prerecognise +prerecognizes, prerecognises +Presbyterianize's, Presbyterianise's +Presbyterianize, Presbyterianise +Presbyterianized's, Presbyterianised's +Presbyterianized, Presbyterianised +Presbyterianizes, Presbyterianises +Presbyterianizing's, Presbyterianising's +Presbyterianizing, Presbyterianising +prescutum, praescutum +presidium's, praesidium's +presidium, praesidium +prespecialize, prespecialise +prespecializes, prespecialises +presphenoid, praesphenoid +presplendor's, presplendour's +presplendor, presplendour +presplendors, presplendours +pressurization's, pressurisation's +pressurization, pressurisation +pressurizations, pressurisations +pressurize, pressurise +pressurized, pressurised +pressurizer, pressuriser +pressurizers, pressurisers +pressurizes, pressurises +pressurizing, pressurising +prestandardization's, prestandardisation's +prestandardization, prestandardisation +prestandardizations, prestandardisations +prestandardize, prestandardise +prestandardizes, prestandardises +presternal, praesternal +presternum, praesternum +prestomium, praestomium +presympathize, presympathise +presympathizes, presympathises +presystolic, praesystolic +pretaxation, praetaxation +pretense's, pretence's +pretense, pretence +pretenses, pretences +pretensive, pretencive +preterit's, preterite's +preterit, preterite +preterits, preterites +pretexta's, praetexta's +pretexta, praetexta +pretextae, praetextae +pretorial, praetorial +Pretorians, Praetorians +pretorium, praetorium +Pretorius's, Praetorius's +Pretorius, Praetorius +pretorship, praetorship +preutilizable's, preutilisable's +preutilizable, preutilisable +preutilizables, preutilisables +preutilization's, preutilisation's +preutilization, preutilisation +preutilizations, preutilisations +preutilize, preutilise +preutilizes, preutilises +preventable, preventible +previze, previse +prezygapophysis, praezygapophysis +pricey, pricy +primeval, primaeval +primevally, primaevally +prioritization's, prioritisation's +prioritization, prioritisation +prioritizations, prioritisations +prioritize, prioritise +prioritized, prioritised +prioritizer, prioritiser +prioritizers, prioritisers +prioritizes, prioritises +prioritizing, prioritising +prioritizings, prioritisings +priorization, priorisation +priorizations, priorisations +priorize, priorise +priorized, priorised +priorizes, priorises +priorizing, priorising +privatization's, privatisation's +privatization, privatisation +privatizations, privatisations +privatize, privatise +privatized, privatised +privatizer, privatiser +privatizers, privatisers +privatizes, privatises +privatizing, privatising +prizable, prisable +proadvertizing, proadvertising +problemize, problemise +problemizes, problemises +processionize, processionise +processionizes, processionises +Procrusteanize's, Procrusteanise's +Procrusteanize, Procrusteanise +Procrusteanizes, Procrusteanises +proctodea, proctodaea +proctodeal, proctodaeal +proctodeum's, proctodaeum's +proctodeum, proctodaeum +proctodeums, proctodaeums +proctorization's, proctorisation's +proctorization, proctorisation +proctorizations, proctorisations +proctorize, proctorise +proctorized, proctorised +proctorizes, proctorises +proctorizing, proctorising +prodigalize, prodigalise +prodigalized, prodigalised +prodigalizes, prodigalises +prodigalizing, prodigalising +productize, productise +productized, productised +productizer, productiser +productizers, productisers +productizes, productises +productizing, productising +proemium, prooemium +profanize, profanise +profanizes, profanises +profer, profre +professionalization's, professionalisation's +professionalization, professionalisation +professionalizations, professionalisations +professionalize, professionalise +professionalized, professionalised +professionalizes, professionalises +professionalizing, professionalising +professionize, professionise +professionizes, professionises +programmer's, programer's +programmer, programer +programmers, programers +proindustrialization, proindustrialisation +projectization, projectisation +projectizations, projectisations +prokaryote's, procaryote's +prokaryote, procaryote +prokaryotes, procaryotes +prokaryotic, procaryotic +proletarianization's, proletarianisation's +proletarianization, proletarianisation +proletarianizations, proletarianisations +proletarianize, proletarianise +proletarianized, proletarianised +proletarianizes, proletarianises +proletarianizing, proletarianising +proletarize, proletarise +proletarized, proletarised +proletarizing, proletarising +prologize, prologise +prologized, prologised +prologizes, prologises +prologizing, prologising +prologue's, prolog's +prologue, prolog +prologues, prologs +prologuize, prologuise +prologuized, prologuised +prologuizer's, prologuiser's +prologuizer, prologuiser +prologuizers, prologuisers +prologuizes, prologuises +prologuizing, prologuising +prolusionize, prolusionise +prolusionizes, prolusionises +pronominalization, pronominalisation +pronominalize, pronominalise +propagandize, propagandise +propagandized, propagandised +propagandizes, propagandises +propagandizing, propagandising +propellant's, propellent's +propellant, propellent +propellants, propellents +prophetize, prophetise +prophetizes, prophetises +propositionize, propositionise +propositionizes, propositionises +propretor's, propraetor's +propretor, propraetor +propretorial, propraetorial +propretorian, propraetorian +propretors, propraetors +propylitization, propylitisation +propylitizations, propylitisations +propylitize, propylitise +propylitized, propylitised +propylitizes, propylitises +propylitizing, propylitising +proselytization's, proselytisation's +proselytization, proselytisation +proselytizations, proselytisations +proselytize, proselytise +proselytized, proselytised +proselytizer's, proselytiser's +proselytizer, proselytiser +proselytizers, proselytisers +proselytizes, proselytises +proselytizing, proselytising +proseuche, proseuchae +prosocele, prosocoele +prosopopeial, prosopopoeial +prosopopoeia, prosopopeia +prosopopoeias, prosopopeias +prostatorrhea, prostatorrhoea +protectionize, protectionise +protectionizes, protectionises +proteide, proteidae +Protestantize's, Protestantise's +Protestantize, Protestantise +Protestantized's, Protestantised's +Protestantized, Protestantised +Protestantizes, Protestantises +Protestantizing's, Protestantising's +Protestantizing, Protestantising +protester's, protestor's +protester, protestor +protesters, protestors +Prothoenor's, Prothoaenor's +Prothoenor, Prothoaenor +protoarcheology, protoarchaeology +protocoled, protocolled +protocoling, protocolling +protocolization's, protocolisation's +protocolization, protocolisation +protocolizations, protocolisations +protocolize, protocolise +protocolized, protocolised +protocolizes, protocolises +protocolizing, protocolising +proverbialize, proverbialise +proverbialized, proverbialised +proverbializes, proverbialises +proverbializing, proverbialising +proverbize, proverbise +proverbizes, proverbises +provincialization's, provincialisation's +provincialization, provincialisation +provincializations, provincialisations +provincialize, provincialise +provincialized, provincialised +provincializes, provincialises +provincializing, provincialising +Prussianization's, Prussianisation's +prussianization's, prussianisation's +Prussianization, Prussianisation +prussianization, prussianisation +Prussianizations, Prussianisations +Prussianize, Prussianise +prussianize, prussianise +Prussianized, Prussianised +prussianized, prussianised +Prussianizer's, Prussianiser's +prussianizer's, prussianiser's +Prussianizer, Prussianiser +prussianizer, prussianiser +Prussianizers, Prussianisers +Prussianizes, Prussianises +prussianizes, prussianises +Prussianizing, Prussianising +prussianizing, prussianising +psalmodize, psalmodise +psalmodized, psalmodised +psalmodizes, psalmodises +psalmodizing, psalmodising +pseudelephant, pseudoelephant +pseudembryo, pseudoembryo +pseudembryonic, pseudoembryonic +pseudesthesia, pseudaesthesia +pseudhemal, pseudhaemal +pseudoanemia's, pseudoanaemia's +pseudoanemia, pseudoanaemia +pseudoanemias, pseudoanaemias +pseudoanemic, pseudoanaemic +pseudoanemics, pseudoanaemics +pseudocele, pseudocoele +pseudocelom, pseudocoelom +pseudoedema's, pseudooedema's +pseudoedema, pseudooedema +pseudoedemas, pseudooedemas +pseudographize, pseudographise +pseudographizes, pseudographises +pseudolunule, pseudolunulae +psychoanalyze, psychoanalyse +psychoanalyzed, psychoanalysed +psychoanalyzer's, psychoanalyser's +psychoanalyzer, psychoanalyser +psychoanalyzers, psychoanalysers +psychoanalyzes, psychoanalyses +psychoanalyzing, psychoanalysing +psychologization, psychologisation +psychologize, psychologise +psychologized, psychologised +psychologizes, psychologises +psychologizing, psychologising +Ptolemean's, Ptolemaean's +Ptolemean, Ptolemaean +ptyalize, ptyalise +ptyalized, ptyalised +ptyalizes, ptyalises +ptyalizing, ptyalising +publice, publicae +publicize, publicise +publicized, publicised +publicizes, publicises +publicizing, publicising +puebloization's, puebloisation's +puebloization, puebloisation +puebloizations, puebloisations +puebloize, puebloise +puebloizes, puebloises +puers, pures +pulicide, pulicidae +Pullmanize's, Pullmanise's +Pullmanize, Pullmanise +Pullmanizes, Pullmanises +pulpitize, pulpitise +pulpitizes, pulpitises +pulverizable's, pulverisable's +pulverizable, pulverisable +pulverizabler, pulverisabler +pulverizables, pulverisables +pulverizablest, pulverisablest +pulverization's, pulverisation's +pulverization, pulverisation +pulverizations, pulverisations +pulverize, pulverise +pulverized, pulverised +pulverizer's, pulveriser's +pulverizer, pulveriser +pulverizers, pulverisers +pulverizes, pulverises +pulverizing, pulverising +pulvilized, pulvilised +pummeled, pummelled +pummeler, pummeller +pummeling, pummelling +pumpkin's, punkin's +pumpkin, punkin +pumpkins, punkins +pupilize, pupilise +pupilizes, pupilises +puppetize, puppetise +puppetizes, puppetises +Puritanize's, Puritanise's +Puritanize, Puritanise +puritanize, puritanise +puritanized, puritanised +Puritanizer's, Puritaniser's +Puritanizer, Puritaniser +Puritanizers, Puritanisers +Puritanizes, Puritanises +puritanizes, puritanises +puritanizing, puritanising +pyemia's, pyaemia's +pyemia, pyaemia +pyemias, pyaemias +pyemic, pyaemic +pygmean, pygmaean +pygmies, pigmies +pygmy's, pigmy's +pygmy, pigmy +pyorrhea's, pyorrhoea's +pyorrhea, pyorrhoea +pyorrheal, pyorrhoeal +pyorrhealer, pyorrhoealer +pyorrhealest, pyorrhoealest +pyorrheas, pyorrhoeas +pyorrheic, pyorrhoeic +pyramidize, pyramidise +pyramidizes, pyramidises +Pyrenean, Pyrenaean +Pyreneus's, Pyrenaeus's +Pyreneus, Pyrenaeus +pyridinize, pyridinise +pyridinizes, pyridinises +pyritization's, pyritisation's +pyritization, pyritisation +pyritizations, pyritisations +pyritize, pyritise +pyritized, pyritised +pyritizes, pyritises +pyritizing, pyritising +pyrolyzable, pyrolysable +pyrolyzate's, pyrolysate's +pyrolyzate, pyrolysate +pyrolyzates, pyrolysates +pyrolyze's, pyrolyse's +pyrolyze, pyrolyse +pyrolyzed, pyrolysed +pyrolyzer, pyrolyser +pyrolyzes, pyrolyses +pyrolyzing, pyrolysing +Pythagoreanize's, Pythagoreanise's +Pythagoreanize, Pythagoreanise +Pythagoreanizes, Pythagoreanises +pythonine, pythoninae +pythonize, pythonise +pythonizes, pythonises +quadriphonic, quadrophonic +quadriphonics, quadrophonics +quaestor's, questor's +quaestor, questor +quaestors, questors +quahog's, quahaug's +quahog, quahaug +quahogs, quahaugs +Quakerization's, Quakerisation's +Quakerization, Quakerisation +Quakerizations, Quakerisations +Quakerize's, Quakerise's +Quakerize, Quakerise +Quakerizes, Quakerises +quantization's, quantisation's +quantization, quantisation +quantizations, quantisations +quantize, quantise +quantized, quantised +quantizer's, quantiser's +quantizer, quantiser +quantizers, quantisers +quantizes, quantises +quantizing, quantising +quarreled, quarrelled +quarreler's, quarreller's +quarreler, quarreller +quarrelers, quarrellers +quarreling, quarrelling +quarrelous, quarrellous +quarterization's, quarterisation's +quarterization, quarterisation +quarterizations, quarterisations +quartet's, quartette's +quartet, quartette +quartets, quartettes +quaters, quatres +que, quae +querele, querelae +questionaries, quaestionaries +questionary, quaestionary +questorial, quaestorial +questorship's, quaestorship's +questorship, quaestorship +queuing, queueing +quininize, quininise +quininizes, quininises +quintessentialize, quintessentialise +quintessentialized, quintessentialised +quintessentializes, quintessentialises +quintessentializing, quintessentialising +quintet's, quintette's +quintet, quintette +quintets, quintettes +Quran's, Qur'an's +Quran, Qur'an +Quranic, Qur'anic +Qurans, Qur'ans +raccoon's, racoon's +raccoon, racoon +raccoons, racoons +racemization's, racemisation's +racemization, racemisation +racemizations, racemisations +racemize, racemise +racemized, racemised +racemizes, racemises +racemizing, racemising +racialization's, racialisation's +racialization, racialisation +racializations, racialisations +racialize, racialise +racializes, racialises +Radborne's, Radbourne's +Radborne, Radbourne +radialization's, radialisation's +radialization, radialisation +radializations, radialisations +radialize, radialise +radialized, radialised +radializes, radialises +radializing, radialising +radicalization's, radicalisation's +radicalization, radicalisation +radicalizations, radicalisations +radicalize, radicalise +radicalized, radicalised +radicalizes, radicalises +radicalizing, radicalising +radiopasteurization, radiopasteurisation +radiosensitize, radiosensitise +radiosensitized, radiosensitised +radiosensitizes, radiosensitises +radiosensitizing, radiosensitising +radiosterilization, radiosterilisation +radiosterilize, radiosterilise +radiosterilized, radiosterilised +radiosterilizes, radiosterilises +radiosterilizing, radiosterilising +radiumization's, radiumisation's +radiumization, radiumisation +radiumizations, radiumisations +radiumize, radiumise +radiumizes, radiumises +rajah's, raja's +rajah, raja +rajahs, rajas +Rame's, Ramae's +Rame, Ramae +ramekin's, ramequin's +ramekin, ramequin +ramekins, ramequins +rampier, rampire +rancor's, rancour's +rancor, rancour +rancors, rancours +randomization's, randomisation's +randomization, randomisation +randomizations, randomisations +randomize, randomise +randomized, randomised +randomizer's, randomiser's +randomizer, randomiser +randomizers, randomisers +randomizes, randomises +randomizing, randomising +ranee's, rani's +ranee, rani +ranees, ranis +raphe, raphae +raphide, raphidae +rapturize, rapturise +rapturized, rapturised +rapturizes, rapturises +rapturizing, rapturising +rascalize, rascalise +rascalizes, rascalises +rationalizable's, rationalisable's +rationalizable, rationalisable +rationalizables, rationalisables +rationalization's, rationalisation's +rationalization, rationalisation +rationalizations, rationalisations +rationalize, rationalise +rationalized, rationalised +rationalizer's, rationaliser's +rationalizer, rationaliser +rationalizers, rationalisers +rationalizes, rationalises +rationalizing, rationalising +ratite, ratitae +ratline's, ratlin's +ratlines, ratlins +raveler's, raveller's +raveler, raveller +ravelers, ravellers +reacclimatization's, reacclimatisation's +reacclimatization, reacclimatisation +reacclimatizations, reacclimatisations +reacclimatize, reacclimatise +reacclimatized, reacclimatised +reacclimatizes, reacclimatises +reacclimatizing, reacclimatising +reactualize, reactualise +reactualizes, reactualises +readvertize, readvertise +readvertized, readvertised +readvertizing, readvertising +realisticize, realisticise +realisticizes, realisticises +realizabilities, realisabilities +realizability's, realisability's +realizability, realisability +realizable, realisable +realizableness's, realisableness's +realizableness, realisableness +realizabler, realisabler +realizables, realisables +realizablest, realisablest +realizablies, realisablies +realizably, realisably +realization's, realisation's +realization, realisation +realizations, realisations +realize, realise +realized, realised +realizer's, realiser's +realizer, realiser +realizers, realisers +realizes, realises +realizing's, realising's +realizing, realising +realizingly, realisingly +realizings, realisings +reanalyze, reanalyse +reanalyzed, reanalysed +reanalyzer, reanalyser +reanalyzers, reanalysers +reanalyzes, reanalyses +reanalyzing, reanalysing +reanimalize, reanimalise +reanimalizes, reanimalises +reapologize, reapologise +reapologizes, reapologises +reauthorization's, reauthorisation's +reauthorization, reauthorisation +reauthorizations, reauthorisations +reauthorize, reauthorise +reauthorizes, reauthorises +rebaptization's, rebaptisation's +rebaptization, rebaptisation +rebaptizations, rebaptisations +rebaptize, rebaptise +rebaptized, rebaptised +rebaptizes, rebaptises +rebaptizing, rebaptising +rebourbonize, rebourbonise +rebourbonizes, rebourbonises +rebrutalize, rebrutalise +rebrutalizes, rebrutalises +recanalization, recanalisation +recapitalization's, recapitalisation's +recapitalization, recapitalisation +recapitalizations, recapitalisations +recapitalize, recapitalise +recapitalized, recapitalised +recapitalizes, recapitalises +recapitalizing, recapitalising +recarbonization's, recarbonisation's +recarbonization, recarbonisation +recarbonizations, recarbonisations +recarbonize, recarbonise +recarbonizer, recarboniser +recarbonizers, recarbonisers +recarbonizes, recarbonises +recategorized, recategorised +recausticize, recausticise +recausticizes, recausticises +recentralization's, recentralisation's +recentralization, recentralisation +recentralizations, recentralisations +recentralize, recentralise +recentralizes, recentralises +recercele, recercelae +reciprocalize, reciprocalise +reciprocalizes, reciprocalises +recivilization's, recivilisation's +recivilization, recivilisation +recivilizations, recivilisations +recivilize, recivilise +recivilizes, recivilises +recognizability, recognisability +recognizable, recognisable +recognizabler, recognisabler +recognizablest, recognisablest +recognizably, recognisably +recognizance's, recognisance's +recognizance, recognisance +recognizances, recognisances +recognize, recognise +recognized, recognised +recognizedlies, recognisedlies +recognizedly, recognisedly +recognizer's, recogniser's +recognizer, recogniser +recognizers, recognisers +recognizes, recognises +recognizing, recognising +recognizinglies, recognisinglies +recognizingly, recognisingly +recolonization's, recolonisation's +recolonization, recolonisation +recolonizations, recolonisations +recolonize, recolonise +recolonized, recolonised +recolonizes, recolonises +recolonizing, recolonising +recolor's, recolour's +recolor, recolour +recoloration's, recolouration's +recoloration, recolouration +recolorations, recolourations +recolored, recoloured +recoloring, recolouring +recolors, recolours +reconceptualization, reconceptualisation +reconceptualizing, reconceptualising +reconnoiter's, reconnoitre's +reconnoiter, reconnoitre +reconnoitered, reconnoitred +reconnoiterer's, reconnoitrer's +reconnoiterer, reconnoitrer +reconnoiterers, reconnoitrers +reconnoitering, reconnoitring +reconnoiters, reconnoitres +recriticize, recriticise +recriticizes, recriticises +recrystallization's, recrystallisation's +recrystallization, recrystallisation +recrystallizations, recrystallisations +recrystallize, recrystallise +recrystallized, recrystallised +recrystallizes, recrystallises +recrystallizing, recrystallising +redialed, redialled +redialer, redialler +redialing, redialling +redisseize, redisseise +redisseizin, redisseisin +reedified, reaedified +reedifies, reaedifies +reedify, reaedify +reedifying, reaedifying +reemphasize, reemphasise +reemphasized, reemphasised +reemphasizer, reemphasiser +reemphasizers, reemphasisers +reemphasizes, reemphasises +reemphasizing, reemphasising +reentrance's, reaentrance's +reentrance, reaentrance +reexportation's, reaexportation's +reexportation, reaexportation +reexporter's, reaexporter's +reexporter, reaexporter +refavor's, refavour's +refavor, refavour +refavors, refavours +refertilization's, refertilisation's +refertilization, refertilisation +refertilizations, refertilisations +refertilize, refertilise +refertilizes, refertilises +reflectorize's, reflectorise's +reflectorize, reflectorise +reflectorized, reflectorised +reflectorizes, reflectorises +reflectorizing, reflectorising +reforestization's, reforestisation's +reforestization, reforestisation +reforestize, reforestise +reforestizes, reforestises +reformades, reformadoes +refueled, refuelled +refueling, refuelling +regalize, regalise +regalizes, regalises +regalvanization's, regalvanisation's +regalvanization, regalvanisation +regalvanizations, regalvanisations +regalvanize, regalvanise +regalvanizes, regalvanises +reges, regoes +regionalization's, regionalisation's +regionalization, regionalisation +regionalizations, regionalisations +regionalize, regionalise +regionalized, regionalised +regionalizes, regionalises +regionalizing, regionalising +regularization's, regularisation's +regularization, regularisation +regularizations, regularisations +regularize, regularise +regularized, regularised +regularizer's, regulariser's +regularizer, regulariser +regularizers, regularisers +regularizes, regularises +regularizing, regularising +regulize, regulise +regulized, regulised +regulizes, regulises +regulizing, regulising +reharmonization, reharmonisation +reharmonize, reharmonise +reharmonizes, reharmonises +Rehm's, Roehm's +Rehm, Roehm +rehonor's, rehonour's +rehonor, rehonour +rehonors, rehonours +rehumanization's, rehumanisation's +rehumanization, rehumanisation +rehumanize, rehumanise +rehumanizes, rehumanises +rehybridize, rehybridise +rehybridizes, rehybridises +reindustrialization, reindustrialisation +reindustrializations, reindustrialisations +reindustrialize, reindustrialise +reindustrialized, reindustrialised +reindustrializes, reindustrialises +reindustrializing, reindustrialising +reinforce, reenforce +reinforceable, reenforceable +reinforced, reenforced +reinforces, reenforces +reinforcing, reenforcing +reinitialization, reinitialisation +reinitialize, reinitialise +reinitialized, reinitialised +reinitializes, reinitialises +reinitializing, reinitialising +reitemize, reitemise +reitemizes, reitemises +rejuvenize, rejuvenise +rejuvenized, rejuvenised +rejuvenizes, rejuvenises +rejuvenizing, rejuvenising +relabeled, relabelled +relabeler, relabeller +relabelers, relabellers +relabeling, relabelling +relativization's, relativisation's +relativization, relativisation +relativizations, relativisations +relativize, relativise +relativized, relativised +relativizes, relativises +relativizing, relativising +religionize, religionise +religionized, religionised +religionizes, religionises +religionizing, religionising +remagnetization's, remagnetisation's +remagnetization, remagnetisation +remagnetizations, remagnetisations +remagnetize, remagnetise +remagnetizes, remagnetises +rematerialize, rematerialise +rematerialized, rematerialised +rematerializes, rematerialises +rememorize, rememorise +rememorizes, rememorises +remilitarization's, remilitarisation's +remilitarization, remilitarisation +remilitarizations, remilitarisations +remilitarize, remilitarise +remilitarized, remilitarised +remilitarizes, remilitarises +remilitarizing, remilitarising +remineralization's, remineralisation's +remineralization, remineralisation +remineralizations, remineralisations +remineralize, remineralise +remineralized, remineralised +remineralizes, remineralises +remineralizing, remineralising +remobilization's, remobilisation's +remobilization, remobilisation +remobilizations, remobilisations +remobilize, remobilise +remobilizes, remobilises +remodeled, remodelled +remodeling, remodelling +remold, remould +remolded, remoulded +remolding, remoulding +remolds, remoulds +remonetization's, remonetisation's +remonetization, remonetisation +remonetizations, remonetisations +remonetize, remonetise +remonetized, remonetised +remonetizes, remonetises +remonetizing, remonetising +remoralization, remoralisation +remoralizations, remoralisations +remoralize, remoralise +remoralized, remoralised +remoralizes, remoralises +remoralizing, remoralising +renationalize, renationalise +renationalized, renationalised +renationalizes, renationalises +renationalizing, renationalising +rencounter, rencontre +Renferd's, Renfred's +Renferd, Renfred +renormalization's, renormalisation's +renormalization, renormalisation +renormalizations, renormalisations +renormalize, renormalise +renormalized, renormalised +renormalizes, renormalises +renormalizing, renormalising +reobjectivization's, reobjectivisation's +reobjectivization, reobjectivisation +reobjectivizations, reobjectivisations +reobjectivize, reobjectivise +reobjectivizes, reobjectivises +reorganization's, reorganisation's +reorganization, reorganisation +reorganizational, reorganisational +reorganizationist's, reorganisationist's +reorganizationist, reorganisationist +reorganizationists, reorganisationists +reorganizations, reorganisations +reorganize, reorganise +reorganized, reorganised +reorganizer's, reorganiser's +reorganizer, reorganiser +reorganizers, reorganisers +reorganizes, reorganises +reorganizing, reorganising +reoxidize, reoxidise +reoxidized, reoxidised +reoxidizes, reoxidises +reoxidizing, reoxidising +reoxygenize, reoxygenise +reoxygenizes, reoxygenises +repaganization's, repaganisation's +repaganization, repaganisation +repaganizations, repaganisations +repaganize, repaganise +repaganizer, repaganiser +repaganizers, repaganisers +repaganizes, repaganises +repatronize, repatronise +repatronizes, repatronises +repellent's, repellant's +repellent, repellant +repellents, repellants +repersonalize, repersonalise +rephosphorization's, rephosphorisation's +rephosphorization, rephosphorisation +rephosphorizations, rephosphorisations +rephosphorize, rephosphorise +rephosphorizes, rephosphorises +repolymerization's, repolymerisation's +repolymerization, repolymerisation +repolymerizations, repolymerisations +repolymerize, repolymerise +repolymerizes, repolymerises +repopularize, repopularise +reprivatization's, reprivatisation's +reprivatization, reprivatisation +reprivatizations, reprivatisations +reprivatize, reprivatise +reprivatized, reprivatised +reprivatizes, reprivatises +reprivatizing, reprivatising +reprized, reprised +reprogram, reprogramme +reprograms, reprogrammes +republicanization's, republicanisation's +republicanization, republicanisation +republicanizations, republicanisations +republicanize, republicanise +republicanized, republicanised +republicanizer's, republicaniser's +republicanizer, republicaniser +republicanizers, republicanisers +republicanizes, republicanises +republicanizing, republicanising +repulverize, repulverise +repulverizes, repulverises +reroyalize, reroyalise +reroyalizes, reroyalises +reseize, reseise +reseizer, reseiser +resensitization's, resensitisation's +resensitization, resensitisation +resensitizations, resensitisations +resensitize, resensitise +resensitizes, resensitises +resepulcher, resepulchre +resepulchers, resepulchres +reshes, reshoes +resinize, resinise +resinized, resinised +resinizes, resinises +resinizing, resinising +resolemnize, resolemnise +resolemnizes, resolemnises +respectabilize, respectabilise +respectabilized, respectabilised +respectabilizes, respectabilises +respectabilizing, respectabilising +restandardization's, restandardisation's +restandardization, restandardisation +restandardizations, restandardisations +restandardize, restandardise +restandardizes, restandardises +restaurateur's, restauranteur's +restaurateur, restauranteur +restaurateurs, restauranteurs +resterilize, resterilise +resterilizes, resterilises +restigmatize, restigmatise +restigmatizes, restigmatises +resurrectionize, resurrectionise +resurrectionized, resurrectionised +resurrectionizes, resurrectionises +resurrectionizing, resurrectionising +resymbolization's, resymbolisation's +resymbolization, resymbolisation +resymbolizations, resymbolisations +resymbolize, resymbolise +resymbolizes, resymbolises +resynchronization's, resynchronisation's +resynchronization, resynchronisation +resynchronizations, resynchronisations +resynchronize, resynchronise +resynchronized, resynchronised +resynchronizes, resynchronises +resynchronizing, resynchronising +resynthesize, resynthesise +resynthesizes, resynthesises +retinize, retinise +retinizes, retinises +retinule, retinulae +retranquilize, retranquilise +retranquilizes, retranquilises +retrocecal, retrocaecal +reutilization's, reutilisation's +reutilization, reutilisation +reutilize, reutilise +reutilized, reutilised +reutilizes, reutilises +reutilizing, reutilising +revalorization's, revalorisation's +revalorization, revalorisation +revalorizations, revalorisations +revalorize, revalorise +revalorized, revalorised +revalorizes, revalorises +revalorizing, revalorising +revaporization's, revapourisation's +revaporization, revapourisation +revaporizations, revapourisations +revaporize, revaporise +revaporizes, revaporises +revelationize, revelationise +revelationizes, revelationises +reveled, revelled +reveler's, reveller's +reveler, reveller +revelers, revellers +reveling, revelling +revelings, revellings +reverie's, revery's +reverie, revery +revigor, revigour +revisualization's, revisualisation's +revisualization, revisualisation +revisualizations, revisualisations +revisualize, revisualise +revisualizes, revisualises +revitalization's, revitalisation's +revitalization, revitalisation +revitalizations, revitalisations +revitalize, revitalise +revitalized, revitalised +revitalizer, revitaliser +revitalizers, revitalisers +revitalizes, revitalises +revitalizing, revitalising +revivalize, revivalise +revivalizes, revivalises +revocable, revokable +revolatilize, revolatilise +revolatilizes, revolatilises +revolutionize, revolutionise +revolutionized, revolutionised +revolutionizement's, revolutionisement's +revolutionizement, revolutionisement +revolutionizements, revolutionisements +revolutionizer's, revolutioniser's +revolutionizer, revolutioniser +revolutionizers, revolutionisers +revolutionizes, revolutionises +revolutionizing, revolutionising +Rexford's, Rexfourd's +Rexford, Rexfourd +rhaphe, rhaphae +rhapsodize, rhapsodise +rhapsodized, rhapsodised +rhapsodizes, rhapsodises +rhapsodizing, rhapsodising +rheadine, rhoeadine +rhebosis, rhaebosis +Rhetian's, Rhaetian's +Rhetian, Rhaetian +Rhetic, Rhaetic +rhetorize, rhetorise +rhetorized, rhetorised +rhetorizes, rhetorises +rhetorizing, rhetorising +rheumatize, rheumatise +rheumatized, rheumatised +rheumatizes, rheumatises +rheumatizing, rheumatising +rhinocele, rhinocoele +rhinocelian, rhinocoelian +rhinorrhea, rhinorrhoea +rhinorrheal, rhinorrhoeal +rhodanize, rhodanise +rhodanized, rhodanised +rhodanizes, rhodanises +rhodanizing, rhodanising +rhotacize, rhotacise +rhotacized, rhotacised +rhotacizes, rhotacises +rhotacizing, rhotacising +rhythmicize, rhythmicise +rhythmicizes, rhythmicises +rhythmizable's, rhythmisable's +rhythmizable, rhythmisable +rhythmizables, rhythmisables +rhythmization's, rhythmisation's +rhythmization, rhythmisation +rhythmizations, rhythmisations +rhythmize, rhythmise +rhythmized, rhythmised +rhythmizes, rhythmises +rhythmizing, rhythmising +rickshaw's, ricksha's +rickshaw, ricksha +rickshaws, rickshas +ridiculize, ridiculise +ridiculizes, ridiculises +rigidize, rigidise +rigidized, rigidised +rigidizes, rigidises +rigidizing, rigidising +rigmarole's, rigamarole's +rigmarole, rigamarole +rigmaroles, rigamaroles +rigor's, rigour's +rigor, rigour +rigorism's, rigourism's +rigorism, rigourism +rigorist's, rigourist's +rigorist, rigourist +rigoristic, rigouristic +rigors, rigours +riotize, riotise +riotizes, riotises +riposte's, ripost's +riposte, ripost +ripostes, riposts +ritornelle, ritournelle +ritornelles, ritournelles +ritualization's, ritualisation's +ritualization, ritualisation +ritualizations, ritualisations +ritualize, ritualise +ritualized, ritualised +ritualizes, ritualises +ritualizing, ritualising +rivaled, rivalled +rivaless's, rivalless's +rivaless, rivalless +rivalesses, rivallesses +rivaling, rivalling +rivalize, rivalise +rivalized, rivalised +rivalizes, rivalises +rivalizing, rivalising +robotization's, robotisation's +robotization, robotisation +robotizations, robotisations +robotize, robotise +robotized, robotised +robotizes, robotises +robotizing, robotising +roed, rooed +Roentgen, Rˆntgen +roentgenize, roentgenise +roer, rore +Romania's, Roumania's +Romania, Roumania +Romanias, Roumanias +Romanization's, Romanisation's +Romanization, Romanisation +Romanizations, Romanisations +Romanize, Romanise +romanize, romanise +Romanized, Romanised +romanized, romanised +Romanizer's, Romaniser's +Romanizer, Romaniser +Romanizers, Romanisers +Romanizes, Romanises +romanizes, romanises +Romanizing, Romanising +romanizing, romanising +romanticization's, romanticisation's +romanticization, romanticisation +romanticizations, romanticisations +romanticize, romanticise +romanticized, romanticised +romanticizes, romanticises +romanticizing, romanticising +ropy, ropey +routinization's, routinisation's +routinization, routinisation +routinizations, routinisations +routinize, routinise +routinized, routinised +routinizes, routinises +routinizing, routinising +roweled, rowelled +roweling, rowelling +royalization's, royalisation's +royalization, royalisation +royalizations, royalisations +royalize, royalise +royalized, royalised +royalizes, royalises +royalizing, royalising +rubberization, rubberisation +rubberize, rubberise +rubberized, rubberised +rubberizes, rubberises +rubberizing, rubberising +ruble's, rouble's +ruble, rouble +rubles, roubles +rubricize, rubricise +rubricizes, rubricises +ruffianize, ruffianise +ruffianizes, ruffianises +ruggedization's, ruggedisation's +ruggedization, ruggedisation +ruggedizations, ruggedisations +ruggedize, ruggedise +ruggedized, ruggedised +ruggedizes, ruggedises +ruggedizing, ruggedising +rumor's, rumour's +rumor, rumour +rumored, rumoured +rumorer's, rumourer's +rumorer, rumourer +rumorers, rumourers +rumoring, rumouring +rumormonger's, rumourmonger's +rumormonger, rumourmonger +rumormongers, rumourmongers +rumors, rumours +ruralization's, ruralisation's +ruralization, ruralisation +ruralizations, ruralisations +ruralize, ruralise +ruralized, ruralised +ruralizes, ruralises +ruralizing, ruralising +Russianization's, Russianisation's +Russianization, Russianisation +russianization, russianisation +Russianizations, Russianisations +Russianize, Russianise +russianize, russianise +Russianized, Russianised +Russianizes, Russianises +Russianizing, Russianising +rusticize, rusticise +rusticized, rusticised +rusticizes, rusticises +rusticizing, rusticising +Sabbathize's, Sabbathise's +Sabbathize, Sabbathise +Sabbathizes, Sabbathises +sabbatize, sabbatise +sabbatized, sabbatised +sabbatizes, sabbatises +sabbatizing, sabbatising +Sabean, Sabaean +Sabeans, Sabaeans +saber's, sabre's +saber, sabre +saberbill, sabrebill +sabered, sabred +sabering, sabring +saberlike's, sabrelike's +saberlike, sabrelike +saberlikes, sabrelikes +sabers, sabres +sabertooth, sabretooth +saccharization, saccharisation +saccharizations, saccharisations +saccharize, saccharise +saccharized, saccharised +saccharizes, saccharises +saccharizing, saccharising +sacerdotalize, sacerdotalise +sacerdotalized, sacerdotalised +sacerdotalizes, sacerdotalises +sacerdotalizing, sacerdotalising +sacralization's, sacralisation's +sacralization, sacralisation +sacralizations, sacralisations +sacralize, sacralise +sacralized, sacralised +sacralizes, sacralises +sacralizing, sacralising +sacramentize, sacramentise +sacramentizes, sacramentises +Safier's, Safire's +Safier, Safire +sailorizing's, sailorising's +sailorizing, sailorising +sailorizings, sailorisings +sake's, saki's +sake, saki +sakes, sakis +salable, saleable +salabler, saleabler +salablest, saleablest +salinization, salinisation +salinize, salinise +salinizes, salinises +saltiers, saltires +saltierwise, saltirewise +saltpeter's, saltpetre's +saltpeter, saltpetre +saltpeters, saltpetres +sanctuarize, sanctuarise +sanctuarized, sanctuarised +sanctuarizes, sanctuarises +sanctuarizing, sanctuarising +sandaled, sandalled +sandaling, sandalling +Sanferd's, Sanfred's +Sanferd, Sanfred +Sanforize, Sanforise +Sanforizes, Sanforises +Sanforizing, Sanforising +sanitization's, sanitisation's +sanitization, sanitisation +sanitizations, sanitisations +sanitize, sanitise +sanitized, sanitised +sanitizer's, sanitiser's +sanitizer, sanitiser +sanitizers, sanitisers +sanitizes, sanitises +sanitizing, sanitising +Sanskritize's, Sanskritise's +Sanskritize, Sanskritise +sapientize, sapientise +sapientizes, sapientises +sapor, sapour +sapors, sapours +sapremia's, sapraemia's +sapremia, sapraemia +sapremias, sapraemias +sapremic, sapraemic +sarcine, sarcinae +sari's, saree's +sari, saree +saris, sarees +Sassanide, Sassanidae +satanize, satanise +satanizes, satanises +satellitize, satellitise +satellitized, satellitised +satellitizes, satellitises +satellitizing, satellitising +satinize, satinise +satinizes, satinises +satirizable's, satirisable's +satirizable, satirisable +satirizables, satirisables +satirization, satirisation +satirize, satirise +satirized, satirised +satirizer's, satiriser's +satirizer, satiriser +satirizers, satirisers +satirizes, satirises +satirizing, satirising +sative, sativae +savable, saveable +savagize, savagise +savagizes, savagises +savanna's, savannah's +savanna, savannah +savannas, savannahes +savior's, saviour's +savior, saviour +savioress, saviouress +saviorhood's, saviourhood's +saviorhood, saviourhood +saviorhoods, saviourhoods +saviors, saviours +saviorship's, saviourship's +saviorship, saviourship +saviorships, saviourships +savor's, savour's +savor, savour +savored, savoured +savorer's, savourer's +savorer, savourer +savorers, savourers +savorier, savourier +savories, savouries +savoriest, savouriest +savorilies, savourilies +savorily, savourily +savoriness's, savouriness's +savoriness, savouriness +savorinesses, savourinesses +savoring, savouring +savoringlier, savouringlier +savoringlies, savouringlies +savoringliest, savouringliest +savoringly, savouringly +savorless, savourless +savorlesser, savourlesser +savorlesses, savourlesses +savorlessest, savourlessest +savorly, savourly +savorous, savourous +savorouser, savourouser +savorousest, savourousest +savors, savours +savory's, savoury's +savory, savoury +Saxonization's, Saxonisation's +Saxonization, Saxonisation +Saxonizations, Saxonisations +Saxonize's, Saxonise's +Saxonize, Saxonise +Saxonized's, Saxonised's +Saxonized, Saxonised +Saxonizes, Saxonises +Saxonizing's, Saxonising's +Saxonizing, Saxonising +scalawag's, scallywag's +scalawag, scallywag +scalawags, scallywags +scallop's, scollop's +scallop, scollop +scalloped, scolloped +scalloping, scolloping +scallops, scollops +scandaled, scandalled +scandaling, scandalling +scandalization's, scandalisation's +scandalization, scandalisation +scandalizations, scandalisations +scandalize, scandalise +scandalized, scandalised +scandalizer's, scandaliser's +scandalizer, scandaliser +scandalizers, scandalisers +scandalizes, scandalises +scandalizing, scandalising +scaped, scapaed +scary, scarey +scena, scaena +scenarioization's, scenarioisation's +scenarioization, scenarioisation +scenarioizations, scenarioisations +scenarioize, scenarioise +scenarioizes, scenarioises +scenarization's, scenarisation's +scenarization, scenarisation +scenarizations, scenarisations +scenarize, scenarise +scenarized, scenarised +scenarizes, scenarises +scenarizing, scenarising +scepter's, sceptre's +scepter, sceptre +scepterdom, sceptredom +sceptered, sceptred +sceptering, sceptring +scepterless, sceptreless +scepterlesses, sceptrelesses +scepters, sceptres +Scevor's, Scevour's +Scevor, Scevour +schedulize, schedulise +schedulizes, schedulises +schemata, schemas +schematization's, schematisation's +schematization, schematisation +schematizations, schematisations +schematize, schematise +schematized, schematised +schematizer, schematiser +schematizers, schematisers +schematizes, schematises +schematizing, schematising +schillerization, schillerisation +schillerizations, schillerisations +schillerize, schillerise +schillerized, schillerised +schillerizes, schillerises +schillerizing, schillerising +schismatize, schismatise +schismatized, schismatised +schismatizes, schismatises +schismatizing, schismatising +schistocelia, schistocoelia +schlemiel's, shlemiel's +schlemiel, shlemiel +schlemiels, shlemiels +schlepped, shlepped +schlepping, shlepping +schmaltzy, schmalzy +schmalz's, shmaltz's +schmalz, shmaltz +schmalzes, shmaltzes +schmo's, schmoe's +schmo, schmoe +schnapps's, schnaps's +schnapps, schnaps +schtick's, shtik's +scientize, scientise +scientized, scientised +scientizes, scientises +scientizing, scientising +sclere, sclerae +sclerotization's, sclerotisation's +sclerotization, sclerotisation +sclerotize, sclerotise +sclerotized, sclerotised +sclerotizes, sclerotises +sclerotizing, sclerotising +scorse, scourse +scorsed, scoursed +scorses, scourses +scorsing, scoursing +Scotticize's, Scotticise's +Scotticize, Scotticise +Scotticized's, Scotticised's +Scotticized, Scotticised +Scotticizes, Scotticises +Scotticizing's, Scotticising's +Scotticizing, Scotticising +scripturalize, scripturalise +scripturalizes, scripturalises +scrod's, schrod's +scrod, schrod +scrods, schrods +scrunchy's, scrunchie's +scrunchy, scrunchie +scrutinization's, scrutinisation's +scrutinization, scrutinisation +scrutinizations, scrutinisations +scrutinize, scrutinise +scrutinized, scrutinised +scrutinizer's, scrutiniser's +scrutinizer, scrutiniser +scrutinizers, scrutinisers +scrutinizes, scrutinises +scrutinizing, scrutinising +scrutinizinglies, scrutinisinglies +scrutinizingly, scrutinisingly +se, sae +se, soe +seborrhea's, seborrhoea's +seborrhea, seborrhoea +seborrheas, seborrhoeas +seborrheic, seborrhoeic +sectarianization, sectarianisation +sectarianize, sectarianise +sectarianized, sectarianised +sectarianizes, sectarianises +sectarianizing, sectarianising +sectionalization's, sectionalisation's +sectionalization, sectionalisation +sectionalizations, sectionalisations +sectionalize, sectionalise +sectionalized, sectionalised +sectionalizes, sectionalises +sectionalizing, sectionalising +sectionization, sectionisation +sectionizations, sectionisations +sectionize, sectionise +sectionized, sectionised +sectionizes, sectionises +sectionizing, sectionising +sectorization, sectorisation +sectorizations, sectorisations +sectorize, sectorise +sectorized, sectorised +sectorizes, sectorises +sectorizing, sectorising +secularization's, secularisation's +secularization, secularisation +secularizations, secularisations +secularize, secularise +secularized, secularised +secularizer's, seculariser's +secularizer, seculariser +secularizers, secularisers +secularizes, secularises +secularizing, secularising +seculum, saeculum +seculums, saeculums +securitization, securitisation +securitizations, securitisations +securitize, securitise +securitized, securitised +securitizes, securitises +securitizing, securitising +Seed's, Saeed's +Seed, Saeed +seizable, seisable +seizer's, seiser's +seizer, seiser +seizers, seisers +seizin's, seisin's +seizin, seisin +seizings, seisings +seizins, seisins +selle, sellae +selvage's, selvedge's +selvage, selvedge +selvages, selvedges +Semenov's, Semaenov's +Semenov, Semaenov +semianesthetic, semianaesthetic +semicarbonize, semicarbonise +semicarbonizes, semicarbonises +semicivilization's, semicivilisation's +semicivilization, semicivilisation +semicivilizations, semicivilisations +semicivilized's, semicivilised's +semicivilized, semicivilised +semicivilizeds, semiciviliseds +semifossilized's, semifossilised's +semifossilized, semifossilised +semifossilizeds, semifossiliseds +semihonor's, semihonour's +semihonor, semihonour +semihonors, semihonours +semihumanized's, semihumanised's +semihumanized, semihumanised +semihumanizeds, semihumaniseds +semimercerized's, semimercerised's +semimercerized, semimercerised +semimercerizeds, semimerceriseds +semimineralized's, semimineralised's +semimineralized, semimineralised +semimineralizeds, semimineraliseds +seminarize, seminarise +seminarizes, seminarises +seminationalization's, seminationalisation's +seminationalization, seminationalisation +seminationalizations, seminationalisations +semiorganized's, semiorganised's +semiorganized, semiorganised +semiorganizeds, semiorganiseds +semioxidized's, semioxidised's +semioxidized, semioxidised +semioxidizeds, semioxidiseds +semioxygenized's, semioxygenised's +semioxygenized, semioxygenised +semioxygenizeds, semioxygeniseds +semiprofessionalized's, semiprofessionalised's +semiprofessionalized, semiprofessionalised +semiprofessionalizeds, semiprofessionaliseds +semite, semitae +Semiticize's, Semiticise's +Semiticize, Semiticise +Semiticizes, Semiticises +Semitization's, Semitisation's +Semitization, Semitisation +Semitizations, Semitisations +Semitize's, Semitise's +Semitize, Semitise +Semitized's, Semitised's +Semitized, Semitised +Semitizes, Semitises +Semitizing's, Semitising's +Semitizing, Semitising +semivulcanized's, semivulcanised's +semivulcanized, semivulcanised +semivulcanizeds, semivulcaniseds +semper, sempre +senilize, senilise +senilizes, senilises +sensationalize, sensationalise +sensationalized, sensationalised +sensationalizes, sensationalises +sensationalizing, sensationalising +sensitization's, sensitisation's +sensitization, sensitisation +sensitizations, sensitisations +sensitize, sensitise +sensitized, sensitised +sensitizer's, sensitiser's +sensitizer, sensitiser +sensitizers, sensitisers +sensitizes, sensitises +sensitizing, sensitising +sensize, sensise +sensizes, sensises +sensualization's, sensualisation's +sensualization, sensualisation +sensualizations, sensualisations +sensualize, sensualise +sensualized, sensualised +sensualizes, sensualises +sensualizing, sensualising +sentimentalization's, sentimentalisation's +sentimentalization, sentimentalisation +sentimentalizations, sentimentalisations +sentimentalize, sentimentalise +sentimentalized, sentimentalised +sentimentalizer, sentimentaliser +sentimentalizers, sentimentalisers +sentimentalizes, sentimentalises +sentimentalizing, sentimentalising +sentineled, sentinelled +sentineling, sentinelling +sepaled, sepalled +sepaledder, sepalledder +sepaleddest, sepalleddest +Septembrizer's, Septembriser's +Septembrizer, Septembriser +Septembrizers, Septembrisers +septemia, septaemia +septet's, septette's +septet, septette +septets, septettes +septicemia's, septicaemia's +septicemia, septicaemia +septicemias, septicaemias +septicemic, septicaemic +septicization's, septicisation's +septicization, septicisation +septicizations, septicisations +septicolored, septicoloured +sepulcher's, sepulchre's +sepulcher, sepulchre +sepulchered, sepulchred +sepulchering, sepulchring +sepulchers, sepulchres +sepulchralize, sepulchralise +sepulchralizes, sepulchralises +sequentialize, sequentialise +sequentialized, sequentialised +sequentializes, sequentialises +sequentializing, sequentialising +serape's, sarape's +serape, sarape +serapes, sarapes +serenize, serenise +serenizes, serenises +serializability, serialisability +serializable, serialisable +serialization's, serialisation's +serialization, serialisation +serializations, serialisations +serialize, serialise +serialized, serialised +serializes, serialises +serializing, serialising +sericitization, sericitisation +sericitizations, sericitisations +sermonize, sermonise +sermonized, sermonised +sermonizer's, sermoniser's +sermonizer, sermoniser +sermonizers, sermonisers +sermonizes, sermonises +sermonizing, sermonising +serose, serosae +serpentinization's, serpentinisation's +serpentinization, serpentinisation +serpentinizations, serpentinisations +serpentinize, serpentinise +serpentinized, serpentinised +serpentinizes, serpentinises +serpentinizing, serpentinising +serpentize, serpentise +serpentized, serpentised +serpentizes, serpentises +serpentizing, serpentising +serre, serrae +servilize, servilise +servilizes, servilises +seta, saeta +setule, setulae +severalize, severalise +severalizes, severalises +severization's, severisation's +severization, severisation +severizations, severisations +severize, severise +severizes, severises +sextet's, sextette's +sextet, sextette +sextets, sextettes +sexualization's, sexualisation's +sexualization, sexualisation +sexualizations, sexualisations +sexualize, sexualise +sexualized, sexualised +sexualizes, sexualises +sexualizing, sexualising +Shakespearize's, Shakespearise's +Shakespearize, Shakespearise +Shakespearizes, Shakespearises +shammy's, chammy's +shammy, chammy +shareable, sharable +sharpie's, sharpy's +sharpie, sharpy +sheikdom's, sheikhdom's +sheikdom, sheikhdom +sheikdoms, sheikhdoms +shellac's, shellack's +shellac, shellack +shellacs, shellacks +shepherdize, shepherdise +shepherdizes, shepherdises +sher, shoer +sherardize, sherardise +sherardized, sherardised +sherardizes, sherardises +sherardizing, sherardising +sherbet's, sherbert's +sherbet, sherbert +sherbets, sherberts +Shere's, Shree's +Shere, Shree +shere, shree +shillelagh's, shillalah's +shillelagh, shillalah +shillelaghes, shillalahes +Shintoize's, Shintoise's +Shintoize, Shintoise +Shintoizes, Shintoises +Shkoder's, Shkodaer's +Shkoder, Shkodaer +shlep, shlepp +shlepp's, shlep's +shleps, shlepps +shlock, shlocky +shorty's, shortie's +shorty, shortie +shoveled, shovelled +shoveler's, shoveller's +shoveler, shoveller +shovelers, shovellers +shoveling, shovelling +shriveled, shrivelled +shriveling, shrivelling +shtik, schtick +shtiks, schticks +sialorrhea, sialorrhoea +siderealize, siderealise +siderealizes, siderealises +signaled, signalled +signaler's, signaller's +signaler, signaller +signalers, signallers +signaling, signalling +signalization, signalisation +signalize, signalise +signalized, signalised +signalizes, signalises +signalizing, signalising +siled, siloed +silicatization's, silicatisation's +silicatization, silicatisation +silicatizations, silicatisations +siliceous, silicious +silicidize, silicidise +silicidizes, silicidises +siliconize, siliconise +siliconizes, siliconises +silicule, siliculae +silique, siliquae +silverize, silverise +silverized, silverised +silverizer's, silveriser's +silverizer, silveriser +silverizers, silverisers +silverizes, silverises +silverizing, silverising +similarize, similarise +similarizes, similarises +similize, similise +similized, similised +similizes, similises +similizing, similising +simonize, simonise +Sine's, Sinae's +Sine, Sinae +singularization's, singularisation's +singularization, singularisation +singularizations, singularisations +singularize, singularise +singularized, singularised +singularizes, singularises +singularizing, singularising +sinicize, sinicise +sinicized, sinicised +sinicizes, sinicises +sinicizing, sinicising +siphon's, syphon's +siphon, syphon +siphoned, syphoned +siphoning, syphoning +siphonless, syphonless +siphonlesses, syphonlesses +siphonlike's, syphonlike's +siphonlike, syphonlike +siphonlikes, syphonlikes +siphonophore's, syphonophore's +siphonophore, syphonophore +siphonostele's, syphonostele's +siphonostele, syphonostele +siphonostelic, syphonostelic +siphonostely, syphonostely +siphons, syphons +sirenize, sirenise +sirenized, sirenised +sirenizes, sirenises +sirenizing, sirenising +sirree's, siree's +sirree, siree +sirrees, sirees +sisterize, sisterise +sisterizes, sisterises +sistern, sistren +sizable, sizeable +sizableness, sizeableness +sizably, sizeably +sizel, sisel +skeer, skere +skeletonization's, skeletonisation's +skeletonization, skeletonisation +skeletonizations, skeletonisations +skeletonize, skeletonise +skeletonized, skeletonised +skeletonizer's, skeletoniser's +skeletonizer, skeletoniser +skeletonizers, skeletonisers +skeletonizes, skeletonises +skeletonizing, skeletonising +skeptic's, sceptic's +skeptic, sceptic +skeptical, sceptical +skepticaler, scepticaler +skepticalest, scepticalest +skeptically, sceptically +skepticer, scepticer +skepticest, scepticest +skepticism's, scepticism's +skepticism, scepticism +skepticisms, scepticisms +skepticize, skepticise +skepticizes, skepticises +skeptics, sceptics +skillful, skilful +skillfully, skilfully +skillfulness's, skilfulness's +skillfulness, skilfulness +skulduggery's, skullduggery's +skulduggery, skullduggery +skyer, skyre +skyers, skyres +Slavicize's, Slavicise's +Slavicize, Slavicise +Slavicizes, Slavicises +Slavization's, Slavisation's +Slavization, Slavisation +Slavizations, Slavisations +Slavize's, Slavise's +Slavize, Slavise +Slavizes, Slavises +Slavonicize's, Slavonicise's +Slavonicize, Slavonicise +Slavonicized's, Slavonicised's +Slavonicized, Slavonicised +Slavonicizes, Slavonicises +Slavonicizing's, Slavonicising's +Slavonicizing, Slavonicising +Slavonize's, Slavonise's +Slavonize, Slavonise +Slavonized's, Slavonised's +Slavonized, Slavonised +Slavonizes, Slavonises +Slavonizing's, Slavonising's +Slavonizing, Slavonising +sle, slae +slenderize, slenderise +slenderized, slenderised +slenderizes, slenderises +slenderizing, slenderising +slier, slyer +sliest, slyest +sloganize, sloganise +sloganized, sloganised +sloganizes, sloganises +sloganizing, sloganising +sloganizings, sloganisings +sluggardize, sluggardise +sluggardized, sluggardised +sluggardizes, sluggardises +sluggardizing, sluggardising +slumberous, slumbrous +slyly, slily +smidge's, smidgin's +smidge, smidgin +smidges, smidgins +smolder's, smoulder's +smolder, smoulder +smoldered, smouldered +smoldering, smouldering +smolders, smoulders +smoothie's, smoothy's +smoothie, smoothy +sniveled, snivelled +sniveler's, sniveller's +sniveler, sniveller +snivelers, snivellers +sniveling, snivelling +snivelings, snivellings +snobsniveling, snobsnivelling +snorkeled, snorkelled +snorkeling, snorkelling +snowplow's, snowplough's +snowplow, snowplough +snowplows, snowploughs +snowshed, snowshoed +snuffcolored, snuffcoloured +soberize, soberise +soberized, soberised +soberizes, soberises +soberizing, soberising +sobriquet's, soubriquet's +sobriquet, soubriquet +sobriquets, soubriquets +socialization's, socialisation's +socialization, socialisation +socializations, socialisations +socialize, socialise +socialized, socialised +socializer's, socialiser's +socializer, socialiser +socializes, socialises +socializing, socialising +sockdologizing, sockdologising +Socratize's, Socratise's +Socratize, Socratise +Socratized's, Socratised's +Socratized, Socratised +Socratizes, Socratises +Socratizing's, Socratising's +Socratizing, Socratising +sodomize, sodomise +sodomized, sodomised +sodomizes, sodomises +sodomizing, sodomising +softy's, softie's +softy, softie +sol's, so's +sol, so +solarization's, solarisation's +solarization, solarisation +solarizations, solarisations +solarize, solarise +solarized, solarised +solarizes, solarises +solarizing, solarising +soldierize, soldierise +soldierizes, soldierises +solecize, solecise +solecized, solecised +solecizes, solecises +solecizing, solecising +solemnization's, solemnisation's +solemnization, solemnisation +solemnizations, solemnisations +solemnize, solemnise +solemnized, solemnised +solemnizer's, solemniser's +solemnizer, solemniser +solemnizers, solemnisers +solemnizes, solemnises +solemnizing, solemnising +soliloquization, soliloquisation +soliloquize, soliloquise +soliloquized, soliloquised +soliloquizer's, soliloquiser's +soliloquizer, soliloquiser +soliloquizers, soliloquisers +soliloquizes, soliloquises +soliloquizing's, soliloquising's +soliloquizing, soliloquising +soliloquizingly, soliloquisingly +soliloquizings, soliloquisings +solmization's, solmisation's +solmization, solmisation +solmizations, solmisations +solonization, solonisation +solonizations, solonisations +sols, sos +solubilization's, solubilisation's +solubilization, solubilisation +solubilizations, solubilisations +solubilize, solubilise +solubilized, solubilised +solubilizes, solubilises +solubilizing, solubilising +solutize, solutise +solutizer's, solutiser's +solutizer, solutiser +solutizers, solutisers +solutizes, solutises +somber, sombre +somberer, sombrer +somberest, sombrest +somberish, sombreish +somberly, sombrely +somberness's, sombreness's +somberness, sombreness +sombernesses, sombrenesses +somesthesia, somaesthesia +somesthesis, somaesthesis +somniloquize, somniloquise +somniloquized, somniloquised +somniloquizes, somniloquises +somniloquizing, somniloquising +sonantized's, sonantised's +sonantized, sonantised +sonantizeds, sonantiseds +sonnetization's, sonnetisation's +sonnetization, sonnetisation +sonnetize, sonnetise +sonnetized, sonnetised +sonnetizes, sonnetises +sonnetizing, sonnetising +sorbitization, sorbitisation +sorbitizations, sorbitisations +sorbitize, sorbitise +sorbitized, sorbitised +sorbitizes, sorbitises +sorbitizing, sorbitising +sord, sourd +sordine, sourdine +sordines, sourdines +sororize, sororise +sororized, sororised +sororizes, sororises +sororizing, sororising +sory, soury +souffled, soufflaed +soulter, soultre +southernize, southernise +southernized, southernised +southernizes, southernises +southernizing, southernising +Sovietization's, Sovietisation's +sovietization's, sovietisation's +Sovietization, Sovietisation +sovietization, sovietisation +sovietizations, sovietisations +Sovietize, Sovietise +sovietize, sovietise +Sovietized, Sovietised +sovietized, sovietised +sovietizes, sovietises +Sovietizing, Sovietising +sovietizing, sovietising +spacey, spacy +spanemia, spanaemia +spanemic, spanaemic +Spaniardization's, Spaniardisation's +Spaniardization, Spaniardisation +Spaniardizations, Spaniardisations +Spaniardize's, Spaniardise's +Spaniardize, Spaniardise +Spaniardizes, Spaniardises +spaniolize, spaniolise +spaniolized, spaniolised +spaniolizes, spaniolises +spaniolizing, spaniolising +Spanishize's, Spanishise's +Spanishize, Spanishise +Spanishizes, Spanishises +spanopnea, spanopnoea +sparers, sparres +Spartanize's, Spartanise's +Spartanize, Spartanise +Spartanizes, Spartanises +spatialization's, spatialisation's +spatialization, spatialisation +spatializations, spatialisations +spatialize, spatialise +spatializes, spatialises +specialization's, specialisation's +specialization, specialisation +specializations, specialisations +specialize, specialise +specialized, specialised +specializer's, specialiser's +specializer, specialiser +specializers, specialisers +specializes, specialises +specializing, specialising +specialties, specialities +specialty's, speciality's +specialty, speciality +specificize, specificise +specificizes, specificises +specimenize, specimenise +specimenizes, specimenises +specter's, spectre's +specter, spectre +spectered, spectred +specterlike's, spectrelike's +specterlike, spectrelike +specterlikes, spectrelikes +specters, spectres +spectrocolorimetry's, spectrocolourimetry's +spectrocolorimetry, spectrocolourimetry +speer's, spere's +speer, spere +spelean, spelaean +speleological, spelaeological +speleothem, spelaeothem +speleothems, spelaeothems +spermatorrhea, spermatorrhoea +spermatorrheas, spermatorrhoeas +speronares, speronaroes +sphenethmoid, sphenoethmoid +sphenethmoidal, sphenoethmoidal +spherocrystal, sphaerocrystal +spheroidization, spheroidisation +spheroidizations, spheroidisations +spheroidize, spheroidise +spheroidized, spheroidised +spheroidizes, spheroidises +spheroidizing, spheroidising +spherosome, sphaerosome +spick's, spik's +spick, spik +spicks, spiks +Spiers's, Spires's +Spiers, Spires +spilled, spilt +spinule, spinulae +spiraled, spiralled +spiraling, spiralling +spiralization's, spiralisation's +spiralization, spiralisation +spiralizations, spiralisations +spiralize, spiralise +spiralizes, spiralises +spirea's, spiraea's +spirea, spiraea +spireas, spiraeas +spiritize, spiritise +spiritizes, spiritises +spiritualization's, spiritualisation's +spiritualization, spiritualisation +spiritualizations, spiritualisations +spiritualize, spiritualise +spiritualized, spiritualised +spiritualizer's, spiritualiser's +spiritualizer, spiritualiser +spiritualizers, spiritualisers +spiritualizes, spiritualises +spiritualizing, spiritualising +spirochetal, spirochaetal +spirochete's, spirochaete's +spirochete, spirochaete +spirochetes, spirochaetes +spirochetoses, spirochaetoses +spirochetosis's, spirochaetosis's +spirochetosis, spirochaetosis +spirochetotic, spirochaetotic +splanchnocele, splanchnocoele +splendor's, splendour's +splendor, splendour +splendorproof, splendourproof +splendors, splendours +splenectomized, splenectomised +splenization, splenisation +splenizations, splenisations +spoiled, spoilt +sponge_cake's, spongecake's +sponge_cake, spongecake +sponge_cakes, spongecakes +spumoni's, spumone's +spumoni, spumone +spumonis, spumones +spyer, spyre +squame, squamae +squamule, squamulae +Squier's, Squire's +Squier, Squire +squirreled, squirrelled +squirreling, squirrelling +stabilizable, stabilisable +stabilization's, stabilisation's +stabilization, stabilisation +stabilizations, stabilisations +stabilizator, stabilisator +stabilizators, stabilisators +stabilize, stabilise +stabilized, stabilised +stabilizer's, stabiliser's +stabilizer, stabiliser +stabilizers, stabilisers +stabilizes, stabilises +stabilizing, stabilising +stagy, stagey +stallionize, stallionise +stallionizes, stallionises +stalwartize, stalwartise +stalwartizes, stalwartises +stammelcolor, stammelcolour +standardizable's, standardisable's +standardizable, standardisable +standardizables, standardisables +standardization's, standardisation's +standardization, standardisation +standardizations, standardisations +standardize, standardise +standardized, standardised +standardizer's, standardiser's +standardizer, standardiser +standardizers, standardisers +standardizes, standardises +standardizing, standardising +stanzes, stanzoes +stapedectomized, stapedectomised +staphyledema, staphyloedema +statisticize, statisticise +statisticizes, statisticises +stearrhea, stearrhoea +steatorrhea, steatorrhoea +steatorrheas, steatorrhoeas +stele, stelae +stenciled, stencilled +stenciler's, stenciller's +stenciler, stenciller +stencilers, stencillers +stenciling, stencilling +stencilize, stencilise +stenopeic, stenopaeic +stentor, stentour +stentors, stentours +stercoremia, stercoraemia +stere, stree +sterilizabilities, sterilisabilities +sterilizability's, sterilisability's +sterilizability, sterilisability +sterilizable's, sterilisable's +sterilizable, sterilisable +sterilizabler, sterilisabler +sterilizables, sterilisables +sterilizablest, sterilisablest +sterilization's, sterilisation's +sterilization, sterilisation +sterilizations, sterilisations +sterilize, sterilise +sterilized, sterilised +sterilizer's, steriliser's +sterilizer, steriliser +sterilizers, sterilisers +sterilizes, sterilises +sterilizing, sterilising +stert, stret +sties, styes +stigmatization's, stigmatisation's +stigmatization, stigmatisation +stigmatizations, stigmatisations +stigmatize, stigmatise +stigmatized, stigmatised +stigmatizer's, stigmatiser's +stigmatizer, stigmatiser +stigmatizers, stigmatisers +stigmatizes, stigmatises +stigmatizing, stigmatising +stilbestrol's, stilboestrol's +stilbestrol, stilboestrol +stilbestrols, stilboestrols +stimuli, stimuluses +stipule, stipulae +stockinette's, stockinet's +stockinette, stockinet +stockinettes, stockinets +stogie's, stogy's +stogie, stogy +stomatodeum, stomatodaeum +stomodea, stomodaea +stomodeal, stomodaeal +stomodeum's, stomodaeum's +stomodeum, stomodaeum +stomodeums, stomodaeums +stony, stoney +storier, stourier +stour, stoor +stower, stowre +stowers, stowres +straitjacket's, straightjacket's +straitjacket, straightjacket +straitjacketed, straightjacketed +straitjacketing, straightjacketing +straitjackets, straightjackets +strata, stratums +strobile, strobilae +strobilization's, strobilisation's +strobilization, strobilisation +strobilizations, strobilisations +structuralization's, structuralisation's +structuralization, structuralisation +structuralizations, structuralisations +structuralize, structuralise +structuralizes, structuralises +strychninization's, strychninisation's +strychninization, strychninisation +strychninizations, strychninisations +strychninize, strychninise +strychninizes, strychninises +stumor, stumour +sty's, stye's +sty, stye +stylization's, stylisation's +stylization, stylisation +stylizations, stylisations +stylize, stylise +stylized, stylised +stylizer's, styliser's +stylizer, styliser +stylizers, stylisers +stylizes, stylises +stylizing, stylising +stylopized, stylopised +stymie's, stymy's +stymie, stymy +stymied, stymyed +subarmor's, subarmour's +subarmor, subarmour +subarmors, subarmours +subcaliber, subcalibre +subcategorizing, subcategorising +subcenter, subcentre +subduer, subdure +suberate, subaerate +suberization's, suberisation's +suberization, suberisation +suberizations, suberisations +suberize, suberise +suberized, suberised +suberizes, suberises +suberizing, suberising +subesophageal, suboesophageal +subetheric, subaetheric +subflavor's, subflavour's +subflavor, subflavour +subflavors, subflavours +subitize, subitise +subitized, subitised +subitizes, subitises +subitizing, subitising +subjectivization's, subjectivisation's +subjectivization, subjectivisation +subjectivizations, subjectivisations +subjectivize, subjectivise +subjectivized, subjectivised +subjectivizes, subjectivises +subjectivizing, subjectivising +sublimize, sublimise +sublimized, sublimised +sublimizes, sublimises +sublimizing, sublimising +subminiaturization's, subminiaturisation's +subminiaturization, subminiaturisation +subminiaturize, subminiaturise +subminiaturized, subminiaturised +subminiaturizes, subminiaturises +subminiaturizing, subminiaturising +subpoena's, subpena's +subpoena, subpena +subpoenaed, subpenaed +subpoenaing, subpenaing +subpoenas, subpenas +subpulverizer's, subpulveriser's +subpulverizer, subpulveriser +subpulverizers, subpulverisers +subsidizable's, subsidisable's +subsidizable, subsidisable +subsidizables, subsidisables +subsidization's, subsidisation's +subsidization, subsidisation +subsidizations, subsidisations +subsidize, subsidise +subsidized, subsidised +subsidizer's, subsidiser's +subsidizer, subsidiser +subsidizers, subsidisers +subsidizes, subsidises +subsidizing, subsidising +subspecialize's, subspecialise's +subspecialize, subspecialise +subspecializes, subspecialises +subspecialties, subspecialities +subspecialty's, subspeciality's +subspecialty, subspeciality +substandardize, substandardise +substandardizes, substandardises +substantialize, substantialise +substantialized, substantialised +substantializes, substantialises +substantializing, substantialising +substantivize, substantivise +substantivized, substantivised +substantivizes, substantivises +substantivizing, substantivising +substerilization, substerilisation +subterraneanize, subterraneanise +subterraneanizes, subterraneanises +subtilization's, subtilisation's +subtilization, subtilisation +subtilizations, subtilisations +subtilize, subtilise +subtilized, subtilised +subtilizer, subtiliser +subtilizers, subtilisers +subtilizes, subtilises +subtilizing, subtilising +subtotaled, subtotalled +subtotaling, subtotalling +suburbanization's, suburbanisation's +suburbanization, suburbanisation +suburbanizations, suburbanisations +suburbanize, suburbanise +suburbanized, suburbanised +suburbanizes, suburbanises +suburbanizing, suburbanising +subvitalization's, subvitalisation's +subvitalization, subvitalisation +subvitalized's, subvitalised's +subvitalized, subvitalised +subvitalizedder, subvitalisedder +subvitalizeddest, subvitaliseddest +subvitalizeds, subvitaliseds +succor's, succour's +succor, succour +succorable's, succourable's +succorable, succourable +succorables, succourables +succored, succoured +succorer's, succourer's +succorer, succourer +succorers, succourers +succorful, succourful +succoring, succouring +succorless, succourless +succorlesses, succourlesses +succorrhea, succorrhoea +succors, succours +succube, succubae +suers, sures +suggestionize, suggestionise +suggestionizes, suggestionises +sulcalize, sulcalise +sulcalized, sulcalised +sulcalizes, sulcalises +sulcalizing, sulcalising +sulfate's, sulphate's +sulfate, sulphate +sulfates, sulphates +sulfatize, sulfatise +sulfatizes, sulfatises +sulfide's, sulphide's +sulfide, sulphide +sulfides, sulphides +sulfur's, sulphur's +sulfur, sulphur +sulfured, sulphured +sulfuric, sulphuric +sulfuring, sulphuring +sulfurous, sulphurous +sulfurs, sulphurs +sulphurisation's, sulphurization's +sulphurisation, sulphurization +sulphurisations, sulphurizations +sulphurise, sulphurize +sulphurised, sulphurized +sulphurises, sulphurizes +sulphurising, sulphurizing +sultanize, sultanise +sultanizes, sultanises +sumac's, sumach's +sumac, sumach +sumacs, sumaches +summarizable, summarisable +summarization's, summarisation's +summarization, summarisation +summarizations, summarisations +summarize, summarise +summarized, summarised +summarizer's, summariser's +summarizer, summariser +summarizers, summarisers +summarizes, summarises +summarizing, summarising +summerize, summerise +summerizes, summerises +superacknowledgment's, superacknowledgement's +superacknowledgment, superacknowledgement +superacknowledgments, superacknowledgements +supercanonization's, supercanonisation's +supercanonization, supercanonisation +supercanonizations, supercanonisations +supercarbonization's, supercarbonisation's +supercarbonization, supercarbonisation +supercarbonizations, supercarbonisations +supercarbonize, supercarbonise +supercarbonizes, supercarbonises +supercivilization's, supercivilisation's +supercivilization, supercivilisation +supercivilizations, supercivilisations +supercivilized's, supercivilised's +supercivilized, supercivilised +supercivilizeds, superciviliseds +superemphasize, superemphasise +superemphasizes, superemphasises +superfetation, superfoetation +superfetations, superfoetations +superficialize, superficialise +superficialized, superficialised +superficializes, superficialises +superficializing, superficialising +superhumanize, superhumanise +superhumanized, superhumanised +superhumanizes, superhumanises +superhumanizing, superhumanising +supernaturalize, supernaturalise +supernaturalized, supernaturalised +supernaturalizes, supernaturalises +supernaturalizing, supernaturalising +superorganization's, superorganisation's +superorganization, superorganisation +superorganizations, superorganisations +superorganize, superorganise +superorganizes, superorganises +supersensitization's, supersensitisation's +supersensitization, supersensitisation +supersensitizations, supersensitisations +supersensitize, supersensitise +supersensitized, supersensitised +supersensitizing, supersensitising +superspecialize, superspecialise +superspecializes, superspecialises +supersubtilized's, supersubtilised's +supersubtilized, supersubtilised +supersubtilizeds, supersubtiliseds +supersulphurize, supersulphurise +supersulphurizes, supersulphurises +surgerize, surgerise +surgerizes, surgerises +surprizal, surprisal +sursize, sursise +surveil, surveille +swab's, swob's +swab, swob +swabbed, swobbed +swabbing, swobbing +swabs, swobs +sweetbrier's, sweetbriar's +sweetbrier, sweetbriar +sweetbriers, sweetbriars +swiveled, swivelled +swiveling, swivelling +sycophantize, sycophantise +sycophantized, sycophantised +sycophantizes, sycophantises +sycophantizing, sycophantising +syllabize, syllabise +syllabized, syllabised +syllabizes, syllabises +syllabizing, syllabising +syllogization, syllogisation +syllogizations, syllogisations +syllogize, syllogise +syllogized, syllogised +syllogizer, syllogiser +syllogizers, syllogisers +syllogizes, syllogises +syllogizing, syllogising +sylvan, silvan +sylvanize, sylvanise +sylvanizes, sylvanises +sylviine, sylviinae +symboled, symbolled +symboling, symbolling +symbolization's, symbolisation's +symbolization, symbolisation +symbolizations, symbolisations +symbolize, symbolise +symbolized, symbolised +symbolizer's, symboliser's +symbolizer, symboliser +symbolizers, symbolisers +symbolizes, symbolises +symbolizing, symbolising +symmetrically, symmetricly +symmetricalness, symmetricness +symmetricalnesses, symmetricnesses +symmetrization's, symmetrisation's +symmetrization, symmetrisation +symmetrizations, symmetrisations +symmetrize, symmetrise +symmetrized, symmetrised +symmetrizes, symmetrises +symmetrizing, symmetrising +sympathize, sympathise +sympathized, sympathised +sympathizer's, sympathiser's +sympathizer, sympathiser +sympathizers, sympathisers +sympathizes, sympathises +sympathizing's, sympathising's +sympathizing, sympathising +sympathizinglier, sympathisinglier +sympathizingliest, sympathisingliest +sympathizingly, sympathisingly +sympathizings, sympathisings +symphonization's, symphonisation's +symphonization, symphonisation +symphonize, symphonise +symphonized, symphonised +symphonizing, symphonising +symptomatize, symptomatise +symptomatized, symptomatised +symptomatizes, symptomatises +symptomatizing, symptomatising +symptomize, symptomise +symptomizes, symptomises +synagogue's, synagog's +synagogue, synagog +synagogues, synagogs +synalepha, synaloepha +synalephas, synaloephas +synalephe, synaloephe +sync's, synch's +sync, synch +synced, synched +synchronizable's, synchronisable's +synchronizable, synchronisable +synchronizables, synchronisables +synchronization's, synchronisation's +synchronization, synchronisation +synchronizations, synchronisations +synchronize, synchronise +synchronized, synchronised +synchronizer's, synchroniser's +synchronizer, synchroniser +synchronizers, synchronisers +synchronizes, synchronises +synchronizing, synchronising +syncing, synching +syncretize, syncretise +syncretized, syncretised +syncretizes, syncretises +syncretizing, syncretising +syncs, synches +syndicalize, syndicalise +syndicalizes, syndicalises +synecious, synoecious +synecologies, synoecologies +synecology, synoecology +synereses, synaereses +syneresis's, synaeresis's +syneresis, synaeresis +synergize, synergise +synergized, synergised +synergizes, synergises +synergizing, synergising +synesthesia's, synaesthesia's +synesthesia, synaesthesia +synesthesias, synaesthesias +synesthetic, synaesthetic +synestheticer, synaestheticer +synestheticest, synaestheticest +synetic, synoetic +synoecize, synoecise +synoecized, synoecised +synoecizes, synoecises +synoecizing, synoecising +synonymize, synonymise +synonymized, synonymised +synonymizes, synonymises +synonymizing, synonymising +synopsize, synopsise +synopsized, synopsised +synopsizes, synopsises +synopsizing, synopsising +synthesise, synthetize +synthesised, synthetized +synthesises, synthetizes +synthesising, synthetizing +synthesization's, synthesisation's +synthesization, synthesisation +synthesizations, synthesisations +synthesizer's, synthesiser's +synthesizer, synthesiser +synthesizers, synthesisers +synthetization, synthetisation +synthetizer's, synthetiser's +synthetizer, synthetiser +synthetizers, synthetisers +syntonization's, syntonisation's +syntonization, syntonisation +syntonize, syntonise +syntonized, syntonised +syntonizes, syntonises +syntonizing, syntonising +syphilization's, syphilisation's +syphilization, syphilisation +syphilizations, syphilisations +syphilize, syphilise +syphilized, syphilised +syphilizing, syphilising +Syrianize's, Syrianise's +Syrianize, Syrianise +Syrianizes, Syrianises +syringocele, syringocoele +syrup's, sirup's +syrup, sirup +syrups, sirups +systematization's, systematisation's +systematization, systematisation +systematizations, systematisations +systematize, systematise +systematized, systematised +systematizer's, systematiser's +systematizer, systematiser +systematizers, systematisers +systematizes, systematises +systematizing, systematising +systemizable's, systemisable's +systemizable, systemisable +systemizabler, systemisabler +systemizables, systemisables +systemizablest, systemisablest +systemization's, systemisation's +systemization, systemisation +systemizations, systemisations +systemize, systemise +systemized, systemised +systemizer's, systemiser's +systemizer, systemiser +systemizers, systemisers +systemizes, systemises +systemizing, systemising +taboo's, tabu's +taboo, tabu +tabooed, tabued +tabooing, tabuing +taboos, tabus +tabored, taboured +taborer's, tabourer's +taborer, tabourer +taborers, tabourers +taboret's, tabouret's +taboret, tabouret +taborets, tabourets +taborin, tabourin +taborine, tabourine +taboring, tabouring +taborins, tabourins +tabularization's, tabularisation's +tabularization, tabularisation +tabularizations, tabularisations +tabularize, tabularise +tabularized, tabularised +tabularizes, tabularises +tabularizing, tabularising +tabule, tabulae +tachypnea, tachypnoea +tachypneas, tachypnoeas +tachypneic, tachypnoeic +taffetized, taffetised +tailorization's, tailorisation's +tailorization, tailorisation +tailorizations, tailorisations +tailorize, tailorise +tailorizes, tailorises +Talmudization's, Talmudisation's +Talmudization, Talmudisation +Talmudizations, Talmudisations +Talmudize's, Talmudise's +Talmudize, Talmudise +Talmudizes, Talmudises +tamable, tameable +tambura's, tamboura's +tambura, tamboura +tamburas, tambouras +Tammanyize's, Tammanyise's +Tammanyize, Tammanyise +Tammanyizes, Tammanyises +tanalized, tanalised +tandemize, tandemise +tandemizes, tandemises +tantalization's, tantalisation's +tantalization, tantalisation +tantalizations, tantalisations +tantalize, tantalise +tantalized, tantalised +tantalizer's, tantaliser's +tantalizer, tantaliser +tantalizers, tantalisers +tantalizes, tantalises +tantalizing, tantalising +tantalizinglier, tantalisinglier +tantalizinglies, tantalisinglies +tantalizingliest, tantalisingliest +tantalizingly, tantalisingly +tantalizingness, tantalisingness +tantalizingnesses, tantalisingnesses +tantalizings, tantalisings +tariffize, tariffise +tariffizes, tariffises +tartarization's, tartarisation's +tartarization, tartarisation +tartarizations, tartarisations +tartarize, tartarise +tartarized, tartarised +tartarizes, tartarises +tartarizing, tartarising +tasseled, tasselled +tasseling, tasselling +tassels, tassells +tautologize, tautologise +tautologized, tautologised +tautologizes, tautologises +tautologizing, tautologising +tavernize, tavernise +tavernizes, tavernises +taxidermize, taxidermise +taxidermized, taxidermised +taxidermizes, taxidermises +taxidermizing, taxidermising +Taylorize's, Taylorise's +Taylorize, Taylorise +Taylorizes, Taylorises +te, tae +teaseler's, teaseller's +teaseler, teaseller +teaselers, teasellers +Tebilize's, Tebilise's +Tebilize, Tebilise +Tebilized's, Tebilised's +Tebilized, Tebilised +Tebilizes, Tebilises +Tebilizing's, Tebilising's +Tebilizing, Tebilising +technicalization, technicalisation +technicalize, technicalise +technicalizes, technicalises +technicize, technicise +technicized, technicised +technicizes, technicises +technicizing, technicising +technicolor, technicolour +technicolored, technicoloured +technologize, technologise +teepee's, tipi's +teepee, tipi +teepees, tipis +teer, teaer +teers, teres +teetotaled, teetotalled +teetotaler's, teetotaller's +teetotaler, teetotaller +teetotalers, teetotallers +teetotaling, teetotalling +tegu, taegu +tele, telae +telepathize, telepathise +telepathized, telepathised +telepathizes, telepathises +telepathizing, telepathising +telesthesia's, telaesthesia's +telesthesia, telaesthesia +telesthesias, telaesthesias +telesthetic, telaesthetic +telestheticer, telaestheticer +telestheticest, telaestheticest +tellurize, tellurise +tellurized, tellurised +tellurizes, tellurises +tellurizing, tellurising +tels, taels +templize, templise +templizes, templises +temporalize, temporalise +temporalized, temporalised +temporalizes, temporalises +temporalizing, temporalising +temporization's, temporisation's +temporization, temporisation +temporizations, temporisations +temporize, temporise +temporized, temporised +temporizer's, temporiser's +temporizer, temporiser +temporizers, temporisers +temporizes, temporises +temporizing's, temporising's +temporizing, temporising +temporizinglier, temporisinglier +temporizingliest, temporisingliest +temporizingly, temporisingly +temporizings, temporisings +tempos, tempi +tenderization's, tenderisation's +tenderization, tenderisation +tenderizations, tenderisations +tenderize, tenderise +tenderized, tenderised +tenderizer's, tenderiser's +tenderizer, tenderiser +tenderizers, tenderisers +tenderizes, tenderises +tenderizing, tenderising +tendinitis's, tendonitis's +tendinitis, tendonitis +tendinitises, tendonitises +tendriled, tendrilled +tenementization's, tenementisation's +tenementization, tenementisation +tenementizations, tenementisations +tenementize, tenementise +tenementizes, tenementises +tenia's, taenia's +tenia, taenia +teniacidal, taeniacidal +teniacide's, taeniacide's +teniacide, taeniacide +teniacides, taeniacides +teniae, taeniae +teniafuge's, taeniafuge's +teniafuge, taeniafuge +teniafuges, taeniafuges +tenias, taenias +teniases, taeniases +teniasis's, taeniasis's +teniasis, taeniasis +tenioid, taenioid +tenthmeter, tenthmetre +terf, tref +terma, trema +termatic, trematic +terminalization's, terminalisation's +terminalization, terminalisation +terminalizations, terminalisations +terminalized's, terminalised's +terminalized, terminalised +terminalizeds, terminaliseds +ternize, ternise +ternizes, ternises +terre, terrae +terrestrialize, terrestrialise +terrestrializes, terrestrialises +territorialization's, territorialisation's +territorialization, territorialisation +territorializations, territorialisations +territorialize, territorialise +territorialized, territorialised +territorializes, territorialises +territorializing, territorialising +terrorization's, terrorisation's +terrorization, terrorisation +terrorizations, terrorisations +terrorize, terrorise +terrorized, terrorised +terrorizer's, terroriser's +terrorizer, terroriser +terrorizers, terrorisers +terrorizes, terrorises +terrorizing, terrorising +terts, trets +tes, taes +teste, testae +testimonialization's, testimonialisation's +testimonialization, testimonialisation +testimonializations, testimonialisations +testimonialize, testimonialise +testimonialized, testimonialised +testimonializer, testimonialiser +testimonializers, testimonialisers +testimonializes, testimonialises +testimonializing, testimonialising +tetanization's, tetanisation's +tetanization, tetanisation +tetanizations, tetanisations +tetanize, tetanise +tetanized, tetanised +tetanizes, tetanises +tetanizing, tetanising +tetrachlorethylene, tetrachloroethylene +tetrachlorethylenes, tetrachloroethylenes +Teutonization's, Teutonisation's +Teutonization, Teutonisation +Teutonize, Teutonise +teutonize, teutonise +Teutonized, Teutonised +Teutonizes, Teutonises +Teutonizing, Teutonising +texturize, texturise +texturized, texturised +texturizes, texturises +texturizing, texturising +thalamocele, thalamocoele +thalassemia, thalassaemia +thalassemias, thalassaemias +thalassemic, thalassaemic +theater's, theatre's +theater, theatre +theatergoer's, theatregoer's +theatergoer, theatregoer +theatergoers, theatregoers +theatergoing's, theatregoing's +theatergoing, theatregoing +theatergoings, theatregoings +theaterless, theatreless +theaterlesses, theatrelesses +theaterlike's, theatrelike's +theaterlike, theatrelike +theaterlikes, theatrelikes +theaters, theatres +theatricalization's, theatricalisation's +theatricalization, theatricalisation +theatricalizations, theatricalisations +theatricalize, theatricalise +theatricalized, theatricalised +theatricalizes, theatricalises +theatricalizing, theatricalising +theatricize, theatricise +theatricized, theatricised +theatricizes, theatricises +theatricizing, theatricising +theologization's, theologisation's +theologization, theologisation +theologizations, theologisations +theologize, theologise +theologized, theologised +theologizer's, theologiser's +theologizer, theologiser +theologizers, theologisers +theologizes, theologises +theologizing, theologising +Theone's, Theonoe's +Theone, Theonoe +theorization's, theorisation's +theorization, theorisation +theorizations, theorisations +theorize, theorise +theorized, theorised +theorizer's, theoriser's +theorizer, theoriser +theorizers, theorisers +theorizes, theorises +theorizing, theorising +theosophize, theosophise +theosophized, theosophised +theosophizes, theosophises +theosophizing, theosophising +therap, threap +thereness, threeness +therenesses, threenesses +thermalization, thermalisation +thermalizations, thermalisations +thermalize, thermalise +thermalized, thermalised +thermalizes, thermalises +thermalizing, thermalising +therme, thermae +thermesthesia's, thermaesthesia's +thermesthesia, thermaesthesia +thermoanesthesia's, thermoanaesthesia's +thermoanesthesia, thermoanaesthesia +thermoanesthesias, thermoanaesthesias +thermometerize, thermometerise +thermometerizes, thermometerises +thermopolymerization's, thermopolymerisation's +thermopolymerization, thermopolymerisation +thermopolymerizations, thermopolymerisations +thermosiphon's, thermosyphon's +thermosiphon, thermosyphon +thermosiphons, thermosyphons +thesmothete, thesmothetae +thiamine's, thiamin's +thiamine, thiamin +thiamines, thiamins +thralldom's, thraldom's +thralldom, thraldom +thralldoms, thraldoms +thronize, thronise +thronizes, thronises +through, thru +thruway's, throughway's +thruway, throughway +thruways, throughways +thymectomize, thymectomise +thyroidectomized, thyroidectomised +thyroidization's, thyroidisation's +thyroidization, thyroidisation +thyroidizations, thyroidisations +tidbit's, titbit's +tidbit, titbit +tidbits, titbits +Tillford's, Tillfourd's +Tillford, Tillfourd +Timonize's, Timonise's +Timonize, Timonise +Timonized's, Timonised's +Timonized, Timonised +Timonizes, Timonises +Timonizing's, Timonising's +Timonizing, Timonising +Timor's, Timour's +Timor, Timour +tinseled, tinselled +tinselier, tinsellier +tinseliest, tinselliest +tinseling, tinselling +tiro's, tyreo's +tiro, tyreo +tiros, tyreos +titer's, titre's +titer, titre +titers, titres +titivate, tittivate +titivated, tittivated +titivates, tittivates +titivating, tittivating +titivation's, tittivation's +titivation, tittivation +titivations, tittivations +tittuped, tittupped +tittuping, tittupping +tittupy, tittuppy +toffee's, toffy's +toffee, toffy +toffees, toffies +togged, toged +togging, toging +tonicize, tonicise +tonicizes, tonicises +topesthesia, topaesthesia +topi, topi +toret, touret +tormentor's, tormenter's +tormentor, tormenter +tormentors, tormenters +torporize, torporise +torporizes, torporises +Toryize's, Toryise's +Toryize, Toryise +Toryizes, Toryises +totaled, totalled +totaler's, totaller's +totaler, totaller +totalers, totallers +totaling, totalling +totalitarianize, totalitarianise +totalization's, totalisation's +totalization, totalisation +totalizations, totalisations +totalizator's, totalisator's +totalizator, totalisator +totalizators, totalisators +totalize, totalise +totalized, totalised +totalizer's, totaliser's +totalizer, totaliser +totalizers, totalisers +totalizes, totalises +totalizing, totalising +totemization's, totemisation's +totemization, totemisation +totemizations, totemisations +tourize, tourise +tourizes, tourises +toweled, towelled +toweling's, towelling's +toweling, towelling +towelings, towellings +toxanemia, toxanaemia +toxemia's, toxaemia's +toxemia, toxaemia +toxemias, toxaemias +toxemic, toxaemic +toxicemia, toxicaemia +toxicohemia, toxicohaemia +toxihemia, toxihaemia +toxinemia, toxinaemia +trabeate, trabeatae +trabecule, trabeculae +tractorization's, tractorisation's +tractorization, tractorisation +tractorizations, tractorisations +tractorize, tractorise +tractorizes, tractorises +traditionalize, traditionalise +traditionalized, traditionalised +traditionalizes, traditionalises +traditionize, traditionise +traditionizes, traditionises +tragicize, tragicise +tragicizes, tragicises +tragicolored, tragicoloured +traitorize, traitorise +traitorizes, traitorises +trammeled, trammelled +trammeler's, trammeller's +trammeler, trammeller +trammelers, trammellers +trammeling, trammelling +tranquilities, tranquillities +tranquility's, tranquillity's +tranquility, tranquillity +tranquilization's, tranquilisation's +tranquilization, tranquilisation +tranquilizations, tranquilisations +tranquilizingly, tranquilisingly +tranquillization's, tranquillisation's +tranquillization, tranquillisation +tranquillizations, tranquillisations +tranquillize, tranquillise +tranquillized, tranquillised +tranquillizer's, tranquilliser's +tranquillizer, tranquilliser +tranquillizers, tranquillisers +tranquillizes, tranquillises +tranquillizing, tranquillising +tranquillizingly, tranquillisingly +transcendentalization's, transcendentalisation's +transcendentalization, transcendentalisation +transcendentalize, transcendentalise +transcendentalized, transcendentalised +transcendentalizes, transcendentalises +transcendentalizing, transcendentalising +transcolor, transcolour +transcoloration's, transcolouration's +transcoloration, transcolouration +transcolorations, transcolourations +transcolorrer, transcolourer +transcolorrest, transcolourest +transgender, transgendered +transistorization's, transistorisation's +transistorization, transistorisation +transistorizations, transistorisations +transistorize, transistorise +transistorized, transistorised +transistorizes, transistorises +transistorizing, transistorising +transparentize, transparentise +transparentizes, transparentises +traumatization's, traumatisation's +traumatization, traumatisation +traumatizations, traumatisations +traumatize, traumatise +traumatized, traumatised +traumatizes, traumatises +traumatizing, traumatising +traveled, travelled +traveler's, traveller's +traveler, traveller +travelers, travellers +traveling's, travelling's +traveling, travelling +travelings, travellings +travelogue's, travelog's +travelogue, travelog +travelogues, travelogs +trialed, trialled +trialing, trialling +trialization, trialisation +triangularization, triangularisation +triangularizations, triangularisations +triangularize, triangularise +triangularized, triangularised +triangularizes, triangularises +triangularizing, triangularising +trichinization's, trichinisation's +trichinization, trichinisation +trichinizations, trichinisations +trichinize, trichinise +trichinized, trichinised +trichinizes, trichinises +trichinizing, trichinising +trichlorethylene, trichloroethylene +trichlorethylenes, trichloroethylenes +trichotomize, trichotomise +trichotomized, trichotomised +trichotomizes, trichotomises +trichotomizing, trichotomising +tricolor's, tricolour's +tricolor, tricolour +tricolored, tricoloured +tricolors, tricolours +triecious, trioecious +trieciously, trioeciously +triene, triaene +trifluoride, trifluouride +trillionize, trillionise +trillionizes, trillionises +trimerization's, trimerisation's +trimerization, trimerisation +trimerizations, trimerisations +tripylean, tripylaean +trivialization's, trivialisation's +trivialization, trivialisation +trivializations, trivialisations +trivialize, trivialise +trivialized, trivialised +trivializes, trivialises +trivializing, trivialising +trolley's, trolly's +trolley, trolly +trolleyed, trollied +trolleying, trollying +trolleys, trollies +tropeolin's, tropaeolin's +tropeolin, tropaeolin +tropicalization's, tropicalisation's +tropicalization, tropicalisation +tropicalizations, tropicalisations +tropicalize, tropicalise +tropicalized, tropicalised +tropicalizes, tropicalises +tropicalizing, tropicalising +troweled, trowelled +troweler's, troweller's +troweler, troweller +trowelers, trowellers +troweling, trowelling +Trubenize's, Trubenise's +Trubenize, Trubenise +Trubenized's, Trubenised's +Trubenized, Trubenised +Trubenizes, Trubenises +Trubenizing's, Trubenising's +Trubenizing, Trubenising +trypsinize's, trypsinise's +trypsinize, trypsinise +trypsinizes, trypsinises +tsarinas, tzarinas +tsarism, tzarism +tsarisms, tzarisms +tsoris, tsouris +tubercularization's, tubercularisation's +tubercularization, tubercularisation +tubercularize, tubercularise +tubercularized, tubercularised +tubercularizing, tubercularising +tuberculinization's, tuberculinisation's +tuberculinization, tuberculinisation +tuberculinizations, tuberculinisations +tuberculinize, tuberculinise +tuberculinized, tuberculinised +tuberculinizes, tuberculinises +tuberculinizing, tuberculinising +tuberculization, tuberculisation +tuberculizations, tuberculisations +tuberculize, tuberculise +tuberculized, tuberculised +tuberculizes, tuberculises +tuberculizing, tuberculising +tuberization's, tuberisation's +tuberization, tuberisation +tuberizations, tuberisations +tuberize, tuberise +tuberizes, tuberises +tubulization's, tubulisation's +tubulization, tubulisation +tubulizations, tubulisations +tularemia, tularaemia +tularemias, tularaemias +tularemic, tularaemic +tumbrel's, tumbril's +tumbrel, tumbril +tumbrels, tumbrils +tumor's, tumour's +tumor, tumour +tumored, tumoured +tumors, tumours +tunneled, tunnelled +tunneler's, tunneller's +tunneler, tunneller +tunnelers, tunnellers +tunneling, tunnelling +tunnelings, tunnellings +turdine, turdinae +Turkicize's, Turkicise's +Turkicize, Turkicise +Turkicized's, Turkicised's +Turkicized, Turkicised +Turkicizes, Turkicises +Turkicizing's, Turkicising's +Turkicizing, Turkicising +Turkize's, Turkise's +Turkize, Turkise +Turkizes, Turkises +Tuscanize's, Tuscanise's +Tuscanize, Tuscanise +Tuscanizes, Tuscanises +tutele, tutelae +tutorization's, tutorisation's +tutorization, tutorisation +tutorizations, tutorisations +tutorize, tutorise +tutorized, tutorised +tutorizes, tutorises +tutorizing, tutorising +twier, twire +twiers, twires +tyke's, tike's +tyke, tike +tykes, tikes +Tylerize's, Tylerise's +Tylerize, Tylerise +Tylerizes, Tylerises +typhemia, typhaemia +typhemia, typhoemia +typhlenteritis, typhloenteritis +typhoemia, typhoaemia +tyrannize, tyrannise +tyrannized, tyrannised +tyrannizer's, tyranniser's +tyrannizer, tyranniser +tyrannizers, tyrannisers +tyrannizes, tyrannises +tyrannizing's, tyrannising's +tyrannizing, tyrannising +tyrannizinglier, tyrannisinglier +tyrannizingliest, tyrannisingliest +tyrannizingly, tyrannisingly +tyrannizings, tyrannisings +tzar's, tsar's +tzar, tsar +tzardom's, tsardom's +tzardom, tsardom +tzardoms, tsardoms +tzarina's, tsarina's +tzarina, tsarina +tzarism's, tsarism's +tzarist, tsarist +tzars, tsars +ukulele's, ukelele's +ukulele, ukelele +ukuleles, ukeleles +ultracentralizer's, ultracentraliser's +ultracentralizer, ultracentraliser +ultracentralizers, ultracentralisers +ultrahonorable's, ultrahonourable's +ultrahonorable, ultrahonourable +ultrahonorables, ultrahonourables +ultraspecialization's, ultraspecialisation's +ultraspecialization, ultraspecialisation +ultraspecializations, ultraspecialisations +ultrastandardization's, ultrastandardisation's +ultrastandardization, ultrastandardisation +ultrastandardizations, ultrastandardisations +unacclimatized, unacclimatised +unagonize, unagonise +unalcoholized's, unalcoholised's +unalcoholized, unalcoholised +unalcoholizedder, unalcoholisedder +unalcoholizeddest, unalcoholiseddest +unalcoholizeds, unalcoholiseds +unalphabetized, unalphabetised +unamortization's, unamortisation's +unamortization, unamortisation +unamortizations, unamortisations +unamortized, unamortised +unanalyzable, unanalysable +unanalyzed, unanalysed +unanatomizable, unanatomisable +unanatomized, unanatomised +unanemic, unanaemic +unanimalized's, unanimalised's +unanimalized, unanimalised +unanimalizeds, unanimaliseds +unantagonizable's, unantagonisable's +unantagonizable, unantagonisable +unantagonizabler, unantagonisabler +unantagonizables, unantagonisables +unantagonizablest, unantagonisablest +unantagonized, unantagonised +unantagonizedder, unantagonisedder +unantagonizeddest, unantagoniseddest +unantagonizing, unantagonising +unantagonizinger, unantagonisinger +unantagonizingest, unantagonisingest +unapologizing's, unapologising's +unapologizing, unapologising +unapostatized's, unapostatised's +unapostatized, unapostatised +unapostatizeds, unapostatiseds +unappetizing, unappetising +unappetizinger, unappetisinger +unappetizingest, unappetisingest +unappetizinglier, unappetisinglier +unappetizingliest, unappetisingliest +unappetizingly, unappetisingly +unapprized, unapprised +unarbored, unarboured +unarmored, unarmoured +unarmoredder, unarmouredder +unarmoreddest, unarmoureddest +unauthorize, unauthorise +unauthorized, unauthorised +unauthorizedder, unauthorisedder +unauthorizeddest, unauthoriseddest +unauthorizedly, unauthorisedly +unauthorizedness, unauthorisedness +unauthorizes, unauthorises +unbaptize, unbaptise +unbaptized, unbaptised +unbaptizes, unbaptises +unbaptizing, unbaptising +unbarbarize, unbarbarise +unbarbarized, unbarbarised +unbarbarizing, unbarbarising +unbarricaded, unbarricadoed +unbastardized, unbastardised +unbastardizedder, unbastardisedder +unbastardizeddest, unbastardiseddest +unbeknownst, unbeknown +unbrutalize, unbrutalise +unbrutalized, unbrutalised +unbrutalizes, unbrutalises +unbrutalizing, unbrutalising +unbrutize, unbrutise +unbrutized, unbrutised +unbrutizes, unbrutises +unbrutizing, unbrutising +uncanceled, uncancelled +uncanceledder, uncancelledder +uncanceleddest, uncancelleddest +uncandor, uncandour +uncanonization's, uncanonisation's +uncanonization, uncanonisation +uncanonize, uncanonise +uncanonized, uncanonised +uncanonizes, uncanonises +uncanonizing, uncanonising +uncantonized's, uncantonised's +uncantonized, uncantonised +uncantonizeds, uncantoniseds +uncapitalized, uncapitalised +uncapitalizedder, uncapitalisedder +uncapitalizeddest, uncapitaliseddest +uncaramelized, uncaramelised +uncatechized's, uncatechised's +uncatechized, uncatechised +uncatechizedness, uncatechisedness +uncatechizeds, uncatechiseds +uncategorized, uncategorised +uncategorizedder, uncategorisedder +uncategorizeddest, uncategoriseddest +uncatholicize, uncatholicise +uncatholicized, uncatholicised +uncatholicizes, uncatholicises +uncatholicizing, uncatholicising +uncauterized's, uncauterised's +uncauterized, uncauterised +uncauterizeds, uncauteriseds +uncelestialized's, uncelestialised's +uncelestialized, uncelestialised +uncelestializeds, uncelestialiseds +uncenter, uncentre +uncentralized, uncentralised +uncharacterized, uncharacterised +uncharacterizedder, uncharacterisedder +uncharacterizeddest, uncharacteriseddest +unchastizable, unchastisable +unchastized, unchastised +unchloridized's, unchloridised's +unchloridized, unchloridised +unchloridizeds, unchloridiseds +unchristianize, unchristianise +unchristianized, unchristianised +unchristianizes, unchristianises +unchristianizing, unchristianising +uncircularized's, uncircularised's +uncircularized, uncircularised +uncircularizedder, uncircularisedder +uncircularizeddest, uncirculariseddest +uncircularizeds, uncirculariseds +uncivilizable's, uncivilisable's +uncivilizable, uncivilisable +uncivilizabler, uncivilisabler +uncivilizables, uncivilisables +uncivilizablest, uncivilisablest +uncivilize, uncivilise +uncivilized, uncivilised +uncivilizedly, uncivilisedly +uncivilizedness, uncivilisedness +uncivilizes, uncivilises +unclericalize, unclericalise +unclericalizes, unclericalises +uncognizable, uncognisable +uncolonize, uncolonise +uncolonized, uncolonised +uncolonizes, uncolonises +uncolonizing, uncolonising +uncolorable's, uncolourable's +uncolorable, uncolourable +uncolorabler, uncolourabler +uncolorables, uncolourables +uncolorablest, uncolourablest +uncolorablier, uncolourablier +uncolorablies, uncolourablies +uncolorabliest, uncolourabliest +uncolorably, uncolourably +uncolored, uncoloured +uncoloredder, uncolouredder +uncoloreddest, uncoloureddest +uncoloredlier, uncolouredlier +uncoloredliest, uncolouredliest +uncoloredly, uncolouredly +uncoloredness's, uncolouredness's +uncoloredness, uncolouredness +uncolorednesses, uncolourednesses +uncoloreds, uncoloureds +unconcerted, unconcreted +unconventionalize, unconventionalise +unconventionalizes, unconventionalises +uncriticizable's, uncriticisable's +uncriticizable, uncriticisable +uncriticizabler, uncriticisabler +uncriticizables, uncriticisables +uncriticizablest, uncriticisablest +uncriticizably, uncriticisably +uncriticized, uncriticised +uncriticizing, uncriticising +uncriticizingly, uncriticisingly +uncrystallizabilities, uncrystallisabilities +uncrystallizability's, uncrystallisability's +uncrystallizability, uncrystallisability +uncrystallizable's, uncrystallisable's +uncrystallizable, uncrystallisable +uncrystallizabler, uncrystallisabler +uncrystallizables, uncrystallisables +uncrystallizablest, uncrystallisablest +uncrystallized, uncrystallised +uncurricularized's, uncurricularised's +uncurricularized, uncurricularised +uncurricularizeds, uncurriculariseds +undefense's, undefence's +undefense, undefence +undefenses, undefences +undemagnetizable's, undemagnetisable's +undemagnetizable, undemagnetisable +undemagnetizables, undemagnetisables +undemocratization's, undemocratisation's +undemocratization, undemocratisation +undemocratize, undemocratise +undemocratized, undemocratised +undemocratizes, undemocratises +undemocratizing, undemocratising +undenominationalize, undenominationalise +undenominationalizes, undenominationalises +undercapitalization's, undercapitalisation's +undercapitalization, undercapitalisation +undercapitalizations, undercapitalisations +undercapitalize, undercapitalise +undercapitalized, undercapitalised +undercapitalizes, undercapitalises +undercapitalizing, undercapitalising +undercolor's, undercolour's +undercolor, undercolour +undercolored, undercoloured +undercoloring, undercolouring +undercolorings, undercolourings +undercolors, undercolours +underemphasize, underemphasise +underemphasized, underemphasised +underemphasizes, underemphasises +underemphasizing, underemphasising +undergoer, undergore +underlaborer's, underlabourer's +underlaborer, underlabourer +underlaborers, underlabourers +underorganization's, underorganisation's +underorganization, underorganisation +underorganizations, underorganisations +underoxidize, underoxidise +underoxidized, underoxidised +underoxidizes, underoxidises +underoxidizing, underoxidising +underprize, underprise +underprized, underprised +underprizes, underprises +underprizing, underprising +underrealize, underrealise +underrealized, underrealised +underrealizes, underrealises +underrealizing, underrealising +undersavior's, undersaviour's +undersavior, undersaviour +undersaviors, undersaviours +undersized, undersize +underutilization's, underutilisation's +underutilization, underutilisation +underutilizations, underutilisations +underutilize, underutilise +underutilized, underutilised +underutilizes, underutilises +underutilizing, underutilising +undervitalized's, undervitalised's +undervitalized, undervitalised +undervitalizeds, undervitaliseds +undialyzed's, undialysed's +undialyzed, undialysed +undialyzeds, undialyseds +undiphthongize, undiphthongise +undiphthongizes, undiphthongises +undiscolored's, undiscoloured's +undiscolored, undiscoloured +undiscoloredder, undiscolouredder +undiscoloreddest, undiscoloureddest +undiscoloreds, undiscoloureds +undishonored, undishonoured +undisorganized, undisorganised +undramatizable's, undramatisable's +undramatizable, undramatisable +undramatizabler, undramatisabler +undramatizables, undramatisables +undramatizablest, undramatisablest +undramatized's, undramatised's +undramatized, undramatised +undramatizeds, undramatiseds +undreamed, undreamt +undualize, undualise +undualizes, undualises +uneconomizing, uneconomising +unenamored's, unenamoured's +unenamored, unenamoured +unenamoredder, unenamouredder +unenamoreddest, unenamoureddest +unenamoreds, unenamoureds +unendeavored, unendeavoured +unenergized's, unenergised's +unenergized, unenergised +unenergizeds, unenergiseds +unepitomized, unepitomised +unepitomizedder, unepitomisedder +unepitomizeddest, unepitomiseddest +unequaled, unequalled +unequaledder, unequalledder +unequaleddest, unequalleddest +unequalize, unequalise +unequalized, unequalised +unequalizes, unequalises +unequalizing, unequalising +uneulogized's, uneulogised's +uneulogized, uneulogised +uneulogizedder, uneulogisedder +uneulogizeddest, uneulogiseddest +uneulogizeds, uneulogiseds +unevangelized's, unevangelised's +unevangelized, unevangelised +unevangelizedder, unevangelisedder +unevangelizeddest, unevangeliseddest +unevangelizeds, unevangeliseds +unfamiliarized, unfamiliarised +unfamiliarizedder, unfamiliarisedder +unfamiliarizeddest, unfamiliariseddest +unfavorable's, unfavourable's +unfavorable, unfavourable +unfavorableness's, unfavourableness's +unfavorableness, unfavourableness +unfavorablenesses, unfavourablenesses +unfavorabler, unfavourabler +unfavorables, unfavourables +unfavorablest, unfavourablest +unfavorablier, unfavourablier +unfavorabliest, unfavourabliest +unfavorably, unfavourably +unfavored's, unfavoured's +unfavored, unfavoured +unfavoredder, unfavouredder +unfavoreddest, unfavoureddest +unfavoring's, unfavouring's +unfavoring, unfavouring +unfavoringer, unfavouringer +unfavoringest, unfavouringest +unfavorings, unfavourings +unfavorite's, unfavourite's +unfavorite, unfavourite +unfavoriter, unfavouriter +unfavorites, unfavourites +unfavoritest, unfavouritest +unfeminize, unfeminise +unfeminized, unfeminised +unfeminizing, unfeminising +unfertilizable's, unfertilisable's +unfertilizable, unfertilisable +unfertilizabler, unfertilisabler +unfertilizables, unfertilisables +unfertilizablest, unfertilisablest +unfertilized, unfertilised +unfertilizedder, unfertilisedder +unfertilizeddest, unfertiliseddest +unfertilizing, unfertilising +unfeudalize, unfeudalise +unfeudalized, unfeudalised +unfeudalizes, unfeudalises +unfeudalizing, unfeudalising +unflavored, unflavoured +unflavoredder, unflavouredder +unflavoreddest, unflavoureddest +unflavorous, unflavourous +unfocused, unfocussed +unformalized, unformalised +unformalizedder, unformalisedder +unformalizeddest, unformaliseddest +unfossilized's, unfossilised's +unfossilized, unfossilised +unfossilizedder, unfossilisedder +unfossilizeddest, unfossiliseddest +unfossilizeds, unfossiliseds +unfraternized, unfraternised +unfraternizing's, unfraternising's +unfraternizing, unfraternising +unfraternizings, unfraternisings +ungalvanized's, ungalvanised's +ungalvanized, ungalvanised +ungalvanizeds, ungalvaniseds +ungelatinizable's, ungelatinisable's +ungelatinizable, ungelatinisable +ungelatinizables, ungelatinisables +ungelatinized's, ungelatinised's +ungelatinized, ungelatinised +ungelatinizeds, ungelatiniseds +ungeneralized, ungeneralised +ungeneralizedder, ungeneralisedder +ungeneralizeddest, ungeneraliseddest +ungeneralizing, ungeneralising +ungentilize, ungentilise +ungentilizes, ungentilises +ungentlemanize, ungentlemanise +ungentlemanizes, ungentlemanises +unglamorous, unglamourous +unglamorously, unglamourously +ungospelized's, ungospelised's +ungospelized, ungospelised +ungospelizeds, ungospeliseds +ungraphitized's, ungraphitised's +ungraphitized, ungraphitised +ungraphitizeds, ungraphitiseds +unharbor's, unharbour's +unharbor, unharbour +unharbored, unharboured +unharmonize, unharmonise +unharmonized, unharmonised +unharmonizes, unharmonises +unharmonizing, unharmonising +unheroize, unheroise +unheroizes, unheroises +unhonorable's, unhonourable's +unhonorable, unhonourable +unhonorables, unhonourables +unhonorablies, unhonourablies +unhonorably, unhonourably +unhonored, unhonoured +unhonoredder, unhonouredder +unhonoreddest, unhonoureddest +unhouseled, unhouselled +unhumanize, unhumanise +unhumanized, unhumanised +unhumanizes, unhumanises +unhumanizing, unhumanising +unhumored, unhumoured +unhumoredder, unhumouredder +unhumoreddest, unhumoureddest +unhumorous, unhumourous +unhumorously, unhumourously +unhydrolyzed's, unhydrolysed's +unhydrolyzed, unhydrolysed +unhydrolyzeds, unhydrolyseds +unhypnotizable's, unhypnotisable's +unhypnotizable, unhypnotisable +unhypnotizabler, unhypnotisabler +unhypnotizables, unhypnotisables +unhypnotizablest, unhypnotisablest +unhypnotize, unhypnotise +unhypnotized, unhypnotised +unhypnotizes, unhypnotises +unhypnotizing, unhypnotising +unicolor, unicolour +unicolorate, unicolourate +unicolored, unicoloured +unicolorous, unicolourous +unidealized, unidealised +unidealizedder, unidealisedder +unidealizeddest, unidealiseddest +unidolized's, unidolised's +unidolized, unidolised +unidolizedder, unidolisedder +unidolizeddest, unidoliseddest +unidolizeds, unidoliseds +uniformization's, uniformisation's +uniformization, uniformisation +uniformizations, uniformisations +uniformize, uniformise +uniformized, uniformised +uniformizes, uniformises +uniformizing, uniformising +unilateralization's, unilateralisation's +unilateralization, unilateralisation +unilateralizations, unilateralisations +unilateralize, unilateralise +unilateralizes, unilateralises +unimmortalize, unimmortalise +unimmortalized, unimmortalised +unimmortalizes, unimmortalises +unimmunized, unimmunised +unindividualize, unindividualise +unindividualized, unindividualised +unindividualizes, unindividualises +unindustrialized's, unindustrialised's +unindustrialized, unindustrialised +unindustrializeds, unindustrialiseds +uninitializable, uninitialisable +uninitialized, uninitialised +unionization's, unionisation's +unionization, unionisation +unionizations, unionisations +unionize, unionise +unionized, unionised +unionizer, unioniser +unionizers, unionisers +unionizes, unionises +unionizing, unionising +unitalicized, unitalicised +Unitarianize's, Unitarianise's +Unitarianize, Unitarianise +Unitarianizes, Unitarianises +unitemized, unitemised +unitization's, unitisation's +unitization, unitisation +unitizations, unitisations +unitize, unitise +unitized, unitised +unitizes, unitises +unitizing, unitising +universalization's, universalisation's +universalization, universalisation +universalizations, universalisations +universalize, universalise +universalized, universalised +universalizer's, universaliser's +universalizer, universaliser +universalizers, universalisers +universalizes, universalises +universalizing, universalising +unjeopardized, unjeopardised +unjournalized, unjournalised +unkenneled, unkennelled +unkenneling, unkennelling +unlabeled, unlabelled +unlabeledder, unlabelledder +unlabeleddest, unlabelleddest +unlabialize, unlabialise +unlabialized, unlabialised +unlabializes, unlabialises +unlabializing, unlabialising +unlaborable's, unlabourable's +unlaborable, unlabourable +unlaborables, unlabourables +unlabored's, unlaboured's +unlabored, unlaboured +unlaboredder, unlabouredder +unlaboreddest, unlaboureddest +unlaboring's, unlabouring's +unlaboring, unlabouring +unlaboringer, unlabouringer +unlaboringest, unlabouringest +unlaborings, unlabourings +unlegalized, unlegalised +unlegalizedder, unlegalisedder +unlegalizeddest, unlegaliseddest +unleveled, unlevelled +unleveling, unlevelling +unliberalized, unliberalised +unliberalizedder, unliberalisedder +unliberalizeddest, unliberaliseddest +unlionized, unlionised +unliteralized, unliteralised +unlocalizable's, unlocalisable's +unlocalizable, unlocalisable +unlocalizabler, unlocalisabler +unlocalizables, unlocalisables +unlocalizablest, unlocalisablest +unlocalize, unlocalise +unlocalized, unlocalised +unlocalizes, unlocalises +unlocalizing, unlocalising +unmacadamized, unmacadamised +unmagnetized's, unmagnetised's +unmagnetized, unmagnetised +unmagnetizedder, unmagnetisedder +unmagnetizeddest, unmagnetiseddest +unmagnetizeds, unmagnetiseds +unmaterialized, unmaterialised +unmechanize, unmechanise +unmechanized, unmechanised +unmechanizes, unmechanises +unmechanizing, unmechanising +unmediatized's, unmediatised's +unmediatized, unmediatised +unmediatizeds, unmediatiseds +unmedieval, unmediaeval +unmelodized, unmelodised +unmemorialized's, unmemorialised's +unmemorialized, unmemorialised +unmemorializedder, unmemorialisedder +unmemorializeddest, unmemorialiseddest +unmemorializeds, unmemorialiseds +unmemorized, unmemorised +unmercerized's, unmercerised's +unmercerized, unmercerised +unmercerizeds, unmerceriseds +unmesmerize, unmesmerise +unmesmerized, unmesmerised +unmesmerizedder, unmesmerisedder +unmesmerizeddest, unmesmeriseddest +unmesmerizes, unmesmerises +unmetallised's, unmetallized's +unmetallised, unmetallized +unmetalliseds, unmetallizeds +unmethodized's, unmethodised's +unmethodized, unmethodised +unmethodizedder, unmethodisedder +unmethodizeddest, unmethodiseddest +unmethodizeds, unmethodiseds +unmethodizing's, unmethodising's +unmethodizing, unmethodising +unmethodizinger, unmethodisinger +unmethodizingest, unmethodisingest +unmethodizings, unmethodisings +unmilitarized, unmilitarised +unmineralized's, unmineralised's +unmineralized, unmineralised +unmineralizedder, unmineralisedder +unmineralizeddest, unmineraliseddest +unmineralizeds, unmineraliseds +unminimized, unminimised +unminimizedder, unminimisedder +unminimizeddest, unminimiseddest +unminimizing, unminimising +unmissionized's, unmissionised's +unmissionized, unmissionised +unmissionizeds, unmissioniseds +unmiter, unmitre +unmiters, unmitres +unmobilized's, unmobilised's +unmobilized, unmobilised +unmobilizedder, unmobilisedder +unmobilizeddest, unmobiliseddest +unmobilizeds, unmobiliseds +unmodernize, unmodernise +unmodernized, unmodernised +unmodernizedder, unmodernisedder +unmodernizeddest, unmoderniseddest +unmodernizes, unmodernises +unmonopolize, unmonopolise +unmonopolized, unmonopolised +unmonopolizedder, unmonopolisedder +unmonopolizeddest, unmonopoliseddest +unmonopolizes, unmonopolises +unmonopolizing, unmonopolising +unmonopolizinger, unmonopolisinger +unmonopolizingest, unmonopolisingest +unmonopolizings, unmonopolisings +unmoralize, unmoralise +unmoralized, unmoralised +unmoralizes, unmoralises +unmoralizing, unmoralising +unmoralizinger, unmoralisinger +unmoralizingest, unmoralisingest +unmoralizings, unmoralisings +unmotorized, unmotorised +unmotorizedder, unmotorisedder +unmotorizeddest, unmotoriseddest +unmunicipalized's, unmunicipalised's +unmunicipalized, unmunicipalised +unmunicipalizedder, unmunicipalisedder +unmunicipalizeddest, unmunicipaliseddest +unmunicipalizeds, unmunicipaliseds +unmutualized's, unmutualised's +unmutualized, unmutualised +unmutualizedder, unmutualisedder +unmutualizeddest, unmutualiseddest +unmutualizeds, unmutualiseds +unmysticize, unmysticise +unmysticized, unmysticised +unmysticizes, unmysticises +unmysticizing, unmysticising +unnationalized, unnationalised +unnationalizedder, unnationalisedder +unnationalizeddest, unnationaliseddest +unnaturalizable's, unnaturalisable's +unnaturalizable, unnaturalisable +unnaturalizables, unnaturalisables +unnaturalize, unnaturalise +unnaturalized, unnaturalised +unnaturalizes, unnaturalises +unnaturalizing, unnaturalising +unneighbored, unneighboured +unneighborlier, unneighbourlier +unneighborliest, unneighbourliest +unneighborlike's, unneighbourlike's +unneighborlike, unneighbourlike +unneighborlikes, unneighbourlikes +unneighborliness's, unneighbourliness's +unneighborliness, unneighbourliness +unneighborlinesses, unneighbourlinesses +unneighborly, unneighbourly +unneutralize, unneutralise +unneutralized, unneutralised +unneutralizing, unneutralising +unnitrogenized's, unnitrogenised's +unnitrogenized, unnitrogenised +unnitrogenizedder, unnitrogenisedder +unnitrogenizeddest, unnitrogeniseddest +unnitrogenizeds, unnitrogeniseds +unnoncolorables, unnoncolourables +unnoncolorablies, unnoncolourablies +unnoncolorably, unnoncolourably +unnormalize, unnormalise +unnormalized, unnormalised +unnormalizedder, unnormalisedder +unnormalizeddest, unnormaliseddest +unnormalizes, unnormalises +unnormalizing, unnormalising +unnormalizinger, unnormalisinger +unnormalizingest, unnormalisingest +unoptimize, unoptimise +unoptimized, unoptimised +unoptimizes, unoptimises +unoptimizing, unoptimising +unorganizable's, unorganisable's +unorganizable, unorganisable +unorganizabler, unorganisabler +unorganizables, unorganisables +unorganizablest, unorganisablest +unorganize, unorganise +unorganized, unorganised +unorganizedly, unorganisedly +unorganizedness, unorganisedness +unoxidizable's, unoxidisable's +unoxidizable, unoxidisable +unoxidizabler, unoxidisabler +unoxidizables, unoxidisables +unoxidizablest, unoxidisablest +unoxidized, unoxidised +unoxidizedder, unoxidisedder +unoxidizeddest, unoxidiseddest +unoxygenized's, unoxygenised's +unoxygenized, unoxygenised +unoxygenizeds, unoxygeniseds +unpaganize, unpaganise +unpaganizes, unpaganises +unpalisaded, unpalisadoed +unpanegyrized, unpanegyrised +unparagonized's, unparagonised's +unparagonized, unparagonised +unparagonizeds, unparagoniseds +unparalleled, unparallelled +unparalyzed's, unparalysed's +unparalyzed, unparalysed +unparalyzedder, unparalysedder +unparalyzeddest, unparalyseddest +unparalyzeds, unparalyseds +unparameterized, unparameterised +unparametrized, unparametrised +unparceled, unparcelled +unparceledder, unparcelledder +unparceleddest, unparcelleddest +unparenthesized, unparenthesised +unparticularized's, unparticularised's +unparticularized, unparticularised +unparticularizedder, unparticularisedder +unparticularizeddest, unparticulariseddest +unparticularizeds, unparticulariseds +unparticularizing's, unparticularising's +unparticularizing, unparticularising +unparticularizinger, unparticularisinger +unparticularizingest, unparticularisingest +unparticularizings, unparticularisings +unpartizan, unpartisan +unpasteurized, unpasteurised +unpatronizable's, unpatronisable's +unpatronizable, unpatronisable +unpatronizabler, unpatronisabler +unpatronizables, unpatronisables +unpatronizablest, unpatronisablest +unpatronized, unpatronised +unpatronizing's, unpatronising's +unpatronizing, unpatronising +unpauperized's, unpauperised's +unpauperized, unpauperised +unpauperizeds, unpauperiseds +unpenalized, unpenalised +unpenalizedder, unpenalisedder +unpenalizeddest, unpenaliseddest +unperceptively, unpreceptively +unpersonalized, unpersonalised +unpersonalizing, unpersonalising +unphilosophize, unphilosophise +unphilosophized, unphilosophised +unphilosophizes, unphilosophises +unphosphatized's, unphosphatised's +unphosphatized, unphosphatised +unphosphatizedder, unphosphatisedder +unphosphatizeddest, unphosphatiseddest +unphosphatizeds, unphosphatiseds +unpictorialize, unpictorialise +unpictorialized, unpictorialised +unpictorializing, unpictorialising +unplagiarized's, unplagiarised's +unplagiarized, unplagiarised +unplagiarizedder, unplagiarisedder +unplagiarizeddest, unplagiariseddest +unplagiarizeds, unplagiariseds +unpluralized, unpluralised +unpoeticized's, unpoeticised's +unpoeticized, unpoeticised +unpoeticizedder, unpoeticisedder +unpoeticizeddest, unpoeticiseddest +unpoeticizeds, unpoeticiseds +unpoetize, unpoetise +unpoetized, unpoetised +unpoetizes, unpoetises +unpolarizable's, unpolarisable's +unpolarizable, unpolarisable +unpolarizables, unpolarisables +unpolarized's, unpolarised's +unpolarized, unpolarised +unpolarizedder, unpolarisedder +unpolarizeddest, unpolariseddest +unpolarizeds, unpolariseds +unpolymerized's, unpolymerised's +unpolymerized, unpolymerised +unpolymerizedder, unpolymerisedder +unpolymerizeddest, unpolymeriseddest +unpolymerizeds, unpolymeriseds +unpopularize, unpopularise +unpopularized, unpopularised +unpopularizes, unpopularises +unpracticed, unpractised +unpracticedder, unpractisedder +unpracticeddest, unpractiseddest +unpressurized, unpressurised +unprotestantize, unprotestantise +unprotestantized, unprotestantised +unprotestantizes, unprotestantises +unprotestantizing, unprotestantising +unpublicized, unpublicised +unpulverize, unpulverise +unpulverized, unpulverised +unpulverizedder, unpulverisedder +unpulverizeddest, unpulveriseddest +unpulverizes, unpulverises +unquantized, unquantised +unradicalize, unradicalise +unradicalizes, unradicalises +unrancored's, unrancoured's +unrancored, unrancoured +unrancoredder, unrancouredder +unrancoreddest, unrancoureddest +unrancoreds, unrancoureds +unrancorous, unrancourous +unrationalized, unrationalised +unrationalizing, unrationalising +unraveled, unravelled +unraveler's, unraveller's +unraveler, unraveller +unravelers, unravellers +unraveling, unravelling +unrealizable's, unrealisable's +unrealizable, unrealisable +unrealizables, unrealisables +unrealize, unrealise +unrealized, unrealised +unrealizes, unrealises +unrealizing, unrealising +unrealizings, unrealisings +unrecognizable, unrecognisable +unrecognizabler, unrecognisabler +unrecognizablest, unrecognisablest +unrecognizably, unrecognisably +unrecognized, unrecognised +unrecognizing, unrecognising +unrecognizingly, unrecognisingly +unreconnoitered's, unreconnoitred's +unreconnoitered, unreconnoitred +unreconnoiteredder, unreconnoitredder +unreconnoitereddest, unreconnoitreddest +unreconnoitereds, unreconnoitreds +unregularized, unregularised +unreorganized, unreorganised +unreorganizedder, unreorganisedder +unreorganizeddest, unreorganiseddest +unrevelationize, unrevelationise +unrevelationizes, unrevelationises +unrivaled, unrivalled +unrivaledder, unrivalledder +unrivaleddest, unrivalleddest +unromanized, unromanised +unromanticized's, unromanticised's +unromanticized, unromanticised +unromanticizedder, unromanticisedder +unromanticizeddest, unromanticiseddest +unromanticizeds, unromanticiseds +unroyalized's, unroyalised's +unroyalized, unroyalised +unroyalizeds, unroyaliseds +unrumored, unrumoured +unrumoredder, unrumouredder +unrumoreddest, unrumoureddest +unsabered, unsabred +unsaberedder, unsabredder +unsabereddest, unsabreddest +unsatirizable, unsatirisable +unsatirize, unsatirise +unsatirized, unsatirised +unsatirizedder, unsatirisedder +unsatirizeddest, unsatiriseddest +unsatirizes, unsatirises +unsavored, unsavoured +unsavoredder, unsavouredder +unsavoreddest, unsavoureddest +unsavoredly, unsavouredly +unsavoredness, unsavouredness +unsavorier, unsavourier +unsavories, unsavouries +unsavoriest, unsavouriest +unsavorilier, unsavourilier +unsavorilies, unsavourilies +unsavoriliest, unsavouriliest +unsavorily, unsavourily +unsavoriness's, unsavouriness's +unsavoriness, unsavouriness +unsavorinesses, unsavourinesses +unsavory's, unsavoury's +unsavory, unsavoury +unscandalize, unscandalise +unscandalized, unscandalised +unscandalizedder, unscandalisedder +unscandalizeddest, unscandaliseddest +unscandalizes, unscandalises +unscepter's, unsceptre's +unscepter, unsceptre +unsceptered, unsceptred +unscepteredder, unsceptredder +unsceptereddest, unsceptreddest +unscepters, unsceptres +unschematized's, unschematised's +unschematized, unschematised +unschematizedder, unschematisedder +unschematizeddest, unschematiseddest +unschematizeds, unschematiseds +unscored, unscoured +unscoring, unscouring +unscrutinized, unscrutinised +unscrutinizedder, unscrutinisedder +unscrutinizeddest, unscrutiniseddest +unscrutinizing, unscrutinising +unscrutinizinger, unscrutinisinger +unscrutinizingest, unscrutinisingest +unscrutinizinglier, unscrutinisinglier +unscrutinizingliest, unscrutinisingliest +unscrutinizingly, unscrutinisingly +unsectarianize, unsectarianise +unsectarianizes, unsectarianises +unsectionalized, unsectionalised +unsecularize, unsecularise +unsecularized, unsecularised +unsecularizedder, unsecularisedder +unsecularizeddest, unseculariseddest +unsecularizes, unsecularises +unsensitize, unsensitise +unsensitized, unsensitised +unsensitizes, unsensitises +unsensitizing, unsensitising +unsensualize, unsensualise +unsensualized, unsensualised +unsensualizes, unsensualises +unsensualizing, unsensualising +unsentimentalize, unsentimentalise +unsentimentalized, unsentimentalised +unsentimentalizes, unsentimentalises +unsepulcher, unsepulchre +unsepulchered, unsepulchred +unsepulchers, unsepulchres +unserialized, unserialised +unshakable, unshakeable +unshed, unshoed +unsignalized's, unsignalised's +unsignalized, unsignalised +unsignalizedder, unsignalisedder +unsignalizeddest, unsignaliseddest +unsignalizeds, unsignaliseds +unsiphon's, unsyphon's +unsiphon, unsyphon +unsiphons, unsyphons +unsocialized, unsocialised +unsocializedder, unsocialisedder +unsocializeddest, unsocialiseddest +unsocializing, unsocialising +unsolemnize, unsolemnise +unsolemnized, unsolemnised +unsolemnizedder, unsolemnisedder +unsolemnizeddest, unsolemniseddest +unsolemnizes, unsolemnises +unsomber, unsombre +unsomberly, unsombrely +unsomberness's, unsombreness's +unsomberness, unsombreness +unspecialized, unspecialised +unspecializedder, unspecialisedder +unspecializeddest, unspecialiseddest +unspecializing, unspecialising +unspecializinger, unspecialisinger +unspecializingest, unspecialisingest +unspecterlike's, unspectrelike's +unspecterlike, unspectrelike +unspecterlikes, unspectrelikes +unspiritualize, unspiritualise +unspiritualized, unspiritualised +unspiritualizes, unspiritualises +unspiritualizing, unspiritualising +unsplendorous, unsplendourous +unsplendorously, unsplendourously +unspoiled, unspoilt +unstabilized, unstabilised +unstabilizing, unstabilising +unstandardizable, unstandardisable +unstandardized, unstandardised +unstandardizedder, unstandardisedder +unstandardizeddest, unstandardiseddest +unsterilized, unsterilised +unstigmatized's, unstigmatised's +unstigmatized, unstigmatised +unstigmatizedder, unstigmatisedder +unstigmatizeddest, unstigmatiseddest +unstigmatizeds, unstigmatiseds +unstoicize, unstoicise +unstoicizes, unstoicises +unsubsidized, unsubsidised +unsubstantialize, unsubstantialise +unsubstantialized, unsubstantialised +unsubstantializes, unsubstantialises +unsubstantializing, unsubstantialising +unsuccorable's, unsuccourable's +unsuccorable, unsuccourable +unsuccorables, unsuccourables +unsuccored, unsuccoured +unsulphurized's, unsulphurised's +unsulphurized, unsulphurised +unsulphurizeds, unsulphuriseds +unsummarizable, unsummarisable +unsummarized, unsummarised +unsummarizedder, unsummarisedder +unsummarizeddest, unsummariseddest +unsupernaturalize, unsupernaturalise +unsupernaturalized, unsupernaturalised +unsupernaturalizes, unsupernaturalises +unsymbolized, unsymbolised +unsymbolizedder, unsymbolisedder +unsymbolizeddest, unsymboliseddest +unsymmetrized's, unsymmetrised's +unsymmetrized, unsymmetrised +unsymmetrizeds, unsymmetriseds +unsympathizabilities, unsympathisabilities +unsympathizability's, unsympathisability's +unsympathizability, unsympathisability +unsympathizable's, unsympathisable's +unsympathizable, unsympathisable +unsympathizables, unsympathisables +unsympathized, unsympathised +unsympathizedder, unsympathisedder +unsympathizeddest, unsympathiseddest +unsympathizing's, unsympathising's +unsympathizing, unsympathising +unsympathizinger, unsympathisinger +unsympathizingest, unsympathisingest +unsympathizinglier, unsympathisinglier +unsympathizingliest, unsympathisingliest +unsympathizingly, unsympathisingly +unsympathizings, unsympathisings +unsynchronized, unsynchronised +unsynchronizedder, unsynchronisedder +unsynchronizeddest, unsynchroniseddest +unsynthesized, unsynthesised +unsynthesizedder, unsynthesisedder +unsynthesizeddest, unsynthesiseddest +unsystematized, unsystematised +unsystematizedder, unsystematisedder +unsystematizeddest, unsystematiseddest +unsystematizedly, unsystematisedly +unsystematizing, unsystematising +unsystematizinger, unsystematisinger +unsystematizingest, unsystematisingest +unsystemizable's, unsystemisable's +unsystemizable, unsystemisable +unsystemizables, unsystemisables +untantalized, untantalised +untantalizedder, untantalisedder +untantalizeddest, untantaliseddest +untantalizing's, untantalising's +untantalizing, untantalising +untantalizinger, untantalisinger +untantalizingest, untantalisingest +untantalizings, untantalisings +untartarized's, untartarised's +untartarized, untartarised +untartarizeds, untartariseds +untechnicalize, untechnicalise +untechnicalizes, untechnicalises +untemporizing's, untemporising's +untemporizing, untemporising +untemporizings, untemporisings +unterrorized, unterrorised +untheorizable's, untheorisable's +untheorizable, untheorisable +untheorizables, untheorisables +untrammeled, untrammelled +untrammeledder, untrammelledder +untrammeleddest, untrammelleddest +untranquilized, untranquilised +untranquillize, untranquillise +untranquillized, untranquillised +untyrannized, untyrannised +unutilizable's, unutilisable's +unutilizable, unutilisable +unutilizables, unutilisables +unutilized, unutilised +unvaporized's, unvaporised's +unvaporized, unvaporised +unvaporizeds, unvaporiseds +unvectorizable, unvectorisable +unverbalized, unverbalised +unvictimized, unvictimised +unvisualized, unvisualised +unvisualizedder, unvisualisedder +unvisualizeddest, unvisualiseddest +unvitalized's, unvitalised's +unvitalized, unvitalised +unvitalizeds, unvitaliseds +unvitriolized's, unvitriolised's +unvitriolized, unvitriolised +unvitriolizeds, unvitrioliseds +unvocalized's, unvocalised's +unvocalized, unvocalised +unvocalizedder, unvocalisedder +unvocalizeddest, unvocaliseddest +unvocalizeds, unvocaliseds +unvolatilize, unvolatilise +unvolatilized, unvolatilised +unvolatilizedder, unvolatilisedder +unvolatilizeddest, unvolatiliseddest +unvolatilizes, unvolatilises +unvulcanized's, unvulcanised's +unvulcanized, unvulcanised +unvulcanizedder, unvulcanisedder +unvulcanizeddest, unvulcaniseddest +unvulcanizeds, unvulcaniseds +unvulgarize, unvulgarise +unvulgarized, unvulgarised +unvulgarizes, unvulgarises +unvulgarizing, unvulgarising +unwesternized's, unwesternised's +unwesternized, unwesternised +unwesternizeds, unwesterniseds +unwomanize, unwomanise +unwomanized, unwomanised +unwomanizes, unwomanises +updraft's, updraught's +updraft, updraught +updrafts, updraughts +uralitization, uralitisation +uralitizations, uralitisations +uralitize, uralitise +uralitized, uralitised +uralitizes, uralitises +uralitizing, uralitising +uratemia, urataemia +urbanization's, urbanisation's +urbanization, urbanisation +urbanizations, urbanisations +urbanize, urbanise +urbanized, urbanised +urbanizes, urbanises +urbanizing, urbanising +uredema, uroedema +uremia's, uraemia's +uremia, uraemia +uremias, uraemias +uremic, uraemic +urethrorrhea, urethrorrhoea +uricemia, uricaemia +uricemic, uricaemic +urinemia, urinaemia +urinemic, urinaemic +urohematin, urohaematin +urophein, urophaein +usability's, useability's +usability, useability +usable, useable +utilitarianize, utilitarianise +utilitarianized, utilitarianised +utilitarianizes, utilitarianises +utilitarianizing, utilitarianising +utilizabilities, utilisabilities +utilizability, utilisability +utilizable's, utilisable's +utilizable, utilisable +utilizables, utilisables +utilization's, utilisation's +utilization, utilisation +utilizations, utilisations +utilize, utilise +utilized, utilised +utilizer's, utiliser's +utilizer, utiliser +utilizers, utilisers +utilizes, utilises +utilizing, utilising +Utopianize's, Utopianise's +Utopianize, Utopianise +utopianize, utopianise +utopianized, utopianised +utopianizer's, utopianiser's +utopianizer, utopianiser +utopianizers, utopianisers +Utopianizes, Utopianises +utopianizes, utopianises +utopianizing, utopianising +vaagmer, vaagmaer +vaccinization's, vaccinisation's +vaccinization, vaccinisation +vaccinizations, vaccinisations +vacuolization's, vacuolisation's +vacuolization, vacuolisation +vacuolizations, vacuolisations +vacuumize, vacuumise +vacuumized, vacuumised +vacuumizes, vacuumises +vacuumizing, vacuumising +vagabondize, vagabondise +vagabondized, vagabondised +vagabondizer, vagabondiser +vagabondizers, vagabondisers +vagabondizes, vagabondises +vagabondizing, vagabondising +vaginule, vaginulae +vagrantize, vagrantise +vagrantizes, vagrantises +valor's, valour's +valor, valour +valorization's, valorisation's +valorization, valorisation +valorizations, valorisations +valorize, valorise +valorized, valorised +valorizes, valorises +valorizing, valorising +valorousness, valourousness +valors, valours +valvule, valvulae +vampirize, vampirise +vampirized, vampirised +vampirizes, vampirises +vampirizing, vampirising +vandalization's, vandalisation's +vandalization, vandalisation +vandalizations, vandalisations +vandalize, vandalise +vandalized, vandalised +vandalizes, vandalises +vandalizing, vandalising +vapor's, vapour's +vapor, vapour +vaporabilities, vapourabilities +vaporability's, vapourability's +vaporability, vapourability +vaporable's, vapourable's +vaporable, vapourable +vaporables, vapourables +vapored, vapoured +vaporer's, vapourer's +vaporer, vapourer +vaporers, vapourers +vaporescent, vapourescent +vaporier, vapourier +vaporiest, vapouriest +vaporific, vapourific +vaporimeter's, vapourimeter's +vaporimeter, vapourimeter +vaporing's, vapouring's +vaporing, vapouring +vaporingly, vapouringly +vaporings, vapourings +vaporish, vapourish +vaporisher, vapourisher +vaporishest, vapourishest +vaporishness's, vapourishness's +vaporishness, vapourishness +vaporishnesses, vapourishnesses +vaporizable's, vaporisable's +vaporizable, vaporisable +vaporizabler, vaporisabler +vaporizables, vaporisables +vaporizablest, vaporisablest +vaporization's, vaporisation's +vaporization, vaporisation +vaporizations, vaporisations +vaporize, vaporise +vaporized, vaporised +vaporizer's, vaporiser's +vaporizer, vaporiser +vaporizers, vaporisers +vaporizes, vaporises +vaporizing, vaporising +vaporless, vapourless +vaporlesses, vapourlesses +vaporlike's, vapourlike's +vaporlike, vapourlike +vaporlikes, vapourlikes +vaporose, vapourose +vaporously, vapourously +vapors, vapours +vaporware, vapourware +vapory, vapoury +varicolored's, varicoloured's +varicolored, varicoloured +varicoloredder, varicolouredder +varicoloreddest, varicoloureddest +varicoloreds, varicoloureds +varicolorous, varicolourous +vascularization's, vascularisation's +vascularization, vascularisation +vascularizations, vascularisations +vascularize, vascularise +vascularized, vascularised +vascularizes, vascularises +vascularizing, vascularising +vasectomize, vasectomise +vasectomized, vasectomised +vasectomizing, vasectomising +vassalization, vassalisation +vassalize, vassalise +vassalized, vassalised +vassalizes, vassalises +vassalizing, vassalising +Vaticanization's, Vaticanisation's +Vaticanization, Vaticanisation +Vaticanizations, Vaticanisations +Vaticanize's, Vaticanise's +Vaticanize, Vaticanise +Vaticanizes, Vaticanises +vavasor, vavasour +vavasors, vavasours +Ve's, Voe's +Ve, Voe +vectorizable, vectorisable +vectorization's, vectorisation's +vectorization, vectorisation +vectorizations, vectorisations +vectorize, vectorise +vectorized, vectorised +vectorizer, vectoriser +vectorizered, vectorisered +vectorizering, vectorisering +vectorizers, vectorisers +vectorizes, vectorises +vectorizing, vectorising +veery, verey +vegetablize, vegetablise +vegetablizes, vegetablises +velarization's, velarisation's +velarization, velarisation +velarizations, velarisations +velarize, velarise +velarized, velarised +velarizes, velarises +velarizing, velarising +veld's, veldt's +veld, veldt +velds, veldts +venalization's, venalisation's +venalization, venalisation +venalizations, venalisations +venalize, venalise +venalizes, venalises +vendor's, vender's +vendor, vender +vendors, venders +venomization's, venomisation's +venomization, venomisation +venomizations, venomisations +venomize, venomise +venomizes, venomises +venter, ventre +venters, ventres +ventriloquize, ventriloquise +ventriloquized, ventriloquised +ventriloquizes, ventriloquises +ventriloquizing, ventriloquising +venule, venulae +veranda's, verandah's +veranda, verandah +verandas, verandahs +verbalization's, verbalisation's +verbalization, verbalisation +verbalizations, verbalisations +verbalize, verbalise +verbalized, verbalised +verbalizer's, verbaliser's +verbalizer, verbaliser +verbalizers, verbalisers +verbalizes, verbalises +verbalizing, verbalising +vermeiled, vermeilled +vermeiles, vermeilles +vermeiling, vermeilling +vermilion's, vermillion's +vermilion, vermillion +vermilionize, vermilionise +vermilionizes, vermilionises +vernacularization's, vernacularisation's +vernacularization, vernacularisation +vernacularizations, vernacularisations +vernacularize, vernacularise +vernacularized, vernacularised +vernacularizes, vernacularises +vernacularizing, vernacularising +vernalization's, vernalisation's +vernalization, vernalisation +vernalizations, vernalisations +vernalize, vernalise +vernalized, vernalised +vernalizes, vernalises +vernalizing, vernalising +versicolor, versicolour +versicolorate, versicolourate +versicolored, versicoloured +versicolorous, versicolourous +versionize, versionise +versionizes, versionises +vesicule, vesiculae +vestryize, vestryise +vestryizes, vestryises +veter's, vetoer's +veter, vetoer +veteranize, veteranise +veteranizes, veteranises +vialed, vialled +vialing, vialling +victimizable's, victimisable's +victimizable, victimisable +victimizables, victimisables +victimization's, victimisation's +victimization, victimisation +victimizations, victimisations +victimize, victimise +victimized, victimised +victimizer's, victimiser's +victimizer, victimiser +victimizers, victimisers +victimizes, victimises +victimizing, victimising +Victorianize's, Victorianise's +Victorianize, Victorianise +Victorianizes, Victorianises +victualage's, victuallage's +victualage, victuallage +victualages, victuallages +victualed, victualled +victualer's, victualler's +victualer, victualler +victualers, victuallers +victualess, victualless +victualing, victualling +videodisc's, videodisk's +videodisc, videodisk +videodiscs, videodisks +vier, vire +viers, vires +Vietnamization's, Vietnamisation's +Vietnamization, Vietnamisation +Vietnamize, Vietnamise +Vietnamized, Vietnamised +Vietnamizes, Vietnamises +Vietnamizing, Vietnamising +vigor's, vigour's +vigor, vigour +vigorless, vigourless +vigors, vigours +villagization, villagisation +villagizations, villagisations +viremia, viraemia +viremias, viraemias +viremic, viraemic +virilization, virilisation +virilizations, virilisations +virilized, virilised +virilizing, virilising +virtualization, virtualisation +virtualize, virtualise +virtualizes, virtualises +virtuosos, virtuosoes +visionize, visionise +visionizes, visionises +visor's, vizor's +visor, vizor +visors, vizors +visualizable, visualisable +visualization's, visualisation's +visualization, visualisation +visualizations, visualisations +visualize, visualise +visualized, visualised +visualizer's, visualiser's +visualizer, visualiser +visualizers, visualisers +visualizes, visualises +visualizing, visualising +vitalization's, vitalisation's +vitalization, vitalisation +vitalizations, vitalisations +vitalize, vitalise +vitalized, vitalised +vitalizer's, vitaliser's +vitalizer, vitaliser +vitalizers, vitalisers +vitalizes, vitalises +vitalizing's, vitalising's +vitalizing, vitalising +vitalizingly, vitalisingly +vitalizings, vitalisings +vitaminization, vitaminisation +vitaminize, vitaminise +vitaminized, vitaminised +vitaminizes, vitaminises +vitaminizing, vitaminising +vitriolizable's, vitriolisable's +vitriolizable, vitriolisable +vitriolizables, vitriolisables +vitriolization's, vitriolisation's +vitriolization, vitriolisation +vitriolizations, vitriolisations +vitriolize, vitriolise +vitriolized, vitriolised +vitriolizer, vitrioliser +vitriolizers, vitriolisers +vitriolizes, vitriolises +vitriolizing, vitriolising +vivandier, vivandire +viver, vivre +viverrine, viverrinae +vivers, vivres +vizard, visard +vizards, visards +vizied, visied +vizies, visies +vocalization's, vocalisation's +vocalization, vocalisation +vocalizations, vocalisations +vocalize, vocalise +vocalized, vocalised +vocalizer's, vocaliser's +vocalizer, vocaliser +vocalizers, vocalisers +vocalizes, vocalises +vocalizing, vocalising +vocationalization's, vocationalisation's +vocationalization, vocationalisation +vocationalizations, vocationalisations +vocationalize, vocationalise +vocationalizes, vocationalises +volatilizable's, volatilisable's +volatilizable, volatilisable +volatilizabler, volatilisabler +volatilizables, volatilisables +volatilizablest, volatilisablest +volatilization's, volatilisation's +volatilization, volatilisation +volatilizations, volatilisations +volatilize, volatilise +volatilized, volatilised +volatilizer's, volatiliser's +volatilizer, volatiliser +volatilizers, volatilisers +volatilizes, volatilises +volatilizing, volatilising +volcanism's, vulcanism's +volcanism, vulcanism +volcanisms, vulcanisms +volcanization, volcanisation +volcanizations, volcanisations +volcanize, volcanise +volcanized, volcanised +volcanizes, volcanises +volcanizing, volcanising +voltize, voltise +voltizes, voltises +vowelization's, vowelisation's +vowelization, vowelisation +vowelizations, vowelisations +vowelize, vowelise +vowelized, vowelised +vowelizes, vowelises +vowelizing, vowelising +vulcanizable's, vulcanisable's +vulcanizable, vulcanisable +vulcanizabler, vulcanisabler +vulcanizables, vulcanisables +vulcanizablest, vulcanisablest +vulcanizate's, vulcanisate's +vulcanizate, vulcanisate +vulcanizates, vulcanisates +vulcanization's, vulcanisation's +vulcanization, vulcanisation +vulcanizations, vulcanisations +vulcanize, vulcanise +vulcanized, vulcanised +vulcanizer's, vulcaniser's +vulcanizer, vulcaniser +vulcanizers, vulcanisers +vulcanizes, vulcanises +vulcanizing, vulcanising +vulgarization's, vulgarisation's +vulgarization, vulgarisation +vulgarizations, vulgarisations +vulgarize, vulgarise +vulgarized, vulgarised +vulgarizer's, vulgariser's +vulgarizer, vulgariser +vulgarizers, vulgarisers +vulgarizes, vulgarises +vulgarizing, vulgarising +wackes, wackoes +wackier, whackier +wackiest, whackiest +wacky, whacky +Wagnerize's, Wagnerise's +Wagnerize, Wagnerise +Wagnerizes, Wagnerises +wagon's, waggon's +wagon, waggon +wagoned, waggoned +wagoneer, waggoneer +wagoner's, waggoner's +wagoner, waggoner +wagoners, waggoners +wagonette's, waggonette's +wagonette, waggonette +wagonettes, waggonettes +wagoning, waggoning +wagons, waggons +wainscoted, wainscotted +wainscoting's, wainscotting's +wainscoting, wainscotting +wainscotings, wainscottings +wallah, walla +wallahs, wallas +wantonize, wantonise +wantonized, wantonised +wantonizes, wantonises +wantonizing, wantonising +warer, warre +Warford's, Warfourd's +Warford, Warfourd +warrantize, warrantise +waterbed's, water_bed's +waterbed, water_bed +waterbeds, water_beds +watercolor's, watercolour's +watercolor, watercolour +watercolored, watercoloured +watercoloring, watercolouring +watercolorist's, watercolourist's +watercolorist, watercolourist +watercolorists, watercolourists +watercolors, watercolours +weaseled, weaselled +weaseling, weaselling +weatherize, weatherise +weatherized, weatherised +weatherizes, weatherises +weatherizing, weatherising +weeviled, weevilled +weftwize, weftwise +weize, weise +weized, weised +weizes, weises +weizing, weising +welsh, welch +welshed, welched +welshes, welches +welshing, welching +wer, waer +werewolf's, werwolf's +werewolf, werwolf +werewolves, werwolves +westernization's, westernisation's +westernization, westernisation +westernizations, westernisations +westernize, westernise +westernized, westernised +westernizes, westernises +westernizing, westernising +whimsies, whimseys +whimsy's, whimsey's +whimsy, whimsey +whir's, whirr's +whir, whirr +whirs, whirrs +Whitmanize's, Whitmanise's +Whitmanize, Whitmanise +Whitmanizes, Whitmanises +whiz's, whizz's +whiz, whizz +whizz's, wiz's +whizz, wiz +whizzes, wizzes +whodunit's, whodunnit's +whodunit, whodunnit +whodunits, whodunnits +wigeon's, widgeon's +wigeon, widgeon +willful, wilful +willfuler, wilfuler +willfulest, wilfulest +willfullier, wilfullier +willfulliest, wilfulliest +willfully, wilfully +willfulness's, wilfulness's +willfulness, wilfulness +willy, willie +winterization's, winterisation's +winterization, winterisation +winterizations, winterisations +winterize, winterise +winterized, winterised +winterizes, winterises +winterizing, winterising +wintrier, winterier +wintriest, winteriest +wintry, wintery +wisteria's, wistaria's +wisteria, wistaria +wisterias, wistarias +wizen, wisen +womanization's, womanisation's +womanization, womanisation +womanizations, womanisations +womanize, womanise +womanized, womanised +womanizer's, womaniser's +womanizer, womaniser +womanizers, womanisers +womanizes, womanises +womanizing, womanising +woodcockize, woodcockise +woodcockizes, woodcockises +woolen's, woollen's +woolen, woollen +woolenner, woollenner +woolennest, woollennest +woolens, woollens +woollenisation's, woollenization's +woollenisation, woollenization +woollenisations, woollenizations +woollenise, woollenize +woollenises, woollenizes +wornil, wournil +worshiped, worshipped +worshiper's, worshipper's +worshiper, worshipper +worshipers, worshippers +worshiping, worshipping +yak's, yack's +yak, yack +yak, yack +yak, yock +yakked, yacked +yakking, yacking +yaks, yacks +yaks, yacks +yeshiva's, yeshivah's +yeshiva, yeshivah +yeshivot, yeshivahs +yock's, yak's +yocks, yaks +yodeled, yodelled +yodeler's, yodeller's +yodeler, yodeller +yodelers, yodellers +yodeling, yodelling +yoghourt's, yogourt's +yoghourt, yogourt +yoghourts, yogourts +yogi's, yogin's +yogi, yogin +yogis, yogins +yuck, yuk +yuk, yuck +yukked, yucked +yukking, yucking +yuks, yucks +zaffer, zaffre +zaffers, zaffres +zea, zoea +zeas, zoeas +zeroize, zeroise +zeroized, zeroised +zeroizes, zeroises +zeroizing, zeroising +zipper's, Zipper's +zipper, Zipper +zippers, Zippers +zoea's, zoaea's +zoea, zoaea +zoea, zooea +zoeae, zooeae +zoeal, zooeal +zoeas, zooeas +zoecia, zooecia +zoecium, zooecium +zombie's, zombi's +zombie, zombi +zombies, zombis +zonesthesia, zonaesthesia +zonule, zonulae +zooglea, zoogloea +zoogleae, zoogloeae +zoogleal, zoogloeal +zoogleas, zoogloeas +zygenid, zygaenid diff --git a/test/rootfs/opt/solr/server/solr/default/conf/synonyms_und.txt b/test/rootfs/opt/solr/server/solr/default/conf/synonyms_und.txt new file mode 100644 index 00000000..91689ff9 --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/conf/synonyms_und.txt @@ -0,0 +1 @@ +drupal, durpal diff --git a/test/rootfs/opt/solr/server/solr/default/core.properties b/test/rootfs/opt/solr/server/solr/default/core.properties new file mode 100644 index 00000000..8c68b5bf --- /dev/null +++ b/test/rootfs/opt/solr/server/solr/default/core.properties @@ -0,0 +1,3 @@ +name=default +config=solrconfig.xml +dataDir=data diff --git a/test/rootfs/var/www/drupal/assets/patches/default_settings.txt b/test/rootfs/var/www/drupal/assets/patches/default_settings.txt new file mode 100644 index 00000000..a8e576ca --- /dev/null +++ b/test/rootfs/var/www/drupal/assets/patches/default_settings.txt @@ -0,0 +1,84 @@ +/** + * Section appended onto drupal/core default.settings.php via "drupal-scaffold" in composer.json. + */ + +// Let Drush use all the memory available. +if (PHP_SAPI === 'cli') { + ini_set('memory_limit', '-1'); +} + +// Required when running Drupal behind a reverse proxy. +$settings['reverse_proxy'] = TRUE; +$settings['reverse_proxy_addresses'] = array($_SERVER['REMOTE_ADDR']); +$settings['reverse_proxy_trusted_headers'] = \Symfony\Component\HttpFoundation\Request::HEADER_X_FORWARDED_ALL; + +/** + * Private file path: + * + * A local file system path where private files will be stored. This directory + * must be absolute, outside of the Drupal installation directory and not + * accessible over the web. + * + * Note: Caches need to be cleared when this value is changed to make the + * private:// stream wrapper available to the system. + * + * See https://www.drupal.org/documentation/modules/file for more information + * about securing private files. + */ +$settings['file_private_path'] = '/var/www/drupal/private/'; + +// Shared configuration, config_split is used for any site specific differences. +$settings['config_sync_directory'] = '/var/www/drupal/config/sync'; + +// Content sync module. +global $content_directories; +$content_directories['sync'] = '/var/www/drupal/content/sync'; + +// Container environment variable path. +$path = "/var/run/s6/container_environment/"; + +// Some configurations are derived from environment variables. +$config['islandora.settings']['broker_url'] = file_get_contents($path . 'DRUPAL_DEFAULT_BROKER_URL'); +$config['islandora.settings']['broker_user'] = file_exists($path . 'DRUPAL_DEFAULT_BROKER_USER') ? file_get_contents($path . 'DRUPAL_DEFAULT_BROKER_USER') : NULL; +$config['islandora.settings']['broker_password'] = file_exists($path . 'DRUPAL_DEFAULT_BROKER_PASSWORD') ? file_get_contents($path . 'DRUPAL_DEFAULT_BROKER_PASSWORD') : NULL; +$config['islandora_iiif.settings']['iiif_server'] = file_get_contents($path . 'DRUPAL_DEFAULT_CANTALOUPE_URL'); +$config['matomo.settings']['url_http'] = file_get_contents($path . 'DRUPAL_DEFAULT_MATOMO_URL'); +$config['matomo.settings']['url_https'] = file_get_contents($path . 'DRUPAL_DEFAULT_MATOMO_URL'); +$config['openseadragon.settings']['iiif_server'] = file_get_contents($path . 'DRUPAL_DEFAULT_CANTALOUPE_URL'); +$config['search_api.server.default_solr_server']['backend_config']['connector_config']['host'] = file_get_contents($path . 'DRUPAL_DEFAULT_SOLR_HOST'); +$config['search_api.server.default_solr_server']['backend_config']['connector_config']['port'] = file_get_contents($path . 'DRUPAL_DEFAULT_SOLR_PORT'); +$config['search_api.server.default_solr_server']['backend_config']['connector_config']['core'] = file_get_contents($path . 'DRUPAL_DEFAULT_SOLR_CORE'); + +// Others are hardcoded. +$config['key.key.islandora_rsa_key']['key_provider_settings']['file_location'] = '/opt/keys/jwt/private.key'; + +// Some settings are derived from environment variables. +$settings['hash_salt'] = file_get_contents($path . 'DRUPAL_DEFAULT_SALT'); +$settings['trusted_host_patterns'] = [ + 0 => file_get_contents($path . 'DRUPAL_DEFAULT_SITE_URL'), +]; + +// Database settings are also derived from environment variables. +$databases['default']['default'] = [ + 'database' => file_get_contents($path . 'DRUPAL_DEFAULT_DB_NAME'), + 'username' => file_get_contents($path . 'DRUPAL_DEFAULT_DB_USER'), + 'password' => file_get_contents($path . 'DRUPAL_DEFAULT_DB_PASSWORD'), + 'host' => file_get_contents($path . 'DB_MYSQL_HOST'), + 'port' => file_get_contents($path . 'DB_MYSQL_PORT'), + 'prefix' => '', + 'driver' => 'mysql', + 'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql', +]; + +// Flysystem +$settings['flysystem']['fedora']['driver'] = 'fedora'; +$settings['flysystem']['fedora']['config']['root'] = file_get_contents($path . 'DRUPAL_DEFAULT_FCREPO_URL'); + +// Change the php_storage settings in your setting.php. It is recommend that +// this directory be outside out of the docroot. +$settings['php_storage']['twig']['directory'] = $settings['file_private_path'] . '/php'; +$settings['php_storage']['twig']['secret'] = $settings['hash_salt']; + +/** + * End Section. + */ diff --git a/base/rootfs/etc/cont-finish.d/.gitkeep b/test/rootfs/var/www/drupal/web/files/private/.gitignore similarity index 100% rename from base/rootfs/etc/cont-finish.d/.gitkeep rename to test/rootfs/var/www/drupal/web/files/private/.gitignore diff --git a/test/rootfs/var/www/drupal/web/files/public/.gitignore b/test/rootfs/var/www/drupal/web/files/public/.gitignore new file mode 100644 index 00000000..d6b7ef32 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/files/public/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/test/rootfs/var/www/drupal/web/modules/custom/README.md b/test/rootfs/var/www/drupal/web/modules/custom/README.md new file mode 100644 index 00000000..8b2e440d --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/README.md @@ -0,0 +1,11 @@ +# Custom Modules + +We need two separate modules as islandora requires all the taxonomy terms to be +present to function correctly, having just the direct dependencies is not +enough. + +`sample_core` is installed first, followed by `sample_content`. + +We include the `taxonomy_terms` that are normally ingested via the `migrate-api` +using this module as we need a consistent `uuid` for each to properly link the +default content to them as `id` changes on every re-install. diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.jpg b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.jpg new file mode 100644 index 00000000..1d0253b6 Binary files /dev/null and b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.jpg differ diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.mp3 b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.mp3 new file mode 100644 index 00000000..0379b4d7 Binary files /dev/null and b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.mp3 differ diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.mp4 b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.mp4 new file mode 100644 index 00000000..860d01bd Binary files /dev/null and b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.mp4 differ diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.pdf b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.pdf new file mode 100644 index 00000000..c0e31a07 Binary files /dev/null and b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample.pdf differ diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_audio.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_audio.yml new file mode 100644 index 00000000..87320a38 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_audio.yml @@ -0,0 +1,30 @@ +_meta: + version: '1.0' + entity_type: file + uuid: 71aef23b-86cc-4826-9ea4-becaf4a0c6d6 + default_langcode: en +default: + uid: + - + target_id: 1 + filename: + - + value: sample.mp3 + uri: + - + value: 'fedora://2022-11/sample.mp3' + filemime: + - + value: audio/mpeg + filesize: + - + value: 764176 + status: + - + value: true + created: + - + value: 1668787348 + sha1: + - + value: dae94d2ae419b398c977f27f4190680715ae10c3 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_document.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_document.yml new file mode 100644 index 00000000..3ab4c5a9 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_document.yml @@ -0,0 +1,30 @@ +_meta: + version: '1.0' + entity_type: file + uuid: cb22c7d7-0d0b-45a9-b716-71c499bc3fd5 + default_langcode: en +default: + uid: + - + target_id: 1 + filename: + - + value: sample.pdf + uri: + - + value: 'fedora://2022-11/sample.pdf' + filemime: + - + value: application/pdf + filesize: + - + value: 3028 + status: + - + value: true + created: + - + value: 1668785846 + sha1: + - + value: bfd009f500c057195ffde66fae64f92fa5f59b72 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_image.yml new file mode 100644 index 00000000..83dc96f4 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_image.yml @@ -0,0 +1,30 @@ +_meta: + version: '1.0' + entity_type: file + uuid: 8acb9ed6-5430-40a8-8110-075da7f405b2 + default_langcode: en +default: + uid: + - + target_id: 1 + filename: + - + value: sample.jpg + uri: + - + value: 'fedora://2022-11/sample.jpg' + filemime: + - + value: image/jpeg + filesize: + - + value: 358020 + status: + - + value: true + created: + - + value: 1668006708 + sha1: + - + value: c234bb8e6526adf16352365bc05520a1d2763a69 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_video.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_video.yml new file mode 100644 index 00000000..15bf785b --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/file/sample_video.yml @@ -0,0 +1,30 @@ +_meta: + version: '1.0' + entity_type: file + uuid: b77150f6-950c-4be3-b7e6-f501335a60de + default_langcode: en +default: + uid: + - + target_id: 1 + filename: + - + value: sample.mp4 + uri: + - + value: 'fedora://2022-11/sample.mp4' + filemime: + - + value: video/mp4 + filesize: + - + value: 273100 + status: + - + value: true + created: + - + value: 1668002700 + sha1: + - + value: 55508bc98a00f615dbe9bd4c84a253ba4238b021 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_audio.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_audio.yml new file mode 100644 index 00000000..63f102e9 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_audio.yml @@ -0,0 +1,52 @@ +_meta: + version: '1.0' + entity_type: media + uuid: d63d1e91-29c0-4af7-93e5-05d65614655b + bundle: audio + default_langcode: en + depends: + 71aef23b-86cc-4826-9ea4-becaf4a0c6d6: file + c18ab21b-2713-4120-9de4-9fd0d8ec1b0b: node + 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0: taxonomy_term +default: + revision_user: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + name: + - + value: 'Sample Audio' + created: + - + value: 1668787341 + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_file_size: + - + value: 764176 + field_media_audio_file: + - + entity: 71aef23b-86cc-4826-9ea4-becaf4a0c6d6 + display: true + description: '' + field_media_of: + - + entity: c18ab21b-2713-4120-9de4-9fd0d8ec1b0b + field_media_use: + - + entity: 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0 + field_mime_type: + - + value: audio/mpeg diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_document.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_document.yml new file mode 100644 index 00000000..09ab880c --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_document.yml @@ -0,0 +1,56 @@ +_meta: + version: '1.0' + entity_type: media + uuid: fa518f3c-4f31-4ca3-94af-31648d68bc37 + bundle: document + default_langcode: en + depends: + cb22c7d7-0d0b-45a9-b716-71c499bc3fd5: file + 955c361d-1f45-48f9-812d-fe699a6de60f: node + 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0: taxonomy_term +default: + revision_user: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + name: + - + value: 'Sample Document' + created: + - + value: 1668785814 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_file_size: + - + value: 3028 + field_media_document: + - + entity: cb22c7d7-0d0b-45a9-b716-71c499bc3fd5 + display: true + description: '' + field_media_of: + - + entity: 955c361d-1f45-48f9-812d-fe699a6de60f + field_media_use: + - + entity: 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0 + field_mime_type: + - + value: application/pdf diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_image.yml new file mode 100644 index 00000000..9a4eeb74 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_image.yml @@ -0,0 +1,61 @@ +_meta: + version: '1.0' + entity_type: media + uuid: 047959ca-2ff2-4664-91bb-6541cae44f31 + bundle: image + default_langcode: en + depends: + 8acb9ed6-5430-40a8-8110-075da7f405b2: file + 34fafe07-661c-44c7-8c34-27179a23d759: node + 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0: taxonomy_term + c6a604f2-f612-463d-b82e-35b032f87728: taxonomy_term +default: + revision_user: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + name: + - + value: 'Sample Image' + created: + - + value: 1668006692 + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_file_size: + - + value: 358020 + field_height: + - + value: 1374 + field_media_image: + - + entity: 8acb9ed6-5430-40a8-8110-075da7f405b2 + alt: 'Sample Image' + title: '' + width: 1483 + height: 1374 + field_media_of: + - + entity: 34fafe07-661c-44c7-8c34-27179a23d759 + field_media_use: + - + entity: 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0 + field_mime_type: + - + value: image/jpeg + field_width: + - + value: 1483 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_video.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_video.yml new file mode 100644 index 00000000..c6c2dc07 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/media/sample_video.yml @@ -0,0 +1,54 @@ +_meta: + version: '1.0' + entity_type: media + uuid: c6c791fd-9771-4071-aa35-c70aada1811f + bundle: video + default_langcode: en + depends: + 4c1d613d-36b9-40a6-99a2-488ad9330c2a: node + 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0: taxonomy_term + c6a604f2-f612-463d-b82e-35b032f87728: taxonomy_term + afc418da-8303-45bb-8639-0a9fc158c324: taxonomy_term + b77150f6-950c-4be3-b7e6-f501335a60de: file +default: + revision_user: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + name: + - + value: 'Sample Video' + created: + - + value: 1668002691 + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_file_size: + - + value: 236780 + field_media_of: + - + entity: 4c1d613d-36b9-40a6-99a2-488ad9330c2a + field_media_use: + - + entity: 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0 + field_media_video_file: + - + entity: b77150f6-950c-4be3-b7e6-f501335a60de + display: true + description: '' + field_mime_type: + - + value: video/mp4 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_audio.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_audio.yml new file mode 100644 index 00000000..e52f8db2 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_audio.yml @@ -0,0 +1,49 @@ +_meta: + version: '1.0' + entity_type: node + uuid: c18ab21b-2713-4120-9de4-9fd0d8ec1b0b + bundle: islandora_object + default_langcode: en + depends: + 60c1d566-4693-412e-b184-9a208459f1d9: taxonomy_term + bd9d194c-2de7-43de-8f5e-df50d8ed2a99: taxonomy_term +default: + revision_uid: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + title: + - + value: 'Sample Audio' + created: + - + value: 1668787139 + promote: + - + value: true + sticky: + - + value: false + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_extent: + - + value: '1 item' + field_model: + - + entity: 60c1d566-4693-412e-b184-9a208459f1d9 + field_resource_type: + - + entity: bd9d194c-2de7-43de-8f5e-df50d8ed2a99 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_document.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_document.yml new file mode 100644 index 00000000..fa7f62b7 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_document.yml @@ -0,0 +1,53 @@ +_meta: + version: '1.0' + entity_type: node + uuid: 955c361d-1f45-48f9-812d-fe699a6de60f + bundle: islandora_object + default_langcode: en + depends: + 6a6061d1-58ab-4a7f-9968-9836d48d72f8: taxonomy_term + a66edb41-4736-4bc8-8da3-9f801ef0ab0f: taxonomy_term + 23038c93-e6e1-41f8-b1de-663bd529f6bd: taxonomy_term +default: + revision_uid: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + title: + - + value: 'Sample Document' + created: + - + value: 1668785776 + promote: + - + value: true + sticky: + - + value: false + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_display_hints: + - + entity: 6a6061d1-58ab-4a7f-9968-9836d48d72f8 + field_extent: + - + value: '1 item' + field_model: + - + entity: a66edb41-4736-4bc8-8da3-9f801ef0ab0f + field_resource_type: + - + entity: 23038c93-e6e1-41f8-b1de-663bd529f6bd diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_image.yml new file mode 100644 index 00000000..8045e3d6 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_image.yml @@ -0,0 +1,53 @@ +_meta: + version: '1.0' + entity_type: node + uuid: 34fafe07-661c-44c7-8c34-27179a23d759 + bundle: islandora_object + default_langcode: en + depends: + 16e30a08-9867-4894-8e5a-867c07d69409: taxonomy_term + ec911234-5830-41ea-b73d-307b370a5f2a: taxonomy_term + 06f1735c-b84e-4ffa-bef6-da06e0ccecb1: taxonomy_term +default: + revision_uid: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + title: + - + value: 'Sample Image' + created: + - + value: 1668006672 + promote: + - + value: true + sticky: + - + value: false + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_display_hints: + - + entity: 16e30a08-9867-4894-8e5a-867c07d69409 + field_extent: + - + value: '1 item' + field_model: + - + entity: ec911234-5830-41ea-b73d-307b370a5f2a + field_resource_type: + - + entity: 06f1735c-b84e-4ffa-bef6-da06e0ccecb1 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_video.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_video.yml new file mode 100644 index 00000000..b6650ddb --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/content/node/sample_video.yml @@ -0,0 +1,49 @@ +_meta: + version: '1.0' + entity_type: node + uuid: 4c1d613d-36b9-40a6-99a2-488ad9330c2a + bundle: islandora_object + default_langcode: en + depends: + 25d9e1ec-0034-4adf-9a47-d93b36f9d63e: taxonomy_term + 06f1735c-b84e-4ffa-bef6-da06e0ccecb1: taxonomy_term +default: + revision_uid: + - + target_id: 1 + status: + - + value: true + uid: + - + target_id: 1 + title: + - + value: 'Sample Video' + created: + - + value: 1668001671 + promote: + - + value: true + sticky: + - + value: false + revision_translation_affected: + - + value: true + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + field_extent: + - + value: '1 item' + field_model: + - + entity: 25d9e1ec-0034-4adf-9a47-d93b36f9d63e + field_resource_type: + - + entity: 06f1735c-b84e-4ffa-bef6-da06e0ccecb1 diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_content/sample_content.info.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/sample_content.info.yml new file mode 100644 index 00000000..1334c3df --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_content/sample_content.info.yml @@ -0,0 +1,10 @@ +# This .info.yml files provides the basic information about our module to Drupal +# More: https://www.drupal.org/node/2000204 +name: Sample Content +description: "Sample content for testing" +type: module +package: Custom +version: 1.0 +core_version_requirement: ^8 || ^9 +dependencies: + - drupal:sample_core diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/composer.json b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/composer.json new file mode 100644 index 00000000..dc79bc5e --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/composer.json @@ -0,0 +1,27 @@ +{ + "name": "islandora/sample_core", + "description": "Required sample content for testing", + "type": "drupal-custom-module", + "keywords": ["Drupal", "Islandora"], + "homepage": "https://github.com/Islandora-Devops/isle-buildkit", + "support": { + "issues": "https://github.com/Islandora/documentation/issues" + }, + "repositories": [ + { + "type": "composer", + "url": "https://packages.drupal.org/8" + } + ], + "require": { + "drupal/default_content": "^2.0@alpha" + }, + "license": "GPL-2.0-or-later", + "authors": [ + { + "name": "Islandora Foundation", + "email": "community@islandora.ca", + "role": "Owner" + } + ] +} diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_display.openseadragon.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_display.openseadragon.yml new file mode 100644 index 00000000..a4c1e0de --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_display.openseadragon.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 16e30a08-9867-4894-8e5a-867c07d69409 + bundle: islandora_display + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Open Seadragon' + description: + - + value: 'Display using the Open Seadragon viewer' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://openseadragon.github.io' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_display.pdfjs.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_display.pdfjs.yml new file mode 100644 index 00000000..91f52ff2 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_display.pdfjs.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 6a6061d1-58ab-4a7f-9968-9836d48d72f8 + bundle: islandora_display + default_langcode: en +default: + status: + - + value: true + name: + - + value: PDFjs + description: + - + value: 'Display using the PDF.js viewer' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://mozilla.github.io/pdf.js' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.fits_file.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.fits_file.yml new file mode 100644 index 00000000..42ebd53f --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.fits_file.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 4238f4fd-0127-4027-b52b-990dab8eaad1 + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'FITS File' + description: + - + value: 'Technical Metadata associated with an original media file' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'https://projects.iq.harvard.edu/fits' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.intermediate_file.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.intermediate_file.yml new file mode 100644 index 00000000..c8c15c4e --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.intermediate_file.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: e3581d39-d3ea-4dd2-967f-c1140f486c19 + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Intermediate File' + description: + - + value: 'High quality representation of the Object, appropriate for generating derivatives or other additional processing' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#IntermediateFile' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.original_file.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.original_file.yml new file mode 100644 index 00000000..ae59345e --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.original_file.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 3397d872-5a18-4e04-bf0a-f1e5ba69f6d0 + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Original File' + description: + - + value: 'The original creation format of a file' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#OriginalFile' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.preservation_master_file.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.preservation_master_file.yml new file mode 100644 index 00000000..460ee835 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.preservation_master_file.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: c6a604f2-f612-463d-b82e-35b032f87728 + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Preservation Master File' + description: + - + value: 'Best quality representation of the Object appropriate for long-term preservation' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#PreservationMasterFile' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.service_file.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.service_file.yml new file mode 100644 index 00000000..217a3d7a --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.service_file.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: afc418da-8303-45bb-8639-0a9fc158c324 + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Service File' + description: + - + value: 'A medium quality representation of the Object appropriate for serving to users' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#ServiceFile' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.thumbnail_image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.thumbnail_image.yml new file mode 100644 index 00000000..ed9837d4 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.thumbnail_image.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 87352faf-272b-49f3-a5f5-241c8c9d89dc + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Thumbnail Image' + description: + - + value: 'A low resolution image representation of the Object appropriate for using as an icon' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#ThumbnailImage' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.transcript.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.transcript.yml new file mode 100644 index 00000000..ace34f6d --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_media_use.transcript.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 6ae2b742-32bc-4312-8554-0beb9e41590e + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: Transcript + description: + - + value: 'A textual representation of the Object appropriate for presenting to users, such as subtitles or transcript of a video. Can be used as a substitute or complement to other files for accessibility purposes' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#Transcript' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.audio.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.audio.yml new file mode 100644 index 00000000..7272ea59 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.audio.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 60c1d566-4693-412e-b184-9a208459f1d9 + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Audio + description: + - + value: 'A resource primarily intended to be heard. Examples include a music playback file format, an audio compact disc, and recorded speech or sounds' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://purl.org/coar/resource_type/c_18cc' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.binary.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.binary.yml new file mode 100644 index 00000000..a6134d33 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.binary.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 4e7608cd-1d66-489f-b362-92f202ff82aa + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Binary + description: + - + value: 'A generic binary file for repository items that don''t fall into any other category or cannot be shown in a browser' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://purl.org/coar/resource_type/c_1843' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.collection.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.collection.yml new file mode 100644 index 00000000..4c454f32 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.collection.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 4adbf9a6-08e6-4911-bd36-9cd0ab8e3b59 + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Collection + description: + - + value: 'A collection is an aggregation of items' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://purl.org/dc/dcmitype/Collection' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.compound_object.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.compound_object.yml new file mode 100644 index 00000000..6202940a --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.compound_object.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 67e21de9-6f01-4649-b98c-13f01499ff5e + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Compound Object' + description: + - + value: 'A special type of collection where the parent item may also have complex metadata' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://vocab.getty.edu/aat/300242735' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.digital_document.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.digital_document.yml new file mode 100644 index 00000000..a0964811 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.digital_document.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: a66edb41-4736-4bc8-8da3-9f801ef0ab0f + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Digital Document' + description: + - + value: 'An electronic file or document.' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'https://schema.org/DigitalDocument' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.image.yml new file mode 100644 index 00000000..9699bc70 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.image.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: ec911234-5830-41ea-b73d-307b370a5f2a + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Image + description: + - + value: 'A visual representation other than text, including all types of moving image and still image' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://purl.org/coar/resource_type/c_c513' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.newspaper.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.newspaper.yml new file mode 100644 index 00000000..96b978df --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.newspaper.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 4d551de2-b6d1-46d2-bcd0-ea263d065571 + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Newspaper + description: + - + value: 'A special type of collection which only has Newspaper Issues for children.' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'https://schema.org/Newspaper' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.page.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.page.yml new file mode 100644 index 00000000..ff25fe05 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.page.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: e64dbae9-4ee5-4dad-aaa5-e4a434787d7a + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Page + description: + - + value: 'A page in an Electronic Paged Content Object' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://id.loc.gov/ontologies/bibframe/part' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.paged_content.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.paged_content.yml new file mode 100644 index 00000000..ad28c28e --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.paged_content.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: e510cc34-5294-48e1-a81b-e89e79feb060 + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Paged Content' + description: + - + value: 'An Electronic Book, object with pages' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'https://schema.org/Book' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.publication_issue.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.publication_issue.yml new file mode 100644 index 00000000..4988331e --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.publication_issue.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 888ef0d7-e787-47fb-b236-ce94209feeeb + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Publication Issue' + description: + - + value: 'A part of a successively published publication such as a periodical or publication volume, often numbered, usually containing a grouping of works such as articles.' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'https://schema.org/PublicationIssue' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.video.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.video.yml new file mode 100644 index 00000000..39b77273 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/islandora_models.video.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 25d9e1ec-0034-4adf-9a47-d93b36f9d63e + bundle: islandora_models + default_langcode: en +default: + status: + - + value: true + name: + - + value: Video + description: + - + value: 'A recording of visual images, usually in motion and with sound accompaniment' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://purl.org/coar/resource_type/c_12ce' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.collection.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.collection.yml new file mode 100644 index 00000000..17aa16a5 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.collection.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: aecf7357-df20-4ce9-a1fa-5ae509995159 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Collection + description: + - + value: 'An aggregation of resources' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/ontology/bibo/Collection' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.dataset.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.dataset.yml new file mode 100644 index 00000000..2c80073e --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.dataset.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 23b05143-0e63-4f35-b98d-50b1b742a633 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Dataset + description: + - + value: 'Data encoded in a defined structure' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/Dataset' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.extracted_text.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.extracted_text.yml new file mode 100644 index 00000000..1370f765 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.extracted_text.yml @@ -0,0 +1,47 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: eb1c24fc-a405-4cd5-acfa-9d361a450c21 + bundle: islandora_media_use + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Extracted Text' + description: + - + value: 'A textual representation of the Object appropriate for fulltext indexing, such as a plaintext version of a document, or OCR text' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_external_uri: + - + uri: 'http://pcdm.org/use#ExtractedText' + title: '' + options: { } diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.image.yml new file mode 100644 index 00000000..a1693671 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.image.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: dd1732a5-d66d-498f-8860-bbc6fd63b195 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Image + description: + - + value: 'A visual representation other than text' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/Image' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.interactive_resource.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.interactive_resource.yml new file mode 100644 index 00000000..feb885e0 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.interactive_resource.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: a5d6a09b-fe24-497b-8159-aeafcce30529 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Interactive Resource' + description: + - + value: 'A resource requiring interaction from the user to be understood, executed, or experienced' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/InteractiveResource' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.moving_image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.moving_image.yml new file mode 100644 index 00000000..97350121 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.moving_image.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 06f1735c-b84e-4ffa-bef6-da06e0ccecb1 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Moving Image' + description: + - + value: 'A series of visual representations imparting an impression of motion when shown in succession' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/MovingImage' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.physical_object.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.physical_object.yml new file mode 100644 index 00000000..bd63fde2 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.physical_object.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 7337f3ea-69b6-4308-a444-7c0fb7e7f822 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Physical Object' + description: + - + value: 'An inanimate, three-dimensional object or substance' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/PhysicalObject' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.service.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.service.yml new file mode 100644 index 00000000..b77e9d03 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.service.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: bbbe265d-5069-438e-b5ec-ea48ad8940b7 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Service + description: + - + value: 'A system that provides one or more functions' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/Service' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.software.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.software.yml new file mode 100644 index 00000000..db46b7b2 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.software.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: f775b786-54f1-4a59-ac6f-bb4f9d98b96b + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Software + description: + - + value: 'A computer program in source or compiled form' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/Software' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.sound.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.sound.yml new file mode 100644 index 00000000..53c05ad3 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.sound.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: bd9d194c-2de7-43de-8f5e-df50d8ed2a99 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Sound + description: + - + value: 'A resource primarily intended to be heard' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/Sound' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.still_image.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.still_image.yml new file mode 100644 index 00000000..a9838d03 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.still_image.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 1b9a9398-7742-4815-a1eb-5126f3b28dd4 + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: 'Still Image' + description: + - + value: 'A static visual representation' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/StillImage' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.text.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.text.yml new file mode 100644 index 00000000..dca20421 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/content/taxonomy_term/resource_types.text.yml @@ -0,0 +1,48 @@ +_meta: + version: '1.0' + entity_type: taxonomy_term + uuid: 23038c93-e6e1-41f8-b1de-663bd529f6bd + bundle: resource_types + default_langcode: en +default: + status: + - + value: true + name: + - + value: Text + description: + - + value: 'A resource consisting primarily of words for reading' + format: '' + weight: + - + value: 0 + parent: + - + target_id: 0 + revision_translation_affected: + - + value: true + path: + - + alias: '' + langcode: en + content_translation_source: + - + value: und + content_translation_outdated: + - + value: false + content_translation_uid: + - + target_id: 1 + content_translation_created: + - + value: 1667998710 + field_authority_link: + - + uri: 'http://purl.org/dc/dcmitype/Text' + title: '' + options: { } + source: '' diff --git a/test/rootfs/var/www/drupal/web/modules/custom/sample_core/sample_core.info.yml b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/sample_core.info.yml new file mode 100644 index 00000000..19436524 --- /dev/null +++ b/test/rootfs/var/www/drupal/web/modules/custom/sample_core/sample_core.info.yml @@ -0,0 +1,10 @@ +# This .info.yml files provides the basic information about our module to Drupal +# More: https://www.drupal.org/node/2000204 +name: Sample Core +description: "Required sample content for testing" +type: module +package: Custom +version: 1.0 +core_version_requirement: ^8 || ^9 +dependencies: + - drupal:default_content diff --git a/test/tests/IntegrationTests/.env b/test/tests/IntegrationTests/.env new file mode 100644 index 00000000..a3f0e57b --- /dev/null +++ b/test/tests/IntegrationTests/.env @@ -0,0 +1,3 @@ +# Required for traefik on OSX (inconsistent behavior). +DOCKER_CLIENT_TIMEOUT=120 +COMPOSE_HTTP_TIMEOUT=120 diff --git a/test/tests/IntegrationTests/build.gradle.kts b/test/tests/IntegrationTests/build.gradle.kts new file mode 100644 index 00000000..f63a81cd --- /dev/null +++ b/test/tests/IntegrationTests/build.gradle.kts @@ -0,0 +1,6 @@ +import java.time.Duration.ofMinutes +import tasks.tests.DockerComposeTest + +tasks.register("test") { + timeout.convention(ofMinutes(10)) +} diff --git a/test/tests/IntegrationTests/docker-compose.yml b/test/tests/IntegrationTests/docker-compose.yml new file mode 100644 index 00000000..6fc56d11 --- /dev/null +++ b/test/tests/IntegrationTests/docker-compose.yml @@ -0,0 +1,96 @@ +# file: docker-compose.yml +# +# Tests the following: +# - Site starts. +# - Derivatives get created. +# - Content is index in Solr. +# - Content is index in Fedora. +# - Matomo is installed? +--- +version: "3.8" + +# Common to all services +x-common: &common + restart: "no" + +volumes: + drupal-solr-config: {} + +services: + alpaca: + <<: *common + image: ${ALPACA_IMAGE:-local/alpaca:latest} + environment: + # Increase the throughput of consumption from the queue. + ALPACA_ACTIVEMQ_CONNECTIONS: 100 + ALPACA_ACTIVEMQ_CONSUMERS: 10 + crayfits: + <<: *common + image: ${CRAYFITS_IMAGE:-local/crayfits:latest} + fits: + <<: *common + image: ${FITS_IMAGE:-local/fits:latest} + homarus: + <<: *common + image: ${HOMARUS_IMAGE:-local/homarus:latest} + houdini: + <<: *common + image: ${HOUDINI_IMAGE:-local/houdini:latest} + hypercube: + <<: *common + image: ${HYPERCUBE_IMAGE:-local/hypercube:latest} + mariadb: + <<: *common + image: ${MARIADB_IMAGE:-local/mariadb:latest} + milliner: + <<: *common + image: ${MILLINER_IMAGE:-local/milliner:latest} + activemq: + <<: *common + image: ${ACTIVEMQ_IMAGE:-local/activemq:latest} + blazegraph: + <<: *common + image: ${BLAZEGRAPH_IMAGE:-local/blazegraph:latest} + cantaloupe: + <<: *common + image: ${CANTALOUPE_IMAGE:-local/cantaloupe:latest} + test: + <<: *common + image: ${TEST_IMAGE:-local/test:latest} + environment: + # Keep this in sync with "islandora.drupal.properties" in the helm chart. + DRUPAL_DEFAULT_BROKER_URL: "tcp://activemq:61613" + DRUPAL_DEFAULT_CANTALOUPE_URL: "http://test/cantaloupe/iiif/2" + DRUPAL_DEFAULT_CONFIGDIR: "/var/www/drupal/config/sync" + DRUPAL_DEFAULT_FCREPO_HOST: "fcrepo" + DRUPAL_DEFAULT_FCREPO_PORT: 8080 + DRUPAL_DEFAULT_FCREPO_URL: "http://fcrepo:8080/fcrepo/rest/" + DRUPAL_DEFAULT_INSTALL_EXISTING_CONFIG: "true" + DRUPAL_DEFAULT_MATOMO_URL: "http://test/matomo/" + DRUPAL_DEFAULT_NAME: "Islandora Digital Collections" + DRUPAL_DEFAULT_PROFILE: "minimal" + DRUPAL_DEFAULT_SITE_URL: "test" + DRUPAL_DEFAULT_SOLR_CORE: "default" + DRUPAL_DRUSH_URI: "http://test" # Used by docker/drupal/rootfs/usr/local/share/custom/install.sh + DRUPAL_ENABLE_HTTPS: false + volumes: + - drupal-solr-config:/opt/solr/server/solr/default:ro + - ./test.sh:/test.sh # Test to run. + command: /test.sh # Run test and exit. + fcrepo: + <<: *common + image: ${FCREPO6_IMAGE:-local/fcrepo6:latest} + environment: + FCREPO_ALLOW_EXTERNAL_DEFAULT: "http://default/" + FCREPO_ALLOW_EXTERNAL_DRUPAL: "http://test/" + depends_on: + - activemq + solr: + <<: *common + image: ${SOLR_IMAGE:-local/solr:latest} + volumes: + - type: volume + source: drupal-solr-config + target: /opt/solr/server/solr/default + volume: + nocopy: true diff --git a/test/tests/IntegrationTests/test.sh b/test/tests/IntegrationTests/test.sh new file mode 100755 index 00000000..07894793 --- /dev/null +++ b/test/tests/IntegrationTests/test.sh @@ -0,0 +1,51 @@ +#!/command/with-contenv bash +# shellcheck shell=bash + +set -euo pipefail + +function node_count() { + local count="${1}" + test "$(drush sql-query 'select count(*) from node;')" -eq "${count}" +} + +function media_use_count() { + local name="${1}" + local count="${2}" + TID=$(drush sql-query "select tid from taxonomy_term_field_data where name = '${name}';") + test "$(drush sql-query "select count(*) from media__field_media_use where field_media_use_target_id = $TID;")" -eq "${count}" +} + +function solr_document_count() { + local count="${1}" + test "$(curl -sL 'solr:8983/solr/default/select?q=*:*&rows=0' | jq '.response.numFound')" -eq "${count}" +} + +function main() { + # Tests + echo "Perform Tests" + + echo "Confirm default Nodes were created." + node_count 4 + + echo "Confirm default Media was created." + media_use_count "Original File" 4 + + echo "Confirm FITS exists for each media item" + media_use_count "FITS File" 4 + + echo "Confirm Thumbnails were created." + media_use_count "Thumbnail Image" 3 # Audio does not produce a thumbnail. + + echo "Confirm Service Files were created." + media_use_count "Service File" 2 # One for Image and One for Audio. + + echo "Confirm Extract Text was created." + media_use_count "Extracted Text" 1 + + echo "Confirm Solr documents were created." + solr_document_count 4 + + echo "Confirm Files stored into Fedora." + solr_document_count 4 +} +main diff --git a/tls.yml b/tls.yml new file mode 100644 index 00000000..54084e6f --- /dev/null +++ b/tls.yml @@ -0,0 +1,6 @@ +tls: + stores: + default: + defaultCertificate: + certFile: /etc/ssl/traefik/cert.pem + keyFile: /etc/ssl/traefik/privkey.pem diff --git a/tomcat/.dockerignore b/tomcat/.dockerignore index badf6cb7..94334b24 100644 --- a/tomcat/.dockerignore +++ b/tomcat/.dockerignore @@ -2,4 +2,4 @@ build.gradle.kts Dockerfile README.md tests -tests/**/* \ No newline at end of file +tests/**/* diff --git a/tomcat/Dockerfile b/tomcat/Dockerfile index 0a3b0245..be5e4424 100644 --- a/tomcat/Dockerfile +++ b/tomcat/Dockerfile @@ -1,7 +1,7 @@ -# syntax=docker/dockerfile:1.2.1 +# syntax=docker/dockerfile:1.4.3 ARG repository=local ARG tag=latest -ARG alpine=3.15.0 +ARG alpine=3.16.2 FROM --platform=$BUILDPLATFORM ${repository}/java:${tag} AS download ARG TOMCAT_VERSION="9.0.58" @@ -14,17 +14,16 @@ RUN --mount=type=cache,id=tomcat-downloads,sharing=locked,target=/opt/downloads install-apache-service.sh \ --name tomcat \ --file "${DOWNLOAD_CACHE_DIRECTORY}/${TOMCAT_FILE}" \ - webapps/docs webapps/examples + webapps/docs webapps/examples \ + && \ + mkdir /data && \ + chown tomcat:tomcat /data FROM alpine:${alpine} AS cache FROM ${repository}/java:${tag} EXPOSE 8080 -COPY --from=download /etc/group /etc/group -COPY --from=download /etc/passwd /etc/passwd -COPY --from=download /etc/shadow /etc/shadow - ENV \ TOMCAT_ADMIN_NAME=admin \ TOMCAT_ADMIN_PASSWORD=password \ @@ -35,9 +34,14 @@ ENV \ TOMCAT_LOG_LEVEL=INFO \ TOMCAT_MANAGER_REMOTE_ADDRESS_VALVE=^.*$ -COPY --from=download /opt /opt +WORKDIR /opt/tomcat + +COPY --link --from=download /etc/group /etc/group +COPY --link --from=download /etc/passwd /etc/passwd +COPY --link --from=download /etc/shadow /etc/shadow +COPY --link --from=download /data /data +COPY --link --from=download /opt/tomcat /opt/tomcat -COPY rootfs / -COPY --chown=tomcat:tomcat rootfs/opt/tomcat /opt/tomcat +COPY --link rootfs / -WORKDIR /opt/tomcat \ No newline at end of file +RUN chown -R tomcat:tomcat /opt/tomcat diff --git a/tomcat/rootfs/etc/confd/templates/logging.properties.tmpl b/tomcat/rootfs/etc/confd/templates/logging.properties.tmpl index dafd61de..b3ef0457 100644 --- a/tomcat/rootfs/etc/confd/templates/logging.properties.tmpl +++ b/tomcat/rootfs/etc/confd/templates/logging.properties.tmpl @@ -37,4 +37,4 @@ java.util.logging.ConsoleHandler.encoding = UTF-8 #org.apache.coyote.http2.level = FINE # To see debug messages for WebSocket handling, uncomment the following line: -#org.apache.tomcat.websocket.level = FINE \ No newline at end of file +#org.apache.tomcat.websocket.level = FINE diff --git a/tomcat/rootfs/etc/cont-init.d/00-container-environment-01-override-tomcat.sh b/tomcat/rootfs/etc/cont-init.d/00-container-environment-01-override-tomcat.sh deleted file mode 100755 index d1788e3e..00000000 --- a/tomcat/rootfs/etc/cont-init.d/00-container-environment-01-override-tomcat.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash -set -e - -# Allow TOMCAT_LOG_LEVEL to be overriden by FEDORA_TOMCAT_LOG_LEVEL, etc. -/usr/local/bin/confd-override-environment.sh --prefix TOMCAT diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/environment-override-tomcat b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/confd-oneshot/dependencies.d/environment-override-tomcat new file mode 100644 index 00000000..e69de29b diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/dependencies.d/container-environment b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/dependencies.d/container-environment new file mode 100644 index 00000000..e69de29b diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/type b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/type new file mode 100644 index 00000000..bdd22a18 --- /dev/null +++ b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/type @@ -0,0 +1 @@ +oneshot diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/up b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/up new file mode 100755 index 00000000..451b375c --- /dev/null +++ b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/environment-override-tomcat/up @@ -0,0 +1,2 @@ +# Allow TOMCAT_LOG_LEVEL to be overridden by FEDORA_TOMCAT_LOG_LEVEL, etc. +/usr/local/bin/confd-override-environment.sh --prefix TOMCAT diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/dependencies.d/ready b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/dependencies.d/ready new file mode 100644 index 00000000..e69de29b diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/finish b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/finish new file mode 100755 index 00000000..901a742c --- /dev/null +++ b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/finish @@ -0,0 +1,6 @@ +#!/command/with-contenv bash +# shellcheck shell=bash +set -e + +# shellcheck disable=SC1091 +source /usr/local/share/s6/finish diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/run b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/run new file mode 100755 index 00000000..1ef17ba7 --- /dev/null +++ b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/run @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -e + +# Many services deployed into tomcat need somewhere to write data, by convention +# we make this /data. +# +# When bind mounting we need to ensure that we +# actually can write to the folder. +chown tomcat:tomcat /data + +exec with-contenv s6-setuidgid tomcat /opt/tomcat/bin/catalina.sh run diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/type b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/tomcat/type @@ -0,0 +1 @@ +longrun diff --git a/tomcat/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/tomcat b/tomcat/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/tomcat new file mode 100644 index 00000000..e69de29b diff --git a/tomcat/rootfs/etc/services.d/tomcat/finish b/tomcat/rootfs/etc/services.d/tomcat/finish deleted file mode 100644 index 964ffe33..00000000 --- a/tomcat/rootfs/etc/services.d/tomcat/finish +++ /dev/null @@ -1,4 +0,0 @@ -#!/usr/bin/env bash -set -e - -source /usr/local/share/s6/finish diff --git a/tomcat/rootfs/etc/services.d/tomcat/run b/tomcat/rootfs/etc/services.d/tomcat/run deleted file mode 100644 index 3145cc78..00000000 --- a/tomcat/rootfs/etc/services.d/tomcat/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env bash -set -e -exec with-contenv s6-setuidgid tomcat /opt/tomcat/bin/catalina.sh run diff --git a/tomcat/rootfs/opt/tomcat/bin/setenv.sh b/tomcat/rootfs/opt/tomcat/bin/setenv.sh index 7220009f..c69a73c5 100755 --- a/tomcat/rootfs/opt/tomcat/bin/setenv.sh +++ b/tomcat/rootfs/opt/tomcat/bin/setenv.sh @@ -1,3 +1,4 @@ -#!/usr/bin/with-contenv bash +#!/command/with-contenv bash +# shellcheck shell=bash export JAVA_OPTS="${TOMCAT_JAVA_OPTS}" export CATALINA_OPTS="${TOMCAT_CATALINA_OPTS}"