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}"