diff --git a/.dockerignore b/.dockerignore
index 8ca4438f..baf1aa6c 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -1,4 +1,2 @@
.git
-phpinfo.php
local.env
-Vagrantfile
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
new file mode 100644
index 00000000..9d4595d5
--- /dev/null
+++ b/.github/workflows/deploy.yml
@@ -0,0 +1,96 @@
+name: BuildEngine v2 Deploy to AWS
+
+on:
+ workflow_call:
+ inputs:
+ BUILD_NUMBER:
+ type: 'string'
+ required: true
+ ECS_CLUSTER:
+ type: 'string'
+ required: true
+ DOCKER_TAG:
+ type: 'string'
+ required: true
+ BUILD_ENGINE_TAG:
+ type: 'string'
+ required: true
+ OTEL_TAG:
+ type: 'string'
+ required: true
+ secrets:
+ AWS_ACCESS_KEY_ID:
+ required: true
+ AWS_SECRET_ACCESS_KEY:
+ required: true
+ AWS_DEFAULT_REGION:
+ required: true
+ AWS_ECR_ACCOUNT:
+ required: true
+
+jobs:
+ deploy-to-ecr:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Install dependencies
+ run: |
+ echo "Installing ecs-deploy script..."
+ mkdir -p $HOME/.local/bin
+ curl -o $HOME/.local/bin/ecs-deploy https://raw.githubusercontent.com/silinternational/ecs-deploy/master/ecs-deploy
+ chmod +x $HOME/.local/bin/ecs-deploy
+
+ - name: Login to GitHub Container Registry
+ uses: docker/login-action@v2
+ with:
+ registry: ghcr.io
+ username: ${{ github.repository_owner }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Pull from GHCR
+ run: |
+ docker pull ghcr.io/${{ inputs.BUILD_ENGINE_TAG }}
+ docker pull ghcr.io/${{ inputs.OTEL_TAG }}
+
+ - name: Configure AWS credentials
+ id: aws
+ uses: aws-actions/configure-aws-credentials@v4
+ with:
+ aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
+
+ - name: Login to AWS ECR
+ id: ecr
+ uses: aws-actions/amazon-ecr-login@v2
+ with:
+ registries: ${{ secrets.AWS_ECR_ACCOUNT }}
+
+ - name: Build deployment target variables
+ id: vars
+ run: |
+ echo "Setting up deployment variables..."
+ echo "IMAGE_URL=${{ steps.ecr.outputs.registry }}/appbuilder-buildengine-api" >> $GITHUB_OUTPUT
+ echo "OTEL_URL=${{ steps.ecr.outputs.registry }}/appbuilder-buildengine-otel" >> $GITHUB_OUTPUT
+
+ - name: Push to AWS ECR
+ run: |
+ docker tag ${{ inputs.BUILD_ENGINE_TAG}} "${{ steps.vars.outputs.IMAGE_URL }}:${{ inputs.DOCKER_TAG }}"
+ docker tag ${{ inputs.BUILD_ENGINE_TAG}} "${{ steps.vars.outputs.IMAGE_URL }}:${{ inputs.BUILD_NUMBER }}"
+ docker tag ${{ inputs.OTEL_TAG}} "${{ steps.vars.outputs.OTEL_URL }}:${{ inputs.DOCKER_TAG }}"
+ docker tag ${{ inputs.OTEL_TAG}} "${{ steps.vars.outputs.OTEL_URL }}:${{ inputs.BUILD_NUMBER }}"
+ echo "Docker images tagged as ${{ inputs.DOCKER_TAG }} and ${{ inputs.BUILD_NUMBER }}"
+
+ docker push "${{ steps.vars.outputs.IMAGE_URL }}:${{ inputs.DOCKER_TAG }}"
+ docker push "${{ steps.vars.outputs.IMAGE_URL }}:${{ inputs.BUILD_NUMBER }}"
+ echo "Docker images pushed successfully to ${{ steps.vars.outputs.IMAGE_URL }}"
+
+ docker push "${{ steps.vars.outputs.OTEL_URL }}:${{ inputs.DOCKER_TAG }}"
+ docker push "${{ steps.vars.outputs.OTEL_URL }}:${{ inputs.BUILD_NUMBER }}"
+ echo "Docker images pushed successfully to ${{ steps.vars.outputs.OTEL_URL }}"
+
+ - name: Deploy to ECS
+ if: ${{ inputs.ECS_CLUSTER != 'none' }}
+ run: |
+ echo "Deploying ${{ inputs.BUILD_NUMBER }} to ${{ inputs.ECS_CLUSTER }}"
+ # Deploy to ECS cluster with service name 'build-engine', setting all images to the latest tag
+ ecs-deploy -c ${{ inputs.ECS_CLUSTER }} -n buildengine -i ignore -to ${{ inputs.BUILD_NUMBER }} --max-definitions 20 --timeout 600
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index e715feb0..f20c1f40 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,61 +1,37 @@
-name: BuildEngine CI
+name: BuildEngine v2 Test and Deploy
on:
push:
- branches: [master, develop, github-builds]
- pull_request:
+ branches:
+ - master
+ - develop
workflow_dispatch:
inputs:
- logLevel:
- description: "Log Level"
- required: true
- default: "warning"
tags:
description: "Tags"
- schedule:
- - cron: "0 0 * * 0" # weekly
-
-env:
- BUILD_TAG: "build-engine-api:${{ github.run_number }}"
- BUILD_NUMBER: ${{ github.run_number }}
jobs:
- build:
+ check:
+ uses: "./.github/workflows/setup.yml"
+ secrets:
+ AUTH0_SECRET: ${{ secrets.AUTH0_SECRET }}
+ push-to-ghcr:
runs-on: ubuntu-latest
-
+ needs: check
+ outputs:
+ DOCKER_TAG: ${{ steps.branch.outputs.DOCKER_TAG }}
+ ECS_CLUSTER: ${{ steps.branch.outputs.ECS_CLUSTER }}
+ BUILD_ENGINE_TAG: ${{ steps.push.outputs.BUILD_ENGINE_TAG }}
+ OTEL_TAG: ${{ steps.push.outputs.OTEL_TAG }}
+ if: ${{ success() && (github.ref == 'refs/heads/develop' || github.ref == 'refs/heads/master') }}
steps:
- - uses: actions/checkout@v3
-
- - name: Get environment info
- run: |
- echo Docker version
- docker --version
- echo
- echo Env
- env
-
- - name: Setup local.env
- run: |
- echo "COMPOSER_AUTH={\"github-oauth\":{\"github.com\":\""${{ secrets.GITHUB_TOKEN }}\""}}" > local.env
-
- - name: Install dependencies
- run: |
- echo "Installing ecs-deploy script..."
- mkdir -p $HOME/.local/bin
- curl -o $HOME/.local/bin/ecs-deploy https://raw.githubusercontent.com/silinternational/ecs-deploy/master/ecs-deploy
- chmod +x $HOME/.local/bin/ecs-deploy
-
- - name: Tests
- run: |
- make test
+ - name: Checkout
+ uses: actions/checkout@v5
- - name: Build docker image
- uses: docker/build-push-action@v4
+ - name: Setup node
+ uses: actions/setup-node@v5
with:
- push: false
- tags: ${{ env.BUILD_TAG }}
- context: .
- load: true
+ node-version: 24
- name: Determine branch tag
id: branch
@@ -63,8 +39,20 @@ jobs:
if [[ "${GITHUB_HEAD_REF}" != "" ]]; then BRANCH="${GITHUB_HEAD_REF}"; else BRANCH="${GITHUB_REF_NAME}"; fi
case $BRANCH in develop) DOCKER_TAG="staging" ;; master) DOCKER_TAG="production" ;; *) DOCKER_TAG="${BRANCH//\//-}" ;; esac
case $BRANCH in develop) ECS_CLUSTER="scriptoria-stg";; master) ECS_CLUSTER="scriptoria-prd" ;; *) ECS_CLUSTER="none" ;; esac
- echo "DockerTag=${DOCKER_TAG}" >> $GITHUB_OUTPUT
- echo "EcsCluster=${ECS_CLUSTER}" >> $GITHUB_OUTPUT
+ echo "DOCKER_TAG=${DOCKER_TAG}" >> $GITHUB_OUTPUT
+ echo "ECS_CLUSTER=${ECS_CLUSTER}" >> $GITHUB_OUTPUT
+
+ - name: Build Docker images
+ id: build
+ run: |
+ BUILD_ENGINE_BUILD_TAG="build-engine-api:${{ github.run_number }}"
+ OTEL_BUILD_TAG="build-engine-otel:${{ github.run_number }}"
+ echo "Building Docker images..."
+ docker build -t $BUILD_ENGINE_BUILD_TAG .
+ docker build -t $OTEL_BUILD_TAG -f Dockerfile.otel .
+ echo "Docker images built successfully."
+ echo "BUILD_ENGINE_BUILD_TAG=${BUILD_ENGINE_BUILD_TAG}" >> $GITHUB_OUTPUT
+ echo "OTEL_BUILD_TAG=${OTEL_BUILD_TAG}" >> $GITHUB_OUTPUT
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
@@ -74,111 +62,60 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
- name: Push to GHCR
+ id: push
run: |
- docker tag ${{ env.BUILD_TAG }} ghcr.io/sillsdev/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}
- docker push ghcr.io/sillsdev/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}
-
- - name: Configure AWS credentials (SIL)
- id: aws_sil
- uses: aws-actions/configure-aws-credentials@v4
- with:
- aws-access-key-id: ${{ secrets.SIL__AWS_ACCESS_KEY_ID }}
- aws-secret-access-key: ${{ secrets.SIL__AWS_SECRET_ACCESS_KEY }}
- aws-region: ${{ secrets.SIL__AWS_DEFAULT_REGION }}
-
- - name: Login to AWS ECR (SIL)
- id: ecr_sil
- uses: aws-actions/amazon-ecr-login@v2
- with:
- registries: ${{ secrets.SIL__AWS_ECR_ACCOUNT }}
-
- - name: Push to AWS ECR (SIL)
- run: |
- docker tag ${{ env.BUILD_TAG }} "${{ steps.ecr_sil.outputs.registry }}/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}"
- docker tag ${{ env.BUILD_TAG }} "${{ steps.ecr_sil.outputs.registry }}/appbuilder-buildengine-api:${{ env.BUILD_NUMBER }}"
- docker push "${{ steps.ecr_sil.outputs.registry }}/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}"
- docker push "${{ steps.ecr_sil.outputs.registry }}/appbuilder-buildengine-api:${{ env.BUILD_NUMBER }}"
-
- - name: Deploy to ECS (SIL)
- if: ${{ steps.branch.outputs.EcsCluster != 'none' }}
- run: |
- echo "Deploying ${{ env.BUILD_NUMBER }} to ${{ steps.branch.outputs.EcsCluster }}"
- # Deploy to ECS cluster with service name 'build-engine', setting all images to the latest tag
- ecs-deploy -c ${{ steps.branch.outputs.EcsCluster }} -n buildengine -i ignore -to ${{ env.BUILD_NUMBER }} --max-definitions 20 --timeout 600
- echo "Deployment initiated successfully."
-
- - name: Configure AWS credentials (FCBH)
- if: false # Temporarily disabled - remove this line to re-enable
- # if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-prd' }} # Restore this when re-enabling
- id: aws_fcbh
- uses: aws-actions/configure-aws-credentials@v4
- with:
- aws-access-key-id: ${{ secrets.FCBH__AWS_ACCESS_KEY_ID }}
- aws-secret-access-key: ${{ secrets.FCBH__AWS_SECRET_ACCESS_KEY }}
- aws-region: ${{ secrets.FCBH__AWS_DEFAULT_REGION }}
-
- - name: Login to AWS ECR (FCBH)
- if: false # Temporarily disabled - remove this line to re-enable
- # if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-prd' }} # Restore this when re-enabling
- id: ecr_fcbh
- uses: aws-actions/amazon-ecr-login@v2
- with:
- registries: ${{ secrets.FCBH__AWS_ECR_ACCOUNT }}
-
- - name: Push to AWS ECR (FCBH)
- if: false # Temporarily disabled - remove this line to re-enable
- # if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-prd' }} # Restore this when re-enabling
- run: |
- docker tag ${{ env.BUILD_TAG }} "${{ steps.ecr_fcbh.outputs.registry }}/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}"
- docker tag ${{ env.BUILD_TAG }} "${{ steps.ecr_fcbh.outputs.registry }}/appbuilder-buildengine-api:${{ env.BUILD_NUMBER }}"
- docker push "${{ steps.ecr_fcbh.outputs.registry }}/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}"
- docker push "${{ steps.ecr_fcbh.outputs.registry }}/appbuilder-buildengine-api:${{ env.BUILD_NUMBER }}"
-
- - name: Deploy to ECS (FCBH)
- if: false # Temporarily disabled - remove this line to re-enable
- # if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-prd' }} # Restore this when re-enabling
- run: |
- echo "Deploying ${{ env.BUILD_NUMBER }} to ${{ steps.branch.outputs.EcsCluster }}"
- # Deploy to ECS cluster with service name 'build-engine', setting all images to the latest tag
- ecs-deploy -c ${{ steps.branch.outputs.EcsCluster }} -n buildengine -i ignore -to ${{ env.BUILD_NUMBER }} --max-definitions 20 --timeout 600
- echo "Deployment initiated successfully."
-
- - name: Configure AWS credentials (LU)
- if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-stg' }}
- id: aws_lu
- uses: aws-actions/configure-aws-credentials@v4
- with:
- aws-access-key-id: ${{ secrets.LU__AWS_ACCESS_KEY_ID }}
- aws-secret-access-key: ${{ secrets.LU__AWS_SECRET_ACCESS_KEY }}
- aws-region: ${{ secrets.LU__AWS_DEFAULT_REGION }}
-
- - name: Login to AWS ECR (LU)
- if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-stg' }}
- id: ecr_lu
- uses: aws-actions/amazon-ecr-login@v2
- with:
- registries: ${{ secrets.LU__AWS_ECR_ACCOUNT }}
-
- - name: Push to AWS ECR (LU)
- if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-stg' }}
- run: |
- docker tag ${{ env.BUILD_TAG }} "${{ steps.ecr_lu.outputs.registry }}/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}"
- docker tag ${{ env.BUILD_TAG }} "${{ steps.ecr_lu.outputs.registry }}/appbuilder-buildengine-api:${{ env.BUILD_NUMBER }}"
- docker push "${{ steps.ecr_lu.outputs.registry }}/appbuilder-buildengine-api:${{ steps.branch.outputs.DockerTag }}"
- docker push "${{ steps.ecr_lu.outputs.registry }}/appbuilder-buildengine-api:${{ env.BUILD_NUMBER }}"
-
- - name: Deploy to ECS (LU)
- if: ${{ steps.branch.outputs.EcsCluster == 'scriptoria-stg' }}
- run: |
- echo "Deploying ${{ env.BUILD_NUMBER }} to ${{ steps.branch.outputs.EcsCluster }}"
- # Deploy to ECS cluster with service name 'build-engine', setting all images to the latest tag
- ecs-deploy -c ${{ steps.branch.outputs.EcsCluster }} -n buildengine -i ignore -to ${{ env.BUILD_NUMBER }} --max-definitions 20 --timeout 600
- echo "Deployment initiated successfully."
-
- - name: Clean up older packages
- uses: actions/delete-package-versions@v4
- with:
- package-name: "appbuilder-buildengine-api"
- package-type: "container"
- min-versions-to-keep: 6
- delete-only-untagged-versions: "true"
+ BUILD_ENGINE_TAG="sillsdev/appbuilder-buildengine-api:${{ steps.branch.outputs.DOCKER_TAG }}"
+ docker tag ${{ steps.build.outputs.BUILD_ENGINE_BUILD_TAG }} ghcr.io/${BUILD_ENGINE_TAG}
+ docker push ghcr.io/${BUILD_ENGINE_TAG}
+ echo "BUILD_ENGINE_TAG=${BUILD_ENGINE_TAG}" >> $GITHUB_OUTPUT
+
+ OTEL_TAG="sillsdev/appbuilder-buildengine-otel:${{ steps.branch.outputs.DOCKER_TAG }}"
+ docker tag ${{ steps.build.outputs.OTEL_BUILD_TAG }} ghcr.io/${OTEL_TAG}
+ docker push ghcr.io/${OTEL_TAG}
+ echo "OTEL_TAG=${OTEL_TAG}" >> $GITHUB_OUTPUT
+
+ deploy-sil:
+ needs: push-to-ghcr
+ uses: "./.github/workflows/deploy.yml"
+ with:
+ BUILD_NUMBER: ${{ github.run_number }}
+ ECS_CLUSTER: ${{ needs.push-to-ghcr.outputs.ECS_CLUSTER }}
+ DOCKER_TAG: ${{ needs.push-to-ghcr.outputs.DOCKER_TAG }}
+ BUILD_ENGINE_TAG: ${{ needs.push-to-ghcr.outputs.BUILD_ENGINE_TAG }}
+ OTEL_TAG: ${{ needs.push-to-ghcr.outputs.OTEL_TAG }}
+ secrets:
+ AWS_ACCESS_KEY_ID: ${{ secrets.SIL__AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.SIL__AWS_SECRET_ACCESS_KEY }}
+ AWS_DEFAULT_REGION: ${{ secrets.SIL__AWS_DEFAULT_REGION }}
+ AWS_ECR_ACCOUNT: ${{ secrets.SIL__AWS_ECR_ACCOUNT }}
+ deploy-fcbh:
+ needs: push-to-ghcr
+ if: false # Temporarily disabled - remove this line to re-enable
+ # if: ${{ needs.push-to-ghcr.outputs.ECS_CLUSTER == 'scriptoria-prd' }} # Restore this when re-enabling
+ uses: "./.github/workflows/deploy.yml"
+ with:
+ BUILD_NUMBER: ${{ github.run_number }}
+ ECS_CLUSTER: ${{ needs.push-to-ghcr.outputs.ECS_CLUSTER }}
+ DOCKER_TAG: ${{ needs.push-to-ghcr.outputs.DOCKER_TAG }}
+ BUILD_ENGINE_TAG: ${{ needs.push-to-ghcr.outputs.BUILD_ENGINE_TAG }}
+ OTEL_TAG: ${{ needs.push-to-ghcr.outputs.OTEL_TAG }}
+ secrets:
+ AWS_ACCESS_KEY_ID: ${{ secrets.FCBH__AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.FCBH__AWS_SECRET_ACCESS_KEY }}
+ AWS_DEFAULT_REGION: ${{ secrets.FCBH__AWS_DEFAULT_REGION }}
+ AWS_ECR_ACCOUNT: ${{ secrets.FCBH__AWS_ECR_ACCOUNT }}
+ deploy-lu:
+ needs: push-to-ghcr
+ if: ${{ needs.push-to-ghcr.outputs.ECS_CLUSTER == 'scriptoria-stg' }}
+ uses: "./.github/workflows/deploy.yml"
+ with:
+ BUILD_NUMBER: ${{ github.run_number }}
+ ECS_CLUSTER: ${{ needs.push-to-ghcr.outputs.ECS_CLUSTER }}
+ DOCKER_TAG: ${{ needs.push-to-ghcr.outputs.DOCKER_TAG }}
+ BUILD_ENGINE_TAG: ${{ needs.push-to-ghcr.outputs.BUILD_ENGINE_TAG }}
+ OTEL_TAG: ${{ needs.push-to-ghcr.outputs.OTEL_TAG }}
+ secrets:
+ AWS_ACCESS_KEY_ID: ${{ secrets.LU__AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.LU__AWS_SECRET_ACCESS_KEY }}
+ AWS_DEFAULT_REGION: ${{ secrets.LU__AWS_DEFAULT_REGION }}
+ AWS_ECR_ACCOUNT: ${{ secrets.LU__AWS_ECR_ACCOUNT }}
diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
new file mode 100644
index 00000000..92d27678
--- /dev/null
+++ b/.github/workflows/pr.yml
@@ -0,0 +1,8 @@
+name: Test and Lint
+
+on:
+ pull_request:
+
+jobs:
+ checks:
+ uses: ./.github/workflows/setup.yml
diff --git a/.github/workflows/setup.yml b/.github/workflows/setup.yml
new file mode 100644
index 00000000..83c0bdae
--- /dev/null
+++ b/.github/workflows/setup.yml
@@ -0,0 +1,149 @@
+on:
+ workflow_call:
+ secrets:
+ AUTH0_SECRET:
+ required: false
+
+env:
+ APP_ENV: ci
+
+jobs:
+ # Install dependencies once and cache for other jobs
+ setup:
+ runs-on: ubuntu-latest
+ outputs:
+ BACKUP_AUTH0_SECRET: ${{ steps.set-vars.outputs.BACKUP_AUTH0_SECRET }}
+ steps:
+ - uses: actions/checkout@v5
+ - uses: actions/setup-node@v5
+ with:
+ node-version: 24
+ cache: 'npm'
+ cache-dependency-path: package-lock.json
+
+ - name: Get environment info
+ id: set-vars
+ run: |
+ echo Node version
+ node --version
+ npm --version
+ echo
+ echo Docker version
+ docker --version
+ BACKUP_AUTH0_SECRET=$(hexdump -vn32 -e'8/4 "%08x" 1 "\n"' /dev/urandom)
+ echo "BACKUP_AUTH0_SECRET=${BACKUP_AUTH0_SECRET}" >> $GITHUB_OUTPUT
+
+ - name: Restore node_modules cache
+ id: restore-cache
+ uses: actions/cache@v4
+ with:
+ path: node_modules
+ key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json', 'src/lib/prisma/schema.prisma') }}
+
+ - name: Install dependencies
+ if: steps.restore-cache.outputs.cache-hit != 'true'
+ run: |
+ echo "Installing dependencies..."
+ npm ci
+
+ - name: Cache node_modules
+ if: steps.restore-cache.outputs.cache-hit != 'true'
+ uses: actions/cache@v4
+ with:
+ path: node_modules
+ key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json', 'src/lib/prisma/schema.prisma') }}
+
+ # Type checking and linting
+ typecheck-lint:
+ runs-on: ubuntu-latest
+ needs: setup
+ env:
+ # Required for type checking. Leaving empty for now until needed for testing?
+ BUILD_ENGINE_ARTIFACTS_BUCKET: ""
+ AWS_ACCESS_KEY_ID: ""
+ AWS_SECRET_ACCESS_KEY: ""
+ BUILD_ENGINE_SECRETS_BUCKET: ""
+ SCRIPTURE_EARTH_KEY: ""
+ ORIGIN: ""
+ API_ACCESS_TOKEN: ""
+ steps:
+ - uses: actions/checkout@v5
+ - uses: actions/setup-node@v5
+ with:
+ node-version: 24
+
+ - name: Restore node_modules cache
+ uses: actions/cache@v4
+ with:
+ path: node_modules
+ key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json', 'src/lib/prisma/schema.prisma') }}
+
+ - name: Run svelte-check
+ run: |
+ echo "Running svelte-check..."
+ npm run check
+
+ - name: Run lint
+ run: |
+ echo "Running lint..."
+ npm run lint
+
+ # Build and run a smoke test
+ build-and-test:
+ runs-on: ubuntu-latest
+ needs: setup
+ env:
+ CI: true
+ AUTH0_SECRET: ${{ secrets.AUTH0_SECRET || needs.setup.outputs.BACKUP_AUTH0_SECRET }}
+ steps:
+ - uses: actions/checkout@v5
+ - uses: actions/setup-node@v5
+ with:
+ node-version: 24
+
+ - name: Restore node_modules cache
+ uses: actions/cache@v4
+ with:
+ path: node_modules
+ key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json', 'src/lib/prisma/schema.prisma') }}
+
+ - name: Build and seed database
+ run: |
+ echo "Building .env file..."
+ echo "AUTH0_SECRET=" >> .env
+ echo "Building the docker project..."
+ mkdir -p command-output
+ (./run ci build > command-output/build-output.txt 2>&1 || echo $? > command-output/build-exit-code.txt) &
+ echo "Beginning pull of images"
+ ./run ci pull valkey > /dev/null &
+ echo "Starting database..."
+ ./run ci up -d db
+ sleep 1
+ echo "Resetting the database..."
+ npx prisma migrate reset -f --skip-seed --skip-generate
+ echo "Waiting for build to finish..."
+ wait
+ if [ -f command-output/build-exit-code.txt ]; then
+ BUILD_EXIT_CODE=$(cat command-output/build-exit-code.txt)
+ echo "Build failed with exit code $BUILD_EXIT_CODE"
+ cat command-output/build-output.txt
+ exit $BUILD_EXIT_CODE
+ fi
+ echo "Build completed."
+ env:
+ DATABASE_URL: 'postgresql://db-user:1234@localhost:5432/dev-buildengine?schema=public'
+
+ - name: Start docker-compose services
+ run: |
+ echo "Starting docker-compose services..."
+ ./run ci up -d
+
+ - name: Run tests
+ run: |
+ # Is the port open
+ sleep 1
+ nc -zv localhost 8443 || {
+ echo "Port 8443 is not open"
+ ./run ci logs build-engine
+ exit 1
+ }
diff --git a/.gitignore b/.gitignore
index e15aa943..dca0a413 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+node_modules
+
# Vagrant folder
.vagrant/
@@ -6,9 +8,31 @@ local.env
*.aes
aws.env
+# Output
+.output
+.vercel
+.netlify
+.wrangler
+/.svelte-kit
+/out/build
+
# IDE project files
.idea/
nbproject/
+# OS
+.DS_Store
+Thumbs.db
+
#yii runtime stuff
application/runtime/
+
+# Env
+.env
+.env.*
+!.env.example
+!.env.test
+
+# Vite
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 00000000..b6f27f13
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+engine-strict=true
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 00000000..e0d17d4b
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,19 @@
+.DS_Store
+node_modules
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+/out
+*.js
+
+# Package Managers
+package-lock.json
+pnpm-lock.yaml
+yarn.lock
+bun.lock
+bun.lockb
+
+# Miscellaneous
+/static/
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 00000000..b13673fd
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,10 @@
+{
+ "useTabs": false,
+ "tabWidth": 2,
+ "singleQuote": true,
+ "trailingComma": "none",
+ "printWidth": 100,
+ "plugins": ["prettier-plugin-svelte"],
+ "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }],
+ "htmlWhitespaceSensitivity": "ignore"
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000..a0473ae5
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,7 @@
+{
+ "svelte.plugin.css.diagnostics.enable": false,
+ "editor.codeActionsOnSave": {
+ "source.fixAll.eslint": "always"
+ },
+ "typescript.preferences.preferTypeOnlyAutoImports": false
+}
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index cf186c40..eedd61a3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,46 +1,51 @@
-FROM silintl/php7:7.4
-LABEL maintainer="Chris Hubbard
- The above error occurred while the Web server was processing your request.
-
- Please contact us if you think this is a server error. Thank you.
- You have successfully created your Yii-powered application. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
- dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
- ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
- fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
- dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
- ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
- fugiat nulla pariatur. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et
- dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip
- ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu
- fugiat nulla pariatur. Please fill out the following fields to login:
- This is a test message you have received as a result of someone running the
- cron/test-emails action. This is a test URL:
- =$crashPlanUrl?>
- This email can be ignored.
- Hello = Html::encode($user->username) ?>, Follow the link below to reset your password: = Html::a(Html::encode($resetLink), $resetLink) ?>= Html::encode($this->title) ?>
-
- Congratulations!
-
- Heading
-
- Heading
-
- Heading
-
- = Html::encode($this->title) ?>
-
-
".PHP_EOL;
- $body .= "Activity: ".$job->operation."
".PHP_EOL;
- $body .= "Failure Count: ".$job->attempt_count."
".PHP_EOL;
- $body .= "Failed Since: ".$job->created." GMT
".PHP_EOL;
- $body .= "Exception: ".$e->getMessage();
- $email = new EmailQueue();
- $email->to = $to;
- $email->subject = $subject;
- $email->html_body = $body;
- try{
- $email->save();
- } catch (\Exception $ex){
- \Yii::error('cron=operation-queue EmailAlertError=OperationQueue entry failed more than limit message='.$body,'cron');
- }
- }
-
- throw $e;
- }
- /**
- * Processing step complete, delete queue entry
- */
- $job->delete();
-
- return true;
- }
- /**
- * Calculate delay factor based on number of attempts and return
- * as datetime based on time provided (optional)
- * @param int $attempts
- * @param int|bool $time
- * @param int $maxAttempts
- * @param int $maxDelay
- * @return int
- */
- public static function getNextTryTime($attempts, $time, $maxAttempts, $maxDelay)
- {
- $time = $time ?: time();
- if($attempts > $maxAttempts){
- \Yii::warning("OperationQueue: Have been trying operation for over 1 week", "application");
- return $time * 2; // set to way in the future so it won't try again
- }
- $delay = (int) pow($attempts, 3);
- if($delay > $maxDelay){
- $delay = $maxDelay;
- }
- return $time + ($delay * 60);
- }
-}
diff --git a/application/common/models/OperationQueueBase.php b/application/common/models/OperationQueueBase.php
deleted file mode 100644
index 2df82392..00000000
--- a/application/common/models/OperationQueueBase.php
+++ /dev/null
@@ -1,65 +0,0 @@
- 255],
- [['operation_parms', 'last_error'], 'string', 'max' => 2048],
- ];
- }
-
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => Yii::t('app', 'ID'),
- 'operation' => Yii::t('app', 'Operation'),
- 'operation_object_id' => Yii::t('app', 'Operation Object ID'),
- 'operation_parms' => Yii::t('app', 'Operation Parms'),
- 'attempt_count' => Yii::t('app', 'Attempt Count'),
- 'last_attempt' => Yii::t('app', 'Last Attempt'),
- 'try_after' => Yii::t('app', 'Try After'),
- 'start_time' => Yii::t('app', 'Start Time'),
- 'last_error' => Yii::t('app', 'Last Error'),
- 'created' => Yii::t('app', 'Created'),
- 'updated' => Yii::t('app', 'Updated'),
- ];
- }
-}
diff --git a/application/common/models/OriginalUser.php b/application/common/models/OriginalUser.php
deleted file mode 100644
index d51d7ec8..00000000
--- a/application/common/models/OriginalUser.php
+++ /dev/null
@@ -1,188 +0,0 @@
- self::STATUS_ACTIVE],
- ['status', 'in', 'range' => [self::STATUS_ACTIVE, self::STATUS_DELETED]],
- ];
- }
-
- /**
- * @inheritdoc
- */
- public static function findIdentity($id)
- {
- return static::findOne(['id' => $id, 'status' => self::STATUS_ACTIVE]);
- }
-
- /**
- * @inheritdoc
- */
- public static function findIdentityByAccessToken($token, $type = null)
- {
- throw new NotSupportedException('"findIdentityByAccessToken" is not implemented.');
- }
-
- /**
- * Finds user by username
- *
- * @param string $username
- * @return static|null
- */
- public static function findByUsername($username)
- {
- return static::findOne(['username' => $username, 'status' => self::STATUS_ACTIVE]);
- }
-
- /**
- * Finds user by password reset token
- *
- * @param string $token password reset token
- * @return static|null
- */
- public static function findByPasswordResetToken($token)
- {
- if (!static::isPasswordResetTokenValid($token)) {
- return null;
- }
-
- return static::findOne([
- 'password_reset_token' => $token,
- 'status' => self::STATUS_ACTIVE,
- ]);
- }
-
- /**
- * Finds out if password reset token is valid
- *
- * @param string $token password reset token
- * @return boolean
- */
- public static function isPasswordResetTokenValid($token)
- {
- if (empty($token)) {
- return false;
- }
- $expire = Yii::$app->params['user.passwordResetTokenExpire'];
- $parts = explode('_', $token);
- $timestamp = (int) end($parts);
- return $timestamp + $expire >= time();
- }
-
- /**
- * @inheritdoc
- */
- public function getId()
- {
- return $this->getPrimaryKey();
- }
-
- /**
- * @inheritdoc
- */
- public function getAuthKey()
- {
- return $this->auth_key;
- }
-
- /**
- * @inheritdoc
- */
- public function validateAuthKey($authKey)
- {
- return $this->getAuthKey() === $authKey;
- }
-
- /**
- * Validates password
- *
- * @param string $password password to validate
- * @return boolean if password provided is valid for current user
- */
- public function validatePassword($password)
- {
- return Yii::$app->security->validatePassword($password, $this->password_hash);
- }
-
- /**
- * Generates password hash from password and sets it to the model
- *
- * @param string $password
- */
- public function setPassword($password)
- {
- $this->password_hash = Yii::$app->security->generatePasswordHash($password);
- }
-
- /**
- * Generates "remember me" authentication key
- */
- public function generateAuthKey()
- {
- $this->auth_key = Yii::$app->security->generateRandomString();
- }
-
- /**
- * Generates new password reset token
- */
- public function generatePasswordResetToken()
- {
- $this->password_reset_token = Yii::$app->security->generateRandomString() . '_' . time();
- }
-
- /**
- * Removes password reset token
- */
- public function removePasswordResetToken()
- {
- $this->password_reset_token = null;
- }
-}
diff --git a/application/common/models/Project.php b/application/common/models/Project.php
deleted file mode 100644
index 8a3befbf..00000000
--- a/application/common/models/Project.php
+++ /dev/null
@@ -1,248 +0,0 @@
- [
- self::STATUS_ACTIVE,
- self::STATUS_DELETE_PENDING,
- ],
- self::STATUS_ACTIVE => [
- self::STATUS_COMPLETED,
- self::STATUS_DELETE_PENDING,
- ],
- self::STATUS_COMPLETED => [
- self::STATUS_DELETE_PENDING,
- ],
- self::STATUS_DELETE_PENDING => [
- self::STATUS_DELETING,
- ],
- self::STATUS_DELETING => [
- self::STATUS_COMPLETED,
- ]
- ];
-
- public function scenarios()
- {
- return ArrayHelper::merge(parent::scenarios(),[
-
- ]);
- }
-
- public function rules()
- {
- return ArrayHelper::merge(parent::rules(),[
- [
- ['created','updated'],'default', 'value' => Utils::getDatetime(),
- ],
- [
- 'updated', 'default', 'value' => Utils::getDatetime(), 'isEmpty' => function(){
- // always return true so it get set on every save
- return true;
- },
- ],
- [
- 'status', 'in', 'range' => [
- self::STATUS_ACTIVE,
- self::STATUS_COMPLETED,
- self::STATUS_INITIALIZED,
- self::STATUS_DELETE_PENDING,
- self::STATUS_DELETING,
- ],
- ],
- [
- 'status', 'default', 'value' => self::STATUS_INITIALIZED,
- ],
- [
- // This should come from another model
- // 'app_id', 'exist', 'targetClass' => 'common\models\App', 'targetAttribute' => 'id',
- // message => \Yii::t('app', 'Invalid App ID'),
- 'app_id', 'in', 'range' => [Job::APP_TYPE_SCRIPTUREAPP, Job::APP_TYPE_READINGAPP, Job::APP_TYPE_DICTIONARYAPP, Job::APP_TYPE_KEYBOARDAPP],
- ],
- [
- ['client_id'],'default', 'value' => function() {
- return self::getCurrentClientId();
- },
- ],
- ]);
- }
- public function fields()
- {
- return [
- 'id',
- 'status',
- 'result',
- 'error',
- 'url',
- 'user_id',
- 'group_id',
- 'app_id',
- 'project_name',
- 'language_code',
- 'publishing_key',
- 'created' => function(){
- return Utils::getIso8601($this->created);
- },
- 'updated' => function(){
- return Utils::getIso8601($this->updated);
- },
- ];
- }
- public function getLinks()
- {
- $links = [];
- if($this->id){
- $links[Link::REL_SELF] = Url::toRoute(['/project/'.$this->id], true);
- }
-
- return $links;
- }
- public function groupName()
- {
- $groupName = 'CodeCommit-'.$this->entityName();
- return $groupName;
- }
- public function entityName()
- {
- $entityName = strtoupper($this->group_id);
- $client = $this->getLinkedClient();
- if (!is_null($client)) {
- $entityName = $client->prefix."-".$entityName;
- }
- return $entityName;
- }
- public function getLinkedClient()
- {
- if (is_null($this->client_id)) {
- return null;
- }
- return Client::findOne(['id' => $this->client_id]);
- }
-
- function repoName()
- {
- $repoName = $this->app_id.'-'.$this->entityName().'-'.$this->language_code . '-' . $this->project_name;
-
- $repoName = Utils::lettersNumbersHyphensOnly($repoName);
-
- return $repoName;
- }
-
- /**
- * @return string
- */
- public function getS3Bucket()
- {
- return str_replace('"', "", S3::getProjectsBucket());
- }
- private function getS3BaseFolder()
- {
- $s3folder = $this->language_code.'-'.$this->id.'-'.$this->project_name;
- return $s3folder;
- }
- private function getS3Folder()
- {
- $client = $this->getLinkedClient();
- $s3client = (is_null($client)) ? "" : $client->prefix . '/';
- $s3app = $this->app_id.'/';
- $s3folder = $this->getS3BaseFolder();
- return $s3client . $s3app . Utils::lettersNumbersHyphensOnly($s3folder);
-
- }
- private function getS3Path()
- {
- $s3path = "s3://". $this->getS3Bucket() .'/' . $this->getS3Folder();
-
- return $s3path;
- }
- public function setS3Project() {
- $this->url = $this->getS3Path();
- $this->status = self::STATUS_COMPLETED;
- $this->result = self::RESULT_SUCCESS;
- }
-
- public function isS3Project() {
- return (substr($this->url, 0, 5) === "s3://");
- }
-
- public function getS3ProjectPath() {
- return (substr($this->url, 5));
- }
-
- /**
- * Returns array of all projects associated with the specified client
- *
- * @param integer $client_id
- * @return array array of Build
- */
- public static function findAllByClientId($client_id)
- {
- if ($client_id) {
- $projects = Project::find()->where('client_id = :client_id',
- ['client_id'=>$client_id])->all();
- return $projects;
- } else {
- /* No way I could find to find records where the
- * field is equal to null. Always returned nothing
- */
- $projects = [];
- foreach (Project::find()->each(50) as $project)
- {
- if ($project->client_id == null) {
- $projects[] = $project;
- }
- }
- return $projects;
- }
- }
- public static function findById($id)
- {
- return self::findOne(['id' => $id]);
- }
- public static function findByIdFiltered($id)
- {
- $project = self::findById($id);
- if (!is_null($project)){
- if ($project->client_id != self::getCurrentClientId()) {
- $project = null;
- }
- }
- return $project;
- }
- public static function getCurrentClientId() {
- $cid = "";
- $user = Utils::getCurrentUser();
- if (!is_null($user)) {
- $cid = $user->getClientId();
- }
- return $cid;
- }
-
-}
\ No newline at end of file
diff --git a/application/common/models/ProjectBase.php b/application/common/models/ProjectBase.php
deleted file mode 100644
index 7a6d60de..00000000
--- a/application/common/models/ProjectBase.php
+++ /dev/null
@@ -1,82 +0,0 @@
- 255],
- [['error'], 'string', 'max' => 2083],
- [['url', 'publishing_key'], 'string', 'max' => 1024],
- [['client_id'], 'exist', 'skipOnError' => true, 'targetClass' => Client::className(), 'targetAttribute' => ['client_id' => 'id']],
- ];
- }
-
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => Yii::t('app', 'ID'),
- 'status' => Yii::t('app', 'Status'),
- 'result' => Yii::t('app', 'Result'),
- 'error' => Yii::t('app', 'Error'),
- 'url' => Yii::t('app', 'Url'),
- 'user_id' => Yii::t('app', 'User ID'),
- 'group_id' => Yii::t('app', 'Group ID'),
- 'app_id' => Yii::t('app', 'App ID'),
- 'project_name' => Yii::t('app', 'Project Name'),
- 'language_code' => Yii::t('app', 'Language Code'),
- 'publishing_key' => Yii::t('app', 'Publishing Key'),
- 'created' => Yii::t('app', 'Created'),
- 'updated' => Yii::t('app', 'Updated'),
- 'client_id' => Yii::t('app', 'Client ID'),
- ];
- }
-
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getClient()
- {
- return $this->hasOne(Client::className(), ['id' => 'client_id']);
- }
-}
diff --git a/application/common/models/Release.php b/application/common/models/Release.php
deleted file mode 100644
index a2ea7f62..00000000
--- a/application/common/models/Release.php
+++ /dev/null
@@ -1,282 +0,0 @@
- [
- self::STATUS_ACCEPTED,
- ],
- self::STATUS_ACCEPTED => [
- self::STATUS_ACTIVE,
- ],
- self::STATUS_ACTIVE => [
- self::STATUS_COMPLETED,
- self::STATUS_EXPIRED,
- ],
- self::STATUS_EXPIRED => [
- self::STATUS_ACTIVE,
- ],
- ];
-
- const CHANNEL_ALPHA = 'alpha';
- const CHANNEL_BETA = 'beta';
- const CHANNEL_PRODUCTION = 'production';
-
- public function scenarios()
- {
- return ArrayHelper::merge(parent::scenarios(),[
-
- ]);
- }
-
- public function rules()
- {
- return ArrayHelper::merge(parent::rules(),[
- [
- ['created','updated'],'default', 'value' => Utils::getDatetime(),
- ],
- [
- 'updated', 'default', 'value' => Utils::getDatetime(), 'isEmpty' => function(){
- // always return true so it get set on every save
- return true;
- },
- ],
- [
- 'status', 'in', 'range' => [
- self::STATUS_ACTIVE,
- self::STATUS_ACCEPTED,
- self::STATUS_COMPLETED,
- self::STATUS_EXPIRED,
- self::STATUS_INITIALIZED,
- self::STATUS_POSTPROCESSING,
- ],
- ],
- [
- 'status', 'default', 'value' => self::STATUS_INITIALIZED,
- ],
- [
- 'build_id', 'exist', 'targetClass' => 'common\models\Build', 'targetAttribute' => 'id',
- 'message' => \Yii::t('app', 'Invalid Build ID'),
- ],
- [
- 'updated', 'default', 'value' => Utils::getDatetime(), 'isEmpty' => function(){
- // always return true so it get set on every save
- return true;
- },
- ],
- [
- 'channel', 'in', 'range' => [
- self::CHANNEL_ALPHA,
- self::CHANNEL_BETA,
- self::CHANNEL_PRODUCTION,
- ],
- ]
- ]);
- }
- public function fields()
- {
- return [
- 'id',
- 'build_id',
- 'status',
- 'result',
- 'error',
- 'title',
- 'defaultLanguage',
- 'channel',
- 'artifacts' => function() {
- return [
- self::ARTIFACT_CLOUD_WATCH => $this->cloudWatch(),
- self::ARTIFACT_CONSOLE_TEXT => $this->consoleText(),
- self::ARTIFACT_PUBLISH_URL => $this->publishUrl()];
- },
- 'consoleText' => function(){
- return $this->consoleText();
- },
- 'created' => function(){
- return Utils::getIso8601($this->created);
- },
- 'updated' => function(){
- return Utils::getIso8601($this->updated);
- },
- ];
- }
-
- public function getLinks()
- {
- $links = [];
- if($this->id){
- //$links[Link::REL_SELF] = Url::toRoute(['/release/'.$this->id], true);
- }
- return $links;
- }
-
- /**
- * Check if the new status is a valid transition from current
- * @param string $current The current status of Build
- * @param string $new The desired status for Build
- * @return bool
- */
- public function isValidStatusTransition($new, $current = null)
- {
- $current = $current ?: $this->status;
- if(in_array($new, $this->validStatusTransitions[$current])){
- return true;
- }
-
- return false;
- }
-
- public function jobName()
- {
- return $this->build->job->nameForPublish();
- }
- public function jobId()
- {
- return $this->build->job_id;
- }
- /**
- * Returns array of all associated with the specified job
- *
- * @param type $build_id
- * @return type array of Release
- */
- public static function findAllByBuildId($build_id)
- {
- $releases = Release::find()->where('build_id = :build_id',
- ['build_id'=>$build_id])->all();
- return $releases;
- }
- /**
- * Clears the artifacts for a build
- */
- public function clearArtifacts()
- {
- $this->artifact_url_base = null;
- $this->artifact_files = null;
- $this->save();
- }
- private function getArtifactUrl($pattern) {
- $filename = $this->getArtifactFilename($pattern);
- if (!empty($filename))
- {
- return $this->artifact_url_base . $filename;
- }
- return null;
- }
- private function getArtifactFilename($pattern) {
- if (!empty($this->artifact_files)) {
- $files = explode(",", $this->artifact_files);
- foreach ($files as $file) {
- if (preg_match($pattern, $file)) {
- return $file;
- }
- }
- }
- return null;
- }
- private function appendArtifact($file) {
- if (empty($this->artifact_files)) {
- $this->artifact_files = $file;
- } else {
- $this->artifact_files .= "," . $file;
- }
- }
- public function cloudWatch() {
- return $this->console_text_url;
- }
- public function consoleText() {
- return $this->getArtifactUrl("/\.log$/");
- }
-
- public function publishUrl() {
- return $this->getArtifactUrl("/publish_url\.txt$/");
- }
- /**
- * Gets the base prefix for the s3 within the bucket for publish
- *
- * @param string $productStage - stg or prd
- * @return string prefix
- */
- public function getBasePrefixUrl($productStage) {
- $artifactPath = S3::getArtifactPath($this->build->job, $productStage, true);
- $buildNumber = (string)$this->id;
- $repoUrl = $artifactPath . "/" . $buildNumber;
- return $repoUrl;
- }
- public function beginArtifacts($baseUrl) {
- $this->artifact_url_base = $baseUrl;
- $this->artifact_files = null;
- }
- public function artifactType($key) {
- $type = "unknown";
- $path_parts = pathinfo($key);
- $file = $path_parts['basename'];
- if ( $file == "cloudWatch") {
- $type = self::ARTIFACT_CLOUD_WATCH;
- } else if ($path_parts['extension'] === "log") {
- $type = self::ARTIFACT_CONSOLE_TEXT;
- } else if ($file === "publish_url.txt") {
- $type = self::ARTIFACT_PUBLISH_URL;
- }
-
- return array($type, $file);
- }
-
- public function handleArtifact($fileKey, $contents) {
- list($type, $file) = $this->artifactType($fileKey);
- switch ($type) {
- case self::ARTIFACT_CLOUD_WATCH:
- case self::ARTIFACT_CONSOLE_TEXT:
- case self::ARTIFACT_PUBLISH_URL:
- break;
-
- default:
- // Don't include in files
- return;
- }
- $this->appendArtifact($file);
- }
- public static function findOneByBuildId($build_id)
- {
- $build = Release::findOne(['id' => $build_id]);
- if ($build) {
- if ($build->status == Release::STATUS_EXPIRED) {
- $build = null;
- }
- }
- return $build;
- }
-
-}
diff --git a/application/common/models/ReleaseBase.php b/application/common/models/ReleaseBase.php
deleted file mode 100644
index 73dd5e81..00000000
--- a/application/common/models/ReleaseBase.php
+++ /dev/null
@@ -1,92 +0,0 @@
- 255],
- [['error'], 'string', 'max' => 2083],
- [['title'], 'string', 'max' => 30],
- [['build_id'], 'exist', 'skipOnError' => true, 'targetClass' => Build::className(), 'targetAttribute' => ['build_id' => 'id']],
- ];
- }
-
- /**
- * {@inheritdoc}
- */
- public function attributeLabels()
- {
- return [
- 'id' => Yii::t('app', 'ID'),
- 'build_id' => Yii::t('app', 'Build ID'),
- 'status' => Yii::t('app', 'Status'),
- 'created' => Yii::t('app', 'Created'),
- 'updated' => Yii::t('app', 'Updated'),
- 'result' => Yii::t('app', 'Result'),
- 'error' => Yii::t('app', 'Error'),
- 'channel' => Yii::t('app', 'Channel'),
- 'title' => Yii::t('app', 'Title'),
- 'defaultLanguage' => Yii::t('app', 'Default Language'),
- 'promote_from' => Yii::t('app', 'Promote From'),
- 'build_guid' => Yii::t('app', 'Build Guid'),
- 'console_text_url' => Yii::t('app', 'Console Text Url'),
- 'codebuild_url' => Yii::t('app', 'Codebuild Url'),
- 'targets' => Yii::t('app', 'Targets'),
- 'environment' => Yii::t('app', 'Environment'),
- 'artifact_url_base' => Yii::t('app', 'Artifact Url Base'),
- 'artifact_files' => Yii::t('app', 'Artifact Files'),
- ];
- }
-
- /**
- * @return \yii\db\ActiveQuery
- */
- public function getBuild()
- {
- return $this->hasOne(Build::className(), ['id' => 'build_id']);
- }
-}
diff --git a/application/common/models/User.php b/application/common/models/User.php
deleted file mode 100644
index 6b315d60..00000000
--- a/application/common/models/User.php
+++ /dev/null
@@ -1,50 +0,0 @@
-client_id;
- }
-}
\ No newline at end of file
diff --git a/application/composer.json b/application/composer.json
deleted file mode 100644
index 041813b6..00000000
--- a/application/composer.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{
- "minimum-stability": "stable",
- "require": {
- "php": ">=7.4.0",
- "yiisoft/yii2": "^2.0.15",
- "yiisoft/yii2-gii": "*",
- "yiisoft/yii2-bootstrap": "*",
- "yiisoft/yii2-swiftmailer": "*",
- "aws/aws-sdk-php": "^3.56",
- "silinternational/yii2-jsonsyslog": "*"
- },
- "require-dev": {
- "yiisoft/yii2-codeception": "*",
- "yiisoft/yii2-debug": "*",
- "yiisoft/yii2-faker": "*",
- "fillup/phpmyadmin-minimal": "4.2.2",
- "codeception/codeception": "^2.0",
- "codeception/specify": "0.*",
- "codeception/verify": "0.*"
- },
- "config": {
- "process-timeout": 1800,
- "allow-plugins": {
- "yiisoft/yii2-composer": true
- }
- },
- "repositories": [
- {
- "type": "composer",
- "url": "https://asset-packagist.org"
- }
- ]
-}
diff --git a/application/composer.lock b/application/composer.lock
deleted file mode 100644
index d8427d35..00000000
--- a/application/composer.lock
+++ /dev/null
@@ -1,5613 +0,0 @@
-{
- "_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": "403373b5f130bd624ab75b837733fcc7",
- "packages": [
- {
- "name": "aws/aws-crt-php",
- "version": "v1.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/awslabs/aws-crt-php.git",
- "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/eb0c6e4e142224a10b08f49ebf87f32611d162b2",
- "reference": "eb0c6e4e142224a10b08f49ebf87f32611d162b2",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5",
- "yoast/phpunit-polyfills": "^1.0"
- },
- "suggest": {
- "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality."
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "AWS SDK Common Runtime Team",
- "email": "aws-sdk-common-runtime@amazon.com"
- }
- ],
- "description": "AWS Common Runtime for PHP",
- "homepage": "https://github.com/awslabs/aws-crt-php",
- "keywords": [
- "amazon",
- "aws",
- "crt",
- "sdk"
- ],
- "support": {
- "issues": "https://github.com/awslabs/aws-crt-php/issues",
- "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.4"
- },
- "time": "2023-11-08T00:42:13+00:00"
- },
- {
- "name": "aws/aws-sdk-php",
- "version": "3.297.0",
- "source": {
- "type": "git",
- "url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "ad1f7be78d74d48628a6fe345818ce53bae64169"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ad1f7be78d74d48628a6fe345818ce53bae64169",
- "reference": "ad1f7be78d74d48628a6fe345818ce53bae64169",
- "shasum": ""
- },
- "require": {
- "aws/aws-crt-php": "^1.2.3",
- "ext-json": "*",
- "ext-pcre": "*",
- "ext-simplexml": "*",
- "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5",
- "guzzlehttp/promises": "^1.4.0 || ^2.0",
- "guzzlehttp/psr7": "^1.9.1 || ^2.4.5",
- "mtdowling/jmespath.php": "^2.6",
- "php": ">=7.2.5",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "require-dev": {
- "andrewsville/php-token-reflection": "^1.4",
- "aws/aws-php-sns-message-validator": "~1.0",
- "behat/behat": "~3.0",
- "composer/composer": "^1.10.22",
- "dms/phpunit-arraysubset-asserts": "^0.4.0",
- "doctrine/cache": "~1.4",
- "ext-dom": "*",
- "ext-openssl": "*",
- "ext-pcntl": "*",
- "ext-sockets": "*",
- "nette/neon": "^2.3",
- "paragonie/random_compat": ">= 2",
- "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5",
- "psr/cache": "^1.0",
- "psr/simple-cache": "^1.0",
- "sebastian/comparator": "^1.2.3 || ^4.0",
- "yoast/phpunit-polyfills": "^1.0"
- },
- "suggest": {
- "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
- "doctrine/cache": "To use the DoctrineCacheAdapter",
- "ext-curl": "To send requests using cURL",
- "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
- "ext-sockets": "To use client-side monitoring"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Aws\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Amazon Web Services",
- "homepage": "http://aws.amazon.com"
- }
- ],
- "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
- "homepage": "http://aws.amazon.com/sdkforphp",
- "keywords": [
- "amazon",
- "aws",
- "cloud",
- "dynamodb",
- "ec2",
- "glacier",
- "s3",
- "sdk"
- ],
- "support": {
- "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
- "issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.297.0"
- },
- "time": "2024-01-24T19:09:39+00:00"
- },
- {
- "name": "bower-asset/bootstrap",
- "version": "v3.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/twbs/bootstrap.git",
- "reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/twbs/bootstrap/zipball/68b0d231a13201eb14acd3dc84e51543d16e5f7e",
- "reference": "68b0d231a13201eb14acd3dc84e51543d16e5f7e"
- },
- "require": {
- "bower-asset/jquery": ">=1.9.1,<4.0"
- },
- "type": "bower-asset",
- "license": [
- "MIT"
- ]
- },
- {
- "name": "bower-asset/inputmask",
- "version": "3.3.11",
- "source": {
- "type": "git",
- "url": "git@github.com:RobinHerbots/Inputmask.git",
- "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/RobinHerbots/Inputmask/zipball/5e670ad62f50c738388d4dcec78d2888505ad77b",
- "reference": "5e670ad62f50c738388d4dcec78d2888505ad77b"
- },
- "require": {
- "bower-asset/jquery": ">=1.7"
- },
- "type": "bower-asset",
- "license": [
- "http://opensource.org/licenses/mit-license.php"
- ]
- },
- {
- "name": "bower-asset/jquery",
- "version": "3.6.4",
- "source": {
- "type": "git",
- "url": "git@github.com:jquery/jquery-dist.git",
- "reference": "91ef2d8836342875f2519b5815197ea0f23613cf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jquery/jquery-dist/zipball/91ef2d8836342875f2519b5815197ea0f23613cf",
- "reference": "91ef2d8836342875f2519b5815197ea0f23613cf"
- },
- "type": "bower-asset",
- "license": [
- "MIT"
- ]
- },
- {
- "name": "bower-asset/punycode",
- "version": "v1.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/mathiasbynens/punycode.js.git",
- "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/mathiasbynens/punycode.js/zipball/38c8d3131a82567bfef18da09f7f4db68c84f8a3",
- "reference": "38c8d3131a82567bfef18da09f7f4db68c84f8a3"
- },
- "type": "bower-asset"
- },
- {
- "name": "bower-asset/yii2-pjax",
- "version": "2.0.8",
- "source": {
- "type": "git",
- "url": "git@github.com:yiisoft/jquery-pjax.git",
- "reference": "a9298d57da63d14a950f1b94366a864bc62264fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/jquery-pjax/zipball/a9298d57da63d14a950f1b94366a864bc62264fb",
- "reference": "a9298d57da63d14a950f1b94366a864bc62264fb"
- },
- "require": {
- "bower-asset/jquery": ">=1.8"
- },
- "type": "bower-asset",
- "license": [
- "MIT"
- ]
- },
- {
- "name": "cebe/markdown",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/cebe/markdown.git",
- "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/cebe/markdown/zipball/9bac5e971dd391e2802dca5400bbeacbaea9eb86",
- "reference": "9bac5e971dd391e2802dca5400bbeacbaea9eb86",
- "shasum": ""
- },
- "require": {
- "lib-pcre": "*",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "cebe/indent": "*",
- "facebook/xhprof": "*@dev",
- "phpunit/phpunit": "4.1.*"
- },
- "bin": [
- "bin/markdown"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "cebe\\markdown\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Carsten Brandt",
- "email": "mail@cebe.cc",
- "homepage": "http://cebe.cc/",
- "role": "Creator"
- }
- ],
- "description": "A super fast, highly extensible markdown parser for PHP",
- "homepage": "https://github.com/cebe/markdown#readme",
- "keywords": [
- "extensible",
- "fast",
- "gfm",
- "markdown",
- "markdown-extra"
- ],
- "support": {
- "issues": "https://github.com/cebe/markdown/issues",
- "source": "https://github.com/cebe/markdown"
- },
- "time": "2018-03-26T11:24:36+00:00"
- },
- {
- "name": "doctrine/deprecations",
- "version": "1.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/deprecations.git",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9",
- "phpstan/phpstan": "1.4.10 || 1.10.15",
- "phpstan/phpstan-phpunit": "^1.0",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "0.18.4",
- "psr/log": "^1 || ^2 || ^3",
- "vimeo/psalm": "4.30.0 || 5.12.0"
- },
- "suggest": {
- "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
- "homepage": "https://www.doctrine-project.org/",
- "support": {
- "issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.2"
- },
- "time": "2023-09-27T20:04:15+00:00"
- },
- {
- "name": "doctrine/lexer",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "reference": "39ab8fcf5a51ce4b85ca97c7a7d033eb12831124",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^10",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^4.11 || ^5.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Lexer\\": "src"
- }
- },
- "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": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
- "keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/2.1.0"
- },
- "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%2Flexer",
- "type": "tidelift"
- }
- ],
- "time": "2022-12-14T08:49:07+00:00"
- },
- {
- "name": "egulias/email-validator",
- "version": "3.2.6",
- "source": {
- "type": "git",
- "url": "https://github.com/egulias/EmailValidator.git",
- "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7",
- "reference": "e5997fa97e8790cdae03a9cbd5e78e45e3c7bda7",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "^1.2|^2",
- "php": ">=7.2",
- "symfony/polyfill-intl-idn": "^1.15"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.8|^9.3.3",
- "vimeo/psalm": "^4"
- },
- "suggest": {
- "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Egulias\\EmailValidator\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Eduardo Gulias Davis"
- }
- ],
- "description": "A library for validating emails against several RFCs",
- "homepage": "https://github.com/egulias/EmailValidator",
- "keywords": [
- "email",
- "emailvalidation",
- "emailvalidator",
- "validation",
- "validator"
- ],
- "support": {
- "issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/3.2.6"
- },
- "funding": [
- {
- "url": "https://github.com/egulias",
- "type": "github"
- }
- ],
- "time": "2023-06-01T07:04:22+00:00"
- },
- {
- "name": "ezyang/htmlpurifier",
- "version": "v4.17.0",
- "source": {
- "type": "git",
- "url": "https://github.com/ezyang/htmlpurifier.git",
- "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
- "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
- "shasum": ""
- },
- "require": {
- "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
- },
- "require-dev": {
- "cerdic/css-tidy": "^1.7 || ^2.0",
- "simpletest/simpletest": "dev-master"
- },
- "suggest": {
- "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
- "ext-bcmath": "Used for unit conversion and imagecrash protection",
- "ext-iconv": "Converts text to and from non-UTF-8 encodings",
- "ext-tidy": "Used for pretty-printing HTML"
- },
- "type": "library",
- "autoload": {
- "files": [
- "library/HTMLPurifier.composer.php"
- ],
- "psr-0": {
- "HTMLPurifier": "library/"
- },
- "exclude-from-classmap": [
- "/library/HTMLPurifier/Language/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL-2.1-or-later"
- ],
- "authors": [
- {
- "name": "Edward Z. Yang",
- "email": "admin@htmlpurifier.org",
- "homepage": "http://ezyang.com"
- }
- ],
- "description": "Standards compliant HTML filter written in PHP",
- "homepage": "http://htmlpurifier.org/",
- "keywords": [
- "html"
- ],
- "support": {
- "issues": "https://github.com/ezyang/htmlpurifier/issues",
- "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0"
- },
- "time": "2023-11-17T15:01:25+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.3",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/67ab6e18aaa14d753cc148911d273f6e6cb6721e",
- "reference": "67ab6e18aaa14d753cc148911d273f6e6cb6721e",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
- },
- "type": "library",
- "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.3"
- },
- "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": "2023-05-21T12:31:43+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b",
- "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b",
- "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",
- "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.1"
- },
- "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": "2023-04-17T16:00:37+00:00"
- },
- {
- "name": "mtdowling/jmespath.php",
- "version": "2.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/jmespath/jmespath.php.git",
- "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b",
- "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "symfony/polyfill-mbstring": "^1.17"
- },
- "require-dev": {
- "composer/xdebug-handler": "^3.0.3",
- "phpunit/phpunit": "^8.5.33"
- },
- "bin": [
- "bin/jp.php"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7-dev"
- }
- },
- "autoload": {
- "files": [
- "src/JmesPath.php"
- ],
- "psr-4": {
- "JmesPath\\": "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"
- }
- ],
- "description": "Declaratively specify how to extract elements from a JSON document",
- "keywords": [
- "json",
- "jsonpath"
- ],
- "support": {
- "issues": "https://github.com/jmespath/jmespath.php/issues",
- "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0"
- },
- "time": "2023-08-25T10:54:48+00:00"
- },
- {
- "name": "paragonie/random_compat",
- "version": "v9.99.100",
- "source": {
- "type": "git",
- "url": "https://github.com/paragonie/random_compat.git",
- "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
- "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
- "shasum": ""
- },
- "require": {
- "php": ">= 7"
- },
- "require-dev": {
- "phpunit/phpunit": "4.*|5.*",
- "vimeo/psalm": "^1"
- },
- "suggest": {
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
- },
- "type": "library",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Paragon Initiative Enterprises",
- "email": "security@paragonie.com",
- "homepage": "https://paragonie.com"
- }
- ],
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
- "keywords": [
- "csprng",
- "polyfill",
- "pseudorandom",
- "random"
- ],
- "support": {
- "email": "info@paragonie.com",
- "issues": "https://github.com/paragonie/random_compat/issues",
- "source": "https://github.com/paragonie/random_compat"
- },
- "time": "2020-10-15T08:29:30+00:00"
- },
- {
- "name": "phpspec/php-diff",
- "version": "v1.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/php-diff.git",
- "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/php-diff/zipball/fc1156187f9f6c8395886fe85ed88a0a245d72e9",
- "reference": "fc1156187f9f6c8395886fe85ed88a0a245d72e9",
- "shasum": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Diff": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Chris Boulton",
- "homepage": "http://github.com/chrisboulton"
- }
- ],
- "description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
- "support": {
- "source": "https://github.com/phpspec/php-diff/tree/v1.1.3"
- },
- "time": "2020-09-18T13:47:07+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.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/1.1"
- },
- "time": "2023-04-04T09:50:52+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": "silinternational/yii2-jsonsyslog",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/silinternational/yii2-jsonsyslog.git",
- "reference": "6ba9b540d950ce6baf4548596a6f158d73c31e4d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/silinternational/yii2-jsonsyslog/zipball/6ba9b540d950ce6baf4548596a6f158d73c31e4d",
- "reference": "6ba9b540d950ce6baf4548596a6f158d73c31e4d",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0",
- "yiisoft/yii2": "2.*"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Sil\\JsonSyslog\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Yii2 log target for sending data to Syslog as a JSON encoded string",
- "keywords": [
- "json",
- "log",
- "syslog",
- "yii2"
- ],
- "support": {
- "issues": "https://github.com/silinternational/yii2-jsonsyslog/issues",
- "source": "https://github.com/silinternational/yii2-jsonsyslog/tree/1.0.1"
- },
- "abandoned": "silinternational/yii2-json-log-targets",
- "time": "2020-12-17T20:40:29+00:00"
- },
- {
- "name": "swiftmailer/swiftmailer",
- "version": "v6.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "shasum": ""
- },
- "require": {
- "egulias/email-validator": "^2.0|^3.1",
- "php": ">=7.0.0",
- "symfony/polyfill-iconv": "^1.0",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.4"
- },
- "suggest": {
- "ext-intl": "Needed to support internationalized email addresses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.2-dev"
- }
- },
- "autoload": {
- "files": [
- "lib/swift_required.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Chris Corbyn"
- },
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Swiftmailer, free feature-rich PHP mailer",
- "homepage": "https://swiftmailer.symfony.com",
- "keywords": [
- "email",
- "mail",
- "mailer"
- ],
- "support": {
- "issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
- },
- "funding": [
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
- "type": "tidelift"
- }
- ],
- "abandoned": "symfony/mailer",
- "time": "2021-10-18T15:26:12+00:00"
- },
- {
- "name": "symfony/polyfill-iconv",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/6de50471469b8c9afc38164452ab2b6170ee71c1",
- "reference": "6de50471469b8c9afc38164452ab2b6170ee71c1",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-iconv": "*"
- },
- "suggest": {
- "ext-iconv": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Iconv\\": ""
- }
- },
- "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 Iconv extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "iconv",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.28.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": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d",
- "reference": "ecaafce9f77234a6a449d29e49267ba10499116d",
- "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.28-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.28.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": "2023-01-26T09:30:37+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
- "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "42292d99c55abe617799667f454222c54c60e229"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
- "reference": "42292d99c55abe617799667f454222c54c60e229",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-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.28.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": "2023-07-28T09:04:16+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
- "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "yiisoft/yii2",
- "version": "2.0.49.3",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-framework.git",
- "reference": "783f65c9a743dfd7484b6026f1aa6f25e37159d9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-framework/zipball/783f65c9a743dfd7484b6026f1aa6f25e37159d9",
- "reference": "783f65c9a743dfd7484b6026f1aa6f25e37159d9",
- "shasum": ""
- },
- "require": {
- "bower-asset/inputmask": "~3.2.2 | ~3.3.5",
- "bower-asset/jquery": "3.7.*@stable | 3.6.*@stable | 3.5.*@stable | 3.4.*@stable | 3.3.*@stable | 3.2.*@stable | 3.1.*@stable | 2.2.*@stable | 2.1.*@stable | 1.11.*@stable | 1.12.*@stable",
- "bower-asset/punycode": "1.3.*",
- "bower-asset/yii2-pjax": "~2.0.1",
- "cebe/markdown": "~1.0.0 | ~1.1.0 | ~1.2.0",
- "ext-ctype": "*",
- "ext-mbstring": "*",
- "ezyang/htmlpurifier": "^4.6",
- "lib-pcre": "*",
- "paragonie/random_compat": ">=1",
- "php": ">=5.4.0",
- "yiisoft/yii2-composer": "~2.0.4"
- },
- "bin": [
- "yii"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Qiang Xue",
- "email": "qiang.xue@gmail.com",
- "homepage": "https://www.yiiframework.com/",
- "role": "Founder and project lead"
- },
- {
- "name": "Alexander Makarov",
- "email": "sam@rmcreative.ru",
- "homepage": "https://rmcreative.ru/",
- "role": "Core framework development"
- },
- {
- "name": "Maurizio Domba",
- "homepage": "http://mdomba.info/",
- "role": "Core framework development"
- },
- {
- "name": "Carsten Brandt",
- "email": "mail@cebe.cc",
- "homepage": "https://www.cebe.cc/",
- "role": "Core framework development"
- },
- {
- "name": "Timur Ruziev",
- "email": "resurtm@gmail.com",
- "homepage": "http://resurtm.com/",
- "role": "Core framework development"
- },
- {
- "name": "Paul Klimov",
- "email": "klimov.paul@gmail.com",
- "role": "Core framework development"
- },
- {
- "name": "Dmitry Naumenko",
- "email": "d.naumenko.a@gmail.com",
- "role": "Core framework development"
- },
- {
- "name": "Boudewijn Vahrmeijer",
- "email": "info@dynasource.eu",
- "homepage": "http://dynasource.eu",
- "role": "Core framework development"
- }
- ],
- "description": "Yii PHP Framework Version 2",
- "homepage": "https://www.yiiframework.com/",
- "keywords": [
- "framework",
- "yii2"
- ],
- "support": {
- "forum": "https://forum.yiiframework.com/",
- "irc": "ircs://irc.libera.chat:6697/yii",
- "issues": "https://github.com/yiisoft/yii2/issues?state=open",
- "source": "https://github.com/yiisoft/yii2",
- "wiki": "https://www.yiiframework.com/wiki"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2",
- "type": "tidelift"
- }
- ],
- "time": "2023-10-31T15:39:08+00:00"
- },
- {
- "name": "yiisoft/yii2-bootstrap",
- "version": "2.0.11",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-bootstrap.git",
- "reference": "83d144f4089adaa7064ad60dc4c1436daa2eb30e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-bootstrap/zipball/83d144f4089adaa7064ad60dc4c1436daa2eb30e",
- "reference": "83d144f4089adaa7064ad60dc4c1436daa2eb30e",
- "shasum": ""
- },
- "require": {
- "bower-asset/bootstrap": "3.4.* | 3.3.* | 3.2.* | 3.1.*",
- "yiisoft/yii2": "~2.0.6"
- },
- "require-dev": {
- "cweagans/composer-patches": "^1.7",
- "phpunit/phpunit": "4.8.34"
- },
- "type": "yii2-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- },
- "patches": {
- "phpunit/phpunit-mock-objects": {
- "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch"
- },
- "phpunit/phpunit": {
- "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch",
- "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\bootstrap\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Qiang Xue",
- "email": "qiang.xue@gmail.com",
- "homepage": "http://www.yiiframework.com/"
- },
- {
- "name": "Alexander Makarov",
- "email": "sam@rmcreative.ru",
- "homepage": "http://rmcreative.ru/"
- },
- {
- "name": "Antonio Ramirez",
- "email": "amigo.cobos@gmail.com"
- },
- {
- "name": "Paul Klimov",
- "email": "klimov.paul@gmail.com"
- }
- ],
- "description": "The Twitter Bootstrap extension for the Yii framework",
- "keywords": [
- "bootstrap",
- "yii2"
- ],
- "support": {
- "forum": "http://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-bootstrap/issues",
- "source": "https://github.com/yiisoft/yii2-bootstrap",
- "wiki": "http://www.yiiframework.com/wiki/"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-bootstrap",
- "type": "tidelift"
- }
- ],
- "time": "2021-08-09T20:54:06+00:00"
- },
- {
- "name": "yiisoft/yii2-composer",
- "version": "2.0.10",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-composer.git",
- "reference": "94bb3f66e779e2774f8776d6e1bdeab402940510"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-composer/zipball/94bb3f66e779e2774f8776d6e1bdeab402940510",
- "reference": "94bb3f66e779e2774f8776d6e1bdeab402940510",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.0 | ^2.0"
- },
- "require-dev": {
- "composer/composer": "^1.0 | ^2.0@dev",
- "phpunit/phpunit": "<7"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "yii\\composer\\Plugin",
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\composer\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Qiang Xue",
- "email": "qiang.xue@gmail.com"
- },
- {
- "name": "Carsten Brandt",
- "email": "mail@cebe.cc"
- }
- ],
- "description": "The composer plugin for Yii extension installer",
- "keywords": [
- "composer",
- "extension installer",
- "yii2"
- ],
- "support": {
- "forum": "http://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-composer/issues",
- "source": "https://github.com/yiisoft/yii2-composer",
- "wiki": "http://www.yiiframework.com/wiki/"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-composer",
- "type": "tidelift"
- }
- ],
- "time": "2020-06-24T00:04:01+00:00"
- },
- {
- "name": "yiisoft/yii2-gii",
- "version": "2.2.6",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-gii.git",
- "reference": "ac574e7e2c29fd865145c8688719f252d19aae23"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-gii/zipball/ac574e7e2c29fd865145c8688719f252d19aae23",
- "reference": "ac574e7e2c29fd865145c8688719f252d19aae23",
- "shasum": ""
- },
- "require": {
- "phpspec/php-diff": "^1.1.0",
- "yiisoft/yii2": "~2.0.46"
- },
- "require-dev": {
- "cweagans/composer-patches": "^1.7",
- "phpunit/phpunit": "4.8.34",
- "yiisoft/yii2-coding-standards": "~2.0"
- },
- "type": "yii2-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- },
- "composer-exit-on-patch-failure": true,
- "patches": {
- "phpunit/phpunit-mock-objects": {
- "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch"
- },
- "phpunit/php-file-iterator": {
- "Fix PHP 8.1 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_path_file_iterator.patch"
- },
- "phpunit/phpunit": {
- "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch",
- "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch",
- "Fix PHP 8.1 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php81.patch"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\gii\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Qiang Xue",
- "email": "qiang.xue@gmail.com"
- }
- ],
- "description": "The Gii extension for the Yii framework",
- "keywords": [
- "code generator",
- "gii",
- "yii2"
- ],
- "support": {
- "forum": "https://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-gii/issues",
- "source": "https://github.com/yiisoft/yii2-gii",
- "wiki": "https://www.yiiframework.com/wiki/"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-gii",
- "type": "tidelift"
- }
- ],
- "time": "2023-05-22T20:55:37+00:00"
- },
- {
- "name": "yiisoft/yii2-swiftmailer",
- "version": "2.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-swiftmailer.git",
- "reference": "7b7ec871b4a63c0abbcd10e1ee3fb5be22f8b340"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-swiftmailer/zipball/7b7ec871b4a63c0abbcd10e1ee3fb5be22f8b340",
- "reference": "7b7ec871b4a63c0abbcd10e1ee3fb5be22f8b340",
- "shasum": ""
- },
- "require": {
- "swiftmailer/swiftmailer": "~6.0",
- "yiisoft/yii2": ">=2.0.4"
- },
- "require-dev": {
- "cweagans/composer-patches": "^1.7",
- "phpunit/phpunit": "4.8.34"
- },
- "type": "yii2-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1.x-dev"
- },
- "composer-exit-on-patch-failure": true,
- "patches": {
- "phpunit/phpunit-mock-objects": {
- "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch"
- },
- "phpunit/phpunit": {
- "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch",
- "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\swiftmailer\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Paul Klimov",
- "email": "klimov.paul@gmail.com"
- }
- ],
- "description": "The SwiftMailer integration for the Yii framework",
- "keywords": [
- "email",
- "mail",
- "mailer",
- "swift",
- "swiftmailer",
- "yii2"
- ],
- "support": {
- "forum": "http://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-swiftmailer/issues",
- "source": "https://github.com/yiisoft/yii2-swiftmailer",
- "wiki": "http://www.yiiframework.com/wiki/"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-swiftmailer",
- "type": "tidelift"
- }
- ],
- "time": "2021-12-30T08:48:48+00:00"
- }
- ],
- "packages-dev": [
- {
- "name": "behat/gherkin",
- "version": "v4.9.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Behat/Gherkin.git",
- "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Behat/Gherkin/zipball/0bc8d1e30e96183e4f36db9dc79caead300beff4",
- "reference": "0bc8d1e30e96183e4f36db9dc79caead300beff4",
- "shasum": ""
- },
- "require": {
- "php": "~7.2|~8.0"
- },
- "require-dev": {
- "cucumber/cucumber": "dev-gherkin-22.0.0",
- "phpunit/phpunit": "~8|~9",
- "symfony/yaml": "~3|~4|~5"
- },
- "suggest": {
- "symfony/yaml": "If you want to parse features, represented in YAML files"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Behat\\Gherkin": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- }
- ],
- "description": "Gherkin DSL parser for PHP",
- "homepage": "http://behat.org/",
- "keywords": [
- "BDD",
- "Behat",
- "Cucumber",
- "DSL",
- "gherkin",
- "parser"
- ],
- "support": {
- "issues": "https://github.com/Behat/Gherkin/issues",
- "source": "https://github.com/Behat/Gherkin/tree/v4.9.0"
- },
- "time": "2021-10-12T13:05:09+00:00"
- },
- {
- "name": "codeception/codeception",
- "version": "2.5.6",
- "source": {
- "type": "git",
- "url": "https://github.com/Codeception/Codeception.git",
- "reference": "b83a9338296e706fab2ceb49de8a352fbca3dc98"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Codeception/Codeception/zipball/b83a9338296e706fab2ceb49de8a352fbca3dc98",
- "reference": "b83a9338296e706fab2ceb49de8a352fbca3dc98",
- "shasum": ""
- },
- "require": {
- "behat/gherkin": "^4.4.0",
- "codeception/phpunit-wrapper": "^6.0.9|^7.0.6",
- "codeception/stub": "^2.0",
- "ext-curl": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "facebook/webdriver": ">=1.1.3 <2.0",
- "guzzlehttp/guzzle": ">=4.1.4 <7.0",
- "guzzlehttp/psr7": "~1.0",
- "php": ">=5.6.0 <8.0",
- "symfony/browser-kit": ">=2.7 <5.0",
- "symfony/console": ">=2.7 <5.0",
- "symfony/css-selector": ">=2.7 <5.0",
- "symfony/dom-crawler": ">=2.7 <5.0",
- "symfony/event-dispatcher": ">=2.7 <5.0",
- "symfony/finder": ">=2.7 <5.0",
- "symfony/yaml": ">=2.7 <5.0"
- },
- "require-dev": {
- "codeception/specify": "~0.3",
- "facebook/graph-sdk": "~5.3",
- "flow/jsonpath": "~0.2",
- "monolog/monolog": "~1.8",
- "pda/pheanstalk": "~3.0",
- "php-amqplib/php-amqplib": "~2.4",
- "predis/predis": "^1.0",
- "squizlabs/php_codesniffer": "~2.0",
- "symfony/process": ">=2.7 <5.0",
- "vlucas/phpdotenv": "^3.0"
- },
- "suggest": {
- "aws/aws-sdk-php": "For using AWS Auth in REST module and Queue module",
- "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests",
- "codeception/specify": "BDD-style code blocks",
- "codeception/verify": "BDD-style assertions",
- "flow/jsonpath": "For using JSONPath in REST module",
- "league/factory-muffin": "For DataFactory module",
- "league/factory-muffin-faker": "For Faker support in DataFactory module",
- "phpseclib/phpseclib": "for SFTP option in FTP Module",
- "stecman/symfony-console-completion": "For BASH autocompletion",
- "symfony/phpunit-bridge": "For phpunit-bridge support"
- },
- "bin": [
- "codecept"
- ],
- "type": "library",
- "extra": {
- "branch-alias": []
- },
- "autoload": {
- "psr-4": {
- "Codeception\\": "src/Codeception",
- "Codeception\\Extension\\": "ext"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Bodnarchuk",
- "email": "davert@mail.ua",
- "homepage": "http://codegyre.com"
- }
- ],
- "description": "BDD-style testing framework",
- "homepage": "http://codeception.com/",
- "keywords": [
- "BDD",
- "TDD",
- "acceptance testing",
- "functional testing",
- "unit testing"
- ],
- "support": {
- "issues": "https://github.com/Codeception/Codeception/issues",
- "source": "https://github.com/Codeception/Codeception/tree/2.5.6"
- },
- "time": "2019-04-24T11:28:19+00:00"
- },
- {
- "name": "codeception/phpunit-wrapper",
- "version": "7.8.4",
- "source": {
- "type": "git",
- "url": "https://github.com/Codeception/phpunit-wrapper.git",
- "reference": "dd44fc152433d27d3de03d59b4945449b3407af0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Codeception/phpunit-wrapper/zipball/dd44fc152433d27d3de03d59b4945449b3407af0",
- "reference": "dd44fc152433d27d3de03d59b4945449b3407af0",
- "shasum": ""
- },
- "require": {
- "phpunit/php-code-coverage": "^6.0",
- "phpunit/phpunit": "7.5.*",
- "sebastian/comparator": "^3.0",
- "sebastian/diff": "^3.0"
- },
- "require-dev": {
- "codeception/specify": "*",
- "vlucas/phpdotenv": "^3.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Codeception\\PHPUnit\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Davert",
- "email": "davert.php@resend.cc"
- }
- ],
- "description": "PHPUnit classes used by Codeception",
- "support": {
- "issues": "https://github.com/Codeception/phpunit-wrapper/issues",
- "source": "https://github.com/Codeception/phpunit-wrapper/tree/7.8.4"
- },
- "time": "2022-05-23T06:09:22+00:00"
- },
- {
- "name": "codeception/specify",
- "version": "0.4.6",
- "source": {
- "type": "git",
- "url": "https://github.com/Codeception/Specify.git",
- "reference": "21b586f503ca444aa519dd9cafb32f113a05f286"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Codeception/Specify/zipball/21b586f503ca444aa519dd9cafb32f113a05f286",
- "reference": "21b586f503ca444aa519dd9cafb32f113a05f286",
- "shasum": ""
- },
- "require": {
- "myclabs/deep-copy": "~1.1",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Codeception\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Bodnarchuk",
- "email": "davert.php@mailican.com"
- }
- ],
- "description": "BDD code blocks for PHPUnit and Codeception",
- "support": {
- "issues": "https://github.com/Codeception/Specify/issues",
- "source": "https://github.com/Codeception/Specify/tree/master"
- },
- "time": "2016-10-21T09:42:00+00:00"
- },
- {
- "name": "codeception/stub",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Codeception/Stub.git",
- "reference": "853657f988942f7afb69becf3fd0059f192c705a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Codeception/Stub/zipball/853657f988942f7afb69becf3fd0059f192c705a",
- "reference": "853657f988942f7afb69becf3fd0059f192c705a",
- "shasum": ""
- },
- "require": {
- "codeception/phpunit-wrapper": ">6.0.15 <6.1.0 | ^6.6.1 | ^7.7.1 | ^8.0.3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Codeception\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Flexible Stub wrapper for PHPUnit's Mock Builder",
- "support": {
- "issues": "https://github.com/Codeception/Stub/issues",
- "source": "https://github.com/Codeception/Stub/tree/master"
- },
- "time": "2019-03-02T15:35:10+00:00"
- },
- {
- "name": "codeception/verify",
- "version": "0.4.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Codeception/Verify.git",
- "reference": "8a17273017e23a866df3fa2ad2b4182b7ce354f0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Codeception/Verify/zipball/8a17273017e23a866df3fa2ad2b4182b7ce354f0",
- "reference": "8a17273017e23a866df3fa2ad2b4182b7ce354f0",
- "shasum": ""
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/Codeception/function.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Bodnarchuk",
- "email": "davert.php@mailican.com"
- }
- ],
- "description": "BDD assertion library for PHPUnit",
- "support": {
- "issues": "https://github.com/Codeception/Verify/issues",
- "source": "https://github.com/Codeception/Verify/tree/0.4.0"
- },
- "time": "2017-07-12T16:50:18+00:00"
- },
- {
- "name": "doctrine/instantiator",
- "version": "1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
- "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9 || ^11",
- "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.30 || ^5.4"
- },
- "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.5.0"
- },
- "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-12-30T00:15:36+00:00"
- },
- {
- "name": "facebook/webdriver",
- "version": "1.7.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-webdriver/php-webdriver-archive.git",
- "reference": "e43de70f3c7166169d0f14a374505392734160e5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-webdriver/php-webdriver-archive/zipball/e43de70f3c7166169d0f14a374505392734160e5",
- "reference": "e43de70f3c7166169d0f14a374505392734160e5",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "ext-zip": "*",
- "php": "^5.6 || ~7.0",
- "symfony/process": "^2.8 || ^3.1 || ^4.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.0",
- "jakub-onderka/php-parallel-lint": "^0.9.2",
- "php-coveralls/php-coveralls": "^2.0",
- "php-mock/php-mock-phpunit": "^1.1",
- "phpunit/phpunit": "^5.7",
- "sebastian/environment": "^1.3.4 || ^2.0 || ^3.0",
- "squizlabs/php_codesniffer": "^2.6",
- "symfony/var-dumper": "^3.3 || ^4.0"
- },
- "suggest": {
- "ext-SimpleXML": "For Firefox profile creation"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-community": "1.5-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Facebook\\WebDriver\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "description": "A PHP client for Selenium WebDriver",
- "homepage": "https://github.com/facebook/php-webdriver",
- "keywords": [
- "facebook",
- "php",
- "selenium",
- "webdriver"
- ],
- "support": {
- "forum": "https://www.facebook.com/groups/phpwebdriver/",
- "issues": "https://github.com/facebook/php-webdriver/issues",
- "source": "https://github.com/facebook/php-webdriver"
- },
- "abandoned": "php-webdriver/webdriver",
- "time": "2019-06-13T08:02:18+00:00"
- },
- {
- "name": "fakerphp/faker",
- "version": "v1.23.1",
- "source": {
- "type": "git",
- "url": "https://github.com/FakerPHP/Faker.git",
- "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
- "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0",
- "psr/container": "^1.0 || ^2.0",
- "symfony/deprecation-contracts": "^2.2 || ^3.0"
- },
- "conflict": {
- "fzaninotto/faker": "*"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "doctrine/persistence": "^1.3 || ^2.0",
- "ext-intl": "*",
- "phpunit/phpunit": "^9.5.26",
- "symfony/phpunit-bridge": "^5.4.16"
- },
- "suggest": {
- "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
- "ext-curl": "Required by Faker\\Provider\\Image to download images.",
- "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
- "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
- "ext-mbstring": "Required for multibyte Unicode string functionality."
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Faker\\": "src/Faker/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "François Zaninotto"
- }
- ],
- "description": "Faker is a PHP library that generates fake data for you.",
- "keywords": [
- "data",
- "faker",
- "fixtures"
- ],
- "support": {
- "issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
- },
- "time": "2024-01-02T13:46:09+00:00"
- },
- {
- "name": "fillup/phpmyadmin-minimal",
- "version": "4.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/fillup/phpmyadmin-minimal.git",
- "reference": "395a8dbfb9ea60e18e2a2c5226bef921cb3a87ac"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fillup/phpmyadmin-minimal/zipball/395a8dbfb9ea60e18e2a2c5226bef921cb3a87ac",
- "reference": "395a8dbfb9ea60e18e2a2c5226bef921cb3a87ac",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "application",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "GPL-2.0+"
- ],
- "authors": [
- {
- "name": "The phpMyAdmin Team",
- "email": "phpmyadmin-devel@lists.sourceforge.net",
- "homepage": "http://www.phpmyadmin.net/home_page/team.php"
- }
- ],
- "description": "Minmal version of MySQL web administration tool",
- "homepage": "http://www.phpmyadmin.net/",
- "keywords": [
- "mysql",
- "phpmyadmin",
- "web"
- ],
- "support": {
- "forum": "https://sourceforge.net/p/phpmyadmin/discussion/Help",
- "issues": "https://sourceforge.net/p/phpmyadmin/bugs/",
- "source": "https://github.com/phpmyadmin/phpmyadmin",
- "wiki": "http://wiki.phpmyadmin.net/"
- },
- "time": "2015-06-16T12:42:01+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.11.1",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "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.1"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
- }
- ],
- "time": "2023-03-08T13:26:56+00:00"
- },
- {
- "name": "phar-io/manifest",
- "version": "1.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
- "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-phar": "*",
- "phar-io/version": "^2.0",
- "php": "^5.6 || ^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.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/master"
- },
- "time": "2018-07-08T19:23:20+00:00"
- },
- {
- "name": "phar-io/version",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6",
- "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6",
- "shasum": ""
- },
- "require": {
- "php": "^5.6 || ^7.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/master"
- },
- "time": "2018-07-08T19:19:57+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.8.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/fad452781b3d774e3337b0c0b245dd8e5a4455fc",
- "reference": "fad452781b3d774e3337b0c0b245dd8e5a4455fc",
- "shasum": ""
- },
- "require": {
- "doctrine/deprecations": "^1.0",
- "php": "^7.4 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0",
- "phpstan/phpdoc-parser": "^1.13"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "phpbench/phpbench": "^1.2",
- "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.8.0"
- },
- "time": "2024-01-11T11:49:22+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "v1.18.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/d4f454f7e1193933f04e6500de3e79191648ed0c",
- "reference": "d4f454f7e1193933f04e6500de3e79191648ed0c",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.2 || ^2.0",
- "php": "^7.2 || 8.0.* || 8.1.* || 8.2.* || 8.3.*",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0 || ^5.0",
- "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0 || ^7.0",
- "phpstan/phpstan": "^1.9",
- "phpunit/phpunit": "^8.0 || ^9.0 || ^10.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",
- "dev",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
- "support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.18.0"
- },
- "time": "2023-12-07T16:22:33+00:00"
- },
- {
- "name": "phpstan/phpdoc-parser",
- "version": "1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240",
- "reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/annotations": "^2.0",
- "nikic/php-parser": "^4.15",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.5",
- "phpstan/phpstan-phpunit": "^1.1",
- "phpstan/phpstan-strict-rules": "^1.0",
- "phpunit/phpunit": "^9.5",
- "symfony/process": "^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
- "support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0"
- },
- "time": "2024-01-04T17:06:16+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "6.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
- "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-xmlwriter": "*",
- "php": "^7.1",
- "phpunit/php-file-iterator": "^2.0",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-token-stream": "^3.0",
- "sebastian/code-unit-reverse-lookup": "^1.0.1",
- "sebastian/environment": "^3.1 || ^4.0",
- "sebastian/version": "^2.0.1",
- "theseer/tokenizer": "^1.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.0"
- },
- "suggest": {
- "ext-xdebug": "^2.6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.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": "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/master"
- },
- "time": "2018-10-31T16:06:48+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "2.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5",
- "reference": "42c5ba5220e6904cbfe8b1a1bda7c0cfdc8c12f5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5"
- },
- "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": "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/2.0.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2021-12-02T12:42:26+00:00"
- },
- {
- "name": "phpunit/php-text-template",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "type": "library",
- "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/1.2.1"
- },
- "time": "2015-06-21T13:50:34+00:00"
- },
- {
- "name": "phpunit/php-timer",
- "version": "2.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-timer.git",
- "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662",
- "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.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": "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/2.1.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T08:20:02+00:00"
- },
- {
- "name": "phpunit/php-token-stream",
- "version": "3.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-token-stream.git",
- "reference": "9c1da83261628cb24b6a6df371b6e312b3954768"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/9c1da83261628cb24b6a6df371b6e312b3954768",
- "reference": "9c1da83261628cb24b6a6df371b6e312b3954768",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.0"
- },
- "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"
- }
- ],
- "description": "Wrapper around PHP's tokenizer extension.",
- "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
- "keywords": [
- "tokenizer"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/php-token-stream/issues",
- "source": "https://github.com/sebastianbergmann/php-token-stream/tree/3.1.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "abandoned": true,
- "time": "2021-07-26T12:15:06+00:00"
- },
- {
- "name": "phpunit/phpunit",
- "version": "7.5.20",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "9467db479d1b0487c99733bb1e7944d32deded2c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9467db479d1b0487c99733bb1e7944d32deded2c",
- "reference": "9467db479d1b0487c99733bb1e7944d32deded2c",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.1",
- "ext-dom": "*",
- "ext-json": "*",
- "ext-libxml": "*",
- "ext-mbstring": "*",
- "ext-xml": "*",
- "myclabs/deep-copy": "^1.7",
- "phar-io/manifest": "^1.0.2",
- "phar-io/version": "^2.0",
- "php": "^7.1",
- "phpspec/prophecy": "^1.7",
- "phpunit/php-code-coverage": "^6.0.7",
- "phpunit/php-file-iterator": "^2.0.1",
- "phpunit/php-text-template": "^1.2.1",
- "phpunit/php-timer": "^2.1",
- "sebastian/comparator": "^3.0",
- "sebastian/diff": "^3.0",
- "sebastian/environment": "^4.0",
- "sebastian/exporter": "^3.1",
- "sebastian/global-state": "^2.0",
- "sebastian/object-enumerator": "^3.0.3",
- "sebastian/resource-operations": "^2.0",
- "sebastian/version": "^2.0.1"
- },
- "conflict": {
- "phpunit/phpunit-mock-objects": "*"
- },
- "require-dev": {
- "ext-pdo": "*"
- },
- "suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*",
- "phpunit/php-invoker": "^2.0"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "7.5-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": "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/7.5.20"
- },
- "time": "2020-01-08T08:45:45+00:00"
- },
- {
- "name": "psr/container",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
- "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
- "shasum": ""
- },
- "require": {
- "php": ">=7.4.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "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/2.0.2"
- },
- "time": "2021-11-05T16:47:00+00:00"
- },
- {
- "name": "sebastian/code-unit-reverse-lookup",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
- "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619",
- "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-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/1.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T08:15:22+00:00"
- },
- {
- "name": "sebastian/comparator",
- "version": "3.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dc7ceb4a24aede938c7af2a9ed1de09609ca770",
- "reference": "1dc7ceb4a24aede938c7af2a9ed1de09609ca770",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1",
- "sebastian/diff": "^3.0",
- "sebastian/exporter": "^3.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5"
- },
- "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"
- },
- {
- "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/3.0.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2022-09-14T12:31:48+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "3.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/6296a0c086dd0117c1b78b059374d7fcbe7545ae",
- "reference": "6296a0c086dd0117c1b78b059374d7fcbe7545ae",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.5 || ^8.0",
- "symfony/process": "^2 || ^3.3 || ^4"
- },
- "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"
- },
- {
- "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/3.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2023-05-07T05:30:20+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "4.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
- "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "require-dev": {
- "phpunit/phpunit": "^7.5"
- },
- "suggest": {
- "ext-posix": "*"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.2-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/4.2.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T07:53:42+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "3.1.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/73a9676f2833b9a7c36968f9d882589cd75511e6",
- "reference": "73a9676f2833b9a7c36968f9d882589cd75511e6",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "^8.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.1.x-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": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2022-09-14T06:00:17+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4",
- "shasum": ""
- },
- "require": {
- "php": "^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "suggest": {
- "ext-uopz": "*"
- },
- "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": "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/2.0.0"
- },
- "time": "2017-04-27T15:39:26+00:00"
- },
- {
- "name": "sebastian/object-enumerator",
- "version": "3.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-enumerator.git",
- "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
- "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0",
- "sebastian/object-reflector": "^1.1.1",
- "sebastian/recursion-context": "^3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-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/3.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T07:40:27+00:00"
- },
- {
- "name": "sebastian/object-reflector",
- "version": "1.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/object-reflector.git",
- "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
- "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-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/1.1.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T07:37:18+00:00"
- },
- {
- "name": "sebastian/recursion-context",
- "version": "3.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb",
- "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0.x-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/3.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T07:34:24+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3",
- "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "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": "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/2.0.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-30T07:30:19+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/version.git",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
- "reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
- },
- "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": "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/master"
- },
- "time": "2016-10-03T07:35:21+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.49",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/33fa45ffc81fdcc1ca368d4946da859c8cdb58d9",
- "reference": "33fa45ffc81fdcc1ca368d4946da859c8cdb58d9",
- "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.49"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2022-11-05T17:10:16+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/deprecation-contracts",
- "version": "v2.5.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-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/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/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/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.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "761c8b8387cfe5f8026594a75fdf0a4e83ba6974"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/761c8b8387cfe5f8026594a75fdf0a4e83ba6974",
- "reference": "761c8b8387cfe5f8026594a75fdf0a4e83ba6974",
- "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.10.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-07-20T09:59:04+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/polyfill-ctype",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.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": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
- "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-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.28.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": "2023-01-26T09:26:14+00:00"
- },
- {
- "name": "symfony/process",
- "version": "v4.4.44",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
- "reference": "5cee9cdc4f7805e2699d9fd66991a0e6df8252a2",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1.3",
- "symfony/polyfill-php80": "^1.16"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Executes commands in sub-processes",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/process/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/service-contracts",
- "version": "v1.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/service-contracts.git",
- "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/191afdcb5804db960d26d8566b7e9a2843cab3a0",
- "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0",
- "shasum": ""
- },
- "require": {
- "php": "^7.1.3"
- },
- "suggest": {
- "psr/container": "",
- "symfony/service-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "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/v1.1.2"
- },
- "time": "2019-05-28T07:50:59+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"
- },
- {
- "name": "theseer/tokenizer",
- "version": "1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
- "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
- "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.2"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2023-11-20T00:12:19+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"
- },
- {
- "name": "yiisoft/yii2-codeception",
- "version": "2.0.6",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-codeception.git",
- "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-codeception/zipball/086c8c2d28736e7a484a7a8611b5cc84024e9fb3",
- "reference": "086c8c2d28736e7a484a7a8611b5cc84024e9fb3",
- "shasum": ""
- },
- "require": {
- "yiisoft/yii2": ">=2.0.4"
- },
- "type": "yii2-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\codeception\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Mark Jebri",
- "email": "mark.github@yandex.ru"
- }
- ],
- "description": "The Codeception integration for the Yii framework",
- "keywords": [
- "codeception",
- "yii2"
- ],
- "support": {
- "forum": "http://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-codeception/issues",
- "source": "https://github.com/yiisoft/yii2-codeception",
- "wiki": "http://www.yiiframework.com/wiki/"
- },
- "abandoned": "codeception/codeception",
- "time": "2017-05-22T12:08:21+00:00"
- },
- {
- "name": "yiisoft/yii2-debug",
- "version": "2.1.25",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-debug.git",
- "reference": "4d011b9bfc83bde71cde43c9f6837f5a74685ea7"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-debug/zipball/4d011b9bfc83bde71cde43c9f6837f5a74685ea7",
- "reference": "4d011b9bfc83bde71cde43c9f6837f5a74685ea7",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "php": ">=5.4",
- "yiisoft/yii2": "~2.0.13"
- },
- "require-dev": {
- "cweagans/composer-patches": "^1.7",
- "phpunit/phpunit": "4.8.34",
- "yiisoft/yii2-coding-standards": "~2.0",
- "yiisoft/yii2-swiftmailer": "*"
- },
- "type": "yii2-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- },
- "composer-exit-on-patch-failure": true,
- "patches": {
- "phpunit/phpunit-mock-objects": {
- "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch"
- },
- "phpunit/phpunit": {
- "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch",
- "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch",
- "Fix PHP 8.1 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php81.patch"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\debug\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Qiang Xue",
- "email": "qiang.xue@gmail.com"
- },
- {
- "name": "Simon Karlen",
- "email": "simi.albi@outlook.com"
- }
- ],
- "description": "The debugger extension for the Yii framework",
- "keywords": [
- "debug",
- "debugger",
- "yii2"
- ],
- "support": {
- "forum": "http://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-debug/issues",
- "source": "https://github.com/yiisoft/yii2-debug",
- "wiki": "http://www.yiiframework.com/wiki/"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-debug",
- "type": "tidelift"
- }
- ],
- "time": "2023-09-26T15:50:00+00:00"
- },
- {
- "name": "yiisoft/yii2-faker",
- "version": "2.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/yiisoft/yii2-faker.git",
- "reference": "8c361657143bfaea58ff7dcc9bf51f1991a46f5d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/yiisoft/yii2-faker/zipball/8c361657143bfaea58ff7dcc9bf51f1991a46f5d",
- "reference": "8c361657143bfaea58ff7dcc9bf51f1991a46f5d",
- "shasum": ""
- },
- "require": {
- "fakerphp/faker": "~1.9|~1.10",
- "yiisoft/yii2": "~2.0.0"
- },
- "require-dev": {
- "cweagans/composer-patches": "^1.7",
- "phpunit/phpunit": "4.8.34"
- },
- "type": "yii2-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- },
- "composer-exit-on-patch-failure": true,
- "patches": {
- "phpunit/phpunit-mock-objects": {
- "Fix PHP 7 and 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_mock_objects.patch"
- },
- "phpunit/phpunit": {
- "Fix PHP 7 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php7.patch",
- "Fix PHP 8 compatibility": "https://yiisoft.github.io/phpunit-patches/phpunit_php8.patch"
- }
- }
- },
- "autoload": {
- "psr-4": {
- "yii\\faker\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Mark Jebri",
- "email": "mark.github@yandex.ru"
- }
- ],
- "description": "Fixture generator. The Faker integration for the Yii framework.",
- "keywords": [
- "Fixture",
- "faker",
- "yii2"
- ],
- "support": {
- "forum": "http://www.yiiframework.com/forum/",
- "irc": "irc://irc.freenode.net/yii",
- "issues": "https://github.com/yiisoft/yii2-faker/issues",
- "source": "https://github.com/yiisoft/yii2-faker",
- "wiki": "http://www.yiiframework.com/wiki/"
- },
- "funding": [
- {
- "url": "https://github.com/yiisoft",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/yiisoft",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/yiisoft/yii2-faker",
- "type": "tidelift"
- }
- ],
- "time": "2020-11-10T12:27:35+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "stable",
- "stability-flags": [],
- "prefer-stable": false,
- "prefer-lowest": false,
- "platform": {
- "php": ">=7.4.0"
- },
- "platform-dev": [],
- "plugin-api-version": "2.3.0"
-}
diff --git a/application/console/components/ActionCommon.php b/application/console/components/ActionCommon.php
deleted file mode 100644
index c2d12ef5..00000000
--- a/application/console/components/ActionCommon.php
+++ /dev/null
@@ -1,36 +0,0 @@
- 20) {
- $tmp = 0;
- }
- $exit = ($tmp > 0);
- $tmp = $tmp + 1;
- $tmp = shm_put_var($tokenValue, 6, $tmp);
- $tmp = shm_get_var($tokenValue, 6);
- sem_release($tokenSemaphore);
- if ($exit) return false;
- return true;
- }
- function release($tokenSemaphore, $tokenValue) {
- sem_acquire($tokenSemaphore);
- $tmp = shm_get_var($tokenValue, 6);
- $tmp = shm_put_var($tokenValue, 6, 0);
- $tmp = shm_get_var($tokenValue, 6);
- sem_release($tokenSemaphore);
- }
-}
-
-
diff --git a/application/console/components/AwsStartupAction.php b/application/console/components/AwsStartupAction.php
deleted file mode 100644
index e27c9a0d..00000000
--- a/application/console/components/AwsStartupAction.php
+++ /dev/null
@@ -1,135 +0,0 @@
- $cacheLocation,
- 'type' => 'S3',
- ];
- $source = [
- 'buildspec' => 'version: 0.2',
- 'gitCloneDepth' => 1,
- 'location' => 'https://git-codecommit.us-east-1.amazonaws.com/v1/repos/sample',
- 'type' => 'CODECOMMIT',
- ];
- $this->createProject($projectName, $cache, $source, $logger);
-
- // Build publish role if necessary
- // Copy default file
- $projectName = 'publish_app';
- $prefix = 'arn:aws:s3:::';
- $bucket = S3::getArtifactsBucket();
- $baseUrl = 'default/default.zip';
- $defaultLocation = $prefix . $bucket . "/" . $baseUrl;
- echo "Location: $defaultLocation" . PHP_EOL;
- echo "[$prefix] AwsStartupAction: create CodeBuild project: $projectName" . PHP_EOL;
- $this->copyDefaultProjectFolder($logger);
- $cache = [
- 'type' => 'NO_CACHE',
- ];
- $source = [
- 'buildspec' => 'version: 0.2',
- 'gitCloneDepth' => 1,
- 'location' => $defaultLocation,
- 'type' => 'S3',
- ];
- $this->createProject($projectName, $cache, $source, $logger);
-
- $this ->copyBuildScriptFolder($logger);
-
- } catch (\Exception $e) {
- $prefix = Utils::getPrefix();
- echo "[$prefix] createCodeBuildProject: Exception:" . PHP_EOL . (string)$e . PHP_EOL;
- $logException = [
- 'problem' => 'Failed to create CodeBuild Project',
- 'projectName' => $projectName
- ];
- $logger->appbuilderExceptionLog($logException, $e);
- }
- }
- private function createProject($projectName, $cache, $source, $logger)
- {
- try {
- $prefix = Utils::getPrefix();
- echo "[$prefix] AwsStartupAction: create CodeBuild project: $projectName" . PHP_EOL;
- $codeBuild = new CodeBuild();
- $iamWrapper = new IAmWrapper();
- if (!$codeBuild->projectExists($projectName))
- {
- echo " Creating build project " . $projectName . PHP_EOL;
-
- $roleArn = $iamWrapper->getRoleArn($projectName);
- $codeBuild->createProject($projectName, $roleArn, $cache, $source);
- echo " Project created" . PHP_EOL;
- }
-
- } catch (\Exception $e) {
- $prefix = Utils::getPrefix();
- echo "[$prefix] createCodeBuildProject: Exception:" . PHP_EOL . (string)$e . PHP_EOL;
- $logException = [
- 'problem' => 'Failed to create CodeBuild Project',
- 'projectName' => $projectName
- ];
- $logger->appbuilderExceptionLog($logException, $e);
- }
- }
- private function copyDefaultProjectFolder($logger)
- {
- $prefix = Utils::getPrefix();
- echo "[$prefix] AwsStartupAction: copyDefaultProjectFolder" . PHP_EOL;
- $sourceFolder = '/data/console/views/cron/scripts/project_default';
- $bucket = S3::getArtifactsBucket();
- $this->copyFolder($logger, $sourceFolder, $bucket);
- }
- private function copyBuildScriptFolder($logger)
- {
- $prefix = Utils::getPrefix();
- echo "[$prefix] AwsStartupAction: copyBuildScriptFolder" . PHP_EOL;
- $sourceFolder = '/data/console/views/cron/scripts/upload';
- $bucket = S3::getProjectsBucket();
- $this->copyFolder($logger, $sourceFolder, $bucket);
- }
- private function copyFolder($logger, $sourceFolder, $bucket)
- {
- try {
- $prefix = Utils::getPrefix();
- echo "[$prefix] AwsStartupAction: copyFolder" . PHP_EOL;
- $s3 = new S3();
- $s3->uploadFolder($sourceFolder, $bucket);
- echo " Copy completed" . PHP_EOL;
- } catch (\Exception $e) {
- $prefix = Utils::getPrefix();
- echo "[$prefix] copyFolder: Exception:" . PHP_EOL . (string)$e . PHP_EOL;
- $logException = [
- 'problem' => 'Failed to copy folder'
- ];
- $logger->appbuilderExceptionLog($logException, $e);
- }
- }
-}
diff --git a/application/console/components/CopyErrorToS3Operation.php b/application/console/components/CopyErrorToS3Operation.php
deleted file mode 100644
index 397c17a7..00000000
--- a/application/console/components/CopyErrorToS3Operation.php
+++ /dev/null
@@ -1,58 +0,0 @@
-id = $id;
- $this->parms = $parms;
- }
- public function performOperation()
- {
- $prefix = Utils::getPrefix();
- echo "[$prefix] CopyErrorToS3Operation ID: " .$this->id . PHP_EOL;
- if ($this->parms == "release") {
- $release = Release::findOne(['id' => $this->id]);
- if ($release) {
- $s3 = new S3();
- $s3->copyS3Folder($release);
- $release->status = Release::STATUS_COMPLETED;
- $release->save();
- }
- } else {
- $build = Build::findOneByBuildId($this->id);
- if ($build) {
- $s3 = new S3();
- $s3->copyS3Folder($build);
- $build->status = Build::STATUS_COMPLETED;
- $build->save();
- }
- }
- }
- public function getMaximumRetries()
- {
- return $this->maxRetries;
- }
- public function getMaximumDelay()
- {
- return $this->maxDelay;
- }
- public function getAlertAfterAttemptCount()
- {
- return $this->alertAfter;
- }
-}
diff --git a/application/console/components/CopyToS3Operation.php b/application/console/components/CopyToS3Operation.php
deleted file mode 100644
index e852cb3d..00000000
--- a/application/console/components/CopyToS3Operation.php
+++ /dev/null
@@ -1,234 +0,0 @@
-build_id = $id;
- $this->parms = $parms;
- $this->fileUtil = \Yii::$container->get('fileUtils');
- }
- public function performOperation()
- {
- $prefix = Utils::getPrefix();
- echo "[$prefix] CopyToS3Operation ID: " .$this->build_id . PHP_EOL;
- if ($this->parms == "release") {
- $release = Release::findOneByBuildId($this->build_id);
- if ($release) {
- $s3 = new S3();
- $s3->copyS3Folder($release);
- $release->status = Release::STATUS_COMPLETED;
- $release->save();
- $s3->removeCodeBuildFolder($release);
- }
- }
- else
- {
- $build = Build::findOneByBuildId($this->build_id);
- if ($build) {
- $job = $build->job;
- if ($job){
- $this->saveBuild($build);
- $build->status = Build::STATUS_COMPLETED;
- $build->result = Build::RESULT_SUCCESS;
- if (!$build->save()){
- throw new \Exception("Unable to update Build entry, model errors: ".print_r($build->getFirstErrors(),true), 1450216434);
- }
- $this->s3->removeCodeBuildFolder($build);
- }
- }
- }
- }
- public function getMaximumRetries()
- {
- return $this->maxRetries;
- }
- public function getMaximumDelay()
- {
- return $this->maxDelay;
- }
- public function getAlertAfterAttemptCount()
- {
- return $this->alertAfter;
- }
-
- /**
- * @param Build $build
- * @param string $defaultLanguage
- */
- private function getExtraContent($build, $defaultLanguage) {
- echo 'getExtraContent defaultLanguage: ' . $defaultLanguage . PHP_EOL;
- $manifestFileContent = (string)$this->s3->readS3File($build, 'manifest.txt');
- if (!empty($manifestFileContent)) {
- $manifestFiles = explode("\n", $manifestFileContent);
- if (count($manifestFiles) > 0) {
- // Copy index.html to destination folder
- $file = \Yii::getAlias("@common") . "/preview/playlisting/index.html";
-
- $indexContents = $this->fileUtil->file_get_contents($file);
- $this->s3->writeFileToS3($indexContents, "play-listing/index.html", $build);
- }
- if (empty($defaultLanguage)) {
- // If defaultLanguage was not found, use first entry with icon
- foreach ($manifestFiles as $playListingFile) {
- if (preg_match("/([^\/]*)\/images\/icon.png$/", $playListingFile, $matches)) {
- $defaultLanguage = $matches[1];
- break;
- }
- }
- }
-
- // Note: I tried using array_map/array_filter, but it changed the json
- // serialization from an array to a hash where the indexes were the old
- // positions in the array.
- $playEncodedRelativePaths = array();
- $languages = array();
- $publishIndex = "" . PHP_EOL;
- $ignoreFiles = [ "default-language.txt", "primary-color.txt", "download-apk-strings.json" ];
- foreach ($manifestFiles as $path) {
- if (in_array($path, $ignoreFiles)) {
- continue;
- }
- if (!empty($path)) {
- // collect files
- $encodedPath = self::encodePath('play-listing/' . $path);
- $publishIndex .= "
- = Html::a('Create Build', ['create'], ['class' => 'btn btn-success']) ?> -
- - = GridView::widget([ - 'dataProvider' => $dataProvider, - 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], - - 'id', - [ - 'attribute' => 'job_id', - 'format' => 'html', - 'value' => function($data) { - return Html::a("$data->job_id", ['job-admin/view', 'id' => $data->job_id]); - }, - ], - 'status', - 'result', - [ - 'attribute'=>'build_guid', - 'format'=>"html", - 'value' => function($data) { - return Html::a("$data->build_guid", $data->codebuild_url); - } - ], - // 'error', - // 'created', - // 'updated', - // 'channel', - // 'version_code', - - ['class' => 'yii\grid\ActionColumn'], - ], - ]); ?> - -- = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> - status == \common\models\Build::STATUS_POSTPROCESSING) { - echo Html::a('Retry Copy', ['retry-copy', 'id' => $model->id], ['class' => 'btn btn-warning']); - } ?> - = Html::a('Delete', ['delete', 'id' => $model->id], [ - 'class' => 'btn btn-danger', - 'data' => [ - 'confirm' => 'Are you sure you want to delete this item?', - 'method' => 'post', - ], - ]) ?> -
- - = - DetailView::widget([ - 'model' => $model, - 'attributes' => [ - 'id', - [ - 'attribute'=>'job_id', - 'format'=>"html", - 'value' => Html::a($model->job_id, ['job-admin/view', 'id' => $model->job_id]), - ], - 'status', - [ - 'attribute'=>'build_guid', - 'format'=>"html", - 'value' => Html::a($model->build_guid, $model->codebuild_url), - ], - 'result', - 'error:url', - [ - 'attribute' => 'artifacts', - 'format'=>'html', - 'value'=> $artifacts_value - ], - 'created', - 'updated', - 'channel', - 'version_code', - 'targets', - 'environment' - ], - ]) ?> - -- = Html::a('Create Client', ['create'], ['class' => 'btn btn-success']) ?> -
- - = GridView::widget([ - 'dataProvider' => $dataProvider, - 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], - - 'id', - 'access_token', - 'prefix', - 'created', - 'updated', - - ['class' => 'yii\grid\ActionColumn'], - ], - ]); ?> - -- = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> - = Html::a('Delete', ['delete', 'id' => $model->id], [ - 'class' => 'btn btn-danger', - 'data' => [ - 'confirm' => 'Are you sure you want to delete this item?', - 'method' => 'post', - ], - ]) ?> -
- - = DetailView::widget([ - 'model' => $model, - 'attributes' => [ - 'id', - 'access_token', - 'prefix', - 'created', - 'updated', - ], - ]) ?> - -- = Html::a('Create Job', ['create'], ['class' => 'btn btn-success']) ?> -
- - = GridView::widget([ - 'dataProvider' => $dataProvider, - 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], - - 'id', - 'request_id', - 'git_url:url', - 'app_id', - 'publisher_id', - [ - 'attribute' => 'client_id', - 'format' => 'html', - 'value' => function($data) { - return $data->client_id ? Html::a($data->client_id, ['client-admin/view', 'id' => $data->client_id]) : "(not set)"; - }, - ], - 'existing_version_code', - // 'created', - // 'updated', - - ['class' => 'yii\grid\ActionColumn'], - ], - ]); ?> - -- = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> - = Html::a('Delete', ['delete', 'id' => $model->id], [ - 'class' => 'btn btn-danger', - 'data' => [ - 'confirm' => 'Are you sure you want to delete this item?', - 'method' => 'post', - ], - ]) ?> -
- - = DetailView::widget([ - 'model' => $model, - 'attributes' => [ - 'id', - 'request_id', - 'git_url:url', - 'app_id', - 'publisher_id', - [ - 'attribute'=>'client_id', - 'format'=>"html", - 'value' => $model->client_id ? Html::a($model->client_id, ['client-admin/view', 'id' => $model->client_id]) : "(not set)", - ], - 'existing_version_code', - [ - 'attribute'=>'jenkins_build_url', - 'format'=>"html", - 'value' => $model->jenkins_build_url ? Html::a($model->jenkins_build_url, $model->jenkins_build_url) : "(not set)", - ], - [ - 'attribute'=>'jenkins_publish_url', - 'format'=>"html", - 'value' => $model->jenkins_publish_url ? Html::a($model->jenkins_publish_url, $model->jenkins_publish_url) : "(not set)", - ], - 'created', - 'updated', - ], - ]) ?> - -- = Html::a('Create Operation Queue', ['create'], ['class' => 'btn btn-success']) ?> -
- - = GridView::widget([ - 'dataProvider' => $dataProvider, - 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], - - 'id', - 'operation', - 'operation_object_id', - 'operation_parms', - 'attempt_count', - // 'last_attempt', - // 'try_after', - // 'start_time', - // 'last_error', - // 'created', - // 'updated', - - ['class' => 'yii\grid\ActionColumn'], - ], - ]); ?> - -- = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> - = Html::a('Delete', ['delete', 'id' => $model->id], [ - 'class' => 'btn btn-danger', - 'data' => [ - 'confirm' => 'Are you sure you want to delete this item?', - 'method' => 'post', - ], - ]) ?> -
- - = DetailView::widget([ - 'model' => $model, - 'attributes' => [ - 'id', - 'operation', - 'operation_object_id', - 'operation_parms', - 'attempt_count', - 'last_attempt', - 'try_after', - 'start_time', - 'last_error', - 'created', - 'updated', - ], - ]) ?> - -- = Html::a('Create Project', ['create'], ['class' => 'btn btn-success']) ?> -
- - = GridView::widget([ - 'dataProvider' => $dataProvider, - 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], - - 'id', - 'status', - 'result', -// 'error', - 'url', - 'user_id', - 'group_id', - 'app_id', - 'project_name', -// 'language_code', -// 'publishing_key', - - ['class' => 'yii\grid\ActionColumn'], - ], - ]); ?> - -- = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> - = Html::a('Delete', ['delete', 'id' => $model->id], [ - 'class' => 'btn btn-danger', - 'data' => [ - 'confirm' => 'Are you sure you want to delete this item?', - 'method' => 'post', - ], - ]) ?> -
- - = DetailView::widget([ - 'model' => $model, - 'attributes' => [ - 'id', - 'status', - 'result', - 'error', - 'url', - 'user_id', - 'group_id', - 'app_id', - 'project_name', - 'language_code', - [ - 'attribute'=>'client_id', - 'format'=>"html", - 'value' => $model->client_id ? Html::a($model->client_id, ['client-admin/view', 'id' => $model->client_id]) : "(not set)", - ], - 'publishing_key', - 'created', - 'updated', - ], - ]) ?> - -- = Html::a('Create Release', ['create'], ['class' => 'btn btn-success']) ?> -
- - = GridView::widget([ - 'dataProvider' => $dataProvider, - 'columns' => [ - ['class' => 'yii\grid\SerialColumn'], - - 'id', - [ - 'label' => 'Job ID', - 'attribute' => 'job_id', - 'format' => 'html', - 'value' => function($data) { - $jobId = $data->jobId(); - return Html::a("$jobId", ['job-admin/view', 'id' => $jobId]); - }, - ], - [ - 'attribute' => 'build_id', - 'format' => 'html', - 'value' => function($data) { - return Html::a("$data->build_id", ['build-admin/view', 'id' => $data->build_id]); - }, - ], - 'status', - 'result', - [ - 'attribute'=>'build_guid', - 'format'=>"html", - 'value' => function($data) { - return Html::a("$data->build_guid", $data->codebuild_url); - } - ], - // 'created', - // 'updated', - // 'result', - // 'error', - // 'channel', - // 'title', - // 'defaultLanguage', - // 'build_guid', - // 'promote_from', - - ['class' => 'yii\grid\ActionColumn'], - ], - ]); ?> - -- = Html::a('Update', ['update', 'id' => $model->id], ['class' => 'btn btn-primary']) ?> - = Html::a('Delete', ['delete', 'id' => $model->id], [ - 'class' => 'btn btn-danger', - 'data' => [ - 'confirm' => 'Are you sure you want to delete this item?', - 'method' => 'post', - ], - ]) ?> -
- - = DetailView::widget([ - 'model' => $model, - 'attributes' => [ - 'id', - [ - 'attribute'=>'build_id', - 'format'=>"html", - 'value' => Html::a($model->build_id, ['build-admin/view', 'id' => $model->build_id]), - ], - 'status', - 'created', - 'updated', - 'result', - 'error:url', - [ - 'attribute' => 'artifacts', - 'format'=>'html', - 'value'=> Html::a("cloudWatch", $model->cloudWatch()) . ", " . - Html::a("consoleText", $model->consoleText()) . ", " . - Html::a("publishUrl", $model->publishUrl()) - ], - 'channel', - 'title', - 'defaultLanguage', - [ - 'attribute'=>'build_guid', - 'format'=>"html", - 'value' => Html::a($model->build_guid, $model->codebuild_url), - ], - 'promote_from', - 'targets', - 'environment' - ], - ]) ?> - -
- Chris Hubbard (SIL International) : Dev Lead, Programming -
-David Moore (SIL International) : Programming -
-Rick MacLean (SIL International) : Dev Ops -
- -- If you have business inquiries or other questions, please fill out the following form to contact us. Thank you. -
- -- The above error occurred while the Web server was processing your request. -
-- Please contact us if you think this is a server error. Thank you. -
- -View, edit, or remove entries from the job table. - Jobs point to the AWS S3 repository that contains the source for - the builds and publishes associated with this job. - Deleting job entries also deletes any associated - builds and releases associated with the job.
- - -View, edit, or remove entries from the build table. Each entry in this table contains a url link - to the instance of the associated AWS Codebuild build attempt. Deleting the build also - deletes any releases associated with this build.
- - -View, edit, or remove entries from the release table. Entries in this table relate to attempts to publish - builds in Google Play store or other customized locations. Each entry in this table contains a url link - to the instance of the associated AWS Codebuild publish attempt.
- - -View, edit, or remove entries from the client table. Used if multiple Scriptoria sites are sending requests to - the build engine. Access tokens, which are used for the Authentication: Bearer fields of requests are entered - along with a prefix that is used in naming jobs associated with this client. - -
-View, edit, or remove entries from the operation queue table. Entries in this table relate to internal operations - that are either queued to be performed, waiting to be retried, or have failed the maximum number of times and - are present for reporting purposes only. - -
-View, edit, or remove entries from the project table. - Each entry contains a link to be used by Scripture App Builder to create or update a source repository in AWS S3. - -
-Please fill out the following fields to login:
- -Please fill out your email. A link to reset password will be sent there.
- -Please choose your new password:
- -Please fill out the following fields to signup:
- -The path to yii framework seems to be incorrect.
'; - echo 'You need to install Yii framework via composer or adjust the framework path in file ' . basename(__FILE__) . '.
'; - echo 'Please refer to the README on how to install Yii.
'; -} - -require_once($frameworkPath . '/requirements/YiiRequirementChecker.php'); -$requirementsChecker = new YiiRequirementChecker(); - -$gdMemo = $imagickMemo = 'Either GD PHP extension with FreeType support or ImageMagick PHP extension with PNG support is required for image CAPTCHA.'; -$gdOK = $imagickOK = false; - -if (extension_loaded('imagick')) { - $imagick = new Imagick(); - $imagickFormats = $imagick->queryFormats('PNG'); - if (in_array('PNG', $imagickFormats)) { - $imagickOK = true; - } else { - $imagickMemo = 'Imagick extension should be installed with PNG support in order to be used for image CAPTCHA.'; - } -} - -if (extension_loaded('gd')) { - $gdInfo = gd_info(); - if (!empty($gdInfo['FreeType Support'])) { - $gdOK = true; - } else { - $gdMemo = 'GD extension should be installed with FreeType support in order to be used for image CAPTCHA.'; - } -} - -/** - * Adjust requirements according to your application specifics. - */ -$requirements = array( - // Database : - array( - 'name' => 'PDO extension', - 'mandatory' => true, - 'condition' => extension_loaded('pdo'), - 'by' => 'All DB-related classes', - ), - array( - 'name' => 'PDO SQLite extension', - 'mandatory' => false, - 'condition' => extension_loaded('pdo_sqlite'), - 'by' => 'All DB-related classes', - 'memo' => 'Required for SQLite database.', - ), - array( - 'name' => 'PDO MySQL extension', - 'mandatory' => false, - 'condition' => extension_loaded('pdo_mysql'), - 'by' => 'All DB-related classes', - 'memo' => 'Required for MySQL database.', - ), - array( - 'name' => 'PDO PostgreSQL extension', - 'mandatory' => false, - 'condition' => extension_loaded('pdo_pgsql'), - 'by' => 'All DB-related classes', - 'memo' => 'Required for PostgreSQL database.', - ), - // Cache : - array( - 'name' => 'Memcache extension', - 'mandatory' => false, - 'condition' => extension_loaded('memcache') || extension_loaded('memcached'), - 'by' => 'MemCache', - 'memo' => extension_loaded('memcached') ? 'To use memcached set MemCache::useMemcached totrue.' : ''
- ),
- array(
- 'name' => 'APC extension',
- 'mandatory' => false,
- 'condition' => extension_loaded('apc'),
- 'by' => 'ApcCache',
- ),
- // CAPTCHA:
- array(
- 'name' => 'GD PHP extension with FreeType support',
- 'mandatory' => false,
- 'condition' => $gdOK,
- 'by' => 'Captcha',
- 'memo' => $gdMemo,
- ),
- array(
- 'name' => 'ImageMagick PHP extension with PNG support',
- 'mandatory' => false,
- 'condition' => $imagickOK,
- 'by' => 'Captcha',
- 'memo' => $imagickMemo,
- ),
- // PHP ini :
- 'phpExposePhp' => array(
- 'name' => 'Expose PHP',
- 'mandatory' => false,
- 'condition' => $requirementsChecker->checkPhpIniOff("expose_php"),
- 'by' => 'Security reasons',
- 'memo' => '"expose_php" should be disabled at php.ini',
- ),
- 'phpAllowUrlInclude' => array(
- 'name' => 'PHP allow url include',
- 'mandatory' => false,
- 'condition' => $requirementsChecker->checkPhpIniOff("allow_url_include"),
- 'by' => 'Security reasons',
- 'memo' => '"allow_url_include" should be disabled at php.ini',
- ),
- 'phpSmtp' => array(
- 'name' => 'PHP mail SMTP',
- 'mandatory' => false,
- 'condition' => strlen(ini_get('SMTP')) > 0,
- 'by' => 'Email sending',
- 'memo' => 'PHP mail SMTP server required',
- ),
-);
-$requirementsChecker->checkYii()->check($requirements)->render();
diff --git a/application/run-cron.sh b/application/run-cron.sh
deleted file mode 100755
index c8055418..00000000
--- a/application/run-cron.sh
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env bash
-
-if [[ "x" == "x$LOGENTRIES_KEY" ]]; then
- echo "Missing LOGENTRIES_KEY environment variable";
-else
- # Set logentries key based on environment variable
- sed -i /etc/rsyslog.conf -e "s/LOGENTRIESKEY/${LOGENTRIES_KEY}/"
- # Start syslog
- rsyslogd
-fi
-
-# fix folder permissions
-chown -R www-data:www-data \
- /data/console/runtime/ \
- /data/frontend/assets/ \
- /data/frontend/runtime/ \
- /data/frontend/web/assets/
-
-# make sure rsyslog can read logentries cert
-chmod a+r /opt/ssl/logentries.all.crt
-
-# Dump env to a file
-touch /etc/cron.d/appbuilder
-env | while read line ; do
- if [[ "${line: -1}" != "=" ]]
- then
- echo "$line" >> /etc/cron.d/appbuilder
- fi
-done
-
-/data/yii cron/aws-startup 2>&1 >> /var/log/aws-startup.log
-
-# Add env vars to doorman-cron to make available to scripts
-cat /etc/cron.d/appbuilder-cron >> /etc/cron.d/appbuilder
-
-# Remove original cron file without env vars
-rm -f /etc/cron.d/appbuilder-cron
-
-# Start cron daemon
-cron -f
diff --git a/application/run-tests.sh b/application/run-tests.sh
deleted file mode 100755
index d97d11c1..00000000
--- a/application/run-tests.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env bash
-
-# Run shell tests
-scversion="stable" # or "v0.4.7", or "latest"
-curl -s -L --output - "https://github.com/koalaman/shellcheck/releases/download/${scversion?}/shellcheck-${scversion?}.linux.x86_64.tar.xz" | tar -xJv
-cp "shellcheck-${scversion}/shellcheck" /usr/bin/
-shellcheck --version
-shellcheck /data/console/views/cron/scripts/upload/default/*.sh || exit 1
-
-# Run database migrations
-whenavail db 3306 100 /data/yii migrate --interactive=0
-whenavail db 3306 100 /data/yii migrate --interactive=0 --migrationPath=console/migrations-test
-
-# Run codeception tests
-cd /data
-composer install --prefer-dist --no-interaction
-./vendor/bin/codecept run unit
diff --git a/application/run.sh b/application/run.sh
deleted file mode 100755
index fced6fa9..00000000
--- a/application/run.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/usr/bin/env bash
-
-if [[ "x" == "x$LOGENTRIES_KEY" ]]; then
- echo "Missing LOGENTRIES_KEY environment variable";
-else
- # Set logentries key based on environment variable
- sed -i /etc/rsyslog.conf -e "s/LOGENTRIESKEY/${LOGENTRIES_KEY}/"
- # Start syslog
- rsyslogd
-fi
-
-# fix folder permissions
-chown -R www-data:www-data \
- /data/vendor/ \
- /data/console/runtime/ \
- /data/frontend/assets/ \
- /data/frontend/runtime/ \
- /data/frontend/web/assets/
-
-
-
-# Run database migrations
-/data/yii migrate --interactive=0
-/data/yii migrate --interactive=0 --migrationPath=console/migrations-local
-
-# Run apache in foreground
-apache2ctl -D FOREGROUND
diff --git a/application/tests/README.md b/application/tests/README.md
deleted file mode 100644
index ad7f0167..00000000
--- a/application/tests/README.md
+++ /dev/null
@@ -1,58 +0,0 @@
-This directory contains various tests for the advanced applications.
-
-Tests in `codeception` directory are developed with [Codeception PHP Testing Framework](http://codeception.com/).
-
-After creating and setting up the advanced application, follow these steps to prepare for the tests:
-
-1. Install Codeception if it's not yet installed:
-
- ```
- composer global require "codeception/codeception=2.0.*" "codeception/specify=*" "codeception/verify=*"
- ```
-
- If you've never used Composer for global packages run `composer global status`. It should output:
-
- ```
- Changed current directory to I am Stronger than thou
` - * - `` - * - * But will *not* be true for strings like: - * - * - `Home` - * - `I am Stronger than thou
` - * - `` - * - * But will *not* be true for strings like: - * - * - `Home` - * - `I am Stronger than thou
` - * - `` - * - * But will ignore strings like: - * - * - `Home` - * - `I am Stronger than thou
` - * - `` - * - * But will ignore strings like: - * - * - `Home` - * - `