diff --git a/.github/dev_bug_report.md b/.github/dev_bug_report.md
new file mode 100755
index 0000000..ef93e56
--- /dev/null
+++ b/.github/dev_bug_report.md
@@ -0,0 +1,35 @@
+---
+name: Dev Bug Report
+about: Create a report to help us improve
+title: ''
+labels: stat_backlog, type_bug
+assignees: ''
+
+---
+
+# Bug Description
+A clear and concise description of what the bug is.
+
+# How to Reproduce
+
+Steps to reproduce the behavior:
+
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+## Minimal Code Example
+
+```
+// your code ...
+```
+
+# Expected Behavior
+A clear and concise description of what you expected to happen.
+
+# Screenshots
+If applicable, add screenshots to help explain your problem.
+
+# Additional Information
+Add any other context about the problem here.
diff --git a/.github/dev_feature_request.md b/.github/dev_feature_request.md
new file mode 100755
index 0000000..9573c35
--- /dev/null
+++ b/.github/dev_feature_request.md
@@ -0,0 +1,18 @@
+---
+name: Dev Feature Request
+about: Suggest an idea for this project
+title: ''
+labels: stat_backlog, type_feature
+assignees: ''
+
+---
+
+# What is the feature you request
+* A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+* A clear and concise description of what you want to happen.
+
+# Alternatives
+A clear and concise description of any alternative solutions or features you've considered.
+
+# Additional Information
+Add any other context or screenshots about the feature request here.
diff --git a/.github/user_bug_report.md b/.github/user_bug_report.md
new file mode 100755
index 0000000..9e5f2a5
--- /dev/null
+++ b/.github/user_bug_report.md
@@ -0,0 +1,34 @@
+---
+name: User Bug Report
+about: Create a report to help us improve
+title: ''
+labels: stat_backlog, type_bug
+assignees: ''
+
+---
+
+# Bug Description
+A clear and concise description of what the bug is.
+
+# How to Reproduce
+Steps to reproduce the behavior:
+
+1. Go to '...'
+2. Click on '....'
+3. Scroll down to '....'
+4. See error
+
+# Expected Behavior
+A clear and concise description of what you expected to happen.
+
+# Screenshots
+If applicable, add screenshots to help explain your problem.
+
+# System Information
+ - System: [e.g. PC or iPhone11, ...]
+ - OS: [e.g. iOS]
+ - Browser [e.g. chrome, safari]
+ - KarakaVersion [e.g. 22]
+
+# Additional Information
+Add any other context about the problem here.
diff --git a/.github/user_feature_request.md b/.github/user_feature_request.md
new file mode 100755
index 0000000..6eb8ddc
--- /dev/null
+++ b/.github/user_feature_request.md
@@ -0,0 +1,18 @@
+---
+name: User Feature Request
+about: Suggest an idea for this project
+title: ''
+labels: stat_backlog, type_feature
+assignees: ''
+
+---
+
+# What is the feature you request
+* A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
+* A clear and concise description of what you want to happen.
+
+# Alternatives
+A clear and concise description of any alternative solutions or features you've considered.
+
+# Additional Information
+Add any other context or screenshots about the feature request here.
diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml
new file mode 100755
index 0000000..adb8716
--- /dev/null
+++ b/.github/workflows/greetings.yml
@@ -0,0 +1,13 @@
+name: Greetings
+
+on: [pull_request, issues]
+
+jobs:
+ greeting:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/first-interaction@v1
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ issue-message: 'Thank you for createing this issue. We will check it as soon as possible.'
+ pr-message: 'Thank you for your pull request. We will check it as soon as possible.'
diff --git a/.github/workflows/image.yml b/.github/workflows/image.yml
new file mode 100755
index 0000000..d079329
--- /dev/null
+++ b/.github/workflows/image.yml
@@ -0,0 +1,24 @@
+name: Compress images
+on:
+ push:
+ paths:
+ - '**.jpg'
+ - '**.png'
+ - '**.webp'
+ pull_request:
+ paths:
+ - '**.jpg'
+ - '**.png'
+ - '**.webp'
+jobs:
+ build:
+ name: calibreapp/image-actions
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Repo
+ uses: actions/checkout@main
+
+ - name: Compress Images
+ uses: calibreapp/image-actions@main
+ with:
+ githubToken: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
new file mode 100755
index 0000000..6dcd721
--- /dev/null
+++ b/.github/workflows/main.yml
@@ -0,0 +1,281 @@
+name: CI
+
+on: [push, pull_request]
+
+jobs:
+ autoformat:
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, 'NO_CI')"
+ strategy:
+ fail-fast: false
+ max-parallel: 3
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ - name: Get Composer Cache Directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+ - name: Cache dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+ - name: Setup Composer
+ run: composer install
+ - name: Autoformat
+ run: 'vendor/bin/php-cs-fixer fix ./ --rules=''{"array_syntax": {"syntax": "short"}, "blank_line_after_namespace": true, "global_namespace_import": {"import_classes": false, "import_constants": false, "import_functions": false}, "binary_operator_spaces": {"operators": {"=": "align", ".=": "align", "+=": "align", "-=": "align", "*=": "align", "/=": "align", "|=": "align", "&=": "align", "=>": "align", "??=": "align"}}, "cast_spaces": {"space": "single"}, "class_attributes_separation": { "elements": {"const": "one", "method": "one", "property": "one"} }, "combine_consecutive_issets": true, "compact_nullable_typehint": true, "declare_strict_types": true, "declare_equal_normalize": {"space": "none"}, "elseif": true, "encoding": true, "explicit_indirect_variable": true, "explicit_string_variable": true, "function_to_constant": true, "implode_call": true, "increment_style": {"style": "pre"}, "is_null": true, "yoda_style": {"equal": false, "identical": false, "less_and_greater": false}, "line_ending": true, "logical_operators": true, "lowercase_cast": true, "constant_case": {"case": "lower"}, "lowercase_keywords": true, "modernize_types_casting": true, "native_constant_invocation": true, "native_function_casing": true, "native_function_invocation": {"include": ["@all"]}, "new_with_braces": true, "no_extra_blank_lines": {"tokens": ["break", "case", "continue", "curly_brace_block", "extra", "return", "switch", "throw", "use"]}, "no_spaces_after_function_name": true, "no_alias_functions": true, "no_closing_tag": true, "no_empty_comment": true, "no_empty_phpdoc": true, "no_empty_statement": true, "no_homoglyph_names": true, "no_mixed_echo_print": {"use": "echo"}, "no_php4_constructor": true, "no_singleline_whitespace_before_semicolons": true, "no_spaces_inside_parenthesis": true, "no_trailing_whitespace": true, "no_unneeded_final_method": true, "no_unused_imports": true, "no_useless_return": true, "no_whitespace_before_comma_in_array": true, "no_whitespace_in_blank_line": true, "non_printable_character": true, "normalize_index_brace": true, "ordered_imports": {"sort_algorithm": "alpha"}, "ordered_interfaces": {"order": "alpha"}, "php_unit_construct": true, "php_unit_internal_class": true, "php_unit_set_up_tear_down_visibility": true, "phpdoc_indent": true, "phpdoc_align": {"align": "vertical"}, "phpdoc_annotation_without_dot": true, "phpdoc_scalar": true, "phpdoc_return_self_reference": {"replacements": {"this": "self"}}, "phpdoc_trim": true, "phpdoc_trim_consecutive_blank_line_separation": true, "random_api_migration": true, "self_accessor": true, "return_type_declaration": {"space_before": "one"}, "semicolon_after_instruction": true, "set_type_to_cast": true, "short_scalar_cast": true, "single_blank_line_at_eof": true, "single_line_after_imports": true, "standardize_increment": true, "trailing_comma_in_multiline": true, "trim_array_spaces": true, "visibility_required": true, "void_return": true}'' --allow-risky=yes'
+ - name: Check for modified files
+ id: git-check
+ run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
+ - name: Push changes
+ if: steps.git-check.outputs.modified == 'true'
+ run: |
+ git config --global user.name 'Formatter Bot'
+ git config --global user.email 'formatter.bot@karaka.app'
+ git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
+ git commit -am "Automated formatting changes"
+ git push
+ code-tests:
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, 'NO_CI')"
+ services:
+ mysql:
+ image: mysql:5.7
+ env:
+ MYSQL_ALLOW_EMPTY_PASSWORD: false
+ MYSQL_ROOT_PASSWORD: root
+ MYSQL_DATABASE: oms
+ ports:
+ - 3306:3306
+ options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
+ postgres:
+ image: postgres:10.8
+ env:
+ POSTGRES_USER: postgres
+ POSTGRES_PASSWORD: root
+ POSTGRES_DB: oms
+ ports:
+ - 5432:5432
+ options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3
+ redis:
+ image: redis
+ ports:
+ - 6379:6379
+ options: --entrypoint redis-server
+ memcached:
+ image: memcached
+ ports:
+ - 11211:11211
+ strategy:
+ fail-fast: false
+ max-parallel: 3
+ matrix:
+ php-versions: ['8.1']
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ - name: Checkout Build Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/Build
+ path: Build
+ - name: Checkout Resource Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/Resources
+ path: Resources
+ - name: Checkout phpOMS Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/phpOMS
+ path: phpOMS
+ token: ${{ secrets.GH_PAT }}
+ - name: Checkout Karaka Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/Karaka
+ path: Karaka
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@master
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, gd, zip, dom, mysql, pgsql, sqlite, imap, bcmath, redis, memcached
+ ini-values: opcache.jit_buffer_size=256M, opcache.jit=1235, pcre.jit=1
+ coverage: pcov
+ - name: Get Composer Cache Directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+ - name: Cache dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+ - name: Setup Composer
+ run: composer install
+ - name: phpunit
+ run: vendor/bin/phpunit --coverage-clover tests/coverage.xml --configuration tests/phpunit_default.xml
+ static-tests:
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, 'NO_CI')"
+ strategy:
+ fail-fast: false
+ max-parallel: 3
+ matrix:
+ php-versions: ['8.1']
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ submodules: recursive
+ token: ${{ secrets.GH_PAT }}
+ - name: Checkout Build Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/Build
+ path: Build
+ - name: Checkout phpOMS Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/phpOMS
+ path: phpOMS
+ token: ${{ secrets.GH_PAT }}
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@master
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, gd, zip, dom, mysql, pgsql, sqlite, imap, bcmath, redis, memcached
+ ini-values: opcache.jit_buffer_size=256M, opcache.jit=1235, pcre.jit=1
+ - name: Get Composer Cache Directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+ - name: Cache dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+ - name: Setup Composer
+ run: composer install
+ - name: phpstan
+ run: vendor/bin/phpstan analyse -a phpOMS/Autoloader.php --no-progress -l 9 -c Build/Config/phpstan.neon ./
+ codestyle-tests:
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, 'NO_CI')"
+ strategy:
+ fail-fast: false
+ max-parallel: 3
+ matrix:
+ php-versions: ['8.1']
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ submodules: recursive
+ token: ${{ secrets.GH_PAT }}
+ - name: Checkout Build Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/Build
+ path: Build
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@master
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, gd, zip, dom, mysql, pgsql, sqlite, imap, bcmath, redis, memcached
+ ini-values: opcache.jit_buffer_size=256M, opcache.jit=1235, pcre.jit=1
+ - name: Get Composer Cache Directory
+ id: composer-cache
+ run: echo "::set-output name=dir::$(composer config cache-files-dir)"
+ - name: Cache dependencies
+ uses: actions/cache@v1
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
+ restore-keys: ${{ runner.os }}-composer-
+ - name: Setup Composer
+ run: composer install
+ - name: phpcs
+ run: vendor/bin/phpcs --severity=1 ./ --standard="Build/Config/phpcs.xml" -s --report=full
+ - name: Install NPM
+ uses: actions/setup-node@v3
+ with:
+ node-version: '14'
+ cache: 'npm'
+ - run: npm install
+ - name: eslint
+ run: npx eslint ./ -c Build/Config/.eslintrc.json
+# linting:
+# runs-on: ubuntu-latest
+# if: "!contains(github.event.head_commit.message, 'NO_CI')"
+# strategy:
+# fail-fast: false
+# max-parallel: 3
+# steps:
+# - name: Checkout Repository
+# uses: actions/checkout@main
+# with:
+# fetch-depth: 0
+# submodules: recursive
+# token: ${{ secrets.GH_TOKEN }}
+# - name: Lint Code Base
+# uses: github/super-linter/slim@v4
+# env:
+# VALIDATE_ALL_CODEBASE: false
+# VALIDATE_PHP: true
+# VALIDATE_PHP_BUILTIN: true
+# DEFAULT_BRANCH: develop
+# GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
+ custom:
+ runs-on: ubuntu-latest
+ if: "!contains(github.event.head_commit.message, 'NO_CI')"
+ strategy:
+ fail-fast: false
+ max-parallel: 3
+ matrix:
+ php-versions: ['8.1']
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ - name: Checkout Build Repository
+ uses: actions/checkout@main
+ with:
+ fetch-depth: 1
+ ref: develop
+ repository: Karaka-Management/Build
+ path: Build
+ - name: Setup PHP, with composer and extensions
+ uses: shivammathur/setup-php@master
+ with:
+ php-version: ${{ matrix.php-versions }}
+ extensions: mbstring, gd, zip, dom, mysql, pgsql, sqlite, bcmath, redis, memcached
+ ini-values: opcache.jit_buffer_size=256M, opcache.jit=1235, pcre.jit=1
+ - name: PHP linting
+ run: |
+ find ./ -type f \
+ -name '*.php' -print0 | xargs -0 -n1 -P4 php -l -n | (! grep -v "No syntax errors detected" )
+ - name: Php strict
+ run: if [[ $(grep -r -L "declare(strict_types=1);" --include=*.php --exclude={*.tpl.php,*Hooks.php,*Routes.php,*SearchCommands.php} ./) -ne "" ]]; then exit 1; fi
diff --git a/.gitignore b/.gitignore
new file mode 100755
index 0000000..22d0d82
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+vendor
diff --git a/Admin/Install/Media.install.json b/Admin/Install/Media.install.json
new file mode 100755
index 0000000..672b5b8
--- /dev/null
+++ b/Admin/Install/Media.install.json
@@ -0,0 +1,9 @@
+[
+ {
+ "type": "collection",
+ "create_directory": true,
+ "name": "FleetManagement",
+ "virtualPath": "/Modules",
+ "user": 1
+ }
+]
\ No newline at end of file
diff --git a/Admin/Install/Media.php b/Admin/Install/Media.php
new file mode 100755
index 0000000..ee82fd1
--- /dev/null
+++ b/Admin/Install/Media.php
@@ -0,0 +1,43 @@
+ __DIR__ . '/Media.install.json']);
+ }
+}
diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json
new file mode 100755
index 0000000..7e031ca
--- /dev/null
+++ b/Admin/Install/Navigation.install.json
@@ -0,0 +1,110 @@
+[
+ {
+ "id": 1003501001,
+ "pid": "/",
+ "type": 2,
+ "subtype": 0,
+ "name": "FleetManagement",
+ "uri": null,
+ "target": "self",
+ "icon": "fa fa-car",
+ "order": 80,
+ "from": "FleetManagement",
+ "permission": { "permission": 2, "category": null, "element": null },
+ "parent": 0,
+ "children": [
+ {
+ "id": 1003502001,
+ "pid": "/",
+ "type": 2,
+ "subtype": 1,
+ "name": "Vehicles",
+ "uri": "{/lang}/{/app}/fleet/client/list",
+ "target": "self",
+ "icon": null,
+ "order": 1,
+ "from": "FleetManagement",
+ "permission": { "permission": 2, "category": null, "element": null },
+ "parent": 1003501001,
+ "children": [
+ {
+ "id": 1003502101,
+ "pid": "/fleet/vehicle",
+ "type": 3,
+ "subtype": 1,
+ "name": "List",
+ "uri": "{/lang}/{/app}/fleet/vehicle/list",
+ "target": "self",
+ "icon": null,
+ "order": 1,
+ "from": "FleetManagement",
+ "permission": { "permission": 2, "category": null, "element": null },
+ "parent": 1003502001,
+ "children": []
+ },
+ {
+ "id": 1003502201,
+ "pid": "/fleet/vehicle",
+ "type": 3,
+ "subtype": 1,
+ "name": "Create",
+ "uri": "{/lang}/{/app}/fleet/vehicle/create?{?}",
+ "target": "self",
+ "icon": null,
+ "order": 1,
+ "from": "FleetManagement",
+ "permission": { "permission": 4, "category": null, "element": null },
+ "parent": 1003502001,
+ "children": []
+ }
+ ]
+ },
+ {
+ "id": 1003503001,
+ "pid": "/",
+ "type": 2,
+ "subtype": 1,
+ "name": "Attributes",
+ "uri": "{/lang}/{/app}/fleet/vehicle/attribute/type/list?{?}",
+ "target": "self",
+ "icon": null,
+ "order": 5,
+ "from": "FleetManagement",
+ "permission": { "permission": 2, "category": null, "element": null },
+ "parent": 1003501001,
+ "children": [
+ {
+ "id": 1003503101,
+ "pid": "/sales",
+ "type": 3,
+ "subtype": 1,
+ "name": "Types",
+ "uri": "{/lang}/{/app}/fleet/vehicle/attribute/type/list?{?}",
+ "target": "self",
+ "icon": null,
+ "order": 15,
+ "from": "FleetManagement",
+ "permission": { "permission": 2, "category": null, "element": null },
+ "parent": 1003503001,
+ "children": []
+ },
+ {
+ "id": 1003503201,
+ "pid": "/sales",
+ "type": 3,
+ "subtype": 1,
+ "name": "Values",
+ "uri": "{/lang}/{/app}/fleet/vehicle/attribute/value/list?{?}",
+ "target": "self",
+ "icon": null,
+ "order": 15,
+ "from": "FleetManagement",
+ "permission": { "permission": 2, "category": null, "element": null },
+ "parent": 1003503001,
+ "children": []
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/Admin/Install/Navigation.php b/Admin/Install/Navigation.php
new file mode 100755
index 0000000..bebc194
--- /dev/null
+++ b/Admin/Install/Navigation.php
@@ -0,0 +1,43 @@
+ __DIR__ . '/Navigation.install.json']);
+ }
+}
diff --git a/Admin/Install/db.json b/Admin/Install/db.json
new file mode 100755
index 0000000..651ca07
--- /dev/null
+++ b/Admin/Install/db.json
@@ -0,0 +1,405 @@
+{
+ "fleetmgmt_vehicle": {
+ "name": "fleetmgmt_vehicle",
+ "fields": {
+ "fleetmgmt_vehicle_id": {
+ "name": "fleetmgmt_vehicle_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_status": {
+ "name": "fleetmgmt_vehicle_status",
+ "type": "TINYINT",
+ "null": false
+ },
+ "fleetmgmt_vehicle_type": {
+ "name": "fleetmgmt_vehicle_type",
+ "type": "TINYINT",
+ "null": false
+ },
+ "fleetmgmt_vehicle_info": {
+ "name": "fleetmgmt_vehicle_info",
+ "type": "TEXT",
+ "null": false
+ },
+ "fleetmgmt_vehicle_created_at": {
+ "name": "fleetmgmt_vehicle_created_at",
+ "type": "DATETIME",
+ "null": false
+ },
+ "fleetmgmt_vehicle_responsible": {
+ "name": "fleetmgmt_vehicle_responsible",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "account",
+ "foreignKey": "account_id"
+ },
+ "fleetmgmt_vehicle_unit": {
+ "name": "fleetmgmt_vehicle_unit",
+ "type": "INT",
+ "default": null,
+ "null": true,
+ "foreignTable": "unit",
+ "foreignKey": "unit_id"
+ }
+ }
+ },
+ "fleetmgmt_vehicle_responsible": {
+ "name": "fleetmgmt_vehicle_responsible",
+ "fields": {
+ "fleetmgmt_vehicle_responsible_id": {
+ "name": "fleetmgmt_vehicle_responsible_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_responsible_description": {
+ "name": "fleetmgmt_vehicle_responsible_description",
+ "type": "TEXT",
+ "null": false
+ },
+ "fleetmgmt_vehicle_responsible_account": {
+ "name": "fleetmgmt_vehicle_responsible_account",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "account",
+ "foreignKey": "account_id"
+ },
+ "fleetmgmt_vehicle_responsible_start": {
+ "name": "fleetmgmt_vehicle_responsible_start",
+ "type": "DATETIME",
+ "null": false
+ },
+ "fleetmgmt_vehicle_responsible_end": {
+ "name": "fleetmgmt_vehicle_responsible_end",
+ "type": "DATETIME",
+ "null": true,
+ "default": null
+ }
+ }
+ },
+ "fleetmgmt_vehicle_usage": {
+ "name": "fleetmgmt_vehicle_usage",
+ "fields": {
+ "fleetmgmt_vehicle_usage_id": {
+ "name": "fleetmgmt_vehicle_usage_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_usage_type": {
+ "name": "fleetmgmt_vehicle_usage_type",
+ "type": "INT",
+ "null": false
+ },
+ "fleetmgmt_vehicle_usage_account": {
+ "name": "fleetmgmt_vehicle_usage_account",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "account",
+ "foreignKey": "account_id"
+ },
+ "fleetmgmt_vehicle_usage_start": {
+ "name": "fleetmgmt_vehicle_usage_start",
+ "type": "DATETIME",
+ "null": false
+ },
+ "fleetmgmt_vehicle_usage_end": {
+ "name": "fleetmgmt_vehicle_usage_end",
+ "type": "DATETIME",
+ "null": true,
+ "default": null
+ },
+ "fleetmgmt_vehicle_usage_distance": {
+ "name": "fleetmgmt_vehicle_usage_distance",
+ "type": "INT",
+ "null": false
+ }
+ }
+ },
+ "fleetmgmt_attr_type": {
+ "name": "fleetmgmt_attr_type",
+ "fields": {
+ "fleetmgmt_attr_type_id": {
+ "name": "fleetmgmt_attr_type_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_attr_type_name": {
+ "name": "fleetmgmt_attr_type_name",
+ "type": "VARCHAR(255)",
+ "null": false,
+ "unique": true
+ },
+ "fleetmgmt_attr_type_datatype": {
+ "name": "fleetmgmt_attr_type_datatype",
+ "type": "INT(11)",
+ "null": false
+ },
+ "fleetmgmt_attr_type_fields": {
+ "name": "fleetmgmt_attr_type_fields",
+ "type": "INT(11)",
+ "null": false
+ },
+ "fleetmgmt_attr_type_custom": {
+ "name": "fleetmgmt_attr_type_custom",
+ "type": "TINYINT(1)",
+ "null": false
+ },
+ "fleetmgmt_attr_type_required": {
+ "description": "Every item must have this attribute type if set to true.",
+ "name": "fleetmgmt_attr_type_required",
+ "type": "TINYINT(1)",
+ "null": false
+ },
+ "fleetmgmt_attr_type_pattern": {
+ "description": "This is a regex validation pattern.",
+ "name": "fleetmgmt_attr_type_pattern",
+ "type": "VARCHAR(255)",
+ "null": false
+ }
+ }
+ },
+ "fleetmgmt_attr_type_l11n": {
+ "name": "fleetmgmt_attr_type_l11n",
+ "fields": {
+ "fleetmgmt_attr_type_l11n_id": {
+ "name": "fleetmgmt_attr_type_l11n_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_attr_type_l11n_title": {
+ "name": "fleetmgmt_attr_type_l11n_title",
+ "type": "VARCHAR(255)",
+ "null": false
+ },
+ "fleetmgmt_attr_type_l11n_type": {
+ "name": "fleetmgmt_attr_type_l11n_type",
+ "type": "INT(11)",
+ "null": false,
+ "foreignTable": "fleetmgmt_attr_type",
+ "foreignKey": "fleetmgmt_attr_type_id"
+ },
+ "fleetmgmt_attr_type_l11n_lang": {
+ "name": "fleetmgmt_attr_type_l11n_lang",
+ "type": "VARCHAR(2)",
+ "null": false,
+ "foreignTable": "language",
+ "foreignKey": "language_639_1"
+ }
+ }
+ },
+ "fleetmgmt_attr_value": {
+ "name": "fleetmgmt_attr_value",
+ "fields": {
+ "fleetmgmt_attr_value_id": {
+ "name": "fleetmgmt_attr_value_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_attr_value_default": {
+ "name": "fleetmgmt_attr_value_default",
+ "type": "TINYINT(1)",
+ "null": false
+ },
+ "fleetmgmt_attr_value_valueStr": {
+ "name": "fleetmgmt_attr_value_valueStr",
+ "type": "VARCHAR(255)",
+ "null": true,
+ "default": null
+ },
+ "fleetmgmt_attr_value_valueInt": {
+ "name": "fleetmgmt_attr_value_valueInt",
+ "type": "INT(11)",
+ "null": true,
+ "default": null
+ },
+ "fleetmgmt_attr_value_valueDec": {
+ "name": "fleetmgmt_attr_value_valueDec",
+ "type": "DECIMAL(19,5)",
+ "null": true,
+ "default": null
+ },
+ "fleetmgmt_attr_value_valueDat": {
+ "name": "fleetmgmt_attr_value_valueDat",
+ "type": "DATETIME",
+ "null": true,
+ "default": null
+ },
+ "fleetmgmt_attr_value_unit": {
+ "name": "fleetmgmt_attr_value_unit",
+ "type": "VARCHAR(255)",
+ "null": false
+ },
+ "fleetmgmt_attr_value_deptype": {
+ "name": "fleetmgmt_attr_value_deptype",
+ "type": "INT(11)",
+ "null": true,
+ "default": null,
+ "foreignTable": "fleetmgmt_attr_type",
+ "foreignKey": "fleetmgmt_attr_type_id"
+ },
+ "fleetmgmt_attr_value_depvalue": {
+ "name": "fleetmgmt_attr_value_depvalue",
+ "type": "INT(11)",
+ "null": true,
+ "default": null,
+ "foreignTable": "fleetmgmt_attr_value",
+ "foreignKey": "fleetmgmt_attr_value_id"
+ }
+ }
+ },
+ "fleetmgmt_attr_value_l11n": {
+ "name": "fleetmgmt_attr_value_l11n",
+ "fields": {
+ "fleetmgmt_attr_value_l11n_id": {
+ "name": "fleetmgmt_attr_value_l11n_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_attr_value_l11n_title": {
+ "name": "fleetmgmt_attr_value_l11n_title",
+ "type": "VARCHAR(255)",
+ "null": false
+ },
+ "fleetmgmt_attr_value_l11n_value": {
+ "name": "fleetmgmt_attr_value_l11n_value",
+ "type": "INT(11)",
+ "null": false,
+ "foreignTable": "fleetmgmt_attr_value",
+ "foreignKey": "fleetmgmt_attr_value_id"
+ },
+ "fleetmgmt_attr_value_l11n_lang": {
+ "name": "fleetmgmt_attr_value_l11n_lang",
+ "type": "VARCHAR(2)",
+ "null": false,
+ "foreignTable": "language",
+ "foreignKey": "language_639_1"
+ }
+ }
+ },
+ "fleetmgmt_vehicle_attr_default": {
+ "name": "fleetmgmt_vehicle_attr_default",
+ "fields": {
+ "fleetmgmt_vehicle_attr_default_id": {
+ "name": "fleetmgmt_vehicle_attr_default_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_attr_default_type": {
+ "name": "fleetmgmt_vehicle_attr_default_type",
+ "type": "INT(11)",
+ "null": false,
+ "foreignTable": "fleetmgmt_attr_type",
+ "foreignKey": "fleetmgmt_attr_type_id"
+ },
+ "fleetmgmt_vehicle_attr_default_value": {
+ "name": "fleetmgmt_vehicle_attr_default_value",
+ "type": "INT(11)",
+ "null": false,
+ "foreignTable": "fleetmgmt_attr_value",
+ "foreignKey": "fleetmgmt_attr_value_id"
+ }
+ }
+ },
+ "fleetmgmt_vehicle_attr": {
+ "name": "fleetmgmt_vehicle_attr",
+ "fields": {
+ "fleetmgmt_vehicle_attr_id": {
+ "name": "fleetmgmt_vehicle_attr_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_attr_vehicle": {
+ "name": "fleetmgmt_vehicle_attr_vehicle",
+ "type": "INT(11)",
+ "null": false,
+ "foreignTable": "fleetmgmt_vehicle",
+ "foreignKey": "fleetmgmt_vehicle_id"
+ },
+ "fleetmgmt_vehicle_attr_type": {
+ "name": "fleetmgmt_vehicle_attr_type",
+ "type": "INT(11)",
+ "null": false,
+ "foreignTable": "fleetmgmt_attr_type",
+ "foreignKey": "fleetmgmt_attr_type_id"
+ },
+ "fleetmgmt_vehicle_attr_value": {
+ "name": "fleetmgmt_vehicle_attr_value",
+ "type": "INT(11)",
+ "null": true,
+ "default": null,
+ "foreignTable": "fleetmgmt_attr_value",
+ "foreignKey": "fleetmgmt_attr_value_id"
+ }
+ }
+ },
+ "fleetmgmt_vehicle_media": {
+ "name": "fleetmgmt_vehicle_media",
+ "fields": {
+ "fleetmgmt_vehicle_media_id": {
+ "name": "fleetmgmt_vehicle_media_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_media_dst": {
+ "name": "fleetmgmt_vehicle_media_dst",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "media",
+ "foreignKey": "media_id"
+ },
+ "fleetmgmt_vehicle_media_src": {
+ "name": "fleetmgmt_vehicle_media_src",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "fleetmgmt_vehicle",
+ "foreignKey": "fleetmgmt_vehicle_id"
+ }
+ }
+ },
+ "fleetmgmt_vehicle_note": {
+ "name": "fleetmgmt_vehicle_note",
+ "fields": {
+ "fleetmgmt_vehicle_note_id": {
+ "name": "fleetmgmt_vehicle_note_id",
+ "type": "INT",
+ "null": false,
+ "primary": true,
+ "autoincrement": true
+ },
+ "fleetmgmt_vehicle_note_dst": {
+ "name": "fleetmgmt_vehicle_note_dst",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "editor_doc",
+ "foreignKey": "editor_doc_id"
+ },
+ "fleetmgmt_vehicle_note_src": {
+ "name": "fleetmgmt_vehicle_note_src",
+ "type": "INT",
+ "null": false,
+ "foreignTable": "fleetmgmt_vehicle",
+ "foreignKey": "fleetmgmt_vehicle_id"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Admin/Installer.php b/Admin/Installer.php
new file mode 100755
index 0000000..cc9ac9a
--- /dev/null
+++ b/Admin/Installer.php
@@ -0,0 +1,50 @@
+ [
+ [
+ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementAttributeTypeList',
+ 'verb' => RouteVerb::GET,
+ 'permission' => [
+ 'module' => BackendController::NAME,
+ 'type' => PermissionType::READ,
+ 'state' => PermissionCategory::VEHICLE,
+ ],
+ ],
+ ],
+ '^.*/fleet/vehicle/attribute/type\?.*$' => [
+ [
+ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementAttributeType',
+ 'verb' => RouteVerb::GET,
+ 'permission' => [
+ 'module' => BackendController::NAME,
+ 'type' => PermissionType::READ,
+ 'state' => PermissionCategory::VEHICLE,
+ ],
+ ],
+ ],
+ '^.*/fleet/vehicle/list.*$' => [
+ [
+ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleList',
+ 'verb' => RouteVerb::GET,
+ 'permission' => [
+ 'module' => BackendController::NAME,
+ 'type' => PermissionType::READ,
+ 'state' => PermissionCategory::VEHICLE,
+ ],
+ ],
+ ],
+ '^.*/fleet/vehicle/create.*$' => [
+ [
+ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleCreate',
+ 'verb' => RouteVerb::GET,
+ 'permission' => [
+ 'module' => BackendController::NAME,
+ 'type' => PermissionType::CREATE,
+ 'state' => PermissionCategory::VEHICLE,
+ ],
+ ],
+ ],
+ '^.*/fleet/vehicle/profile.*$' => [
+ [
+ 'dest' => '\Modules\FleetManagement\Controller\BackendController:viewFleetManagementVehicleProfile',
+ 'verb' => RouteVerb::GET,
+ 'permission' => [
+ 'module' => BackendController::NAME,
+ 'type' => PermissionType::READ,
+ 'state' => PermissionCategory::VEHICLE,
+ ],
+ ],
+ ],
+];
diff --git a/Admin/Status.php b/Admin/Status.php
new file mode 100755
index 0000000..7e387fa
--- /dev/null
+++ b/Admin/Status.php
@@ -0,0 +1,36 @@
+ [
+ 'Client' => 'عميل',
+ 'Region' => 'منطقة',
+ 'SalesRep' => 'مندول المبيعات',
+]];
diff --git a/Theme/Backend/Lang/Navigation.cs.lang.php b/Theme/Backend/Lang/Navigation.cs.lang.php
new file mode 100755
index 0000000..b0dc3bd
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.cs.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Klienta',
+ 'Region' => 'Kraj',
+ 'SalesRep' => 'Obchodní zástupce',
+]];
diff --git a/Theme/Backend/Lang/Navigation.da.lang.php b/Theme/Backend/Lang/Navigation.da.lang.php
new file mode 100755
index 0000000..af6ee4c
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.da.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Klient',
+ 'Region' => 'Område',
+ 'SalesRep' => 'Salgsrepræsentant',
+]];
diff --git a/Theme/Backend/Lang/Navigation.de.lang.php b/Theme/Backend/Lang/Navigation.de.lang.php
new file mode 100755
index 0000000..532e4ca
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.de.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Klient',
+ 'Region' => 'Region',
+ 'SalesRep' => 'VerkäufeRep',
+]];
diff --git a/Theme/Backend/Lang/Navigation.el.lang.php b/Theme/Backend/Lang/Navigation.el.lang.php
new file mode 100755
index 0000000..816f3ab
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.el.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Πελάτης',
+ 'Region' => 'Περιοχή',
+ 'SalesRep' => 'Αντιπρόσωπος Πωλήσεων',
+]];
diff --git a/Theme/Backend/Lang/Navigation.en.lang.php b/Theme/Backend/Lang/Navigation.en.lang.php
new file mode 100755
index 0000000..7e84efb
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.en.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Client',
+ 'Region' => 'Region',
+ 'SalesRep' => 'SalesRep',
+]];
diff --git a/Theme/Backend/Lang/Navigation.es.lang.php b/Theme/Backend/Lang/Navigation.es.lang.php
new file mode 100755
index 0000000..50b9f95
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.es.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Cliente',
+ 'Region' => 'Región',
+ 'SalesRep' => 'Vendedores',
+]];
diff --git a/Theme/Backend/Lang/Navigation.fi.lang.php b/Theme/Backend/Lang/Navigation.fi.lang.php
new file mode 100755
index 0000000..1fdb589
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.fi.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Asiakas',
+ 'Region' => 'Alue',
+ 'SalesRep' => 'Myyntiedustaja',
+]];
diff --git a/Theme/Backend/Lang/Navigation.fr.lang.php b/Theme/Backend/Lang/Navigation.fr.lang.php
new file mode 100755
index 0000000..1674a29
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.fr.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Client',
+ 'Region' => 'Région',
+ 'SalesRep' => 'Représentant commercial',
+]];
diff --git a/Theme/Backend/Lang/Navigation.hu.lang.php b/Theme/Backend/Lang/Navigation.hu.lang.php
new file mode 100755
index 0000000..9f34a1b
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.hu.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Ügyfél',
+ 'Region' => 'Vidék',
+ 'SalesRep' => 'Értékesítés',
+]];
diff --git a/Theme/Backend/Lang/Navigation.it.lang.php b/Theme/Backend/Lang/Navigation.it.lang.php
new file mode 100755
index 0000000..898dfe1
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.it.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Cliente',
+ 'Region' => 'Regione',
+ 'SalesRep' => 'Rappresentante delle vendite',
+]];
diff --git a/Theme/Backend/Lang/Navigation.ja.lang.php b/Theme/Backend/Lang/Navigation.ja.lang.php
new file mode 100755
index 0000000..daf2208
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.ja.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'クライアント',
+ 'Region' => '領域',
+ 'SalesRep' => 'セールスレート',
+]];
diff --git a/Theme/Backend/Lang/Navigation.ko.lang.php b/Theme/Backend/Lang/Navigation.ko.lang.php
new file mode 100755
index 0000000..e12496b
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.ko.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => '고객',
+ 'Region' => '지역',
+ 'SalesRep' => '매출액',
+]];
diff --git a/Theme/Backend/Lang/Navigation.no.lang.php b/Theme/Backend/Lang/Navigation.no.lang.php
new file mode 100755
index 0000000..f40e6b1
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.no.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Klient',
+ 'Region' => 'Region',
+ 'SalesRep' => 'SalesRep.',
+]];
diff --git a/Theme/Backend/Lang/Navigation.pl.lang.php b/Theme/Backend/Lang/Navigation.pl.lang.php
new file mode 100755
index 0000000..0d2ee58
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.pl.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Klient',
+ 'Region' => 'Region',
+ 'SalesRep' => 'Przedstawiciel handlowy',
+]];
diff --git a/Theme/Backend/Lang/Navigation.pt.lang.php b/Theme/Backend/Lang/Navigation.pt.lang.php
new file mode 100755
index 0000000..5273a46
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.pt.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Cliente',
+ 'Region' => 'Região',
+ 'SalesRep' => 'Representante de vendas',
+]];
diff --git a/Theme/Backend/Lang/Navigation.ru.lang.php b/Theme/Backend/Lang/Navigation.ru.lang.php
new file mode 100755
index 0000000..7e3210c
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.ru.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Клиент',
+ 'Region' => 'Область',
+ 'SalesRep' => 'Торговый представитель',
+]];
diff --git a/Theme/Backend/Lang/Navigation.sv.lang.php b/Theme/Backend/Lang/Navigation.sv.lang.php
new file mode 100755
index 0000000..7227e7f
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.sv.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Klient',
+ 'Region' => 'Område',
+ 'SalesRep' => 'Säljare',
+]];
diff --git a/Theme/Backend/Lang/Navigation.th.lang.php b/Theme/Backend/Lang/Navigation.th.lang.php
new file mode 100755
index 0000000..b10f311
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.th.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'ลูกค้า',
+ 'Region' => 'ภูมิภาค',
+ 'SalesRep' => 'ตัวแทนฝ่ายขาย',
+]];
diff --git a/Theme/Backend/Lang/Navigation.tr.lang.php b/Theme/Backend/Lang/Navigation.tr.lang.php
new file mode 100755
index 0000000..9098354
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.tr.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Müşteri',
+ 'Region' => 'Bölge',
+ 'SalesRep' => 'Satıcı',
+]];
diff --git a/Theme/Backend/Lang/Navigation.uk.lang.php b/Theme/Backend/Lang/Navigation.uk.lang.php
new file mode 100755
index 0000000..cad1789
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.uk.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => 'Клієнт',
+ 'Region' => 'Регіон',
+ 'SalesRep' => 'Торговий представник',
+]];
diff --git a/Theme/Backend/Lang/Navigation.zh.lang.php b/Theme/Backend/Lang/Navigation.zh.lang.php
new file mode 100755
index 0000000..25f25df
--- /dev/null
+++ b/Theme/Backend/Lang/Navigation.zh.lang.php
@@ -0,0 +1,19 @@
+ [
+ 'Client' => '客户',
+ 'Region' => '地区',
+ 'SalesRep' => '销售代表',
+]];
diff --git a/Theme/Backend/Lang/ar.lang.php b/Theme/Backend/Lang/ar.lang.php
new file mode 100755
index 0000000..1b73d15
--- /dev/null
+++ b/Theme/Backend/Lang/ar.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'محاسبة',
+ 'Addition' => 'إضافة',
+ 'Address' => 'تبوك',
+ 'Addresses' => 'عناوين',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'مدير المنطقة',
+ 'Articlegroup' => 'articlegroup.',
+ 'Articles' => 'مقالات',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'الرصيد',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'علاوة',
+ 'Business' => 'اعمال',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'قذيفة',
+ 'Calendar' => 'تقويم',
+ 'City' => 'مدينة',
+ 'Client' => 'عميل',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'عملاء',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'اتصل',
+ 'Country' => 'دولة',
+ 'Created' => 'خلقت',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'التصنيف الائتماني',
+ 'Creditcard' => 'بطاقة إئتمان',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => 'تاريخ',
+ 'Default' => 'تقصير',
+ 'Delivery' => 'توصيل',
+ 'Discount' => 'خصم',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'خصم ٪',
+ 'Documents' => 'وثائق',
+ 'Due' => 'بسبب',
+ 'Email' => 'بريد الالكتروني',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'فاكس',
+ 'Files' => 'الملفات',
+ 'Filter' => 'منقي',
+ 'Freightage' => 'شحن',
+ 'Group' => 'مجموعة',
+ 'ID' => 'بطاقة تعريف',
+ 'Info' => 'معلومات',
+ 'Invoice' => 'فاتورة',
+ 'Invoices' => 'الفواتير',
+ 'IsDefault' => 'افتراضي؟',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'آخر اتصال',
+ 'LastOrder' => 'آخر طلب',
+ 'Log' => 'سجل',
+ 'Logs' => 'السجلات',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'مرر',
+ 'MTDSales' => 'مبيعات MTD',
+ 'Margin' => 'هامش',
+ 'Messages' => 'رسائل',
+ 'Modified' => 'تم التعديل',
+ 'Modules' => 'وحدات',
+ 'Name' => 'اسم',
+ 'Name1' => 'اسم 1.',
+ 'Name2' => 'اسم 2.',
+ 'Name3' => 'اسم 3.',
+ 'Net' => 'شبكة',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'ملحوظات',
+ 'Number' => 'عدد',
+ 'Office' => 'مكتب. مقر. مركز',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'دفع',
+ 'PaymentTerm' => 'مصطلح الدفع',
+ 'Permission' => 'إذن',
+ 'Phone' => 'هاتف',
+ 'Postal' => 'بريدي',
+ 'Price' => 'السعر',
+ 'Prices' => 'الأسعار.',
+ 'Private' => 'نشر',
+ 'Productgroup' => 'productgroup.',
+ 'Profile' => 'الملف الشخصي',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'شراء',
+ 'Quantity' => 'كمية',
+ 'RecentInvoices' => 'الفواتير الأخيرة',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'مبيعات',
+ 'Segment' => 'قطعة',
+ 'Segments' => 'شرائح',
+ 'Subtype' => 'النوع الفرعي',
+ 'Support' => 'يدعم',
+ 'Tags' => 'كذا',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'نوع',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'موقع إلكتروني',
+ 'Wire' => 'الأسلاك',
+ 'YTDSales' => 'مبيعات YTD',
+ 'Zip' => 'أزيز',
+]];
diff --git a/Theme/Backend/Lang/cs.lang.php b/Theme/Backend/Lang/cs.lang.php
new file mode 100755
index 0000000..710f7a5
--- /dev/null
+++ b/Theme/Backend/Lang/cs.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Účetnictví',
+ 'Addition' => 'Přidání',
+ 'Address' => 'Adresa',
+ 'Addresses' => 'Adresy',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Oblastní manažer',
+ 'Articlegroup' => 'Článek',
+ 'Articles' => 'Články',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Zůstatek',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Business.',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv.',
+ 'Calendar' => 'Kalendář',
+ 'City' => 'Město',
+ 'Client' => 'Klienta',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Klienti',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kontakt',
+ 'Country' => 'Země',
+ 'Created' => 'Vytvořený',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Úvěrový rating',
+ 'Creditcard' => 'Kreditní karta',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => 'datum',
+ 'Default' => 'Výchozí hodnota',
+ 'Delivery' => 'dodávka',
+ 'Discount' => 'Sleva',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Sleva%',
+ 'Documents' => 'Dokumenty',
+ 'Due' => 'Způsoben',
+ 'Email' => 'E-mailem',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Soubory',
+ 'Filter' => 'Filtr',
+ 'Freightage' => 'Dopravné',
+ 'Group' => 'Skupina',
+ 'ID' => 'ID.',
+ 'Info' => 'Info.',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Faktury',
+ 'IsDefault' => 'Je výchozí?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Poslední kontakt',
+ 'LastOrder' => 'Poslední objednávka',
+ 'Log' => 'Log',
+ 'Logs' => 'Protokoly',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr.',
+ 'MTDSales' => 'Prodej MTD.',
+ 'Margin' => 'Okraj',
+ 'Messages' => 'Zprávy',
+ 'Modified' => 'Upravený',
+ 'Modules' => 'Moduly',
+ 'Name' => 'název',
+ 'Name1' => 'Jméno1.',
+ 'Name2' => 'Jméno2.',
+ 'Name3' => 'Jméno3.',
+ 'Net' => 'Síť',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Poznámky',
+ 'Number' => 'Číslo',
+ 'Office' => 'Kancelář',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Způsob platby',
+ 'PaymentTerm' => 'Platební termín',
+ 'Permission' => 'Povolení',
+ 'Phone' => 'Telefon',
+ 'Postal' => 'Poštovní',
+ 'Price' => 'Cena',
+ 'Prices' => 'Ceny',
+ 'Private' => 'Soukromý',
+ 'Productgroup' => 'ProductSgroup.',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Nákup',
+ 'Quantity' => 'Množství',
+ 'RecentInvoices' => 'Nedávné faktury',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Odbyt',
+ 'Segment' => 'Segment',
+ 'Segments' => 'Segmenty',
+ 'Subtype' => 'Podtyp',
+ 'Support' => 'Podpěra, podpora',
+ 'Tags' => 'Tagy',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Typ',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'webová stránka',
+ 'Wire' => 'Drát',
+ 'YTDSales' => 'Prodej YTD.',
+ 'Zip' => 'Zip',
+]];
diff --git a/Theme/Backend/Lang/da.lang.php b/Theme/Backend/Lang/da.lang.php
new file mode 100755
index 0000000..f0ecc5e
--- /dev/null
+++ b/Theme/Backend/Lang/da.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Regnskab',
+ 'Addition' => 'Tilsætning',
+ 'Address' => 'Adresse',
+ 'Addresses' => 'Adresser',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Områdechef',
+ 'Articlegroup' => 'ArticleGroup.',
+ 'Articles' => 'Artikler',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Balance',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Forretning',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'CLV.',
+ 'Calendar' => 'Kalender',
+ 'City' => 'City.',
+ 'Client' => 'Klient',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Klienter.',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kontakt',
+ 'Country' => 'Land',
+ 'Created' => 'Oprettet',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Kreditvurdering',
+ 'Creditcard' => 'Kreditkort',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => 'Dato',
+ 'Default' => 'Standard',
+ 'Delivery' => 'Levering',
+ 'Discount' => 'Rabat',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Rabat%',
+ 'Documents' => 'Dokumenter',
+ 'Due' => 'På grund',
+ 'Email' => 'Email.',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Filer.',
+ 'Filter' => 'Filter',
+ 'Freightage' => 'Gods',
+ 'Group' => 'Gruppe',
+ 'ID' => 'ID.',
+ 'Info' => 'Info.',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Fakturaer.',
+ 'IsDefault' => 'Er standard?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Sidste kontakt',
+ 'LastOrder' => 'Sidste ordre',
+ 'Log' => 'Log',
+ 'Logs' => 'Logs.',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR.',
+ 'MTDSales' => 'MTD Sales.',
+ 'Margin' => 'Margin.',
+ 'Messages' => 'Beskeder',
+ 'Modified' => 'Modificeret',
+ 'Modules' => 'Moduler.',
+ 'Name' => 'Navn',
+ 'Name1' => 'NAME1.',
+ 'Name2' => 'NAME2.',
+ 'Name3' => 'NAME3.',
+ 'Net' => 'Net',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Noter.',
+ 'Number' => 'Nummer',
+ 'Office' => 'Kontor',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Betaling',
+ 'PaymentTerm' => 'Betalingsbetingelser',
+ 'Permission' => 'Tilladelse',
+ 'Phone' => 'telefon',
+ 'Postal' => 'Postal.',
+ 'Price' => 'Pris',
+ 'Prices' => 'Priser.',
+ 'Private' => 'Privat',
+ 'Productgroup' => 'Produktgruppe',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Køb',
+ 'Quantity' => 'Antal',
+ 'RecentInvoices' => 'Nylige fakturaer.',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'SALG',
+ 'Segment' => 'Segment',
+ 'Segments' => 'Segmenter.',
+ 'Subtype' => 'Subtype.',
+ 'Support' => 'Support',
+ 'Tags' => 'Tags.',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Type',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Internet side',
+ 'Wire' => 'Tråd',
+ 'YTDSales' => 'YTD SALG',
+ 'Zip' => 'Zip.',
+]];
diff --git a/Theme/Backend/Lang/de.lang.php b/Theme/Backend/Lang/de.lang.php
new file mode 100755
index 0000000..40b81f6
--- /dev/null
+++ b/Theme/Backend/Lang/de.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Buchhaltung',
+ 'Addition' => 'Zusatz',
+ 'Address' => 'Adresse',
+ 'Addresses' => 'Adressen',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Bereichsleiter',
+ 'Articlegroup' => 'ArtikelGroup.',
+ 'Articles' => 'Artikel',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Gleichgewicht',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Geschäft',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'CLV',
+ 'Calendar' => 'Kalender',
+ 'City' => 'Stadt',
+ 'Client' => 'Klient',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Kunden',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kontakt',
+ 'Country' => 'Land',
+ 'Created' => 'Erstellt',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Kreditbeurteilung',
+ 'Creditcard' => 'Kreditkarte',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => 'Datum',
+ 'Default' => 'Standard',
+ 'Delivery' => 'Die Zustellung',
+ 'Discount' => 'Rabatt',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Rabatt %',
+ 'Documents' => 'Unterlagen',
+ 'Due' => 'Fällig',
+ 'Email' => 'Email',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Dateien',
+ 'Filter' => 'Filter',
+ 'Freightage' => 'Fracht',
+ 'Group' => 'Gruppe',
+ 'ID' => 'ICH WÜRDE',
+ 'Info' => 'Die Info',
+ 'Invoice' => 'Rechnung',
+ 'Invoices' => 'Rechnungen',
+ 'IsDefault' => 'Ist standardmäßig?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Letzter Kontakt',
+ 'LastOrder' => 'Letzte Bestellung',
+ 'Log' => 'Protokoll',
+ 'Logs' => 'Protokoll',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr.',
+ 'MTDSales' => 'MTD-Verkäufe.',
+ 'Margin' => 'Rand',
+ 'Messages' => 'Mitteilungen',
+ 'Modified' => 'Geändert',
+ 'Modules' => 'Module',
+ 'Name' => 'Name',
+ 'Name1' => 'Name1.',
+ 'Name2' => 'Name2.',
+ 'Name3' => 'Name3.',
+ 'Net' => 'Netz',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Anmerkungen',
+ 'Number' => 'Nummer',
+ 'Office' => 'Sekretariat',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Zahlung',
+ 'PaymentTerm' => 'Zahlungsbezeichnung',
+ 'Permission' => 'Erlaubnis',
+ 'Phone' => 'Telefon',
+ 'Postal' => 'Post',
+ 'Price' => 'Preis',
+ 'Prices' => 'Preise',
+ 'Private' => 'Privatgelände',
+ 'Productgroup' => 'Produktgruppe',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Kaufen',
+ 'Quantity' => 'Menge',
+ 'RecentInvoices' => 'Jüngste Rechnungen',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Der Umsatz',
+ 'Segment' => 'Segment',
+ 'Segments' => 'Segmente',
+ 'Subtype' => 'Untertyp',
+ 'Support' => 'Unterstützung',
+ 'Tags' => 'Stichworte',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Typ',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Webseite',
+ 'Wire' => 'Kabel',
+ 'YTDSales' => 'Ytd Sales.',
+ 'Zip' => 'Reißverschluss',
+]];
diff --git a/Theme/Backend/Lang/el.lang.php b/Theme/Backend/Lang/el.lang.php
new file mode 100755
index 0000000..b6ad900
--- /dev/null
+++ b/Theme/Backend/Lang/el.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Λογιστική',
+ 'Addition' => 'Πρόσθεση',
+ 'Address' => 'Διεύθυνση',
+ 'Addresses' => 'Διευθύνσεις',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Διευθυντής περιοχής',
+ 'Articlegroup' => 'Ομιλία',
+ 'Articles' => 'Είδη',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Ισορροπία',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Δώρο',
+ 'Business' => 'Επιχείρηση',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Σολλίζω',
+ 'Calendar' => 'Ημερολόγιο',
+ 'City' => 'Πόλη',
+ 'Client' => 'Πελάτης',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Πελάτες',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Επικοινωνία',
+ 'Country' => 'Χώρα',
+ 'Created' => 'Δημιουργήθηκε',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Αξιολόγησης της πιστοληπτικής ικανότητας',
+ 'Creditcard' => 'Πιστωτική κάρτα',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'ΔΣΟ',
+ 'Date' => 'Ημερομηνία',
+ 'Default' => 'Προκαθορισμένο',
+ 'Delivery' => 'Διανομή',
+ 'Discount' => 'Εκπτωση',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Έκπτωση%',
+ 'Documents' => 'Εγγραφα',
+ 'Due' => 'Λόγω',
+ 'Email' => 'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Φαξ',
+ 'Files' => 'Αρχεία',
+ 'Filter' => 'Φίλτρο',
+ 'Freightage' => 'Ναύλος',
+ 'Group' => 'Ομάδα',
+ 'ID' => 'ταυτότητα',
+ 'Info' => 'Πληροφορία',
+ 'Invoice' => 'Τιμολόγιο',
+ 'Invoices' => 'Τιμολόγια',
+ 'IsDefault' => 'Είναι προεπιλογή;',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Τελευταία επαφή',
+ 'LastOrder' => 'Τελευταία παραγγελία',
+ 'Log' => 'Κούτσουρο',
+ 'Logs' => 'Κούτσουρα',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR',
+ 'MTDSales' => 'Πωλήσεις MTD',
+ 'Margin' => 'Περιθώριο',
+ 'Messages' => 'Μηνύματα',
+ 'Modified' => 'Τροποποιημένος',
+ 'Modules' => 'Ενότητες',
+ 'Name' => 'Ονομα',
+ 'Name1' => 'Όνομα1',
+ 'Name2' => 'Όνομα2',
+ 'Name3' => 'Όνομα',
+ 'Net' => 'Καθαρά',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Σημειώνει',
+ 'Number' => 'Αριθμός',
+ 'Office' => 'Γραφείο',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Πληρωμή',
+ 'PaymentTerm' => 'Ορος πληρωμής',
+ 'Permission' => 'Αδεια',
+ 'Phone' => 'Τηλέφωνο',
+ 'Postal' => 'Ταχυδρομικός',
+ 'Price' => 'Τιμή',
+ 'Prices' => 'Τιμές',
+ 'Private' => 'Ιδιωτικός',
+ 'Productgroup' => 'Ομοιόμορφη ομάδα',
+ 'Profile' => 'Προφίλ',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Αγορά',
+ 'Quantity' => 'Ποσότητα',
+ 'RecentInvoices' => 'Πρόσφατα τιμολόγια',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Εκπτώσεις',
+ 'Segment' => 'Τμήμα',
+ 'Segments' => 'Τμήματα',
+ 'Subtype' => 'Υποτύπωμα',
+ 'Support' => 'Υποστήριξη',
+ 'Tags' => 'Ετικέτες',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Τύπος',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Δικτυακός τόπος',
+ 'Wire' => 'Σύρμα',
+ 'YTDSales' => 'Ytd πωλήσεις',
+ 'Zip' => 'Φερμουάρ',
+]];
diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php
new file mode 100755
index 0000000..f77cd26
--- /dev/null
+++ b/Theme/Backend/Lang/en.lang.php
@@ -0,0 +1,127 @@
+ [
+ 'Accounting' => 'Accounting',
+ 'Addition' => 'Addition',
+ 'Address' => 'Address',
+ 'Addresses' => 'Addresses',
+ 'Africa' => 'Africa',
+ 'AllCustomers' => 'All Customers',
+ 'America' => 'America',
+ 'Analyse' => 'Analyse',
+ 'AreaManager' => 'Area Manager',
+ 'Articlegroup' => 'Articlegroup',
+ 'Articles' => 'Articles',
+ 'Asia' => 'Asia',
+ 'Attribute' => 'Attribute',
+ 'Attributes' => 'Attributes',
+ 'Balance' => 'Balance',
+ 'BaseTime' => 'Base time',
+ 'Bills' => 'Bills',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Business',
+ 'CIS' => 'CIS',
+ 'CLV' => 'CLV',
+ 'Calendar' => 'Calendar',
+ 'City' => 'City',
+ 'Client' => 'Client',
+ 'ClientID' => 'Client Id',
+ 'Clients' => 'Clients',
+ 'ComparisonTime' => 'Comparison time',
+ 'Contact' => 'Contact',
+ 'Country' => 'Country',
+ 'Created' => 'Created',
+ 'CreatedAt' => 'Created at',
+ 'CreditRating' => 'Credit Rating',
+ 'Creditcard' => 'Creditcard',
+ 'Customers' => 'Customers',
+ 'DSO' => 'DSO',
+ 'Date' => 'Date',
+ 'Default' => 'Default',
+ 'Delivery' => 'Delivery',
+ 'Discount' => 'Discount',
+ 'DiscountBonus' => 'Discount bonus',
+ 'DiscountP' => 'Discount %',
+ 'Documents' => 'Documents',
+ 'Due' => 'Due',
+ 'Email' => 'Email',
+ 'Europe' => 'Europe',
+ 'Fax' => 'Fax',
+ 'Files' => 'Files',
+ 'Filter' => 'Filter',
+ 'Freightage' => 'Freightage',
+ 'Group' => 'Group',
+ 'ID' => 'ID',
+ 'Info' => 'Info',
+ 'Invoice' => 'Invoice',
+ 'Invoices' => 'Invoices',
+ 'IsDefault' => 'Is default?',
+ 'Items' => 'Items',
+ 'LastContact' => 'Last Contact',
+ 'LastOrder' => 'Last Order',
+ 'Log' => 'Log',
+ 'Logs' => 'Logs',
+ 'LostCustomers' => 'Lost customers',
+ 'MRR' => 'MRR',
+ 'MTDSales' => 'MTD Sales',
+ 'Margin' => 'Margin',
+ 'Messages' => 'Messages',
+ 'Modified' => 'Modified',
+ 'Modules' => 'Modules',
+ 'Name' => 'Name',
+ 'Name1' => 'Name1',
+ 'Name2' => 'Name2',
+ 'Name3' => 'Name3',
+ 'Net' => 'Net',
+ 'NewCustomers' => 'New customers',
+ 'Notes' => 'Notes',
+ 'Number' => 'Number',
+ 'Office' => 'Office',
+ 'Other' => 'Other',
+ 'Payment' => 'Payment',
+ 'PaymentTerm' => 'Payment Term',
+ 'Permission' => 'Permission',
+ 'Phone' => 'Phone',
+ 'Postal' => 'Postal',
+ 'Price' => 'Price',
+ 'Prices' => 'Prices',
+ 'Private' => 'Private',
+ 'Productgroup' => 'Productgroup',
+ 'Profile' => 'Profile',
+ 'Profit' => 'Profit',
+ 'Purchase' => 'Purchase',
+ 'Quantity' => 'Quantity',
+ 'RecentInvoices' => 'Recent Invoices',
+ 'Region' => 'Region',
+ 'Rep' => 'Rep',
+ 'Retention' => 'Retention',
+ 'Sales' => 'Sales',
+ 'Segment' => 'Segment',
+ 'Segments' => 'Segments',
+ 'Subtype' => 'Subtype',
+ 'Support' => 'Support',
+ 'Tags' => 'Tags',
+ 'Title' => 'Title',
+ 'Total' => 'Total',
+ 'TotalPrice' => 'Total price',
+ 'Type' => 'Type',
+ 'UnitPrice' => 'Unit price',
+ 'Value' => 'Value',
+ 'Website' => 'Website',
+ 'Wire' => 'Wire',
+ 'YTDSales' => 'YTD Sales',
+ 'Zip' => 'Zip',
+ 'IMG_alt_map' => 'Map',
+]];
diff --git a/Theme/Backend/Lang/es.lang.php b/Theme/Backend/Lang/es.lang.php
new file mode 100755
index 0000000..07f9a57
--- /dev/null
+++ b/Theme/Backend/Lang/es.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Contabilidad',
+ 'Addition' => 'Adición',
+ 'Address' => 'Habla a',
+ 'Addresses' => 'Direcciones',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Gerente de área',
+ 'Articlegroup' => 'Grupo articulo',
+ 'Articles' => 'Artículos',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Equilibrio',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Prima',
+ 'Business' => 'Negocio',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv',
+ 'Calendar' => 'Calendario',
+ 'City' => 'Ciudad',
+ 'Client' => 'Cliente',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Clientela',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Contacto',
+ 'Country' => 'País',
+ 'Created' => 'Creado',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Calificación crediticia',
+ 'Creditcard' => 'Tarjeta de crédito',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => 'Fecha',
+ 'Default' => 'Defecto',
+ 'Delivery' => 'Entrega',
+ 'Discount' => 'Descuento',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Descuento%',
+ 'Documents' => 'Documentos',
+ 'Due' => 'Vencer',
+ 'Email' => 'Correo electrónico',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Archivos',
+ 'Filter' => 'Filtrar',
+ 'Freightage' => 'Flete',
+ 'Group' => 'Grupo',
+ 'ID' => 'IDENTIFICACIÓN',
+ 'Info' => 'Información',
+ 'Invoice' => 'Factura',
+ 'Invoices' => 'Facturas',
+ 'IsDefault' => 'Es por defecto?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Último contacto',
+ 'LastOrder' => 'Último pedido',
+ 'Log' => 'Tronco',
+ 'Logs' => 'Registros',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr',
+ 'MTDSales' => 'Ventas MTD',
+ 'Margin' => 'Margen',
+ 'Messages' => 'Mensajes',
+ 'Modified' => 'Modificado',
+ 'Modules' => 'Módulos',
+ 'Name' => 'Nombre',
+ 'Name1' => 'Nombre1',
+ 'Name2' => 'Nombre2',
+ 'Name3' => 'Nombre3',
+ 'Net' => 'Red',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Office' => 'Oficina',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Pago',
+ 'PaymentTerm' => 'Plazo de pago',
+ 'Permission' => 'Permiso',
+ 'Phone' => 'Teléfono',
+ 'Postal' => 'Postal',
+ 'Price' => 'Precio',
+ 'Prices' => 'Precios',
+ 'Private' => 'Privado',
+ 'Productgroup' => 'Grupo de productos',
+ 'Profile' => 'Perfil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Compra',
+ 'Quantity' => 'Cantidad',
+ 'RecentInvoices' => 'Facturas recientes',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Ventas',
+ 'Segment' => 'Segmento',
+ 'Segments' => 'Segmentos',
+ 'Subtype' => 'Subtipo',
+ 'Support' => 'Apoyo',
+ 'Tags' => 'Etiquetas',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Escribe',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Sitio web',
+ 'Wire' => 'Cable',
+ 'YTDSales' => 'Ytd ventas',
+ 'Zip' => 'Cremallera',
+]];
diff --git a/Theme/Backend/Lang/fi.lang.php b/Theme/Backend/Lang/fi.lang.php
new file mode 100755
index 0000000..e39fe21
--- /dev/null
+++ b/Theme/Backend/Lang/fi.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Kirjanpito',
+ 'Addition' => 'Lisäys',
+ 'Address' => 'Osoite',
+ 'Addresses' => 'Osoitteet',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Aluejohtaja',
+ 'Articlegroup' => 'ArticleGroup',
+ 'Articles' => 'Artikkelit',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Saldo',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Liiketoiminta',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv',
+ 'Calendar' => 'Kalenteri',
+ 'City' => 'Kaupunki',
+ 'Client' => 'Asiakas',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Asiakkaat',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Ottaa yhteyttä',
+ 'Country' => 'Maa',
+ 'Created' => 'Luotu',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Luottoluokitus',
+ 'Creditcard' => 'Luottokortti',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'Dso',
+ 'Date' => 'Päivämäärä',
+ 'Default' => 'Oletusarvo',
+ 'Delivery' => 'Toimitus',
+ 'Discount' => 'Alennus',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Alennus %',
+ 'Documents' => 'Asiakirjat',
+ 'Due' => 'Takia',
+ 'Email' => 'Sähköposti',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Faksi',
+ 'Files' => 'Tiedostot',
+ 'Filter' => 'Suodattaa',
+ 'Freightage' => 'Rahti',
+ 'Group' => 'Ryhmä',
+ 'ID' => 'Id',
+ 'Info' => 'Tiedot',
+ 'Invoice' => 'Lasku',
+ 'Invoices' => 'Laskut',
+ 'IsDefault' => 'On oletusarvo?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Viimeinen yhteystieto',
+ 'LastOrder' => 'Viimeinen tilaus',
+ 'Log' => 'Hirsi',
+ 'Logs' => 'Lokit',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr',
+ 'MTDSales' => 'MTD-myynti',
+ 'Margin' => 'Marginaali',
+ 'Messages' => 'Viestit',
+ 'Modified' => 'Muokattu',
+ 'Modules' => 'Moduulit',
+ 'Name' => 'Nimi',
+ 'Name1' => 'Nimi1',
+ 'Name2' => 'Nimi2',
+ 'Name3' => 'Nimi33',
+ 'Net' => 'Netto',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Toteaa',
+ 'Number' => 'Määrä',
+ 'Office' => 'Toimisto',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Maksu',
+ 'PaymentTerm' => 'Maksuehto',
+ 'Permission' => 'Lupa',
+ 'Phone' => 'Puhelin',
+ 'Postal' => 'Posti-',
+ 'Price' => 'Hinta',
+ 'Prices' => 'Hinnat',
+ 'Private' => 'Yksityinen',
+ 'Productgroup' => 'Tuoteryhmä',
+ 'Profile' => 'Profiili',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Ostaa',
+ 'Quantity' => 'Määrä',
+ 'RecentInvoices' => 'Viimeaikaiset laskut',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Myynti',
+ 'Segment' => 'Segmentti',
+ 'Segments' => 'Segmentit',
+ 'Subtype' => 'Alatyyppi',
+ 'Support' => 'Tuki',
+ 'Tags' => 'Tunnisteet',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Tyyppi',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Verkkosivusto',
+ 'Wire' => 'Lanka',
+ 'YTDSales' => 'YTD-myynti',
+ 'Zip' => 'Postinumero',
+]];
diff --git a/Theme/Backend/Lang/fr.lang.php b/Theme/Backend/Lang/fr.lang.php
new file mode 100755
index 0000000..a254ee8
--- /dev/null
+++ b/Theme/Backend/Lang/fr.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Comptabilité',
+ 'Addition' => 'Une addition',
+ 'Address' => 'Adresse',
+ 'Addresses' => 'Adresses',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Chef de secteur',
+ 'Articlegroup' => 'Articlegroup',
+ 'Articles' => 'Des articles',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Équilibre',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Prime',
+ 'Business' => 'Entreprise',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv',
+ 'Calendar' => 'Calendrier',
+ 'City' => 'Ville',
+ 'Client' => 'Client',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Clients',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Contact',
+ 'Country' => 'Pays',
+ 'Created' => 'Établi',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Cote de crédit',
+ 'Creditcard' => 'Carte de crédit',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'Dso',
+ 'Date' => 'Date',
+ 'Default' => 'Défaut',
+ 'Delivery' => 'Livraison',
+ 'Discount' => 'Remise',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Remise %',
+ 'Documents' => 'Documents',
+ 'Due' => 'Dû',
+ 'Email' => 'E-mail',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Des dossiers',
+ 'Filter' => 'Filtre',
+ 'Freightage' => 'Fret',
+ 'Group' => 'Grouper',
+ 'ID' => 'identifiant',
+ 'Info' => 'Info',
+ 'Invoice' => 'Facture d\'achat',
+ 'Invoices' => 'Factures',
+ 'IsDefault' => 'Est par défaut?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Dernier contact',
+ 'LastOrder' => 'Dernière commande',
+ 'Log' => 'Enregistrer',
+ 'Logs' => 'Journaux',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr',
+ 'MTDSales' => 'Ventes MTD',
+ 'Margin' => 'Marge',
+ 'Messages' => 'messages',
+ 'Modified' => 'Modifié',
+ 'Modules' => 'Modules',
+ 'Name' => 'Nom',
+ 'Name1' => 'Nom1',
+ 'Name2' => 'Nom2',
+ 'Name3' => 'Nom3',
+ 'Net' => 'Rapporter',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Remarques',
+ 'Number' => 'Nombre',
+ 'Office' => 'Bureau',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Paiement',
+ 'PaymentTerm' => 'Terme de paiement',
+ 'Permission' => 'Autorisation',
+ 'Phone' => 'Téléphoner',
+ 'Postal' => 'Postal',
+ 'Price' => 'Prix',
+ 'Prices' => 'Des prix',
+ 'Private' => 'Privé',
+ 'Productgroup' => 'Groupe de produits',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Acheter',
+ 'Quantity' => 'Quantité',
+ 'RecentInvoices' => 'Factures récentes',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Ventes',
+ 'Segment' => 'Segment',
+ 'Segments' => 'Segments',
+ 'Subtype' => 'Sous-type',
+ 'Support' => 'Soutien',
+ 'Tags' => 'Mots clés',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Taper',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Site Internet',
+ 'Wire' => 'Fil',
+ 'YTDSales' => 'Ventes YTD',
+ 'Zip' => 'Zipper',
+]];
diff --git a/Theme/Backend/Lang/hu.lang.php b/Theme/Backend/Lang/hu.lang.php
new file mode 100755
index 0000000..b170796
--- /dev/null
+++ b/Theme/Backend/Lang/hu.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Könyvelés',
+ 'Addition' => 'Kiegészítés',
+ 'Address' => 'Cím',
+ 'Addresses' => 'Címek',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Területi menedzser',
+ 'Articlegroup' => 'Gyerekcsoport',
+ 'Articles' => 'Árucikkek',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Egyensúly',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bónusz',
+ 'Business' => 'Üzleti',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv',
+ 'Calendar' => 'Naptár',
+ 'City' => 'Város',
+ 'Client' => 'Ügyfél',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Kliensek',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kapcsolatba lépni',
+ 'Country' => 'Ország',
+ 'Created' => 'Létrehozott',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Hitelminősítő',
+ 'Creditcard' => 'Hitelkártya',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => 'Dátum',
+ 'Default' => 'Alapértelmezett',
+ 'Delivery' => 'Szállítás',
+ 'Discount' => 'Kedvezmény',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Árengedmény%',
+ 'Documents' => 'Dokumentumok',
+ 'Due' => 'Esedékes',
+ 'Email' => 'Email',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Fájlok',
+ 'Filter' => 'Szűrő',
+ 'Freightage' => 'Fuvardíj',
+ 'Group' => 'Csoport',
+ 'ID' => 'Idézés',
+ 'Info' => 'Információ',
+ 'Invoice' => 'Számla',
+ 'Invoices' => 'Számlák',
+ 'IsDefault' => 'Alapértelmezett?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Utolsó kapcsolat',
+ 'LastOrder' => 'Utolsó rendelés',
+ 'Log' => 'Napló',
+ 'Logs' => 'Naplók',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr',
+ 'MTDSales' => 'MTD értékesítés',
+ 'Margin' => 'Árrés',
+ 'Messages' => 'üzenetek',
+ 'Modified' => 'Módosított',
+ 'Modules' => 'Modulok',
+ 'Name' => 'Név',
+ 'Name1' => 'Név1',
+ 'Name2' => 'NAME2',
+ 'Name3' => 'Név3',
+ 'Net' => 'Háló',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Jegyzetek',
+ 'Number' => 'Szám',
+ 'Office' => 'Hivatal',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Fizetés',
+ 'PaymentTerm' => 'Fizetési határidő',
+ 'Permission' => 'Engedély',
+ 'Phone' => 'Telefon',
+ 'Postal' => 'Postai',
+ 'Price' => 'Ár',
+ 'Prices' => 'Árak',
+ 'Private' => 'Magán',
+ 'Productgroup' => 'Termékcsoport',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Vásárlás',
+ 'Quantity' => 'Mennyiség',
+ 'RecentInvoices' => 'Legutóbbi számlák',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Értékesítés',
+ 'Segment' => 'Szegmens',
+ 'Segments' => 'Szegmensek',
+ 'Subtype' => 'Altípus',
+ 'Support' => 'Támogatás',
+ 'Tags' => 'Címkék',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'típus',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Weboldal',
+ 'Wire' => 'Huzal',
+ 'YTDSales' => 'YTD értékesítés',
+ 'Zip' => 'Postai irányítószám',
+]];
diff --git a/Theme/Backend/Lang/it.lang.php b/Theme/Backend/Lang/it.lang.php
new file mode 100755
index 0000000..0af5b07
--- /dev/null
+++ b/Theme/Backend/Lang/it.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Contabilità',
+ 'Addition' => 'Aggiunta',
+ 'Address' => 'Indirizzo',
+ 'Addresses' => 'Indirizzi',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Area Manager',
+ 'Articlegroup' => 'Art.group.',
+ 'Articles' => 'Artificio',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Bilancia',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus.',
+ 'Business' => 'Affare',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv.',
+ 'Calendar' => 'Calendario',
+ 'City' => 'Città',
+ 'Client' => 'Cliente',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Clienti',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Contatto',
+ 'Country' => 'Nazione',
+ 'Created' => 'Creato',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Rating del credito',
+ 'Creditcard' => 'Carta di credito',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => 'Data',
+ 'Default' => 'Predefinito',
+ 'Delivery' => 'Consegna',
+ 'Discount' => 'Sconto',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Sconto%',
+ 'Documents' => 'Documenti',
+ 'Due' => 'Dovuto',
+ 'Email' => 'E-mail',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'File',
+ 'Filter' => 'Filtro',
+ 'Freightage' => 'Liberare',
+ 'Group' => 'Gruppo',
+ 'ID' => 'ID',
+ 'Info' => 'Informazioni',
+ 'Invoice' => 'Fattura',
+ 'Invoices' => 'Fatture',
+ 'IsDefault' => 'È predefinito?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Ultimo contatto',
+ 'LastOrder' => 'Ultimo ordine',
+ 'Log' => 'Tronco d\'albero',
+ 'Logs' => 'Logs.',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr.',
+ 'MTDSales' => 'Vendite di mtd.',
+ 'Margin' => 'Margine',
+ 'Messages' => 'Messaggi',
+ 'Modified' => 'Modificati',
+ 'Modules' => 'Moduli',
+ 'Name' => 'Nome',
+ 'Name1' => 'Nome1.',
+ 'Name2' => 'Nome2.',
+ 'Name3' => 'Nome3.',
+ 'Net' => 'Rete',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Appunti',
+ 'Number' => 'Numero',
+ 'Office' => 'Ufficio',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Pagamento',
+ 'PaymentTerm' => 'Termine di pagamento',
+ 'Permission' => 'Autorizzazione',
+ 'Phone' => 'Telefono',
+ 'Postal' => 'postale',
+ 'Price' => 'Prezzo',
+ 'Prices' => 'Prezzi',
+ 'Private' => 'Privato',
+ 'Productgroup' => 'Gruppo di prodotti',
+ 'Profile' => 'Profilo',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Acquistare',
+ 'Quantity' => 'Quantità',
+ 'RecentInvoices' => 'Recenti fatture',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Saldi',
+ 'Segment' => 'Segmento',
+ 'Segments' => 'Segmenti',
+ 'Subtype' => 'Sottotipo',
+ 'Support' => 'Supporto',
+ 'Tags' => 'Tags.',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Tipo',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Sito web',
+ 'Wire' => 'Filo',
+ 'YTDSales' => 'Vendite di ytd.',
+ 'Zip' => 'Cerniera lampo',
+]];
diff --git a/Theme/Backend/Lang/ja.lang.php b/Theme/Backend/Lang/ja.lang.php
new file mode 100755
index 0000000..c4775f3
--- /dev/null
+++ b/Theme/Backend/Lang/ja.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => '会計',
+ 'Addition' => '添加',
+ 'Address' => '住所',
+ 'Addresses' => 'アドレス',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'エリアマネージャー',
+ 'Articlegroup' => '記事グループ',
+ 'Articles' => 'articles',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'バランス',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'ボーナス',
+ 'Business' => '仕事',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'cl cl',
+ 'Calendar' => 'カレンダー',
+ 'City' => '市',
+ 'Client' => 'クライアント',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'クライアント',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'コンタクト',
+ 'Country' => '国',
+ 'Created' => '作成した',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => '信用格付け',
+ 'Creditcard' => 'クレジットカード',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => '日にち',
+ 'Default' => 'ディフォルト',
+ 'Delivery' => '配達',
+ 'Discount' => '割引',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => '割引 %',
+ 'Documents' => '文書',
+ 'Due' => '期限',
+ 'Email' => 'Eメール',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'ファックス',
+ 'Files' => 'ファイル',
+ 'Filter' => 'フィルター',
+ 'Freightage' => 'fre fre',
+ 'Group' => 'グループ',
+ 'ID' => 'id',
+ 'Info' => '情報',
+ 'Invoice' => '請求書',
+ 'Invoices' => '請求書',
+ 'IsDefault' => 'デフォルトですか?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => '最後の連絡先',
+ 'LastOrder' => '最後の順序',
+ 'Log' => 'ログ',
+ 'Logs' => 'ログ',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR.',
+ 'MTDSales' => 'MTDセールス',
+ 'Margin' => 'マージン',
+ 'Messages' => 'メッセージ',
+ 'Modified' => '修正された',
+ 'Modules' => 'モジュール',
+ 'Name' => '名前',
+ 'Name1' => '名前1',
+ 'Name2' => '名前2',
+ 'Name3' => '名前3',
+ 'Net' => 'ネット',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'ノート',
+ 'Number' => '番号',
+ 'Office' => 'オフィス',
+ 'Other' => '#VALUE!',
+ 'Payment' => '支払い',
+ 'PaymentTerm' => '支払条件',
+ 'Permission' => '許可',
+ 'Phone' => '電話',
+ 'Postal' => '郵便',
+ 'Price' => '価格',
+ 'Prices' => '価格',
+ 'Private' => '民間',
+ 'Productgroup' => '製品グループ',
+ 'Profile' => 'プロフィール',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => '購入',
+ 'Quantity' => '量',
+ 'RecentInvoices' => '最近の請求書',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => '売り返り',
+ 'Segment' => 'セグメント',
+ 'Segments' => 'セグメント',
+ 'Subtype' => 'サブタイプ',
+ 'Support' => 'サポート',
+ 'Tags' => 'タグ',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'タイプ',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Webサイト',
+ 'Wire' => 'ワイヤー',
+ 'YTDSales' => 'ytd売上高',
+ 'Zip' => 'ジップ',
+]];
diff --git a/Theme/Backend/Lang/ko.lang.php b/Theme/Backend/Lang/ko.lang.php
new file mode 100755
index 0000000..91e7f57
--- /dev/null
+++ b/Theme/Backend/Lang/ko.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => '회계',
+ 'Addition' => '덧셈',
+ 'Address' => '주소',
+ 'Addresses' => '구애',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => '구역 책임자',
+ 'Articlegroup' => '기사 그룹',
+ 'Articles' => '조항',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => '균형',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => '보너스',
+ 'Business' => '사업',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'CLV.',
+ 'Calendar' => '달력',
+ 'City' => '도시',
+ 'Client' => '고객',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => '클라이언트',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => '연락하다',
+ 'Country' => '국가',
+ 'Created' => '만들어진',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => '신용 등급',
+ 'Creditcard' => '신용 카드',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => '날짜',
+ 'Default' => '기본',
+ 'Delivery' => '배달',
+ 'Discount' => '할인',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => '할인 %',
+ 'Documents' => '서류',
+ 'Due' => '로 인한',
+ 'Email' => '이메일',
+ 'Europe' => '#VALUE!',
+ 'Fax' => '팩스',
+ 'Files' => '파일',
+ 'Filter' => '필터',
+ 'Freightage' => '화물',
+ 'Group' => '그룹',
+ 'ID' => 'ID',
+ 'Info' => '정보',
+ 'Invoice' => '송장',
+ 'Invoices' => '송장',
+ 'IsDefault' => '기본값은 무엇입니까?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => '마지막 연락처',
+ 'LastOrder' => '마지막 주문',
+ 'Log' => '통나무',
+ 'Logs' => '로그인',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => '부서',
+ 'MTDSales' => 'MTD 판매',
+ 'Margin' => '여유',
+ 'Messages' => '메시지',
+ 'Modified' => '수정',
+ 'Modules' => '모듈',
+ 'Name' => '이름',
+ 'Name1' => 'name1.',
+ 'Name2' => 'name2.',
+ 'Name3' => 'Name3.',
+ 'Net' => '그물',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => '노트',
+ 'Number' => '숫자',
+ 'Office' => '사무실',
+ 'Other' => '#VALUE!',
+ 'Payment' => '지불',
+ 'PaymentTerm' => '지불 기간',
+ 'Permission' => '허가',
+ 'Phone' => '핸드폰',
+ 'Postal' => '우편 엽서',
+ 'Price' => '가격',
+ 'Prices' => '물가',
+ 'Private' => '사적인',
+ 'Productgroup' => '제품 그룹',
+ 'Profile' => '프로필',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => '구입',
+ 'Quantity' => '수량',
+ 'RecentInvoices' => '최근 송장',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => '매상',
+ 'Segment' => '분절',
+ 'Segments' => '세그먼트',
+ 'Subtype' => '하위 유형',
+ 'Support' => '지원하다',
+ 'Tags' => '태그',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => '유형',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => '웹 사이트',
+ 'Wire' => '철사',
+ 'YTDSales' => 'YTD 판매',
+ 'Zip' => '지퍼',
+]];
diff --git a/Theme/Backend/Lang/no.lang.php b/Theme/Backend/Lang/no.lang.php
new file mode 100755
index 0000000..b007f56
--- /dev/null
+++ b/Theme/Backend/Lang/no.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Regnskap',
+ 'Addition' => 'Addisjon',
+ 'Address' => 'Adresse',
+ 'Addresses' => 'Adresser',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Områdeansvarlig',
+ 'Articlegroup' => 'Articregroup.',
+ 'Articles' => 'Artikler',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Balansere',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Virksomhet',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'CLV.',
+ 'Calendar' => 'Kalender',
+ 'City' => 'By',
+ 'Client' => 'Klient',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Klienter',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kontakt',
+ 'Country' => 'Land',
+ 'Created' => 'Opprettet',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Kredittvurdering',
+ 'Creditcard' => 'Kredittkort',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => 'Dato',
+ 'Default' => 'Misligholde',
+ 'Delivery' => 'Leveranse',
+ 'Discount' => 'Rabatt',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Rabatt%',
+ 'Documents' => 'Dokumenter',
+ 'Due' => 'På grunn av det',
+ 'Email' => 'E-post',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Faks',
+ 'Files' => 'Filer',
+ 'Filter' => 'Filter',
+ 'Freightage' => 'Frakt',
+ 'Group' => 'Gruppe',
+ 'ID' => 'Id.',
+ 'Info' => 'Info.',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Fakturaer',
+ 'IsDefault' => 'Er standard?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Siste kontakt',
+ 'LastOrder' => 'Siste bestilling',
+ 'Log' => 'Logg',
+ 'Logs' => 'Tømmerstokker',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR.',
+ 'MTDSales' => 'MTD-salg',
+ 'Margin' => 'Margin',
+ 'Messages' => 'Meldinger',
+ 'Modified' => 'Endret',
+ 'Modules' => 'Moduler',
+ 'Name' => 'Navn',
+ 'Name1' => 'Navn1.',
+ 'Name2' => 'NAME2.',
+ 'Name3' => 'Navn3.',
+ 'Net' => 'Nett',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Notater',
+ 'Number' => 'Nummer',
+ 'Office' => 'Kontor',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'innbetaling',
+ 'PaymentTerm' => 'Betalingsperiode',
+ 'Permission' => 'Tillatelse',
+ 'Phone' => 'Telefonen',
+ 'Postal' => 'Postal.',
+ 'Price' => 'Pris',
+ 'Prices' => 'Prisene',
+ 'Private' => 'Privat',
+ 'Productgroup' => 'Produktgruppe',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Kjøp',
+ 'Quantity' => 'Mengde',
+ 'RecentInvoices' => 'Nylige fakturaer',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Salg',
+ 'Segment' => 'Segmentet',
+ 'Segments' => 'Segmenter',
+ 'Subtype' => 'Subtype.',
+ 'Support' => 'Brukerstøtte',
+ 'Tags' => 'Tags.',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Type',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Nettside',
+ 'Wire' => 'Metalltråd',
+ 'YTDSales' => 'YTD-salg',
+ 'Zip' => 'Glidelås',
+]];
diff --git a/Theme/Backend/Lang/pl.lang.php b/Theme/Backend/Lang/pl.lang.php
new file mode 100755
index 0000000..9baf170
--- /dev/null
+++ b/Theme/Backend/Lang/pl.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Rachunkowość',
+ 'Addition' => 'Dodatek',
+ 'Address' => 'Adres',
+ 'Addresses' => 'Adresy',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Dyrektor Regionalny',
+ 'Articlegroup' => 'Artykuł',
+ 'Articles' => 'Artykuły',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Balansować',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Premia',
+ 'Business' => 'Biznes',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'CLV.',
+ 'Calendar' => 'Kalendarz',
+ 'City' => 'Miasto',
+ 'Client' => 'Klient',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Klienci.',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kontakt',
+ 'Country' => 'Kraj',
+ 'Created' => 'Utworzony',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Rating kredytowy',
+ 'Creditcard' => 'Karta kredytowa',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO.',
+ 'Date' => 'Data',
+ 'Default' => 'Domyślna',
+ 'Delivery' => 'Dostawa',
+ 'Discount' => 'Zniżka',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Zniżka %',
+ 'Documents' => 'Dokumenty',
+ 'Due' => 'Z powodu',
+ 'Email' => 'E-mail',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Faks',
+ 'Files' => 'Pliki',
+ 'Filter' => 'Filtr',
+ 'Freightage' => 'Frachtowanie',
+ 'Group' => 'Grupa',
+ 'ID' => 'ID',
+ 'Info' => 'Info',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Faktury',
+ 'IsDefault' => 'Jest domyślnie?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Ostatni kontakt',
+ 'LastOrder' => 'Ostatnie zamówienie',
+ 'Log' => 'Dziennik',
+ 'Logs' => 'Kłody',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR.',
+ 'MTDSales' => 'Sprzedaż MTD.',
+ 'Margin' => 'Margines',
+ 'Messages' => 'Wiadomości',
+ 'Modified' => 'Modyfikowany',
+ 'Modules' => 'Moduły',
+ 'Name' => 'Nazwa',
+ 'Name1' => 'Nazwa1.',
+ 'Name2' => 'Nazwa2.',
+ 'Name3' => 'Nazwa3.',
+ 'Net' => 'Internet',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Notatki',
+ 'Number' => 'Numer',
+ 'Office' => 'Gabinet',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Zapłata',
+ 'PaymentTerm' => 'Termin płatności',
+ 'Permission' => 'Pozwolenie',
+ 'Phone' => 'Telefon',
+ 'Postal' => 'Pocztowy',
+ 'Price' => 'Cena £',
+ 'Prices' => 'Ceny',
+ 'Private' => 'Prywatny',
+ 'Productgroup' => 'Grupa produktów',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Zakup',
+ 'Quantity' => 'Ilość',
+ 'RecentInvoices' => 'Ostatnie faktury.',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Obroty',
+ 'Segment' => 'Człon',
+ 'Segments' => 'Segmenty',
+ 'Subtype' => 'Podtyp',
+ 'Support' => 'Wsparcie',
+ 'Tags' => 'Tagi.',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Rodzaj',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Stronie internetowej',
+ 'Wire' => 'Drut',
+ 'YTDSales' => 'Sprzedaż Ytd.',
+ 'Zip' => 'Zamek błyskawiczny',
+]];
diff --git a/Theme/Backend/Lang/pt.lang.php b/Theme/Backend/Lang/pt.lang.php
new file mode 100755
index 0000000..04f60e0
--- /dev/null
+++ b/Theme/Backend/Lang/pt.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Contabilidade',
+ 'Addition' => 'Adição',
+ 'Address' => 'Endereço',
+ 'Addresses' => 'Endereços',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Gerente da área',
+ 'Articlegroup' => 'ArticleGroup',
+ 'Articles' => 'Artigos',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Equilíbrio',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bônus',
+ 'Business' => 'O negócio',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv.',
+ 'Calendar' => 'Calendário',
+ 'City' => 'Cidade',
+ 'Client' => 'Cliente',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Clientes',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Contato',
+ 'Country' => 'País',
+ 'Created' => 'Criado',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Rating de crédito',
+ 'Creditcard' => 'Cartão de crédito',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'Dso.',
+ 'Date' => 'Encontro',
+ 'Default' => 'Padrão',
+ 'Delivery' => 'Entrega',
+ 'Discount' => 'Desconto',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Desconto%',
+ 'Documents' => 'Documentos',
+ 'Due' => 'Vencimento',
+ 'Email' => 'E-mail',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'arquivos',
+ 'Filter' => 'Filtro',
+ 'Freightage' => 'Freightage',
+ 'Group' => 'Grupo',
+ 'ID' => 'identificação',
+ 'Info' => 'Info',
+ 'Invoice' => 'Fatura',
+ 'Invoices' => 'Faturas',
+ 'IsDefault' => 'É padrão?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Último contato.',
+ 'LastOrder' => 'Último pedido',
+ 'Log' => 'Registro',
+ 'Logs' => 'Histórico',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR.',
+ 'MTDSales' => 'Sales Mtd.',
+ 'Margin' => 'Margem',
+ 'Messages' => 'Mensagens',
+ 'Modified' => 'Modificado',
+ 'Modules' => 'Módulos.',
+ 'Name' => 'Nome',
+ 'Name1' => 'Nome1.',
+ 'Name2' => 'Nome2.',
+ 'Name3' => 'Nome3.',
+ 'Net' => 'Internet',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Notas',
+ 'Number' => 'Número',
+ 'Office' => 'Escritório',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Pagamento',
+ 'PaymentTerm' => 'Termo de pagamento',
+ 'Permission' => 'Permissão',
+ 'Phone' => 'Telefone',
+ 'Postal' => 'Postal',
+ 'Price' => 'Preço',
+ 'Prices' => 'Preços',
+ 'Private' => 'Privado',
+ 'Productgroup' => 'Grupo de produtos',
+ 'Profile' => 'Perfil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Comprar',
+ 'Quantity' => 'Quantidade',
+ 'RecentInvoices' => 'Faturas recentes',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Vendas',
+ 'Segment' => 'Segmento',
+ 'Segments' => 'Segmentos',
+ 'Subtype' => 'Subtipo',
+ 'Support' => 'Apoio, suporte',
+ 'Tags' => 'Tag',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Modelo',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Local na rede Internet',
+ 'Wire' => 'Fio',
+ 'YTDSales' => 'Vendas do ano',
+ 'Zip' => 'Fecho eclair',
+]];
diff --git a/Theme/Backend/Lang/ru.lang.php b/Theme/Backend/Lang/ru.lang.php
new file mode 100755
index 0000000..8110627
--- /dev/null
+++ b/Theme/Backend/Lang/ru.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Учет',
+ 'Addition' => 'Добавление',
+ 'Address' => 'Адрес',
+ 'Addresses' => 'Адреса',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Региональный менеджер',
+ 'Articlegroup' => 'Staregroup.',
+ 'Articles' => 'Статьи',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Остаток средств',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Бонус',
+ 'Business' => 'Бизнес',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Каблук',
+ 'Calendar' => 'Календарь',
+ 'City' => 'Город',
+ 'Client' => 'Клиент',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Клиенты',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Контакт',
+ 'Country' => 'Страна',
+ 'Created' => 'Созданный',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Кредитный рейтинг',
+ 'Creditcard' => 'Кредитная карта',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => 'Дата',
+ 'Default' => 'Дефолт',
+ 'Delivery' => 'Доставка',
+ 'Discount' => 'Скидка',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Скидка %',
+ 'Documents' => 'Документы',
+ 'Due' => 'Должное',
+ 'Email' => 'Электронное письмо',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Факс',
+ 'Files' => 'Файлы',
+ 'Filter' => 'Фильтр',
+ 'Freightage' => 'Фрахты',
+ 'Group' => 'Группа',
+ 'ID' => 'Я БЫ',
+ 'Info' => 'Информация',
+ 'Invoice' => 'Счет',
+ 'Invoices' => 'Счета',
+ 'IsDefault' => 'По умолчанию?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Последний контакт',
+ 'LastOrder' => 'Последний заказ',
+ 'Log' => 'Бревно',
+ 'Logs' => 'Журналы',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR',
+ 'MTDSales' => 'MTD Sales.',
+ 'Margin' => 'Допуск',
+ 'Messages' => 'Сообщения',
+ 'Modified' => 'Модифицированный',
+ 'Modules' => 'Модули',
+ 'Name' => 'Имя',
+ 'Name1' => 'Имя1.',
+ 'Name2' => 'Имя2.',
+ 'Name3' => 'Имя3.',
+ 'Net' => 'Сеть',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Примечания',
+ 'Number' => 'Число',
+ 'Office' => 'Офис',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Оплата',
+ 'PaymentTerm' => 'Условия оплаты',
+ 'Permission' => 'Разрешение',
+ 'Phone' => 'Телефон',
+ 'Postal' => 'Почтовый',
+ 'Price' => 'Цена',
+ 'Prices' => 'Цены',
+ 'Private' => 'Частный',
+ 'Productgroup' => 'Группа товаров',
+ 'Profile' => 'Профиль',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Покупка',
+ 'Quantity' => 'Количество',
+ 'RecentInvoices' => 'Недавние счета',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Продажи',
+ 'Segment' => 'Сегмент',
+ 'Segments' => 'Сегменты',
+ 'Subtype' => 'Подтип',
+ 'Support' => 'Служба поддержки',
+ 'Tags' => 'Теги',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Тип',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Веб-сайт',
+ 'Wire' => 'Проволока',
+ 'YTDSales' => 'YTD Sales.',
+ 'Zip' => 'Zip.',
+]];
diff --git a/Theme/Backend/Lang/sv.lang.php b/Theme/Backend/Lang/sv.lang.php
new file mode 100755
index 0000000..63e172f
--- /dev/null
+++ b/Theme/Backend/Lang/sv.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Bokföring',
+ 'Addition' => 'Tillägg',
+ 'Address' => 'Adress',
+ 'Addresses' => 'Adresser',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Områdeschef',
+ 'Articlegroup' => 'Artikelgrupp',
+ 'Articles' => 'Artiklar',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Balans',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'Företag',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv',
+ 'Calendar' => 'Kalender',
+ 'City' => 'Stad',
+ 'Client' => 'Klient',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Klienter',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Kontakt',
+ 'Country' => 'Land',
+ 'Created' => 'Skapad',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Kreditvärdighet',
+ 'Creditcard' => 'Kreditkort',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'Do',
+ 'Date' => 'Datum',
+ 'Default' => 'Standard',
+ 'Delivery' => 'Leverans',
+ 'Discount' => 'Rabatt',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Rabatt%',
+ 'Documents' => 'Dokument',
+ 'Due' => 'På grund av',
+ 'Email' => 'E-post',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Fax',
+ 'Files' => 'Filer',
+ 'Filter' => 'Filtrera',
+ 'Freightage' => 'Frakt',
+ 'Group' => 'Grupp',
+ 'ID' => 'Id',
+ 'Info' => 'Info',
+ 'Invoice' => 'Faktura',
+ 'Invoices' => 'Fakturor',
+ 'IsDefault' => 'Är standard?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Senaste kontakten',
+ 'LastOrder' => 'Sista beställningen',
+ 'Log' => 'Logga',
+ 'Logs' => 'Loggar',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr',
+ 'MTDSales' => 'MTD-försäljning',
+ 'Margin' => 'Marginal',
+ 'Messages' => 'Budskap',
+ 'Modified' => 'Ändrad',
+ 'Modules' => 'Moduler',
+ 'Name' => 'namn',
+ 'Name1' => 'Namn1',
+ 'Name2' => 'Namn2',
+ 'Name3' => 'Namn3',
+ 'Net' => 'Netto',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Anteckningar',
+ 'Number' => 'siffra',
+ 'Office' => 'Kontor',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Betalning',
+ 'PaymentTerm' => 'Betalningsvillkor',
+ 'Permission' => 'Tillstånd',
+ 'Phone' => 'Telefon',
+ 'Postal' => 'Post',
+ 'Price' => 'Pris',
+ 'Prices' => 'Priser',
+ 'Private' => 'Privat',
+ 'Productgroup' => 'Produktgrupp',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Inköp',
+ 'Quantity' => 'Kvantitet',
+ 'RecentInvoices' => 'Nya fakturor',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Försäljning',
+ 'Segment' => 'Segmentet',
+ 'Segments' => 'Segment',
+ 'Subtype' => 'Subtyp',
+ 'Support' => 'Stöd',
+ 'Tags' => 'Tagg',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Typ',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Hemsida',
+ 'Wire' => 'Tråd',
+ 'YTDSales' => 'YTD-försäljning',
+ 'Zip' => 'Blixtlås',
+]];
diff --git a/Theme/Backend/Lang/th.lang.php b/Theme/Backend/Lang/th.lang.php
new file mode 100755
index 0000000..37fc31c
--- /dev/null
+++ b/Theme/Backend/Lang/th.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'การบัญชี',
+ 'Addition' => 'ส่วนที่เพิ่มเข้าไป',
+ 'Address' => 'ที่อยู่',
+ 'Addresses' => 'ที่อยู่',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'ผู้จัดการพื้นที่',
+ 'Articlegroup' => 'ArticleGroup',
+ 'Articles' => 'บทความ',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'สมดุล',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'โบนัส',
+ 'Business' => 'ธุรกิจ',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'clv',
+ 'Calendar' => 'ปฏิทิน',
+ 'City' => 'เมือง',
+ 'Client' => 'ลูกค้า',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'ลูกค้า',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'ติดต่อ',
+ 'Country' => 'ประเทศ',
+ 'Created' => 'สร้าง',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'การจัดอันดับเครดิต',
+ 'Creditcard' => 'บัตรเครดิต',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => 'วันที่',
+ 'Default' => 'ค่าเริ่มต้น',
+ 'Delivery' => 'จัดส่ง',
+ 'Discount' => 'การลดราคา',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'การลดราคา %',
+ 'Documents' => 'เอกสาร',
+ 'Due' => 'เนื่องจาก',
+ 'Email' => 'อีเมล',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'แฟกซ์',
+ 'Files' => 'ไฟล์',
+ 'Filter' => 'กรอง',
+ 'Freightage' => 'การขนส่งสินค้า',
+ 'Group' => 'กลุ่ม',
+ 'ID' => 'id',
+ 'Info' => 'ข้อมูล',
+ 'Invoice' => 'ใบแจ้งหนี้',
+ 'Invoices' => 'ใบแจ้งหนี้',
+ 'IsDefault' => 'เป็นค่าเริ่มต้น?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'ติดต่อล่าสุด',
+ 'LastOrder' => 'คำสั่งสุดท้าย',
+ 'Log' => 'บันทึก',
+ 'Logs' => 'การบันทึก',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR',
+ 'MTDSales' => 'ขาย MTD',
+ 'Margin' => 'ระยะขอบ',
+ 'Messages' => 'ข้อความ',
+ 'Modified' => 'ที่ได้รับการแก้ไข',
+ 'Modules' => 'โมดูล',
+ 'Name' => 'ชื่อ',
+ 'Name1' => 'ชื่อ 1',
+ 'Name2' => 'ชื่อ 2',
+ 'Name3' => 'ชื่อ 3',
+ 'Net' => 'สุทธิ',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'หมายเหตุ',
+ 'Number' => 'ตัวเลข',
+ 'Office' => 'สำนักงาน',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'การชำระเงิน',
+ 'PaymentTerm' => 'เงื่อนไขการชำระเงิน',
+ 'Permission' => 'การอนุญาต',
+ 'Phone' => 'โทรศัพท์',
+ 'Postal' => 'เกี่ยวกับการไปรษณีย์',
+ 'Price' => 'ราคา',
+ 'Prices' => 'ราคา',
+ 'Private' => 'ส่วนตัว',
+ 'Productgroup' => 'กลุ่มผลิตภัณฑ์',
+ 'Profile' => 'ประวัติโดยย่อ',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'ซื้อ',
+ 'Quantity' => 'ปริมาณ',
+ 'RecentInvoices' => 'ใบแจ้งหนี้ล่าสุด',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'ฝ่ายขาย',
+ 'Segment' => 'ส่วน',
+ 'Segments' => 'กลุ่ม',
+ 'Subtype' => 'ประเภทย่อย',
+ 'Support' => 'สนับสนุน',
+ 'Tags' => 'แท็ก',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'พิมพ์',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'เว็บไซต์',
+ 'Wire' => 'ลวด',
+ 'YTDSales' => 'ขาย YTD',
+ 'Zip' => 'ซิป',
+]];
diff --git a/Theme/Backend/Lang/tr.lang.php b/Theme/Backend/Lang/tr.lang.php
new file mode 100755
index 0000000..7234743
--- /dev/null
+++ b/Theme/Backend/Lang/tr.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Muhasebe',
+ 'Addition' => 'İlave',
+ 'Address' => 'Adres',
+ 'Addresses' => 'Adresler',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Alan müdürü',
+ 'Articlegroup' => 'Makale grubu',
+ 'Articles' => 'Nesne',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Denge',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Bonus',
+ 'Business' => 'İşletme',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Clv',
+ 'Calendar' => 'Takvim',
+ 'City' => 'Şehir',
+ 'Client' => 'Müşteri',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Müşteriler',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Temas',
+ 'Country' => 'Ülke',
+ 'Created' => 'Yaratılmış',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Kredi notu',
+ 'Creditcard' => 'Kredi kartı',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'Dso',
+ 'Date' => 'Tarih',
+ 'Default' => 'Varsayılan',
+ 'Delivery' => 'Teslimat',
+ 'Discount' => 'İndirim',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'İndirim %',
+ 'Documents' => 'Belgeler',
+ 'Due' => 'Vadesi dolmuş',
+ 'Email' => 'E-posta',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Faks',
+ 'Files' => 'Dosyalar',
+ 'Filter' => 'Filtrelemek',
+ 'Freightage' => 'Yük',
+ 'Group' => 'Grup',
+ 'ID' => 'İD',
+ 'Info' => 'Bilgi',
+ 'Invoice' => 'Fatura',
+ 'Invoices' => 'Faturalar',
+ 'IsDefault' => 'Varsayılan mı?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Son iletişim',
+ 'LastOrder' => 'Son sipariş',
+ 'Log' => 'Kayıt',
+ 'Logs' => 'Kütükler',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Mrr',
+ 'MTDSales' => 'Mtd satışları',
+ 'Margin' => 'Marj',
+ 'Messages' => 'Mesaj',
+ 'Modified' => 'Değiştirilmiş',
+ 'Modules' => 'Modüller',
+ 'Name' => 'İsim',
+ 'Name1' => 'İsim1',
+ 'Name2' => 'İsim2',
+ 'Name3' => 'İsim3',
+ 'Net' => 'Ağ',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Notalar',
+ 'Number' => 'Numara',
+ 'Office' => 'Ofis',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Ödeme',
+ 'PaymentTerm' => 'Ödeme koşulu',
+ 'Permission' => 'İzin',
+ 'Phone' => 'Telefon',
+ 'Postal' => 'Posta',
+ 'Price' => 'Fiyat',
+ 'Prices' => 'Fiyat:% s',
+ 'Private' => 'Özel',
+ 'Productgroup' => 'Ürün grubu',
+ 'Profile' => 'Profil',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Satın alma',
+ 'Quantity' => 'Miktar',
+ 'RecentInvoices' => 'Son Faturalar',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Satış',
+ 'Segment' => 'Segment',
+ 'Segments' => 'Segmentler',
+ 'Subtype' => 'Alt tip',
+ 'Support' => 'Destek',
+ 'Tags' => 'Etiketler',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Tip',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'İnternet sitesi',
+ 'Wire' => 'Tel',
+ 'YTDSales' => 'YTD satışları',
+ 'Zip' => 'Zip',
+]];
diff --git a/Theme/Backend/Lang/uk.lang.php b/Theme/Backend/Lang/uk.lang.php
new file mode 100755
index 0000000..1987ecf
--- /dev/null
+++ b/Theme/Backend/Lang/uk.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => 'Бухгалтерський облік',
+ 'Addition' => 'Додавання',
+ 'Address' => 'Адреса',
+ 'Addresses' => 'Адреси',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => 'Менеджер області',
+ 'Articlegroup' => 'Статтюгрупи',
+ 'Articles' => 'Статті',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => 'Баланс',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => 'Бонус',
+ 'Business' => 'Бізнес',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'Клоп',
+ 'Calendar' => 'Календар',
+ 'City' => 'Місто',
+ 'Client' => 'Клієнт',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => 'Клієнти',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => 'Контакт',
+ 'Country' => 'Країна',
+ 'Created' => 'Створений',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => 'Кредитний рейтинг',
+ 'Creditcard' => 'Кредитна карта',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'Дз',
+ 'Date' => 'Дата',
+ 'Default' => 'За замовчуванням',
+ 'Delivery' => 'Доставка',
+ 'Discount' => 'Знижка',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => 'Знижка%',
+ 'Documents' => 'Документи',
+ 'Due' => 'Заборгованість',
+ 'Email' => 'Електронна пошта',
+ 'Europe' => '#VALUE!',
+ 'Fax' => 'Факс',
+ 'Files' => 'Файли',
+ 'Filter' => 'Фільтрувати',
+ 'Freightage' => 'Фрахт',
+ 'Group' => 'Група',
+ 'ID' => 'Ідентифікатор',
+ 'Info' => 'Інформація',
+ 'Invoice' => 'Рахунок-фактура',
+ 'Invoices' => 'Рахунки-фактури',
+ 'IsDefault' => 'Чи є за замовчуванням?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => 'Останній контакт',
+ 'LastOrder' => 'Остання замовлення',
+ 'Log' => 'Журнал',
+ 'Logs' => 'Журнали',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'Пан',
+ 'MTDSales' => 'Продажі MTD',
+ 'Margin' => 'Маржа',
+ 'Messages' => 'Повідомлень',
+ 'Modified' => 'Модифікований',
+ 'Modules' => 'Модулі',
+ 'Name' => 'Назва',
+ 'Name1' => 'Name1',
+ 'Name2' => 'Name2',
+ 'Name3' => 'Name3',
+ 'Net' => 'Сітка',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => 'Ноти',
+ 'Number' => 'Число',
+ 'Office' => 'Офіс',
+ 'Other' => '#VALUE!',
+ 'Payment' => 'Платіж',
+ 'PaymentTerm' => 'Термін оплати',
+ 'Permission' => 'Дозвіл',
+ 'Phone' => 'Телефон',
+ 'Postal' => 'Поштовий',
+ 'Price' => 'Ціна',
+ 'Prices' => 'Ціни',
+ 'Private' => 'Приватний',
+ 'Productgroup' => 'Група продуктів',
+ 'Profile' => 'Профіль',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => 'Придбання',
+ 'Quantity' => 'Кількість',
+ 'RecentInvoices' => 'Останні рахунки-фактури',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => 'Продаж',
+ 'Segment' => 'Сегмент',
+ 'Segments' => 'Сегменти',
+ 'Subtype' => 'Підтип',
+ 'Support' => 'Підтримка',
+ 'Tags' => 'Теги',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => 'Тип',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => 'Веб-сайт',
+ 'Wire' => 'Дріт',
+ 'YTDSales' => 'Ytd продажі',
+ 'Zip' => 'Блиск',
+]];
diff --git a/Theme/Backend/Lang/zh.lang.php b/Theme/Backend/Lang/zh.lang.php
new file mode 100755
index 0000000..063d656
--- /dev/null
+++ b/Theme/Backend/Lang/zh.lang.php
@@ -0,0 +1,126 @@
+ [
+ 'Accounting' => '会计',
+ 'Addition' => '添加',
+ 'Address' => '地址',
+ 'Addresses' => '地址',
+ 'Africa' => '#VALUE!',
+ 'AllCustomers' => '#VALUE!',
+ 'America' => '#VALUE!',
+ 'Analyse' => '#VALUE!',
+ 'AreaManager' => '区域经理',
+ 'Articlegroup' => '商品组',
+ 'Articles' => '文章',
+ 'Asia' => '#VALUE!',
+ 'Attribute' => '#VALUE!',
+ 'Attributes' => '#VALUE!',
+ 'Balance' => '平衡',
+ 'BaseTime' => '#VALUE!',
+ 'Bills' => '#VALUE!',
+ 'Bonus' => '奖金',
+ 'Business' => '商业',
+ 'CIS' => '#VALUE!',
+ 'CLV' => 'CLV.',
+ 'Calendar' => '日历',
+ 'City' => '城市',
+ 'Client' => '客户',
+ 'ClientID' => '#VALUE!',
+ 'Clients' => '客户',
+ 'ComparisonTime' => '#VALUE!',
+ 'Contact' => '接触',
+ 'Country' => '国家',
+ 'Created' => '创造了',
+ 'CreatedAt' => '#VALUE!',
+ 'CreditRating' => '信用评级',
+ 'Creditcard' => '信用卡',
+ 'Customers' => '#VALUE!',
+ 'DSO' => 'DSO',
+ 'Date' => '日期',
+ 'Default' => '默认',
+ 'Delivery' => '交货',
+ 'Discount' => '折扣',
+ 'DiscountBonus' => '#VALUE!',
+ 'DiscountP' => '折扣 %',
+ 'Documents' => '文件',
+ 'Due' => '到期的',
+ 'Email' => '电子邮件',
+ 'Europe' => '#VALUE!',
+ 'Fax' => '传真',
+ 'Files' => '文件',
+ 'Filter' => '筛选',
+ 'Freightage' => 'FRIGUTAGE.',
+ 'Group' => '团体',
+ 'ID' => 'ID',
+ 'Info' => '信息',
+ 'Invoice' => '发票',
+ 'Invoices' => '发票',
+ 'IsDefault' => '默认为默认情况下?',
+ 'Items' => '#VALUE!',
+ 'LastContact' => '最后联系人',
+ 'LastOrder' => '最后的订单',
+ 'Log' => '日志',
+ 'Logs' => '日志',
+ 'LostCustomers' => '#VALUE!',
+ 'MRR' => 'MRR.',
+ 'MTDSales' => 'MTD销售',
+ 'Margin' => '利润',
+ 'Messages' => '消息',
+ 'Modified' => '修改的',
+ 'Modules' => '模块',
+ 'Name' => '名称',
+ 'Name1' => '名称1',
+ 'Name2' => '名称2.',
+ 'Name3' => '名称3.',
+ 'Net' => '网',
+ 'NewCustomers' => '#VALUE!',
+ 'Notes' => '笔记',
+ 'Number' => '数字',
+ 'Office' => '办公室',
+ 'Other' => '#VALUE!',
+ 'Payment' => '支付',
+ 'PaymentTerm' => '付款期限',
+ 'Permission' => '允许',
+ 'Phone' => '电话',
+ 'Postal' => '邮政',
+ 'Price' => '价格',
+ 'Prices' => '价格',
+ 'Private' => '私人的',
+ 'Productgroup' => '产品组',
+ 'Profile' => '轮廓',
+ 'Profit' => '#VALUE!',
+ 'Purchase' => '购买',
+ 'Quantity' => '数量',
+ 'RecentInvoices' => '最近的发票',
+ 'Region' => '#VALUE!',
+ 'Rep' => '#VALUE!',
+ 'Retention' => '#VALUE!',
+ 'Sales' => '销售量',
+ 'Segment' => '分割',
+ 'Segments' => '段',
+ 'Subtype' => '亚型',
+ 'Support' => '支持',
+ 'Tags' => '标签',
+ 'Title' => '#VALUE!',
+ 'Total' => '#VALUE!',
+ 'TotalPrice' => '#VALUE!',
+ 'Type' => '类型',
+ 'UnitPrice' => '#VALUE!',
+ 'Value' => '#VALUE!',
+ 'Website' => '网站',
+ 'Wire' => '金属丝',
+ 'YTDSales' => 'ytd销售',
+ 'Zip' => '压缩',
+]];
diff --git a/Theme/Backend/vehicle-create.tpl.php b/Theme/Backend/vehicle-create.tpl.php
new file mode 100755
index 0000000..a49f942
--- /dev/null
+++ b/Theme/Backend/vehicle-create.tpl.php
@@ -0,0 +1,289 @@
+getData('nav')->render(); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Client'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Contact'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Address'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('PaymentTerm'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Payment'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-6' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Price'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('AreaManager'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-8' ? ' checked' : ''; ?>>
+
+
+
request->uri->fragment === 'c-tab-9' ? ' checked' : ''; ?>>
+
+
+
+ l11nManager, $this->request, $this->response);
+ $footerView->setTemplate('/Web/Templates/Lists/Footer/PaginationBig');
+ $footerView->setPages(20);
+ $footerView->setPage(1);
+ ?>
+
+
+ = $this->getHtml('Logs'); ?>
+
+
+ | IP
+ | = $this->getHtml('ID', '0', '0'); ?>
+ | = $this->getHtml('Name'); ?>
+ | = $this->getHtml('Log'); ?>
+ | = $this->getHtml('Date'); ?>
+ |
+
+ | = $this->printHtml($this->request->getOrigin()); ?>
+ | = $this->printHtml((string) $this->request->header->account); ?>
+ | = $this->printHtml((string) $this->request->header->account); ?>
+ | Creating customer
+ | = $this->printHtml((new \DateTime('now'))->format('Y-m-d H:i:s')); ?>
+ |
+
+
+
+
+
+
diff --git a/Theme/Backend/vehicle-list.tpl.php b/Theme/Backend/vehicle-list.tpl.php
new file mode 100755
index 0000000..f2f8b46
--- /dev/null
+++ b/Theme/Backend/vehicle-list.tpl.php
@@ -0,0 +1,128 @@
+getData('client');
+
+echo $this->getData('nav')->render(); ?>
+
+
+
+ = $this->getHtml('Clients'); ?>
+
+
+
+
diff --git a/Theme/Backend/vehicle-profile.tpl.php b/Theme/Backend/vehicle-profile.tpl.php
new file mode 100755
index 0000000..7356d4e
--- /dev/null
+++ b/Theme/Backend/vehicle-profile.tpl.php
@@ -0,0 +1,618 @@
+getData('client');
+$notes = $client->getNotes();
+$files = $client->getFiles();
+
+$newestInvoices = $this->getData('newestInvoices') ?? [];
+$monthlySalesCosts = $this->getData('monthlySalesCosts') ?? [];
+
+/**
+ * @var \phpOMS\Views\View $this
+ */
+echo $this->getData('nav')->render();
+?>
+
+
+
+
+
+
+
+
+
+ -
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
+
+
+
+
+
+
+
+ = $this->getHtml('Contact'); ?>
+
+
+
+
+
+
+
+ = $this->getHtml('Address'); ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ | = $this->getHtml('YTDSales'); ?>:
+ |
+ |
| = $this->getHtml('MTDSales'); ?>:
+ |
+ |
| = $this->getHtml('CLV'); ?>:
+ |
+ |
| = $this->getHtml('MRR'); ?>:
+ |
+ |
+
+
+
+
+
+
+
+
+ | = $this->getHtml('LastContact'); ?>:
+ |
+ |
| = $this->getHtml('LastOrder'); ?>:
+ |
+ |
| = $this->getHtml('Created'); ?>:
+ |
+ |
| = $this->getHtml('Modified'); ?>:
+ |
+ |
+
+
+
+
+
+
+
+
+ | = $this->getHtml('DSO'); ?>:
+ |
+ |
| = $this->getHtml('Due'); ?>:
+ |
+ |
| = $this->getHtml('Balance'); ?>:
+ |
+ |
| = $this->getHtml('CreditRating'); ?>:
+ |
+ |
+
+
+
+
+
+
+
+
+ = $this->getHtml('Notes'); ?>
+
+
+
+
+
+
+ = $this->getHtml('Documents'); ?>
+
+
+
+
+
+
+
+
+ = $this->getHtml('RecentInvoices'); ?>
+
+
+
+
+
+
+
+
+ = $this->getHtml('Segments'); ?>
+
+
+
+
+
+
+ = $this->getHtml('Sales'); ?>
+
+
+
+
+
+
+
+
+
+
request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Address'); ?>
+
+
+
+
+
+
+
+
+ = $this->getHtml('Contact'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Payment'); ?>
+
+
+
+
+
+
+
+
+ = $this->getHtml('PaymentTerm'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-6' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('Price'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>>
+
+
+
+
+ = $this->getHtml('AreaManager'); ?>
+
+
+
+
+
+
request->uri->fragment === 'c-tab-8' ? ' checked' : ''; ?>>
+
+
+
request->uri->fragment === 'c-tab-9' ? ' checked' : ''; ?>>
+
+
+
+
request->uri->fragment === 'c-tab-9' ? ' checked' : ''; ?>>
+
+
+
+
request->uri->fragment === 'c-tab-10' ? ' checked' : ''; ?>>
+
+
+
+ l11nManager, $this->request, $this->response);
+ $footerView->setTemplate('/Web/Templates/Lists/Footer/PaginationBig');
+ $footerView->setPages(20);
+ $footerView->setPage(1);
+ ?>
+
+
+ = $this->getHtml('Logs'); ?>
+
+
+ | IP
+ | = $this->getHtml('ID', '0', '0'); ?>
+ | = $this->getHtml('Name'); ?>
+ | = $this->getHtml('Log'); ?>
+ | = $this->getHtml('Date'); ?>
+ |
+
+ |
+ |
+
+ | = $this->printHtml($this->request->getOrigin()); ?>
+ | = $this->printHtml((string) $this->request->header->account); ?>
+ | = $this->printHtml((string) $this->request->header->account); ?>
+ | Creating customer
+ | = $this->printHtml((new \DateTime('now'))->format('Y-m-d H:i:s')); ?>
+ |
+
+
+
+
+
+
diff --git a/composer.json b/composer.json
new file mode 100755
index 0000000..15e8d01
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,20 @@
+{
+ "name": "karaka/module",
+ "description": "Module for Karaka.",
+ "authors": [
+ {
+ "name": "Dennis Eichhorn",
+ "email": "spl1nes.com@googlemail.com"
+ }
+ ],
+ "require-dev": {
+ "phpunit/phpunit": ">=9.4",
+ "friendsofphp/php-cs-fixer": ">=3.8",
+ "squizlabs/php_codesniffer": ">=3.6",
+ "phpmd/phpmd": ">=2.9",
+ "phpstan/phpstan": ">=1.8.6",
+ "phan/phan": ">=3.2.6"
+ },
+ "minimum-stability": "dev",
+ "prefer-stable": true
+}
diff --git a/composer.lock b/composer.lock
new file mode 100755
index 0000000..1885692
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,4802 @@
+{
+ "_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": "83c956950eced6728b0e73b4374aacd7",
+ "packages": [],
+ "packages-dev": [
+ {
+ "name": "composer/pcre",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/e300eb6c535192decd27a85bc72a9290f0d6b3bd",
+ "reference": "e300eb6c535192decd27a85bc72a9290f0d6b3bd",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-25T20:21:48+00:00"
+ },
+ {
+ "name": "composer/semver",
+ "version": "3.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/semver.git",
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.3.2 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.4",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Semver\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nils Adermann",
+ "email": "naderman@naderman.de",
+ "homepage": "http://www.naderman.de"
+ },
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ },
+ {
+ "name": "Rob Bast",
+ "email": "rob.bast@gmail.com",
+ "homepage": "http://robbast.nl"
+ }
+ ],
+ "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "keywords": [
+ "semantic",
+ "semver",
+ "validation",
+ "versioning"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/semver/issues",
+ "source": "https://github.com/composer/semver/tree/3.3.2"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-01T19:23:25+00:00"
+ },
+ {
+ "name": "composer/xdebug-handler",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/xdebug-handler.git",
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c",
+ "shasum": ""
+ },
+ "require": {
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Composer\\XdebugHandler\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "John Stevenson",
+ "email": "john-stevenson@blueyonder.co.uk"
+ }
+ ],
+ "description": "Restarts a process without Xdebug.",
+ "keywords": [
+ "Xdebug",
+ "performance"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/composer",
+ "issues": "https://github.com/composer/xdebug-handler/issues",
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-25T21:32:43+00:00"
+ },
+ {
+ "name": "doctrine/annotations",
+ "version": "1.13.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "5b668aef16090008790395c02c893b1ba13f7e08"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08",
+ "reference": "5b668aef16090008790395c02c893b1ba13f7e08",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "1.*",
+ "ext-tokenizer": "*",
+ "php": "^7.1 || ^8.0",
+ "psr/cache": "^1 || ^2 || ^3"
+ },
+ "require-dev": {
+ "doctrine/cache": "^1.11 || ^2.0",
+ "doctrine/coding-standard": "^6.0 || ^8.1",
+ "phpstan/phpstan": "^0.12.20",
+ "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5",
+ "symfony/cache": "^4.4 || ^5.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "https://www.doctrine-project.org/projects/annotations.html",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/annotations/issues",
+ "source": "https://github.com/doctrine/annotations/tree/1.13.2"
+ },
+ "time": "2021-08-05T19:00:23+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc",
+ "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpbench/phpbench": "^0.16 || ^1",
+ "phpstan/phpstan": "^1.4",
+ "phpstan/phpstan-phpunit": "^1",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.22"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "https://ocramius.github.io/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://www.doctrine-project.org/projects/instantiator.html",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "support": {
+ "issues": "https://github.com/doctrine/instantiator/issues",
+ "source": "https://github.com/doctrine/instantiator/tree/1.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.doctrine-project.org/sponsorship.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://www.patreon.com/phpdoctrine",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-03T08:28:38+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9.0",
+ "phpstan/phpstan": "^1.3",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "vimeo/psalm": "^4.11"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
+ }
+ },
+ "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/1.2.3"
+ },
+ "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-02-28T11:07:21+00:00"
+ },
+ {
+ "name": "felixfbecker/advanced-json-rpc",
+ "version": "v3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/felixfbecker/php-advanced-json-rpc.git",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/felixfbecker/php-advanced-json-rpc/zipball/b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "reference": "b5f37dbff9a8ad360ca341f3240dc1c168b45447",
+ "shasum": ""
+ },
+ "require": {
+ "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0",
+ "php": "^7.1 || ^8.0",
+ "phpdocumentor/reflection-docblock": "^4.3.4 || ^5.0.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^7.0 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "AdvancedJsonRpc\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "ISC"
+ ],
+ "authors": [
+ {
+ "name": "Felix Becker",
+ "email": "felix.b@outlook.com"
+ }
+ ],
+ "description": "A more advanced JSONRPC implementation",
+ "support": {
+ "issues": "https://github.com/felixfbecker/php-advanced-json-rpc/issues",
+ "source": "https://github.com/felixfbecker/php-advanced-json-rpc/tree/v3.2.1"
+ },
+ "time": "2021-06-11T22:34:44+00:00"
+ },
+ {
+ "name": "friendsofphp/php-cs-fixer",
+ "version": "v3.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
+ "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3",
+ "reference": "cbad1115aac4b5c3c5540e7210d3c9fba2f81fa3",
+ "shasum": ""
+ },
+ "require": {
+ "composer/semver": "^3.2",
+ "composer/xdebug-handler": "^3.0.3",
+ "doctrine/annotations": "^1.13",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "php": "^7.4 || ^8.0",
+ "php-cs-fixer/diff": "^2.0",
+ "symfony/console": "^5.4 || ^6.0",
+ "symfony/event-dispatcher": "^5.4 || ^6.0",
+ "symfony/filesystem": "^5.4 || ^6.0",
+ "symfony/finder": "^5.4 || ^6.0",
+ "symfony/options-resolver": "^5.4 || ^6.0",
+ "symfony/polyfill-mbstring": "^1.23",
+ "symfony/polyfill-php80": "^1.25",
+ "symfony/polyfill-php81": "^1.25",
+ "symfony/process": "^5.4 || ^6.0",
+ "symfony/stopwatch": "^5.4 || ^6.0"
+ },
+ "require-dev": {
+ "justinrainbow/json-schema": "^5.2",
+ "keradus/cli-executor": "^1.5",
+ "mikey179/vfsstream": "^1.6.10",
+ "php-coveralls/php-coveralls": "^2.5.2",
+ "php-cs-fixer/accessible-object": "^1.1",
+ "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2",
+ "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1",
+ "phpspec/prophecy": "^1.15",
+ "phpspec/prophecy-phpunit": "^2.0",
+ "phpunit/phpunit": "^9.5",
+ "phpunitgoodpractices/polyfill": "^1.5",
+ "phpunitgoodpractices/traits": "^1.9.1",
+ "symfony/phpunit-bridge": "^6.0",
+ "symfony/yaml": "^5.4 || ^6.0"
+ },
+ "suggest": {
+ "ext-dom": "For handling output formats in XML",
+ "ext-mbstring": "For handling non-UTF8 characters."
+ },
+ "bin": [
+ "php-cs-fixer"
+ ],
+ "type": "application",
+ "autoload": {
+ "psr-4": {
+ "PhpCsFixer\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Dariusz Rumiński",
+ "email": "dariusz.ruminski@gmail.com"
+ }
+ ],
+ "description": "A tool to automatically fix PHP code style",
+ "support": {
+ "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues",
+ "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.8.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/keradus",
+ "type": "github"
+ }
+ ],
+ "time": "2022-03-18T17:20:59+00:00"
+ },
+ {
+ "name": "microsoft/tolerant-php-parser",
+ "version": "v0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/microsoft/tolerant-php-parser.git",
+ "reference": "6a965617cf484355048ac6d2d3de7b6ec93abb16"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/microsoft/tolerant-php-parser/zipball/6a965617cf484355048ac6d2d3de7b6ec93abb16",
+ "reference": "6a965617cf484355048ac6d2d3de7b6ec93abb16",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.15"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Microsoft\\PhpParser\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Rob Lourens",
+ "email": "roblou@microsoft.com"
+ }
+ ],
+ "description": "Tolerant PHP-to-AST parser designed for IDE usage scenarios",
+ "support": {
+ "issues": "https://github.com/microsoft/tolerant-php-parser/issues",
+ "source": "https://github.com/microsoft/tolerant-php-parser/tree/v0.1.1"
+ },
+ "time": "2021-07-16T21:28:12+00:00"
+ },
+ {
+ "name": "myclabs/deep-copy",
+ "version": "1.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
+ "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
+ },
+ "require-dev": {
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
+ "psr-4": {
+ "DeepCopy\\": "src/DeepCopy/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Create deep copies (clones) of your objects",
+ "keywords": [
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
+ ],
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-03T13:19:32+00:00"
+ },
+ {
+ "name": "netresearch/jsonmapper",
+ "version": "v4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/cweiske/jsonmapper.git",
+ "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
+ "reference": "8bbc021a8edb2e4a7ea2f8ad4fa9ec9dce2fcb8d",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=7.1"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~7.5 || ~8.0 || ~9.0",
+ "squizlabs/php_codesniffer": "~3.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "JsonMapper": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "OSL-3.0"
+ ],
+ "authors": [
+ {
+ "name": "Christian Weiske",
+ "email": "cweiske@cweiske.de",
+ "homepage": "http://github.com/cweiske/jsonmapper/",
+ "role": "Developer"
+ }
+ ],
+ "description": "Map nested JSON structures onto PHP classes",
+ "support": {
+ "email": "cweiske@cweiske.de",
+ "issues": "https://github.com/cweiske/jsonmapper/issues",
+ "source": "https://github.com/cweiske/jsonmapper/tree/v4.0.0"
+ },
+ "time": "2020-12-01T19:48:11+00:00"
+ },
+ {
+ "name": "nikic/php-parser",
+ "version": "v4.13.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "210577fe3cf7badcc5814d99455df46564f3c077"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077",
+ "reference": "210577fe3cf7badcc5814d99455df46564f3c077",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=7.0"
+ },
+ "require-dev": {
+ "ircmaxell/php-yacc": "^0.0.7",
+ "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "bin": [
+ "bin/php-parse"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.9-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PhpParser\\": "lib/PhpParser"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Nikita Popov"
+ }
+ ],
+ "description": "A PHP parser written in PHP",
+ "keywords": [
+ "parser",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/nikic/PHP-Parser/issues",
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2"
+ },
+ "time": "2021-11-30T19:35:32+00:00"
+ },
+ {
+ "name": "pdepend/pdepend",
+ "version": "2.10.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pdepend/pdepend.git",
+ "reference": "da3166a06b4a89915920a42444f707122a1584c9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pdepend/pdepend/zipball/da3166a06b4a89915920a42444f707122a1584c9",
+ "reference": "da3166a06b4a89915920a42444f707122a1584c9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.7",
+ "symfony/config": "^2.3.0|^3|^4|^5|^6.0",
+ "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0",
+ "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0"
+ },
+ "require-dev": {
+ "easy-doc/easy-doc": "0.0.0|^1.2.3",
+ "gregwar/rst": "^1.0",
+ "phpunit/phpunit": "^4.8.36|^5.7.27",
+ "squizlabs/php_codesniffer": "^2.0.0"
+ },
+ "bin": [
+ "src/bin/pdepend"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PDepend\\": "src/main/php/PDepend"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Official version of pdepend to be handled with Composer",
+ "support": {
+ "issues": "https://github.com/pdepend/pdepend/issues",
+ "source": "https://github.com/pdepend/pdepend/tree/2.10.3"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-23T07:53:09+00:00"
+ },
+ {
+ "name": "phan/phan",
+ "version": "5.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phan/phan.git",
+ "reference": "b7697eb811e912c038f709f8e1c4911c7ada3edc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phan/phan/zipball/b7697eb811e912c038f709f8e1c4911c7ada3edc",
+ "reference": "b7697eb811e912c038f709f8e1c4911c7ada3edc",
+ "shasum": ""
+ },
+ "require": {
+ "composer/semver": "^1.4|^2.0|^3.0",
+ "composer/xdebug-handler": "^2.0|^3.0",
+ "ext-filter": "*",
+ "ext-json": "*",
+ "ext-tokenizer": "*",
+ "felixfbecker/advanced-json-rpc": "^3.0.4",
+ "microsoft/tolerant-php-parser": "^0.1.0",
+ "netresearch/jsonmapper": "^1.6.0|^2.0|^3.0|^4.0",
+ "php": "^7.2.0|^8.0.0",
+ "sabre/event": "^5.1.3",
+ "symfony/console": "^3.2|^4.0|^5.0|^6.0",
+ "symfony/polyfill-mbstring": "^1.11.0",
+ "symfony/polyfill-php80": "^1.20.0",
+ "tysonandre/var_representation_polyfill": "^0.0.2|^0.1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^8.5.0"
+ },
+ "suggest": {
+ "ext-ast": "Needed for parsing ASTs (unless --use-fallback-parser is used). 1.0.1+ is needed, 1.0.16+ is recommended.",
+ "ext-iconv": "Either iconv or mbstring is needed to ensure issue messages are valid utf-8",
+ "ext-igbinary": "Improves performance of polyfill when ext-ast is unavailable",
+ "ext-mbstring": "Either iconv or mbstring is needed to ensure issue messages are valid utf-8",
+ "ext-tokenizer": "Needed for fallback/polyfill parser support and file/line-based suppressions.",
+ "ext-var_representation": "Suggested for converting values to strings in issue messages"
+ },
+ "bin": [
+ "phan",
+ "phan_client",
+ "tocheckstyle"
+ ],
+ "type": "project",
+ "autoload": {
+ "psr-4": {
+ "Phan\\": "src/Phan"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tyson Andre"
+ },
+ {
+ "name": "Rasmus Lerdorf"
+ },
+ {
+ "name": "Andrew S. Morrison"
+ }
+ ],
+ "description": "A static analyzer for PHP",
+ "keywords": [
+ "analyzer",
+ "php",
+ "static"
+ ],
+ "support": {
+ "issues": "https://github.com/phan/phan/issues",
+ "source": "https://github.com/phan/phan/tree/5.3.2"
+ },
+ "time": "2022-02-01T00:17:36+00:00"
+ },
+ {
+ "name": "phar-io/manifest",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-phar": "*",
+ "ext-xmlwriter": "*",
+ "phar-io/version": "^3.0.1",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
+ },
+ "time": "2021-07-20T11:28:43+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "php-cs-fixer/diff",
+ "version": "v2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHP-CS-Fixer/diff.git",
+ "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3",
+ "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^5.6 || ^7.0 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0",
+ "symfony/process": "^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"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "sebastian/diff v3 backport support for PHP 5.6+",
+ "homepage": "https://github.com/PHP-CS-Fixer",
+ "keywords": [
+ "diff"
+ ],
+ "support": {
+ "issues": "https://github.com/PHP-CS-Fixer/diff/issues",
+ "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2"
+ },
+ "time": "2020-10-14T08:32:19+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
+ "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.3",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.2",
+ "psalm/phar": "^4.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "account@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
+ },
+ "time": "2021-10-19T17:43:47+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "77a32518733312af16a44300404e945338981de3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/77a32518733312af16a44300404e945338981de3",
+ "reference": "77a32518733312af16a44300404e945338981de3",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "psalm/phar": "^4.8"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ }
+ ],
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.1"
+ },
+ "time": "2022-03-15T21:29:03+00:00"
+ },
+ {
+ "name": "phpmd/phpmd",
+ "version": "2.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpmd/phpmd.git",
+ "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpmd/phpmd/zipball/c0b678ba71902f539c27c14332aa0ddcf14388ec",
+ "reference": "c0b678ba71902f539c27c14332aa0ddcf14388ec",
+ "shasum": ""
+ },
+ "require": {
+ "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0",
+ "ext-xml": "*",
+ "pdepend/pdepend": "^2.10.3",
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "easy-doc/easy-doc": "0.0.0 || ^1.3.2",
+ "ext-json": "*",
+ "ext-simplexml": "*",
+ "gregwar/rst": "^1.0",
+ "mikey179/vfsstream": "^1.6.8",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.27",
+ "squizlabs/php_codesniffer": "^2.0"
+ },
+ "bin": [
+ "src/bin/phpmd"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "PHPMD\\": "src/main/php"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Manuel Pichler",
+ "email": "github@manuel-pichler.de",
+ "homepage": "https://github.com/manuelpichler",
+ "role": "Project Founder"
+ },
+ {
+ "name": "Marc Würth",
+ "email": "ravage@bluewin.ch",
+ "homepage": "https://github.com/ravage84",
+ "role": "Project Maintainer"
+ },
+ {
+ "name": "Other contributors",
+ "homepage": "https://github.com/phpmd/phpmd/graphs/contributors",
+ "role": "Contributors"
+ }
+ ],
+ "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.",
+ "homepage": "https://phpmd.org/",
+ "keywords": [
+ "mess detection",
+ "mess detector",
+ "pdepend",
+ "phpmd",
+ "pmd"
+ ],
+ "support": {
+ "irc": "irc://irc.freenode.org/phpmd",
+ "issues": "https://github.com/phpmd/phpmd/issues",
+ "source": "https://github.com/phpmd/phpmd/tree/2.12.0"
+ },
+ "funding": [
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-24T13:33:01+00:00"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "v1.15.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
+ "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.2",
+ "php": "^7.2 || ~8.0, <8.2",
+ "phpdocumentor/reflection-docblock": "^5.2",
+ "sebastian/comparator": "^3.0 || ^4.0",
+ "sebastian/recursion-context": "^3.0 || ^4.0"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "^6.0 || ^7.0",
+ "phpunit/phpunit": "^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Prophecy\\": "src/Prophecy"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "support": {
+ "issues": "https://github.com/phpspec/prophecy/issues",
+ "source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
+ },
+ "time": "2021-12-08T12:19:24+00:00"
+ },
+ {
+ "name": "phpstan/phpstan",
+ "version": "1.5.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "bbf68cae24f6dc023c607ea0f87da55dd9d55c2b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/bbf68cae24f6dc023c607ea0f87da55dd9d55c2b",
+ "reference": "bbf68cae24f6dc023c607ea0f87da55dd9d55c2b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "source": "https://github.com/phpstan/phpstan/tree/1.5.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpstan",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-03T12:39:00+00:00"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "9.2.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
+ "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-libxml": "*",
+ "ext-xmlwriter": "*",
+ "nikic/php-parser": "^4.13.0",
+ "php": ">=7.3",
+ "phpunit/php-file-iterator": "^3.0.3",
+ "phpunit/php-text-template": "^2.0.2",
+ "sebastian/code-unit-reverse-lookup": "^2.0.2",
+ "sebastian/complexity": "^2.0",
+ "sebastian/environment": "^5.1.2",
+ "sebastian/lines-of-code": "^1.0.3",
+ "sebastian/version": "^3.0.1",
+ "theseer/tokenizer": "^1.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcov": "*",
+ "ext-xdebug": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.2-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-03-07T09:28:20+00:00"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-12-02T12:48:52+00:00"
+ },
+ {
+ "name": "phpunit/php-invoker",
+ "version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "ext-pcntl": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-pcntl": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Invoke callables with a timeout",
+ "homepage": "https://github.com/sebastianbergmann/php-invoker/",
+ "keywords": [
+ "process"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-invoker/issues",
+ "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:58:55+00:00"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-text-template/issues",
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T05:33:50+00:00"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/php-timer/issues",
+ "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:16:10+00:00"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "9.5.20",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/12bc8879fb65aef2138b26fc633cb1e3620cffba",
+ "reference": "12bc8879fb65aef2138b26fc633cb1e3620cffba",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.3.1",
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-libxml": "*",
+ "ext-mbstring": "*",
+ "ext-xml": "*",
+ "ext-xmlwriter": "*",
+ "myclabs/deep-copy": "^1.10.1",
+ "phar-io/manifest": "^2.0.3",
+ "phar-io/version": "^3.0.2",
+ "php": ">=7.3",
+ "phpspec/prophecy": "^1.12.1",
+ "phpunit/php-code-coverage": "^9.2.13",
+ "phpunit/php-file-iterator": "^3.0.5",
+ "phpunit/php-invoker": "^3.1.1",
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.5",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.3",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^3.0",
+ "sebastian/version": "^3.0.2"
+ },
+ "require-dev": {
+ "ext-pdo": "*",
+ "phpspec/prophecy-phpunit": "^2.0.1"
+ },
+ "suggest": {
+ "ext-soap": "*",
+ "ext-xdebug": "*"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.5-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.20"
+ },
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-04-01T12:37:26+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Cache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for caching libraries",
+ "keywords": [
+ "cache",
+ "psr",
+ "psr-6"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/cache/tree/3.0.0"
+ },
+ "time": "2021-02-03T23:26:27+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": "psr/event-dispatcher",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/event-dispatcher.git",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\EventDispatcher\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Standard interfaces for event handling.",
+ "keywords": [
+ "events",
+ "psr",
+ "psr-14"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/event-dispatcher/issues",
+ "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+ },
+ "time": "2019-01-08T18:20:26+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "support": {
+ "source": "https://github.com/php-fig/log/tree/3.0.0"
+ },
+ "time": "2021-07-14T16:46:02+00:00"
+ },
+ {
+ "name": "sabre/event",
+ "version": "5.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sabre-io/event.git",
+ "reference": "d7da22897125d34d7eddf7977758191c06a74497"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sabre-io/event/zipball/d7da22897125d34d7eddf7977758191c06a74497",
+ "reference": "d7da22897125d34d7eddf7977758191c06a74497",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "~2.17.1",
+ "phpstan/phpstan": "^0.12",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/coroutine.php",
+ "lib/Loop/functions.php",
+ "lib/Promise/functions.php"
+ ],
+ "psr-4": {
+ "Sabre\\Event\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Evert Pot",
+ "email": "me@evertpot.com",
+ "homepage": "http://evertpot.com/",
+ "role": "Developer"
+ }
+ ],
+ "description": "sabre/event is a library for lightweight event-based programming",
+ "homepage": "http://sabre.io/event/",
+ "keywords": [
+ "EventEmitter",
+ "async",
+ "coroutine",
+ "eventloop",
+ "events",
+ "hooks",
+ "plugin",
+ "promise",
+ "reactor",
+ "signal"
+ ],
+ "support": {
+ "forum": "https://groups.google.com/group/sabredav-discuss",
+ "issues": "https://github.com/sabre-io/event/issues",
+ "source": "https://github.com/fruux/sabre-event"
+ },
+ "time": "2021-11-04T06:51:17+00:00"
+ },
+ {
+ "name": "sebastian/cli-parser",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for parsing CLI options",
+ "homepage": "https://github.com/sebastianbergmann/cli-parser",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/cli-parser/issues",
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:08:49+00:00"
+ },
+ {
+ "name": "sebastian/code-unit",
+ "version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/code-unit",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:08:54+00:00"
+ },
+ {
+ "name": "sebastian/code-unit-reverse-lookup",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Looks up which function or method a line of code belongs to",
+ "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues",
+ "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T05:30:19+00:00"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "4.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
+ "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/diff": "^4.0",
+ "sebastian/exporter": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "https://github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/comparator/issues",
+ "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:49:45+00:00"
+ },
+ {
+ "name": "sebastian/complexity",
+ "version": "2.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
+ "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.7",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for calculating the complexity of PHP code units",
+ "homepage": "https://github.com/sebastianbergmann/complexity",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/complexity/issues",
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T15:52:27+00:00"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3",
+ "symfony/process": "^4.2 || ^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "https://github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff",
+ "udiff",
+ "unidiff",
+ "unified diff"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/diff/issues",
+ "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:10:38+00:00"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "5.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/1b5dff7bb151a4db11d49d90e5408e4e938270f7",
+ "reference": "1b5dff7bb151a4db11d49d90e5408e4e938270f7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-posix": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.1-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/environment/issues",
+ "source": "https://github.com/sebastianbergmann/environment/tree/5.1.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-04-03T09:37:03+00:00"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
+ "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-mbstring": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@gmail.com"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "https://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/exporter/issues",
+ "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2021-11-11T14:18:36+00:00"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "5.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "ext-dom": "*",
+ "phpunit/phpunit": "^9.3"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/global-state/issues",
+ "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-02-14T08:28:10+00:00"
+ },
+ {
+ "name": "sebastian/lines-of-code",
+ "version": "1.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.6",
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library for counting the lines of code in PHP source code",
+ "homepage": "https://github.com/sebastianbergmann/lines-of-code",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-11-28T06:42:11+00:00"
+ },
+ {
+ "name": "sebastian/object-enumerator",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3",
+ "sebastian/object-reflector": "^2.0",
+ "sebastian/recursion-context": "^4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Traverses array structures and object graphs to enumerate all referenced objects",
+ "homepage": "https://github.com/sebastianbergmann/object-enumerator/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-enumerator/issues",
+ "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:12:34+00:00"
+ },
+ {
+ "name": "sebastian/object-reflector",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Allows reflection of object attributes, including inherited and non-public ones",
+ "homepage": "https://github.com/sebastianbergmann/object-reflector/",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/object-reflector/issues",
+ "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:14:26+00:00"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
+ "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-10-26T13:17:30+00:00"
+ },
+ {
+ "name": "sebastian/resource-operations",
+ "version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides a list of PHP built-in functions that operate on resources",
+ "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
+ "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:45:17+00:00"
+ },
+ {
+ "name": "sebastian/type",
+ "version": "3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
+ "reference": "b233b84bc4465aff7b57cf1c4bc75c86d00d6dad",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.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",
+ "role": "lead"
+ }
+ ],
+ "description": "Collection of value objects that represent the types of the PHP type system",
+ "homepage": "https://github.com/sebastianbergmann/type",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/type/issues",
+ "source": "https://github.com/sebastianbergmann/type/tree/3.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2022-03-15T09:54:48+00:00"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "support": {
+ "issues": "https://github.com/sebastianbergmann/version/issues",
+ "source": "https://github.com/sebastianbergmann/version/tree/3.0.2"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ }
+ ],
+ "time": "2020-09-28T06:39:44+00:00"
+ },
+ {
+ "name": "squizlabs/php_codesniffer",
+ "version": "3.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
+ "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5e4e71592f69da17871dba6e80dd51bce74a351a",
+ "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": ">=5.4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
+ },
+ "bin": [
+ "bin/phpcs",
+ "bin/phpcbf"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Greg Sherwood",
+ "role": "lead"
+ }
+ ],
+ "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
+ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "keywords": [
+ "phpcs",
+ "standards"
+ ],
+ "support": {
+ "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
+ "source": "https://github.com/squizlabs/PHP_CodeSniffer",
+ "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
+ },
+ "time": "2021-12-12T21:44:58+00:00"
+ },
+ {
+ "name": "symfony/config",
+ "version": "v6.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/config.git",
+ "reference": "22850bfdd2b6090568ad05dece6843c859d933b7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/config/zipball/22850bfdd2b6090568ad05dece6843c859d933b7",
+ "reference": "22850bfdd2b6090568ad05dece6843c859d933b7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/filesystem": "^5.4|^6.0",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-php81": "^1.22"
+ },
+ "conflict": {
+ "symfony/finder": "<4.4"
+ },
+ "require-dev": {
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/finder": "^5.4|^6.0",
+ "symfony/messenger": "^5.4|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/yaml": "^5.4|^6.0"
+ },
+ "suggest": {
+ "symfony/yaml": "To use the yaml reference dumper"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/config/tree/v6.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-22T16:12:04+00:00"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v6.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "70dcf7b2ca2ea08ad6ebcc475f104a024fb5632e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/70dcf7b2ca2ea08ad6ebcc475f104a024fb5632e",
+ "reference": "70dcf7b2ca2ea08ad6ebcc475f104a024fb5632e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/string": "^5.4|^6.0"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4",
+ "symfony/dotenv": "<5.4",
+ "symfony/event-dispatcher": "<5.4",
+ "symfony/lock": "<5.4",
+ "symfony/process": "<5.4"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/event-dispatcher": "^5.4|^6.0",
+ "symfony/lock": "^5.4|^6.0",
+ "symfony/process": "^5.4|^6.0",
+ "symfony/var-dumper": "^5.4|^6.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",
+ "keywords": [
+ "cli",
+ "command line",
+ "console",
+ "terminal"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/console/tree/v6.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-31T17:18:25+00:00"
+ },
+ {
+ "name": "symfony/dependency-injection",
+ "version": "v6.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dependency-injection.git",
+ "reference": "3e8a405fcc2eaf4eadb25b5e259ad9bf90499848"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/3e8a405fcc2eaf4eadb25b5e259ad9bf90499848",
+ "reference": "3e8a405fcc2eaf4eadb25b5e259ad9bf90499848",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "psr/container": "^1.1|^2.0",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php81": "^1.22",
+ "symfony/service-contracts": "^1.1.6|^2.0|^3.0"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2",
+ "symfony/config": "<5.4",
+ "symfony/finder": "<5.4",
+ "symfony/proxy-manager-bridge": "<5.4",
+ "symfony/yaml": "<5.4"
+ },
+ "provide": {
+ "psr/container-implementation": "1.1|2.0",
+ "symfony/service-implementation": "1.1|2.0|3.0"
+ },
+ "require-dev": {
+ "symfony/config": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/yaml": "^5.4|^6.0"
+ },
+ "suggest": {
+ "symfony/config": "",
+ "symfony/expression-language": "For using expressions in service container configuration",
+ "symfony/finder": "For using double-star glob patterns or when GLOB_BRACE portability is required",
+ "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DependencyInjection\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Allows you to standardize and centralize the way objects are constructed in your application",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dependency-injection/tree/v6.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-08T15:43:52+00:00"
+ },
+ {
+ "name": "symfony/deprecation-contracts",
+ "version": "v3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "reference": "26954b3d62a6c5fd0ea8a2a00c0353a14978d05c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "files": [
+ "function.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "A generic function and convention to trigger deprecation notices",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v6.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher.git",
+ "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934",
+ "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/event-dispatcher-contracts": "^2|^3"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<5.4"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0",
+ "symfony/event-dispatcher-implementation": "2.0|3.0"
+ },
+ "require-dev": {
+ "psr/log": "^1|^2|^3",
+ "symfony/config": "^5.4|^6.0",
+ "symfony/dependency-injection": "^5.4|^6.0",
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/expression-language": "^5.4|^6.0",
+ "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/service-contracts": "^1.1|^2|^3",
+ "symfony/stopwatch": "^5.4|^6.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/v6.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "symfony/event-dispatcher-contracts",
+ "version": "v3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+ "reference": "7bc61cc2db649b4637d331240c5346dcc7708051"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7bc61cc2db649b4637d331240c5346dcc7708051",
+ "reference": "7bc61cc2db649b4637d331240c5346dcc7708051",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "psr/event-dispatcher": "^1"
+ },
+ "suggest": {
+ "symfony/event-dispatcher-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-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/v3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v6.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/filesystem.git",
+ "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff",
+ "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides basic utilities for the filesystem",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/filesystem/tree/v6.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-01T12:54:51+00:00"
+ },
+ {
+ "name": "symfony/finder",
+ "version": "v6.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/finder.git",
+ "reference": "8661b74dbabc23223f38c9b99d3f8ade71170430"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/8661b74dbabc23223f38c9b99d3f8ade71170430",
+ "reference": "8661b74dbabc23223f38c9b99d3f8ade71170430",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2"
+ },
+ "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/v6.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-26T17:23:29+00:00"
+ },
+ {
+ "name": "symfony/options-resolver",
+ "version": "v6.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/options-resolver.git",
+ "reference": "51f7006670febe4cbcbae177cbffe93ff833250d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/51f7006670febe4cbcbae177cbffe93ff833250d",
+ "reference": "51f7006670febe4cbcbae177cbffe93ff833250d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/deprecation-contracts": "^2.1|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\OptionsResolver\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-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 an improved replacement for the array_replace PHP function",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "config",
+ "configuration",
+ "options"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/options-resolver/tree/v6.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "30885182c981ab175d4d034db0f6f469898070ab"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
+ "reference": "30885182c981ab175d4d034db0f6f469898070ab",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-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.25.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": "2021-10-20T20:35:02+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
+ "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
+ },
+ "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 grapheme_* functions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.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": "2021-11-23T21:10:46+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
+ "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-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.25.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": "2021-02-19T12:13:01+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
+ "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-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.25.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": "2021-11-30T18:21:41+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php80",
+ "version": "v1.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c",
+ "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-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.25.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-03-04T08:16:47+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php81",
+ "version": "v1.25.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
+ "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php81\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.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": "2021-09-13T13:58:11+00:00"
+ },
+ {
+ "name": "symfony/process",
+ "version": "v6.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/process.git",
+ "reference": "e13f6757e267d687e20ec5b26ccfcbbe511cd8f4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/process/zipball/e13f6757e267d687e20ec5b26ccfcbbe511cd8f4",
+ "reference": "e13f6757e267d687e20ec5b26ccfcbbe511cd8f4",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2"
+ },
+ "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/v6.0.7"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-18T16:21:55+00:00"
+ },
+ {
+ "name": "symfony/service-contracts",
+ "version": "v3.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e517458f278c2131ca9f262f8fbaf01410f2c65c",
+ "reference": "e517458f278c2131ca9f262f8fbaf01410f2c65c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "psr/container": "^2.0"
+ },
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.0-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/service-contracts/tree/v3.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-13T20:10:05+00:00"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v6.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/stopwatch.git",
+ "reference": "f2c1780607ec6502f2121d9729fd8150a655d337"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f2c1780607ec6502f2121d9729fd8150a655d337",
+ "reference": "f2c1780607ec6502f2121d9729fd8150a655d337",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/service-contracts": "^1|^2|^3"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides a way to profile code",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/stopwatch/tree/v6.0.5"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-21T17:15:17+00:00"
+ },
+ {
+ "name": "symfony/string",
+ "version": "v6.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/string/zipball/522144f0c4c004c80d56fa47e40e17028e2eefc2",
+ "reference": "522144f0c4c004c80d56fa47e40e17028e2eefc2",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.0.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-intl-grapheme": "~1.0",
+ "symfony/polyfill-intl-normalizer": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "conflict": {
+ "symfony/translation-contracts": "<2.0"
+ },
+ "require-dev": {
+ "symfony/error-handler": "^5.4|^6.0",
+ "symfony/http-client": "^5.4|^6.0",
+ "symfony/translation-contracts": "^2.0|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/string/tree/v6.0.3"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-02T09:55:41+00:00"
+ },
+ {
+ "name": "theseer/tokenizer",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-tokenizer": "*",
+ "ext-xmlwriter": "*",
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats",
+ "support": {
+ "issues": "https://github.com/theseer/tokenizer/issues",
+ "source": "https://github.com/theseer/tokenizer/tree/1.2.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2021-07-28T10:34:58+00:00"
+ },
+ {
+ "name": "tysonandre/var_representation_polyfill",
+ "version": "0.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/TysonAndre/var_representation_polyfill.git",
+ "reference": "0a942e74e18af5514749895507bc6ca7ab96399a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/TysonAndre/var_representation_polyfill/zipball/0a942e74e18af5514749895507bc6ca7ab96399a",
+ "reference": "0a942e74e18af5514749895507bc6ca7ab96399a",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": "^7.2.0|^8.0.0"
+ },
+ "require-dev": {
+ "phan/phan": "^4.0",
+ "phpunit/phpunit": "^8.5.0"
+ },
+ "suggest": {
+ "ext-var_representation": "*"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/var_representation.php"
+ ],
+ "psr-4": {
+ "VarRepresentation\\": "src/VarRepresentation"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Tyson Andre"
+ }
+ ],
+ "description": "Polyfill for var_representation: convert a variable to a string in a way that fixes the shortcomings of var_export",
+ "keywords": [
+ "var_export",
+ "var_representation"
+ ],
+ "support": {
+ "issues": "https://github.com/TysonAndre/var_representation_polyfill/issues",
+ "source": "https://github.com/TysonAndre/var_representation_polyfill/tree/0.1.1"
+ },
+ "time": "2021-08-16T00:12:50+00:00"
+ },
+ {
+ "name": "webmozart/assert",
+ "version": "1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webmozarts/assert.git",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "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.10.0"
+ },
+ "time": "2021-03-09T10:59:23+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "dev",
+ "stability-flags": [],
+ "prefer-stable": true,
+ "prefer-lowest": false,
+ "platform": [],
+ "platform-dev": [],
+ "plugin-api-version": "2.0.0"
+}
diff --git a/info.json b/info.json
new file mode 100755
index 0000000..7d98326
--- /dev/null
+++ b/info.json
@@ -0,0 +1,49 @@
+{
+ "name": {
+ "id": 1003500000,
+ "internal": "FleetManagement",
+ "external": "Fleet Management"
+ },
+ "category": "Fleet",
+ "version": "1.0.0",
+ "requirements": {
+ "phpOMS": "1.0.0",
+ "phpOMS-db": "1.0.0"
+ },
+ "creator": {
+ "name": "Karaka",
+ "website": "jingga.app"
+ },
+ "description": "The buisness module.",
+ "directory": "FleetManagement",
+ "dependencies": {
+ "Admin": "1.0.0",
+ "Profile": "1.0.0",
+ "Media": "1.0.0",
+ "Editor": "1.0.0"
+ },
+ "providing": {
+ "Navigation": "*",
+ "Media": "*"
+ },
+ "load": [
+ {
+ "pid": [
+ "/fleet"
+ ],
+ "type": 4,
+ "for": 0,
+ "from": "FleetManagement",
+ "file": "FleetManagement"
+ },
+ {
+ "pid": [
+ "/"
+ ],
+ "type": 5,
+ "from": "FleetManagement",
+ "for": "Navigation",
+ "file": "Navigation"
+ }
+ ]
+}
diff --git a/tests/Admin/AdminTest.php b/tests/Admin/AdminTest.php
new file mode 100755
index 0000000..9e0ebb5
--- /dev/null
+++ b/tests/Admin/AdminTest.php
@@ -0,0 +1,27 @@
+ [
+ 'core' => [
+ 'masters' => [
+ 'admin' => [
+ 'db' => 'mysql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '3306', /* db host port */
+ 'login' => 'root', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'insert' => [
+ 'db' => 'mysql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '3306', /* db host port */
+ 'login' => 'root', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'select' => [
+ 'db' => 'mysql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '3306', /* db host port */
+ 'login' => 'root', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'update' => [
+ 'db' => 'mysql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '3306', /* db host port */
+ 'login' => 'root', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'delete' => [
+ 'db' => 'mysql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '3306', /* db host port */
+ 'login' => 'root', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'schema' => [
+ 'db' => 'mysql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '3306', /* db host port */
+ 'login' => 'root', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ ],
+ 'postgresql' => [
+ 'admin' => [
+ 'db' => 'pgsql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '5432', /* db host port */
+ 'login' => 'postgres', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'insert' => [
+ 'db' => 'pgsql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '5432', /* db host port */
+ 'login' => 'postgres', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'select' => [
+ 'db' => 'pgsql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '5432', /* db host port */
+ 'login' => 'postgres', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'update' => [
+ 'db' => 'pgsql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '5432', /* db host port */
+ 'login' => 'postgres', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'delete' => [
+ 'db' => 'pgsql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '5432', /* db host port */
+ 'login' => 'postgres', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'schema' => [
+ 'db' => 'pgsql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '5432', /* db host port */
+ 'login' => 'postgres', /* db login name */
+ 'password' => 'root', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ ],
+ 'sqlite' => [
+ 'admin' => [
+ 'db' => 'sqlite', /* db type */
+ 'database' => __DIR__ . '/test.sqlite', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'insert' => [
+ 'db' => 'sqlite', /* db type */
+ 'database' => __DIR__ . '/test.sqlite', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'select' => [
+ 'db' => 'sqlite', /* db type */
+ 'database' => __DIR__ . '/test.sqlite', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'update' => [
+ 'db' => 'sqlite', /* db type */
+ 'database' => __DIR__ . '/test.sqlite', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'delete' => [
+ 'db' => 'sqlite', /* db type */
+ 'database' => __DIR__ . '/test.sqlite', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'schema' => [
+ 'db' => 'sqlite', /* db type */
+ 'database' => __DIR__ . '/test.sqlite', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ ],
+ 'mssql' => [
+ 'admin' => [
+ 'db' => 'mssql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '1433', /* db host port */
+ 'login' => 'sa', /* db login name */
+ 'password' => 'R00troot', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'insert' => [
+ 'db' => 'mssql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '1433', /* db host port */
+ 'login' => 'sa', /* db login name */
+ 'password' => 'R00troot', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'select' => [
+ 'db' => 'mssql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '1433', /* db host port */
+ 'login' => 'sa', /* db login name */
+ 'password' => 'R00troot', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'update' => [
+ 'db' => 'mssql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '1433', /* db host port */
+ 'login' => 'sa', /* db login name */
+ 'password' => 'R00troot', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'delete' => [
+ 'db' => 'mssql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '1433', /* db host port */
+ 'login' => 'sa', /* db login name */
+ 'password' => 'R00troot', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ 'schema' => [
+ 'db' => 'mssql', /* db type */
+ 'host' => '127.0.0.1', /* db host address */
+ 'port' => '1433', /* db host port */
+ 'login' => 'sa', /* db login name */
+ 'password' => 'R00troot', /* db login password */
+ 'database' => 'oms', /* db name */
+ 'weight' => 1000, /* db table prefix */
+ ],
+ ],
+ ],
+ ],
+ 'cache' => [
+ 'redis' => [
+ 'db' => 1,
+ 'host' => '127.0.0.1',
+ 'port' => 6379,
+ ],
+ 'memcached' => [
+ 'host' => '127.0.0.1',
+ 'port' => 11211,
+ ],
+ ],
+ 'mail' => [
+ 'imap' => [
+ 'host' => '127.0.0.1',
+ 'port' => 143,
+ 'ssl' => false,
+ 'user' => 'test',
+ 'password' => '123456',
+ ],
+ 'pop3' => [
+ 'host' => '127.0.0.1',
+ 'port' => 25,
+ 'ssl' => false,
+ 'user' => 'test',
+ 'password' => '123456',
+ ],
+ ],
+ 'log' => [
+ 'file' => [
+ 'path' => __DIR__ . '/Logs',
+ ],
+ ],
+ 'page' => [
+ 'root' => '/',
+ 'https' => false,
+ ],
+ 'app' => [
+ 'path' => __DIR__,
+ 'default' => [
+ 'app' => 'Backend',
+ 'id' => 'backend',
+ 'lang' => 'en',
+ 'theme' => 'Backend',
+ 'org' => 1,
+ ],
+ 'domains' => [
+ '127.0.0.1' => [
+ 'app' => 'Backend',
+ 'id' => 'backend',
+ 'lang' => 'en',
+ 'theme' => 'Backend',
+ 'org' => 1,
+ ],
+ ],
+ ],
+ 'socket' => [
+ 'master' => [
+ 'host' => '127.0.0.1',
+ 'limit' => 300,
+ 'port' => 4310,
+ ],
+ ],
+ 'language' => [
+ 'en',
+ ],
+ 'apis' => [
+ ],
+];
+
+// Reset database
+if (\defined('RESET') && RESET === '1') {
+ if (\extension_loaded('pdo_mysql')) {
+ try {
+ $db = new \PDO('mysql:host=' .
+ $CONFIG['db']['core']['masters']['admin']['host'],
+ $CONFIG['db']['core']['masters']['admin']['login'],
+ $CONFIG['db']['core']['masters']['admin']['password']
+ );
+ $db->exec('DROP DATABASE IF EXISTS ' . $CONFIG['db']['core']['masters']['admin']['database']);
+ $db->exec('CREATE DATABASE IF NOT EXISTS ' . $CONFIG['db']['core']['masters']['admin']['database']);
+ $db = null;
+ } catch (\Throwable $t) {
+ echo "\nCouldn't connect to MYSQL DB\n";
+ }
+ }
+
+ if (\extension_loaded('pdo_pgsql')) {
+ try {
+ $db = new \PDO('pgsql:host=' .
+ $CONFIG['db']['core']['postgresql']['admin']['host'],
+ $CONFIG['db']['core']['postgresql']['admin']['login'],
+ $CONFIG['db']['core']['postgresql']['admin']['password']
+ );
+ $db->exec('DROP DATABASE IF EXISTS ' . $CONFIG['db']['core']['postgresql']['admin']['database']);
+ $db->exec('CREATE DATABASE ' . $CONFIG['db']['core']['postgresql']['admin']['database']);
+ $db = null;
+ } catch (\Throwable $t) {
+ echo "\nCouldn't connect to POSTGRESQL DB\n";
+ }
+ }
+
+ if (\extension_loaded('pdo_sqlsrv')) {
+ try {
+ $db = new \PDO('sqlsrv:Server=' .
+ $CONFIG['db']['core']['mssql']['admin']['host'],
+ $CONFIG['db']['core']['mssql']['admin']['login'],
+ $CONFIG['db']['core']['mssql']['admin']['password']
+ );
+ $db->exec('DROP DATABASE IF EXISTS ' . $CONFIG['db']['core']['mssql']['admin']['database']);
+ $db->exec('CREATE DATABASE ' . $CONFIG['db']['core']['mssql']['admin']['database']);
+ $db = null;
+ } catch (\Throwable $t) {
+ echo "\nCouldn't connect to MSSQL DB\n";
+ }
+ }
+}
+
+$httpSession = new HttpSession();
+$GLOBALS['session'] = $httpSession;
+
+$GLOBALS['dbpool'] = new DatabasePool();
+$GLOBALS['dbpool']->create('admin', $CONFIG['db']['core']['masters']['admin']);
+$GLOBALS['dbpool']->create('select', $CONFIG['db']['core']['masters']['select']);
+$GLOBALS['dbpool']->create('update', $CONFIG['db']['core']['masters']['update']);
+$GLOBALS['dbpool']->create('delete', $CONFIG['db']['core']['masters']['delete']);
+$GLOBALS['dbpool']->create('insert', $CONFIG['db']['core']['masters']['insert']);
+$GLOBALS['dbpool']->create('schema', $CONFIG['db']['core']['masters']['schema']);
+
+DataMapperFactory::db($GLOBALS['dbpool']->get());
+
+$GLOBALS['frameworkpath'] = '/phpOMS/';
+
+function phpServe() : void
+{
+ // OS detection
+ $isWindows = \stristr(\php_uname('s'), 'Windows') !== false;
+
+ // Command that starts the built-in web server
+ if ($isWindows) {
+ $command = \sprintf(
+ 'wmic process call create "php -S %s:%d -t %s" | find "ProcessId"',
+ WEB_SERVER_HOST,
+ WEB_SERVER_PORT,
+ __DIR__ . '/../' . WEB_SERVER_DOCROOT
+ );
+
+ $killCommand = 'taskkill /f /pid ';
+ } else {
+ $command = \sprintf(
+ 'php -S %s:%d -t %s >/dev/null 2>&1 & echo $!',
+ WEB_SERVER_HOST,
+ WEB_SERVER_PORT,
+ WEB_SERVER_DOCROOT
+ );
+
+ $killCommand = 'kill ';
+ }
+
+ // Execute the command and store the process ID
+ $output = [];
+ echo \sprintf('Starting server...') . \PHP_EOL;
+ echo \sprintf(' Current directory: %s', \getcwd()) . \PHP_EOL;
+ echo \sprintf(' %s', $command);
+ \exec($command, $output);
+
+ // Get PID
+ if ($isWindows) {
+ $pid = \explode('=', $output[0]);
+ $pid = \str_replace(' ', '', $pid[1]);
+ $pid = \str_replace(';', '', $pid);
+ } else {
+ $pid = (int) $output[0];
+ }
+
+ // Log
+ echo \sprintf(
+ ' %s - Web server started on %s:%d with PID %d',
+ \date('r'),
+ WEB_SERVER_HOST,
+ WEB_SERVER_PORT,
+ $pid
+ ) . \PHP_EOL;
+
+ // Kill the web server when the process ends
+ \register_shutdown_function(function() use ($killCommand, $pid) : void {
+ echo \PHP_EOL . \sprintf('Stopping server...') . \PHP_EOL;
+ echo \sprintf(' %s - Killing process with ID %d', \date('r'), $pid) . \PHP_EOL;
+ \exec($killCommand . $pid);
+ });
+}
+
+\phpServe();
diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php
new file mode 100755
index 0000000..6781d04
--- /dev/null
+++ b/tests/Controller/ApiControllerTest.php
@@ -0,0 +1,88 @@
+app = new class() extends ApplicationAbstract
+ {
+ protected string $appName = 'Api';
+ };
+
+ $this->app->dbPool = $GLOBALS['dbpool'];
+ $this->app->unitId = 1;
+ $this->app->accountManager = new AccountManager($GLOBALS['session']);
+ $this->app->appSettings = new CoreSettings();
+ $this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../../Modules/');
+ $this->app->dispatcher = new Dispatcher($this->app);
+ $this->app->eventManager = new EventManager($this->app->dispatcher);
+ $this->app->eventManager->importFromFile(__DIR__ . '/../../../../Web/Api/Hooks.php');
+ $this->app->sessionManager = new HttpSession(36000);
+
+ $account = new Account();
+ TestUtils::setMember($account, 'id', 1);
+
+ $permission = new AccountPermission();
+ $permission->setUnit(1);
+ $permission->setApp('backend');
+ $permission->setPermission(
+ PermissionType::READ
+ | PermissionType::CREATE
+ | PermissionType::MODIFY
+ | PermissionType::DELETE
+ | PermissionType::PERMISSION
+ );
+
+ $account->addPermission($permission);
+
+ $this->app->accountManager->add($account);
+ $this->app->router = new WebRouter();
+
+ $this->module = $this->app->moduleManager->get('FleetManagement');
+
+ TestUtils::setMember($this->module, 'app', $this->app);
+ }
+}
diff --git a/tests/Models/Vehicle.php b/tests/Models/Vehicle.php
new file mode 100644
index 0000000..238cce2
--- /dev/null
+++ b/tests/Models/Vehicle.php
@@ -0,0 +1,20 @@
+
+
+
+
+ *vendor*
+ vendor
+ ../vendor
+ ../phpOMS
+ ../phpOMS*
+ ../phpOMS/*
+ ../tests*
+ ../*/tests*
+ ../**/tests*
+ */tests*
+ ../*
+ ../*
+ ../*
+ ../*
+ ../*
+ ../**/test*
+ ../**/Theme*
+ ../**/Admin/Routes*
+ ../**/Admin/Hooks*
+ ../**/Admin/Install*
+ ../Media/Files*
+
+
+
+
+
+
+
+
+ ../Karaka/Install/tests*
+
+
+ ../tests*
+
+
+
+
+ volume
+ maybe
+
+
+
+
+
+
+
+
+
+
+
+
+
+