dkdeploy-typo3-cms 7.0.0 → 8.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +3 -0
  3. data/.rubocop.yml +8 -0
  4. data/.travis.yml +3 -2
  5. data/Berksfile.lock +33 -41
  6. data/CHANGELOG.md +18 -0
  7. data/LICENSE +1 -1
  8. data/README.md +5 -5
  9. data/Vagrantfile +7 -14
  10. data/config/vm/cookbooks/dkdeploy-typo3-cms/metadata.rb +3 -3
  11. data/config/vm/cookbooks/dkdeploy-typo3-cms/recipes/default.rb +3 -3
  12. data/dkdeploy-typo3-cms.gemspec +10 -8
  13. data/features/cli.feature +24 -33
  14. data/features/step_definitions/mysql.rb +6 -4
  15. data/features/step_definitions/typo3.rb +1 -5
  16. data/features/support/env.rb +8 -1
  17. data/features/typo3.feature +38 -1
  18. data/lib/capistrano/dkdeploy/typo3_cms.rb +60 -3
  19. data/lib/dkdeploy/typo3/cms/helpers/cli.rb +4 -4
  20. data/lib/dkdeploy/typo3/cms/helpers/mysql.rb +26 -0
  21. data/lib/dkdeploy/typo3/cms/tasks/cache.rake +1 -1
  22. data/lib/dkdeploy/typo3/cms/tasks/caretaker_key_management.rake +1 -1
  23. data/lib/dkdeploy/typo3/cms/tasks/cli.rake +0 -18
  24. data/lib/dkdeploy/typo3/cms/tasks/typo3.rake +19 -11
  25. data/lib/dkdeploy/typo3/cms/version.rb +1 -1
  26. data/spec/fixtures/application/config/deploy.rb +5 -0
  27. data/spec/fixtures/application/config/deploy/dev.rb +4 -4
  28. data/spec/fixtures/application/htdocs/catalog/variable_injection_test.phpsh +2 -0
  29. data/spec/fixtures/application/htdocs/composer.json +3 -3
  30. data/spec/fixtures/application/htdocs/composer.lock +1888 -0
  31. data/spec/fixtures/application/htdocs/typo3conf/LocalConfiguration.php +1 -0
  32. data/spec/fixtures/capistrano/configuration/additional_configuration_for_server.rb +1 -1
  33. data/spec/fixtures/capistrano/configuration/cli_test_tasks_variable_injection.rb +5 -0
  34. data/spec/fixtures/capistrano/configuration/cli_test_tasks_with_path.rb +6 -0
  35. metadata +65 -18
  36. data/spec/fixtures/application/htdocs/typo3/cli_dispatch.phpsh +0 -2
@@ -1,16 +1,12 @@
1
1
  Given(/^a successfully deployed TYPO3 application$/) do
2
2
  step 'I want to use the database `dkdeploy_typo3_cms`'
3
3
  step 'the TYPO3 table be_users exists'
4
- step 'a TYPO3 backend user "_cli_lowlevel" exists'
4
+ step 'a TYPO3 backend user "_cli_" exists'
5
5
  step 'I successfully run `cap dev composer:local:run[install]` for up to 60 seconds'
6
6
  step 'I successfully run `cap dev db:upload_settings[127.0.0.1,3306,dkdeploy_typo3_cms,root,ilikerandompasswords,utf8]`'
7
7
  step 'I successfully run `cap dev typo3:cms:create_db_credentials`'
8
8
  step 'I successfully run `cap dev typo3:cms:create_install_tool_password_file[dkdeploy]`'
9
9
  step 'I successfully run `cap dev typo3:cms:create_encryption_key_file[ca01b5b9868677647d3ec6c91b6b338a34786d6d4e163fb44badde98d11c9f887a5567a1d7797847de011693c36e110f]`'
10
10
  step 'I successfully run `cap dev deploy`'
11
- step 'I successfully run `cap dev typo3:cms:setup_additional_configuration`'
12
11
  step 'I successfully run `cap dev typo3:cms:update_database`'
13
- step 'I successfully run `cap dev file_access:set_permissions_of_release_path`'
14
- step 'I successfully run `cap dev file_access:set_permissions_of_shared_path`'
15
- step 'I successfully run `cap dev file_access:set_custom_access`'
16
12
  end
@@ -4,8 +4,15 @@ ssh_config = {}
4
4
  ssh_key_files = Dir.glob(File.join(Dir.getwd, '.vagrant', 'machines', '**', 'virtualbox', 'private_key'))
5
5
  unless ssh_key_files.empty?
6
6
  # Define generated ssh key files
7
- ssh_config = { user: 'vagrant', keys: ssh_key_files }
7
+ ssh_config = { user: 'ubuntu', keys: ssh_key_files }
8
8
  end
9
9
 
10
10
  TEST_APPLICATION = Dkdeploy::TestEnvironment::Application.new(File.expand_path('../../../', __FILE__), 'dkdeploy-typo3-cms.dev', ssh_config)
11
11
  TEST_APPLICATION.mysql_connection_settings = { host: 'dkdeploy-typo3-cms.dev', username: 'root', password: 'ilikerandompasswords' }
12
+
13
+ # this configuration tricks Bundler into executing another Bundler project with clean enviroment
14
+ # The official way via Bundler.with_clean_env did not work properly here
15
+ Aruba.configure do |config|
16
+ config.command_runtime_environment = { 'BUNDLE_GEMFILE' => File.join(TEST_APPLICATION.test_app_path, 'Gemfile') }
17
+ config.exit_timeout = 30
18
+ end
@@ -79,7 +79,7 @@ Feature: Test tasks for namespace 'typo3:cms'
79
79
  When I successfully run `cap dev "typo3:cms:create_install_tool_password_file[super-secret-password]"`
80
80
  Then a remote file named "shared_path/config/install_tool_password.php" should exist
81
81
 
82
- Scenario: Check adding a TYPO3 admin user
82
+ Scenario: Check adding a TYPO3 admin user interactively
83
83
  Given I want to use the database `dkdeploy_typo3_cms`
84
84
  Given the TYPO3 table be_users exists
85
85
  When I run `cap dev typo3:cms:create_db_credentials` interactively
@@ -98,3 +98,40 @@ Feature: Test tasks for namespace 'typo3:cms'
98
98
  And I wait 10 second to let the database commit the transaction
99
99
  Then the database should have a value `admin` in table `be_users` for column `username`
100
100
  Then the database should have a value `2304d4770a72d09106045fea654c4188` in table `be_users` for column `password`
101
+
102
+ Scenario: Check adding a Typo3 admin user with a string that needs escaping
103
+ Given I want to use the database `dkdeploy_typo3_cms`
104
+ Given the TYPO3 table be_users exists
105
+ When I run `cap dev typo3:cms:create_db_credentials` interactively
106
+ And I type "127.0.0.1"
107
+ And I type "3306"
108
+ And I type "dkdeploy_typo3_cms"
109
+ And I type "root"
110
+ And I type "ilikerandompasswords"
111
+ And I type "utf8"
112
+ And I close the stdin stream
113
+ Then the exit status should be 0
114
+ When I run `cap dev "typo3:cms:add_admin_user[dkd-admin,DROP TABLE be_users;this')s_a/very_"nasty"\string]"`
115
+ And I wait 10 second to let the database commit the transaction
116
+ Then the database should have a value `dkd-admin` in table `be_users` for column `username`
117
+ Then the database should have a value `857ea8fba149f63590e290ffe69bd33d` in table `be_users` for column `password`
118
+
119
+ Scenario: Check adding a Typo3 admin user with a string that needs escaping interactively
120
+ Given I want to use the database `dkdeploy_typo3_cms`
121
+ Given the TYPO3 table be_users exists
122
+ When I run `cap dev typo3:cms:create_db_credentials` interactively
123
+ And I type "127.0.0.1"
124
+ And I type "3306"
125
+ And I type "dkdeploy_typo3_cms"
126
+ And I type "root"
127
+ And I type "ilikerandompasswords"
128
+ And I type "utf8"
129
+ And I close the stdin stream
130
+ Then the exit status should be 0
131
+ When I run `cap dev typo3:cms:add_admin_user` interactively
132
+ And I type "dkd-admin"
133
+ And I type "DROP TABLE be_users;this')s_a/very_nasty\string"
134
+ And I close the stdin stream
135
+ And I wait 10 second to let the database commit the transaction
136
+ Then the database should have a value `dkd-admin` in table `be_users` for column `username`
137
+ Then the database should have a value `a4525cc4adb871fd961be1ffb22be712` in table `be_users` for column `password`
@@ -11,6 +11,8 @@ load File.expand_path('../../../dkdeploy/typo3/cms/tasks/caretaker_key_managemen
11
11
 
12
12
  namespace :load do
13
13
  task :defaults do
14
+ set :asset_folders, %w[fileadmin uploads]
15
+ set :asset_default_content, fetch(:asset_folders)
14
16
  set :typoscript_userts_file, 'UserTS.txt'
15
17
  set :typoscript_pagets_file, 'PageTS.txt'
16
18
  set :typoscript_config_file, 'config.txt'
@@ -21,13 +23,68 @@ namespace :load do
21
23
  set :create_caretaker_instance_keys_path, -> { File.join(shared_path, 'config', 'create_caretaker_instance_keys.php') }
22
24
  set :caretaker_instance_keys_path, -> { File.join(shared_path, 'config', 'caretaker_instance_keys.php') }
23
25
 
24
- # Use custom Composer autoload
25
26
  set :typo3_environment_cli, {
26
- TYPO3_COMPOSER_AUTOLOAD: 1,
27
27
  TERM: 'screen-256color'
28
28
  }
29
+
30
+ set :additional_ignore_tables, fetch(:additional_ignore_tables, []) + %w[
31
+ be_sessions
32
+ be_users
33
+ cache_md5params
34
+ cache_treelist
35
+ cf_cache_hash
36
+ cf_cache_hash_tags
37
+ cf_cache_imagesizes
38
+ cf_cache_imagesizes_tags
39
+ cf_cache_news_category
40
+ cf_cache_news_category_tags
41
+ cf_cache_pages
42
+ cf_cache_pages_tags
43
+ cf_cache_pagesection
44
+ cf_cache_rootline
45
+ cf_cache_rootline_tags
46
+ cf_extbase_datamapfactory_datamap
47
+ cf_extbase_datamapfactory_datamap_tags
48
+ cf_extbase_object
49
+ cf_extbase_object_tags
50
+ cf_extbase_reflection
51
+ cf_extbase_reflection_tags
52
+ cf_news
53
+ cf_news_tags
54
+ cf_themes_cache
55
+ cf_themes_cache_tags
56
+ cf_workspaces_cache
57
+ cf_workspaces_cache_tags
58
+ fe_session_data
59
+ fe_sessions
60
+ fe_users
61
+ sys_be_shortcuts
62
+ sys_domain
63
+ sys_file_processedfile
64
+ sys_history
65
+ sys_lockedrecords
66
+ sys_log
67
+ tx_dkdstandard_migration_versions
68
+ tx_impexp_presets
69
+ tx_realurl_chashcache
70
+ tx_realurl_pathcache
71
+ tx_realurl_pathdata
72
+ tx_realurl_uniqalias_cache_map
73
+ tx_realurl_urldata
74
+ tx_realurl_urldecodecache
75
+ tx_realurl_urlencodecache
76
+ tx_rsaauth_keys
77
+ tx_solr_cache
78
+ tx_solr_cache_tags
79
+ tx_solr_indexqueue_indexing_property
80
+ tx_solr_indexqueue_item
81
+ tx_solr_last_searches
82
+ tx_solr_statistics
83
+ ]
84
+
29
85
  # Path to typo3_console. Relative path to typo3_console script
30
- set :path_to_typo3_console, 'bin/typo3cms'
86
+ set :path_to_typo3_console, File.join('bin', 'typo3cms')
87
+ set :path_to_typo3_cli, File.join('bin', 'typo3')
31
88
 
32
89
  set :additional_configuration_template, File.join(__dir__, '..', '..', '..', 'vendor', 'AdditionalConfiguration.php.erb')
33
90
  set :additional_configuration_files, []
@@ -9,7 +9,7 @@ module Dkdeploy
9
9
  # @param cli_params [Array] list of arguments for typo3/cli_dispatch.phpsh
10
10
  # @return [Boolean] returns true/false as success of execution
11
11
  def typo3_cli(*cli_params)
12
- path_to_cli_dispatch = File.join(current_path, 'typo3', 'cli_dispatch.phpsh')
12
+ path_to_cli_dispatch = File.join(current_path, fetch(:path_to_typo3_cli))
13
13
  run_script(current_path, path_to_cli_dispatch, cli_params)
14
14
  end
15
15
 
@@ -19,7 +19,7 @@ module Dkdeploy
19
19
  # @param cli_params [Array] list of arguments for typo3/cli_dispatch.phpsh
20
20
  # @return [Boolean] returns true/false as success of execution
21
21
  def typo3_cli_in_path(path, *cli_params)
22
- path_to_cli_dispatch = File.join(path, 'typo3', 'cli_dispatch.phpsh')
22
+ path_to_cli_dispatch = File.join(path, fetch(:path_to_typo3_cli))
23
23
  run_script(path, path_to_cli_dispatch, cli_params)
24
24
  end
25
25
 
@@ -32,7 +32,7 @@ module Dkdeploy
32
32
  # @param cli_params [Array] list of arguments for typo3/cli_dispatch.phpsh
33
33
  # @return [String] returns the last result of executing task
34
34
  def capture_typo3_cli_in_loop(maximum_loop_count, *cli_params, &block)
35
- path_to_cli_dispatch = File.join(current_path, 'typo3', 'cli_dispatch.phpsh')
35
+ path_to_cli_dispatch = File.join(current_path, fetch(:path_to_typo3_cli))
36
36
  capture_script_in_loop(current_path, path_to_cli_dispatch, maximum_loop_count, cli_params, &block)
37
37
  end
38
38
 
@@ -46,7 +46,7 @@ module Dkdeploy
46
46
  # @param cli_params [Array] list of arguments for typo3/cli_dispatch.phpsh
47
47
  # @return [String] returns the last result of executing task
48
48
  def capture_typo3_cli_in_path_in_loop(path, maximum_loop_count, *cli_params, &block)
49
- path_to_cli_dispatch = File.join(path, 'typo3', 'cli_dispatch.phpsh')
49
+ path_to_cli_dispatch = File.join(path, fetch(:path_to_typo3_cli))
50
50
  capture_script_in_loop(path, path_to_cli_dispatch, maximum_loop_count, cli_params, &block)
51
51
  end
52
52
 
@@ -0,0 +1,26 @@
1
+ module Dkdeploy
2
+ module Typo3
3
+ module Cms
4
+ module Helpers
5
+ # MySQL Helpers
6
+ module Mysql
7
+ # Escape special character in string for MySQL.
8
+ # copied from https://github.com/tmtm/ruby-mysql/blob/2.9.14/lib/mysql.rb#L56
9
+ # @param [String]
10
+ # @return [String]
11
+ def mysql_escape_string(str)
12
+ str.gsub(/[\0\n\r\\\'\"\x1a]/) do |s|
13
+ case s
14
+ when "\0" then '\\0'
15
+ when "\n" then '\\n'
16
+ when "\r" then '\\r'
17
+ when "\x1a" then '\\Z'
18
+ else "\\#{s}"
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -6,7 +6,7 @@ namespace :typo3 do
6
6
  desc 'Clear TYPO3 file cache directory'
7
7
  task :clear_file_cache do |task|
8
8
  on release_roles :app do
9
- cache_path = File.join release_path, 'typo3temp', 'Cache'
9
+ cache_path = File.join release_path, 'typo3temp', 'var', 'Cache'
10
10
  execute :rm, '-rf', cache_path if test "[ -d #{cache_path} ]"
11
11
  end
12
12
 
@@ -8,7 +8,7 @@ include Dkdeploy::Typo3::Cms::Helpers::Cli
8
8
  namespace :caretaker do
9
9
  desc 'Create - if necessary or configured - and configure TYPO3 Caretaker SSL keys'
10
10
  task :create_keys, :create_new_caretaker_keys do |_, args|
11
- create_new_keys = 'yes' == ask_variable(args, :create_new_caretaker_keys, 'questions.create_new_keys')
11
+ create_new_keys = ask_variable(args, :create_new_caretaker_keys, 'questions.create_new_keys') == 'yes'
12
12
 
13
13
  on roles :app do |server|
14
14
  key_is_missing = !test("[ -f #{fetch(:caretaker_private_key_path)} ]")
@@ -22,24 +22,6 @@ namespace :typo3 do
22
22
  # Reenable Task to allow multiple invokation
23
23
  task.reenable
24
24
  end
25
-
26
- desc 'Uploads wrapper script to initialize PHP with environment variables'
27
- task :upload_wrapper do
28
- path_to_typo_cms_cli_dispatch = File.join release_path, 'typo3_cms_cli_dispatch.sh'
29
- path_to_cli_dispatch = File.join release_path, 'typo3', 'cli_dispatch.phpsh'
30
-
31
- bash_path = SSHKit.config.command_map[:bash]
32
- wrapper_file_content = "#!#{bash_path}\n"
33
- fetch(:typo3_environment_cli).each do |variable_name, variable_value|
34
- wrapper_file_content << "#{variable_name.to_s.upcase}='#{variable_value}' "
35
- end
36
-
37
- php_interpreter_path = SSHKit.config.command_map[:php]
38
- wrapper_file_content << "#{php_interpreter_path} #{path_to_cli_dispatch} $@\n"
39
- on release_roles :backend do
40
- upload! StringIO.new(wrapper_file_content), path_to_typo_cms_cli_dispatch
41
- end
42
- end
43
25
  end
44
26
  end
45
27
  end
@@ -3,6 +3,7 @@ require 'digest/md5'
3
3
  require 'dkdeploy/typo3/cms/dsl'
4
4
  require 'dkdeploy/typo3/cms/i18n'
5
5
  require 'dkdeploy/helpers/common'
6
+ require 'dkdeploy/typo3/cms/helpers/mysql'
6
7
  require 'dkdeploy/interaction_handler/password'
7
8
  require 'phpass'
8
9
  require 'shellwords'
@@ -12,6 +13,7 @@ require 'dkdeploy/typo3/cms/helpers/erb'
12
13
 
13
14
  include Dkdeploy::Typo3::Cms::Helpers::Erb
14
15
  include Dkdeploy::Helpers::Common
16
+ include Dkdeploy::Typo3::Cms::Helpers::Mysql
15
17
  include Dkdeploy::Typo3::DSL
16
18
 
17
19
  namespace :typo3 do
@@ -55,14 +57,20 @@ namespace :typo3 do
55
57
  db_settings = read_db_settings_for_context(self)
56
58
  end
57
59
 
58
- config_file_content = <<CONFIG_FILE_CONTENT
59
- <?php
60
- $GLOBALS['TYPO3_CONF_VARS']['DB']['database'] = '#{db_settings.fetch('name')}';
61
- $GLOBALS['TYPO3_CONF_VARS']['DB']['host'] = '#{db_settings.fetch('host')}';
62
- $GLOBALS['TYPO3_CONF_VARS']['DB']['username'] = '#{db_settings.fetch('username')}';
63
- $GLOBALS['TYPO3_CONF_VARS']['DB']['password'] = '#{db_settings.fetch('password')}';
64
- $GLOBALS['TYPO3_CONF_VARS']['DB']['port'] = #{db_settings.fetch('port')};
65
- CONFIG_FILE_CONTENT
60
+ config_file_content = <<-CONFIG_FILE_CONTENT
61
+ <?php
62
+ $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'] = [
63
+ 'charset' => '#{db_settings.fetch('charset')}',
64
+ 'dbname' => '#{db_settings.fetch('name')}',
65
+ 'driver' => 'mysqli',
66
+ 'host' => '#{db_settings.fetch('host')}',
67
+ 'password' => '#{db_settings.fetch('password')}',
68
+ 'port' => #{db_settings.fetch('port')},
69
+ 'user' => '#{db_settings.fetch('username')}',
70
+ // Use init commands from previous configuration files like LocalConfiguration.php
71
+ 'initCommands' => $GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']['initCommands'] ?? ''
72
+ ];
73
+ CONFIG_FILE_CONTENT
66
74
 
67
75
  upload! StringIO.new(config_file_content), File.join(shared_path, 'config', "db_settings.#{fetch(:stage)}.php")
68
76
  end
@@ -91,7 +99,7 @@ CONFIG_FILE_CONTENT
91
99
  # rsync to htdocs/typo3temp/ext
92
100
  info I18n.t('tasks.fetch_extension.rsync', extension: extension, scope: :dkdeploy)
93
101
  rsync_excludes = []
94
- rsync_exclude_directories = %w(.git/ .svn/)
102
+ rsync_exclude_directories = %w[.git/ .svn/]
95
103
  rsync_exclude_directories.each do |exclude|
96
104
  rsync_excludes << '--exclude=' + exclude
97
105
  end
@@ -152,7 +160,7 @@ CONFIG_FILE_CONTENT
152
160
  now = Time.now.to_i
153
161
 
154
162
  sql_string = "INSERT INTO be_users (username, password, admin, tstamp, crdate)
155
- VALUES ('#{typo3_username}', MD5('#{typo3_password}'), 1, #{now}, #{now});"
163
+ VALUES ('#{mysql_escape_string typo3_username}', MD5('#{mysql_escape_string typo3_password}'), 1, #{now}, #{now});"
156
164
 
157
165
  on primary :backend do
158
166
  begin
@@ -209,7 +217,7 @@ CONFIG_FILE_CONTENT
209
217
  desc 'Update translations for core and extensions (l10n)'
210
218
  task :update_translations, :typo3_languages_to_translate do |_, args|
211
219
  typo3_languages_to_translate = ask_variable(args, :typo3_languages_to_translate, 'questions.typo3_languages_to_translate')
212
- typo3_console 'language:update', typo3_languages_to_translate
220
+ typo3_cli 'lang:language:update', typo3_languages_to_translate
213
221
  end
214
222
 
215
223
  desc 'Remove not needed extensions'
@@ -3,7 +3,7 @@ module Dkdeploy
3
3
  module Cms
4
4
  # Class for version number
5
5
  class Version
6
- MAJOR = 7
6
+ MAJOR = 8
7
7
  MINOR = 0
8
8
  PATCH = 0
9
9
 
@@ -6,3 +6,8 @@ SSHKit.config.command_map.prefix[:chown].push 'sudo'
6
6
  SSHKit.config.command_map.prefix[:chgrp].push 'sudo'
7
7
  SSHKit.config.command_map.prefix[:chmod].push 'sudo'
8
8
  SSHKit.config.command_map[:composer] = 'vendor/composer.phar'
9
+
10
+ after 'deploy:updated', 'typo3:cms:setup_additional_configuration'
11
+ after 'deploy:updated', 'file_access:set_permissions_of_release_path'
12
+ after 'deploy:updated', 'file_access:set_permissions_of_shared_path'
13
+ after 'deploy:updated', 'file_access:set_custom_access'
@@ -1,5 +1,5 @@
1
1
  set :deploy_to, '/var/www/dkdeploy'
2
- server 'dkdeploy-typo3-cms.dev', roles: %w(web app backend), primary: true
2
+ server 'dkdeploy-typo3-cms.dev', roles: %w[web app backend], primary: true
3
3
 
4
4
  # no ssh compression on the dev stage
5
5
  set :ssh_options, {
@@ -11,7 +11,7 @@ unless ssh_key_files.empty?
11
11
  # Define generated ssh key files
12
12
  set :ssh_options, fetch(:ssh_options).merge(
13
13
  {
14
- user: 'vagrant',
14
+ user: 'ubuntu',
15
15
  keys: ssh_key_files
16
16
  }
17
17
  )
@@ -22,11 +22,11 @@ set :typoscript_pagets_file, 'PageTS.txt'
22
22
  set :typoscript_config_file, 'config.txt'
23
23
 
24
24
  set :copy_source, 'htdocs'
25
- set :copy_exclude, %w(
25
+ set :copy_exclude, %w[
26
26
  Gemfile*
27
27
  .hidden
28
28
  **/.hidden
29
- )
29
+ ]
30
30
 
31
31
  # custom file access properties
32
32
  set :custom_file_access, {
@@ -0,0 +1,2 @@
1
+ <?php
2
+ echo "CUSTOM_VARIABLE=" . getenv("CUSTOM_VARIABLE");
@@ -11,9 +11,9 @@
11
11
  }
12
12
  ],
13
13
  "require": {
14
- "typo3/cms": "7.6.15",
15
- "typo3-ter/realurl": "2.1.5",
16
- "helhum/typo3-console": "4.1.2"
14
+ "typo3/cms": "8.7.8",
15
+ "typo3-ter/realurl": "2.3.0",
16
+ "helhum/typo3-console": "4.9.1"
17
17
  },
18
18
  "extra": {
19
19
  "helhum/typo3-console":{
@@ -0,0 +1,1888 @@
1
+ {
2
+ "_readme": [
3
+ "This file locks the dependencies of your project to a known state",
4
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
5
+ "This file is @generated automatically"
6
+ ],
7
+ "content-hash": "a5f3835e7f385de69a21e04401b6b595",
8
+ "packages": [
9
+ {
10
+ "name": "cogpowered/finediff",
11
+ "version": "0.3.1",
12
+ "source": {
13
+ "type": "git",
14
+ "url": "https://github.com/cogpowered/FineDiff.git",
15
+ "reference": "339ddc8c3afb656efed4f2f0a80e5c3d026f8ea8"
16
+ },
17
+ "dist": {
18
+ "type": "zip",
19
+ "url": "https://api.github.com/repos/cogpowered/FineDiff/zipball/339ddc8c3afb656efed4f2f0a80e5c3d026f8ea8",
20
+ "reference": "339ddc8c3afb656efed4f2f0a80e5c3d026f8ea8",
21
+ "shasum": ""
22
+ },
23
+ "require": {
24
+ "php": ">=5.3.0"
25
+ },
26
+ "require-dev": {
27
+ "mockery/mockery": "*",
28
+ "phpunit/phpunit": "*"
29
+ },
30
+ "type": "library",
31
+ "autoload": {
32
+ "psr-0": {
33
+ "cogpowered\\FineDiff": "src/"
34
+ }
35
+ },
36
+ "notification-url": "https://packagist.org/downloads/",
37
+ "license": [
38
+ "MIT"
39
+ ],
40
+ "authors": [
41
+ {
42
+ "name": "Rob Crowe",
43
+ "email": "rob@cogpowered.com"
44
+ },
45
+ {
46
+ "name": "Raymond Hill"
47
+ }
48
+ ],
49
+ "description": "PHP implementation of a Fine granularity Diff engine",
50
+ "homepage": "https://github.com/cogpowered/FineDiff",
51
+ "keywords": [
52
+ "diff",
53
+ "finediff",
54
+ "opcode",
55
+ "string",
56
+ "text"
57
+ ],
58
+ "time": "2014-05-19T10:25:02+00:00"
59
+ },
60
+ {
61
+ "name": "doctrine/annotations",
62
+ "version": "v1.4.0",
63
+ "source": {
64
+ "type": "git",
65
+ "url": "https://github.com/doctrine/annotations.git",
66
+ "reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
67
+ },
68
+ "dist": {
69
+ "type": "zip",
70
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
71
+ "reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
72
+ "shasum": ""
73
+ },
74
+ "require": {
75
+ "doctrine/lexer": "1.*",
76
+ "php": "^5.6 || ^7.0"
77
+ },
78
+ "require-dev": {
79
+ "doctrine/cache": "1.*",
80
+ "phpunit/phpunit": "^5.7"
81
+ },
82
+ "type": "library",
83
+ "extra": {
84
+ "branch-alias": {
85
+ "dev-master": "1.4.x-dev"
86
+ }
87
+ },
88
+ "autoload": {
89
+ "psr-4": {
90
+ "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
91
+ }
92
+ },
93
+ "notification-url": "https://packagist.org/downloads/",
94
+ "license": [
95
+ "MIT"
96
+ ],
97
+ "authors": [
98
+ {
99
+ "name": "Roman Borschel",
100
+ "email": "roman@code-factory.org"
101
+ },
102
+ {
103
+ "name": "Benjamin Eberlei",
104
+ "email": "kontakt@beberlei.de"
105
+ },
106
+ {
107
+ "name": "Guilherme Blanco",
108
+ "email": "guilhermeblanco@gmail.com"
109
+ },
110
+ {
111
+ "name": "Jonathan Wage",
112
+ "email": "jonwage@gmail.com"
113
+ },
114
+ {
115
+ "name": "Johannes Schmitt",
116
+ "email": "schmittjoh@gmail.com"
117
+ }
118
+ ],
119
+ "description": "Docblock Annotations Parser",
120
+ "homepage": "http://www.doctrine-project.org",
121
+ "keywords": [
122
+ "annotations",
123
+ "docblock",
124
+ "parser"
125
+ ],
126
+ "time": "2017-02-24T16:22:25+00:00"
127
+ },
128
+ {
129
+ "name": "doctrine/cache",
130
+ "version": "v1.6.2",
131
+ "source": {
132
+ "type": "git",
133
+ "url": "https://github.com/doctrine/cache.git",
134
+ "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
135
+ },
136
+ "dist": {
137
+ "type": "zip",
138
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
139
+ "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
140
+ "shasum": ""
141
+ },
142
+ "require": {
143
+ "php": "~5.5|~7.0"
144
+ },
145
+ "conflict": {
146
+ "doctrine/common": ">2.2,<2.4"
147
+ },
148
+ "require-dev": {
149
+ "phpunit/phpunit": "~4.8|~5.0",
150
+ "predis/predis": "~1.0",
151
+ "satooshi/php-coveralls": "~0.6"
152
+ },
153
+ "type": "library",
154
+ "extra": {
155
+ "branch-alias": {
156
+ "dev-master": "1.6.x-dev"
157
+ }
158
+ },
159
+ "autoload": {
160
+ "psr-4": {
161
+ "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
162
+ }
163
+ },
164
+ "notification-url": "https://packagist.org/downloads/",
165
+ "license": [
166
+ "MIT"
167
+ ],
168
+ "authors": [
169
+ {
170
+ "name": "Roman Borschel",
171
+ "email": "roman@code-factory.org"
172
+ },
173
+ {
174
+ "name": "Benjamin Eberlei",
175
+ "email": "kontakt@beberlei.de"
176
+ },
177
+ {
178
+ "name": "Guilherme Blanco",
179
+ "email": "guilhermeblanco@gmail.com"
180
+ },
181
+ {
182
+ "name": "Jonathan Wage",
183
+ "email": "jonwage@gmail.com"
184
+ },
185
+ {
186
+ "name": "Johannes Schmitt",
187
+ "email": "schmittjoh@gmail.com"
188
+ }
189
+ ],
190
+ "description": "Caching library offering an object-oriented API for many cache backends",
191
+ "homepage": "http://www.doctrine-project.org",
192
+ "keywords": [
193
+ "cache",
194
+ "caching"
195
+ ],
196
+ "time": "2017-07-22T12:49:21+00:00"
197
+ },
198
+ {
199
+ "name": "doctrine/collections",
200
+ "version": "v1.4.0",
201
+ "source": {
202
+ "type": "git",
203
+ "url": "https://github.com/doctrine/collections.git",
204
+ "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
205
+ },
206
+ "dist": {
207
+ "type": "zip",
208
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
209
+ "reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
210
+ "shasum": ""
211
+ },
212
+ "require": {
213
+ "php": "^5.6 || ^7.0"
214
+ },
215
+ "require-dev": {
216
+ "doctrine/coding-standard": "~0.1@dev",
217
+ "phpunit/phpunit": "^5.7"
218
+ },
219
+ "type": "library",
220
+ "extra": {
221
+ "branch-alias": {
222
+ "dev-master": "1.3.x-dev"
223
+ }
224
+ },
225
+ "autoload": {
226
+ "psr-0": {
227
+ "Doctrine\\Common\\Collections\\": "lib/"
228
+ }
229
+ },
230
+ "notification-url": "https://packagist.org/downloads/",
231
+ "license": [
232
+ "MIT"
233
+ ],
234
+ "authors": [
235
+ {
236
+ "name": "Roman Borschel",
237
+ "email": "roman@code-factory.org"
238
+ },
239
+ {
240
+ "name": "Benjamin Eberlei",
241
+ "email": "kontakt@beberlei.de"
242
+ },
243
+ {
244
+ "name": "Guilherme Blanco",
245
+ "email": "guilhermeblanco@gmail.com"
246
+ },
247
+ {
248
+ "name": "Jonathan Wage",
249
+ "email": "jonwage@gmail.com"
250
+ },
251
+ {
252
+ "name": "Johannes Schmitt",
253
+ "email": "schmittjoh@gmail.com"
254
+ }
255
+ ],
256
+ "description": "Collections Abstraction library",
257
+ "homepage": "http://www.doctrine-project.org",
258
+ "keywords": [
259
+ "array",
260
+ "collections",
261
+ "iterator"
262
+ ],
263
+ "time": "2017-01-03T10:49:41+00:00"
264
+ },
265
+ {
266
+ "name": "doctrine/common",
267
+ "version": "v2.7.3",
268
+ "source": {
269
+ "type": "git",
270
+ "url": "https://github.com/doctrine/common.git",
271
+ "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
272
+ },
273
+ "dist": {
274
+ "type": "zip",
275
+ "url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
276
+ "reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
277
+ "shasum": ""
278
+ },
279
+ "require": {
280
+ "doctrine/annotations": "1.*",
281
+ "doctrine/cache": "1.*",
282
+ "doctrine/collections": "1.*",
283
+ "doctrine/inflector": "1.*",
284
+ "doctrine/lexer": "1.*",
285
+ "php": "~5.6|~7.0"
286
+ },
287
+ "require-dev": {
288
+ "phpunit/phpunit": "^5.4.6"
289
+ },
290
+ "type": "library",
291
+ "extra": {
292
+ "branch-alias": {
293
+ "dev-master": "2.7.x-dev"
294
+ }
295
+ },
296
+ "autoload": {
297
+ "psr-4": {
298
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
299
+ }
300
+ },
301
+ "notification-url": "https://packagist.org/downloads/",
302
+ "license": [
303
+ "MIT"
304
+ ],
305
+ "authors": [
306
+ {
307
+ "name": "Roman Borschel",
308
+ "email": "roman@code-factory.org"
309
+ },
310
+ {
311
+ "name": "Benjamin Eberlei",
312
+ "email": "kontakt@beberlei.de"
313
+ },
314
+ {
315
+ "name": "Guilherme Blanco",
316
+ "email": "guilhermeblanco@gmail.com"
317
+ },
318
+ {
319
+ "name": "Jonathan Wage",
320
+ "email": "jonwage@gmail.com"
321
+ },
322
+ {
323
+ "name": "Johannes Schmitt",
324
+ "email": "schmittjoh@gmail.com"
325
+ }
326
+ ],
327
+ "description": "Common Library for Doctrine projects",
328
+ "homepage": "http://www.doctrine-project.org",
329
+ "keywords": [
330
+ "annotations",
331
+ "collections",
332
+ "eventmanager",
333
+ "persistence",
334
+ "spl"
335
+ ],
336
+ "time": "2017-07-22T08:35:12+00:00"
337
+ },
338
+ {
339
+ "name": "doctrine/dbal",
340
+ "version": "v2.5.13",
341
+ "source": {
342
+ "type": "git",
343
+ "url": "https://github.com/doctrine/dbal.git",
344
+ "reference": "729340d8d1eec8f01bff708e12e449a3415af873"
345
+ },
346
+ "dist": {
347
+ "type": "zip",
348
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
349
+ "reference": "729340d8d1eec8f01bff708e12e449a3415af873",
350
+ "shasum": ""
351
+ },
352
+ "require": {
353
+ "doctrine/common": ">=2.4,<2.8-dev",
354
+ "php": ">=5.3.2"
355
+ },
356
+ "require-dev": {
357
+ "phpunit/phpunit": "4.*",
358
+ "symfony/console": "2.*||^3.0"
359
+ },
360
+ "suggest": {
361
+ "symfony/console": "For helpful console commands such as SQL execution and import of files."
362
+ },
363
+ "bin": [
364
+ "bin/doctrine-dbal"
365
+ ],
366
+ "type": "library",
367
+ "extra": {
368
+ "branch-alias": {
369
+ "dev-master": "2.5.x-dev"
370
+ }
371
+ },
372
+ "autoload": {
373
+ "psr-0": {
374
+ "Doctrine\\DBAL\\": "lib/"
375
+ }
376
+ },
377
+ "notification-url": "https://packagist.org/downloads/",
378
+ "license": [
379
+ "MIT"
380
+ ],
381
+ "authors": [
382
+ {
383
+ "name": "Roman Borschel",
384
+ "email": "roman@code-factory.org"
385
+ },
386
+ {
387
+ "name": "Benjamin Eberlei",
388
+ "email": "kontakt@beberlei.de"
389
+ },
390
+ {
391
+ "name": "Guilherme Blanco",
392
+ "email": "guilhermeblanco@gmail.com"
393
+ },
394
+ {
395
+ "name": "Jonathan Wage",
396
+ "email": "jonwage@gmail.com"
397
+ }
398
+ ],
399
+ "description": "Database Abstraction Layer",
400
+ "homepage": "http://www.doctrine-project.org",
401
+ "keywords": [
402
+ "database",
403
+ "dbal",
404
+ "persistence",
405
+ "queryobject"
406
+ ],
407
+ "time": "2017-07-22T20:44:48+00:00"
408
+ },
409
+ {
410
+ "name": "doctrine/inflector",
411
+ "version": "v1.2.0",
412
+ "source": {
413
+ "type": "git",
414
+ "url": "https://github.com/doctrine/inflector.git",
415
+ "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462"
416
+ },
417
+ "dist": {
418
+ "type": "zip",
419
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/e11d84c6e018beedd929cff5220969a3c6d1d462",
420
+ "reference": "e11d84c6e018beedd929cff5220969a3c6d1d462",
421
+ "shasum": ""
422
+ },
423
+ "require": {
424
+ "php": "^7.0"
425
+ },
426
+ "require-dev": {
427
+ "phpunit/phpunit": "^6.2"
428
+ },
429
+ "type": "library",
430
+ "extra": {
431
+ "branch-alias": {
432
+ "dev-master": "1.2.x-dev"
433
+ }
434
+ },
435
+ "autoload": {
436
+ "psr-4": {
437
+ "Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
438
+ }
439
+ },
440
+ "notification-url": "https://packagist.org/downloads/",
441
+ "license": [
442
+ "MIT"
443
+ ],
444
+ "authors": [
445
+ {
446
+ "name": "Roman Borschel",
447
+ "email": "roman@code-factory.org"
448
+ },
449
+ {
450
+ "name": "Benjamin Eberlei",
451
+ "email": "kontakt@beberlei.de"
452
+ },
453
+ {
454
+ "name": "Guilherme Blanco",
455
+ "email": "guilhermeblanco@gmail.com"
456
+ },
457
+ {
458
+ "name": "Jonathan Wage",
459
+ "email": "jonwage@gmail.com"
460
+ },
461
+ {
462
+ "name": "Johannes Schmitt",
463
+ "email": "schmittjoh@gmail.com"
464
+ }
465
+ ],
466
+ "description": "Common String Manipulations with regard to casing and singular/plural rules.",
467
+ "homepage": "http://www.doctrine-project.org",
468
+ "keywords": [
469
+ "inflection",
470
+ "pluralize",
471
+ "singularize",
472
+ "string"
473
+ ],
474
+ "time": "2017-07-22T12:18:28+00:00"
475
+ },
476
+ {
477
+ "name": "doctrine/instantiator",
478
+ "version": "1.0.5",
479
+ "source": {
480
+ "type": "git",
481
+ "url": "https://github.com/doctrine/instantiator.git",
482
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
483
+ },
484
+ "dist": {
485
+ "type": "zip",
486
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
487
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
488
+ "shasum": ""
489
+ },
490
+ "require": {
491
+ "php": ">=5.3,<8.0-DEV"
492
+ },
493
+ "require-dev": {
494
+ "athletic/athletic": "~0.1.8",
495
+ "ext-pdo": "*",
496
+ "ext-phar": "*",
497
+ "phpunit/phpunit": "~4.0",
498
+ "squizlabs/php_codesniffer": "~2.0"
499
+ },
500
+ "type": "library",
501
+ "extra": {
502
+ "branch-alias": {
503
+ "dev-master": "1.0.x-dev"
504
+ }
505
+ },
506
+ "autoload": {
507
+ "psr-4": {
508
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
509
+ }
510
+ },
511
+ "notification-url": "https://packagist.org/downloads/",
512
+ "license": [
513
+ "MIT"
514
+ ],
515
+ "authors": [
516
+ {
517
+ "name": "Marco Pivetta",
518
+ "email": "ocramius@gmail.com",
519
+ "homepage": "http://ocramius.github.com/"
520
+ }
521
+ ],
522
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
523
+ "homepage": "https://github.com/doctrine/instantiator",
524
+ "keywords": [
525
+ "constructor",
526
+ "instantiate"
527
+ ],
528
+ "time": "2015-06-14T21:17:01+00:00"
529
+ },
530
+ {
531
+ "name": "doctrine/lexer",
532
+ "version": "v1.0.1",
533
+ "source": {
534
+ "type": "git",
535
+ "url": "https://github.com/doctrine/lexer.git",
536
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
537
+ },
538
+ "dist": {
539
+ "type": "zip",
540
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
541
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
542
+ "shasum": ""
543
+ },
544
+ "require": {
545
+ "php": ">=5.3.2"
546
+ },
547
+ "type": "library",
548
+ "extra": {
549
+ "branch-alias": {
550
+ "dev-master": "1.0.x-dev"
551
+ }
552
+ },
553
+ "autoload": {
554
+ "psr-0": {
555
+ "Doctrine\\Common\\Lexer\\": "lib/"
556
+ }
557
+ },
558
+ "notification-url": "https://packagist.org/downloads/",
559
+ "license": [
560
+ "MIT"
561
+ ],
562
+ "authors": [
563
+ {
564
+ "name": "Roman Borschel",
565
+ "email": "roman@code-factory.org"
566
+ },
567
+ {
568
+ "name": "Guilherme Blanco",
569
+ "email": "guilhermeblanco@gmail.com"
570
+ },
571
+ {
572
+ "name": "Johannes Schmitt",
573
+ "email": "schmittjoh@gmail.com"
574
+ }
575
+ ],
576
+ "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
577
+ "homepage": "http://www.doctrine-project.org",
578
+ "keywords": [
579
+ "lexer",
580
+ "parser"
581
+ ],
582
+ "time": "2014-09-09T13:34:57+00:00"
583
+ },
584
+ {
585
+ "name": "guzzlehttp/guzzle",
586
+ "version": "6.3.0",
587
+ "source": {
588
+ "type": "git",
589
+ "url": "https://github.com/guzzle/guzzle.git",
590
+ "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699"
591
+ },
592
+ "dist": {
593
+ "type": "zip",
594
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f4db5a78a5ea468d4831de7f0bf9d9415e348699",
595
+ "reference": "f4db5a78a5ea468d4831de7f0bf9d9415e348699",
596
+ "shasum": ""
597
+ },
598
+ "require": {
599
+ "guzzlehttp/promises": "^1.0",
600
+ "guzzlehttp/psr7": "^1.4",
601
+ "php": ">=5.5"
602
+ },
603
+ "require-dev": {
604
+ "ext-curl": "*",
605
+ "phpunit/phpunit": "^4.0 || ^5.0",
606
+ "psr/log": "^1.0"
607
+ },
608
+ "suggest": {
609
+ "psr/log": "Required for using the Log middleware"
610
+ },
611
+ "type": "library",
612
+ "extra": {
613
+ "branch-alias": {
614
+ "dev-master": "6.2-dev"
615
+ }
616
+ },
617
+ "autoload": {
618
+ "files": [
619
+ "src/functions_include.php"
620
+ ],
621
+ "psr-4": {
622
+ "GuzzleHttp\\": "src/"
623
+ }
624
+ },
625
+ "notification-url": "https://packagist.org/downloads/",
626
+ "license": [
627
+ "MIT"
628
+ ],
629
+ "authors": [
630
+ {
631
+ "name": "Michael Dowling",
632
+ "email": "mtdowling@gmail.com",
633
+ "homepage": "https://github.com/mtdowling"
634
+ }
635
+ ],
636
+ "description": "Guzzle is a PHP HTTP client library",
637
+ "homepage": "http://guzzlephp.org/",
638
+ "keywords": [
639
+ "client",
640
+ "curl",
641
+ "framework",
642
+ "http",
643
+ "http client",
644
+ "rest",
645
+ "web service"
646
+ ],
647
+ "time": "2017-06-22T18:50:49+00:00"
648
+ },
649
+ {
650
+ "name": "guzzlehttp/promises",
651
+ "version": "v1.3.1",
652
+ "source": {
653
+ "type": "git",
654
+ "url": "https://github.com/guzzle/promises.git",
655
+ "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
656
+ },
657
+ "dist": {
658
+ "type": "zip",
659
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
660
+ "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
661
+ "shasum": ""
662
+ },
663
+ "require": {
664
+ "php": ">=5.5.0"
665
+ },
666
+ "require-dev": {
667
+ "phpunit/phpunit": "^4.0"
668
+ },
669
+ "type": "library",
670
+ "extra": {
671
+ "branch-alias": {
672
+ "dev-master": "1.4-dev"
673
+ }
674
+ },
675
+ "autoload": {
676
+ "psr-4": {
677
+ "GuzzleHttp\\Promise\\": "src/"
678
+ },
679
+ "files": [
680
+ "src/functions_include.php"
681
+ ]
682
+ },
683
+ "notification-url": "https://packagist.org/downloads/",
684
+ "license": [
685
+ "MIT"
686
+ ],
687
+ "authors": [
688
+ {
689
+ "name": "Michael Dowling",
690
+ "email": "mtdowling@gmail.com",
691
+ "homepage": "https://github.com/mtdowling"
692
+ }
693
+ ],
694
+ "description": "Guzzle promises library",
695
+ "keywords": [
696
+ "promise"
697
+ ],
698
+ "time": "2016-12-20T10:07:11+00:00"
699
+ },
700
+ {
701
+ "name": "guzzlehttp/psr7",
702
+ "version": "1.4.2",
703
+ "source": {
704
+ "type": "git",
705
+ "url": "https://github.com/guzzle/psr7.git",
706
+ "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c"
707
+ },
708
+ "dist": {
709
+ "type": "zip",
710
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
711
+ "reference": "f5b8a8512e2b58b0071a7280e39f14f72e05d87c",
712
+ "shasum": ""
713
+ },
714
+ "require": {
715
+ "php": ">=5.4.0",
716
+ "psr/http-message": "~1.0"
717
+ },
718
+ "provide": {
719
+ "psr/http-message-implementation": "1.0"
720
+ },
721
+ "require-dev": {
722
+ "phpunit/phpunit": "~4.0"
723
+ },
724
+ "type": "library",
725
+ "extra": {
726
+ "branch-alias": {
727
+ "dev-master": "1.4-dev"
728
+ }
729
+ },
730
+ "autoload": {
731
+ "psr-4": {
732
+ "GuzzleHttp\\Psr7\\": "src/"
733
+ },
734
+ "files": [
735
+ "src/functions_include.php"
736
+ ]
737
+ },
738
+ "notification-url": "https://packagist.org/downloads/",
739
+ "license": [
740
+ "MIT"
741
+ ],
742
+ "authors": [
743
+ {
744
+ "name": "Michael Dowling",
745
+ "email": "mtdowling@gmail.com",
746
+ "homepage": "https://github.com/mtdowling"
747
+ },
748
+ {
749
+ "name": "Tobias Schultze",
750
+ "homepage": "https://github.com/Tobion"
751
+ }
752
+ ],
753
+ "description": "PSR-7 message implementation that also provides common utility methods",
754
+ "keywords": [
755
+ "http",
756
+ "message",
757
+ "request",
758
+ "response",
759
+ "stream",
760
+ "uri",
761
+ "url"
762
+ ],
763
+ "time": "2017-03-20T17:10:46+00:00"
764
+ },
765
+ {
766
+ "name": "helhum/typo3-console",
767
+ "version": "4.9.1",
768
+ "source": {
769
+ "type": "git",
770
+ "url": "https://github.com/TYPO3-Console/TYPO3-Console.git",
771
+ "reference": "50ffee2feef06e500b74b1eebb65cec4132a4ccc"
772
+ },
773
+ "dist": {
774
+ "type": "zip",
775
+ "url": "https://api.github.com/repos/TYPO3-Console/TYPO3-Console/zipball/50ffee2feef06e500b74b1eebb65cec4132a4ccc",
776
+ "reference": "50ffee2feef06e500b74b1eebb65cec4132a4ccc",
777
+ "shasum": ""
778
+ },
779
+ "require": {
780
+ "ext-phar": "*",
781
+ "helhum/typo3-console-plugin": "^1.7.5 || ^2.0.2",
782
+ "php": ">=5.5.0 <7.2",
783
+ "symfony/console": "^2.7 || ^3.0",
784
+ "symfony/process": "^2.7 || ^3.0",
785
+ "typo3/cms-backend": "^7.6 || ^8.7",
786
+ "typo3/cms-core": "^7.6 || ^8.7",
787
+ "typo3/cms-extbase": "^7.6 || ^8.7",
788
+ "typo3/cms-extensionmanager": "^7.6 || ^8.7",
789
+ "typo3/cms-fluid": "^7.6 || ^8.7",
790
+ "typo3/cms-install": "^7.6 || ^8.7",
791
+ "typo3/cms-scheduler": "^7.6 || ^8.7"
792
+ },
793
+ "replace": {
794
+ "typo3-ter/typo3-console": "self.version",
795
+ "typo3_console": "self.version"
796
+ },
797
+ "require-dev": {
798
+ "mikey179/vfsstream": "~1.6.0",
799
+ "nimut/testing-framework": "^1.0",
800
+ "symfony/filesystem": "^3.2",
801
+ "typo3-console/create-reference-command": "^1.0",
802
+ "typo3/cms": "^8.7"
803
+ },
804
+ "bin": [
805
+ "Scripts/typo3cms"
806
+ ],
807
+ "type": "library",
808
+ "extra": {
809
+ "branch-alias": {
810
+ "dev-master": "4.x-dev"
811
+ },
812
+ "typo3/cms": {
813
+ "cms-package-dir": "{$vendor-dir}/typo3/cms",
814
+ "web-dir": ".Build/Web",
815
+ "Package": {
816
+ "partOfMinimalUsableSystem": true
817
+ }
818
+ }
819
+ },
820
+ "autoload": {
821
+ "psr-4": {
822
+ "Helhum\\Typo3Console\\": [
823
+ "Classes/",
824
+ "Resources/Private/ExtensionArtifacts/src/"
825
+ ]
826
+ }
827
+ },
828
+ "notification-url": "https://packagist.org/downloads/",
829
+ "license": [
830
+ "GPL-2.0+"
831
+ ],
832
+ "authors": [
833
+ {
834
+ "name": "Helmut Hummel",
835
+ "email": "info@helhum.io",
836
+ "homepage": "http://helhum.io",
837
+ "role": "Developer"
838
+ }
839
+ ],
840
+ "description": "A reliable and powerful command line interface for TYPO3 CMS",
841
+ "homepage": "http://insight.helhum.io/post/104528981610/about-the-beauty-and-power-of-typo3-console",
842
+ "keywords": [
843
+ "cli",
844
+ "command",
845
+ "commandline",
846
+ "console",
847
+ "typo3"
848
+ ],
849
+ "time": "2017-10-05T20:00:39+00:00"
850
+ },
851
+ {
852
+ "name": "helhum/typo3-console-plugin",
853
+ "version": "2.0.2",
854
+ "source": {
855
+ "type": "git",
856
+ "url": "https://github.com/TYPO3-Console/typo3-console-plugin.git",
857
+ "reference": "4886cd23d0e37a20c2fd5b6d2408dcfe7c6fca48"
858
+ },
859
+ "dist": {
860
+ "type": "zip",
861
+ "url": "https://api.github.com/repos/TYPO3-Console/typo3-console-plugin/zipball/4886cd23d0e37a20c2fd5b6d2408dcfe7c6fca48",
862
+ "reference": "4886cd23d0e37a20c2fd5b6d2408dcfe7c6fca48",
863
+ "shasum": ""
864
+ },
865
+ "require": {
866
+ "composer-plugin-api": "^1.0",
867
+ "php": ">=7.0.0 <7.2",
868
+ "typo3/cms-composer-installers": "^1.4"
869
+ },
870
+ "require-dev": {
871
+ "composer/composer": "^1.0"
872
+ },
873
+ "type": "composer-plugin",
874
+ "extra": {
875
+ "class": "Helhum\\Typo3ConsolePlugin\\Plugin",
876
+ "branch-alias": {
877
+ "dev-master": "2.x-dev"
878
+ }
879
+ },
880
+ "autoload": {
881
+ "psr-4": {
882
+ "Helhum\\Typo3ConsolePlugin\\": "src/"
883
+ }
884
+ },
885
+ "notification-url": "https://packagist.org/downloads/",
886
+ "license": [
887
+ "MIT"
888
+ ],
889
+ "authors": [
890
+ {
891
+ "name": "Helmut Hummel",
892
+ "email": "info@helhum.io"
893
+ }
894
+ ],
895
+ "description": "Installer plugin for helhum/typo3-console, to ease usage without the need to specify scripts in your root composer.json",
896
+ "homepage": "https://github.com/helhum/typo3-console-plugin",
897
+ "keywords": [
898
+ "composer",
899
+ "plugin",
900
+ "typo3 console"
901
+ ],
902
+ "time": "2017-08-14T13:44:01+00:00"
903
+ },
904
+ {
905
+ "name": "mso/idna-convert",
906
+ "version": "v1.1.0",
907
+ "source": {
908
+ "type": "git",
909
+ "url": "https://github.com/phlylabs/idna-convert.git",
910
+ "reference": "a6dfb6f87611e3a89d2eec4924a0f51db755c573"
911
+ },
912
+ "dist": {
913
+ "type": "zip",
914
+ "url": "https://api.github.com/repos/phlylabs/idna-convert/zipball/a6dfb6f87611e3a89d2eec4924a0f51db755c573",
915
+ "reference": "a6dfb6f87611e3a89d2eec4924a0f51db755c573",
916
+ "shasum": ""
917
+ },
918
+ "require": {
919
+ "ext-pcre": "*",
920
+ "php": ">=5.6.0"
921
+ },
922
+ "type": "library",
923
+ "extra": {
924
+ "branch-alias": {
925
+ "dev-master": "1.0.x-dev"
926
+ }
927
+ },
928
+ "autoload": {
929
+ "psr-4": {
930
+ "Mso\\IdnaConvert\\": "src"
931
+ }
932
+ },
933
+ "notification-url": "https://packagist.org/downloads/",
934
+ "license": [
935
+ "LGPL-2.1+"
936
+ ],
937
+ "authors": [
938
+ {
939
+ "name": "Matthias Sommerfeld",
940
+ "email": "mso@phlylabs.de",
941
+ "role": "Developer"
942
+ }
943
+ ],
944
+ "description": "A library for encoding and decoding internationalized domain names",
945
+ "homepage": "http://idnaconv.net/",
946
+ "keywords": [
947
+ "idn",
948
+ "idna",
949
+ "php"
950
+ ],
951
+ "time": "2016-06-19T18:08:43+00:00"
952
+ },
953
+ {
954
+ "name": "psr/http-message",
955
+ "version": "1.0.1",
956
+ "source": {
957
+ "type": "git",
958
+ "url": "https://github.com/php-fig/http-message.git",
959
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
960
+ },
961
+ "dist": {
962
+ "type": "zip",
963
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
964
+ "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
965
+ "shasum": ""
966
+ },
967
+ "require": {
968
+ "php": ">=5.3.0"
969
+ },
970
+ "type": "library",
971
+ "extra": {
972
+ "branch-alias": {
973
+ "dev-master": "1.0.x-dev"
974
+ }
975
+ },
976
+ "autoload": {
977
+ "psr-4": {
978
+ "Psr\\Http\\Message\\": "src/"
979
+ }
980
+ },
981
+ "notification-url": "https://packagist.org/downloads/",
982
+ "license": [
983
+ "MIT"
984
+ ],
985
+ "authors": [
986
+ {
987
+ "name": "PHP-FIG",
988
+ "homepage": "http://www.php-fig.org/"
989
+ }
990
+ ],
991
+ "description": "Common interface for HTTP messages",
992
+ "homepage": "https://github.com/php-fig/http-message",
993
+ "keywords": [
994
+ "http",
995
+ "http-message",
996
+ "psr",
997
+ "psr-7",
998
+ "request",
999
+ "response"
1000
+ ],
1001
+ "time": "2016-08-06T14:39:51+00:00"
1002
+ },
1003
+ {
1004
+ "name": "psr/log",
1005
+ "version": "1.0.2",
1006
+ "source": {
1007
+ "type": "git",
1008
+ "url": "https://github.com/php-fig/log.git",
1009
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
1010
+ },
1011
+ "dist": {
1012
+ "type": "zip",
1013
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1014
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
1015
+ "shasum": ""
1016
+ },
1017
+ "require": {
1018
+ "php": ">=5.3.0"
1019
+ },
1020
+ "type": "library",
1021
+ "extra": {
1022
+ "branch-alias": {
1023
+ "dev-master": "1.0.x-dev"
1024
+ }
1025
+ },
1026
+ "autoload": {
1027
+ "psr-4": {
1028
+ "Psr\\Log\\": "Psr/Log/"
1029
+ }
1030
+ },
1031
+ "notification-url": "https://packagist.org/downloads/",
1032
+ "license": [
1033
+ "MIT"
1034
+ ],
1035
+ "authors": [
1036
+ {
1037
+ "name": "PHP-FIG",
1038
+ "homepage": "http://www.php-fig.org/"
1039
+ }
1040
+ ],
1041
+ "description": "Common interface for logging libraries",
1042
+ "homepage": "https://github.com/php-fig/log",
1043
+ "keywords": [
1044
+ "log",
1045
+ "psr",
1046
+ "psr-3"
1047
+ ],
1048
+ "time": "2016-10-10T12:19:37+00:00"
1049
+ },
1050
+ {
1051
+ "name": "swiftmailer/swiftmailer",
1052
+ "version": "v5.4.8",
1053
+ "source": {
1054
+ "type": "git",
1055
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
1056
+ "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517"
1057
+ },
1058
+ "dist": {
1059
+ "type": "zip",
1060
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517",
1061
+ "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517",
1062
+ "shasum": ""
1063
+ },
1064
+ "require": {
1065
+ "php": ">=5.3.3"
1066
+ },
1067
+ "require-dev": {
1068
+ "mockery/mockery": "~0.9.1",
1069
+ "symfony/phpunit-bridge": "~3.2"
1070
+ },
1071
+ "type": "library",
1072
+ "extra": {
1073
+ "branch-alias": {
1074
+ "dev-master": "5.4-dev"
1075
+ }
1076
+ },
1077
+ "autoload": {
1078
+ "files": [
1079
+ "lib/swift_required.php"
1080
+ ]
1081
+ },
1082
+ "notification-url": "https://packagist.org/downloads/",
1083
+ "license": [
1084
+ "MIT"
1085
+ ],
1086
+ "authors": [
1087
+ {
1088
+ "name": "Chris Corbyn"
1089
+ },
1090
+ {
1091
+ "name": "Fabien Potencier",
1092
+ "email": "fabien@symfony.com"
1093
+ }
1094
+ ],
1095
+ "description": "Swiftmailer, free feature-rich PHP mailer",
1096
+ "homepage": "http://swiftmailer.org",
1097
+ "keywords": [
1098
+ "email",
1099
+ "mail",
1100
+ "mailer"
1101
+ ],
1102
+ "time": "2017-05-01T15:54:03+00:00"
1103
+ },
1104
+ {
1105
+ "name": "symfony/console",
1106
+ "version": "v3.3.13",
1107
+ "source": {
1108
+ "type": "git",
1109
+ "url": "https://github.com/symfony/console.git",
1110
+ "reference": "63cd7960a0a522c3537f6326706d7f3b8de65805"
1111
+ },
1112
+ "dist": {
1113
+ "type": "zip",
1114
+ "url": "https://api.github.com/repos/symfony/console/zipball/63cd7960a0a522c3537f6326706d7f3b8de65805",
1115
+ "reference": "63cd7960a0a522c3537f6326706d7f3b8de65805",
1116
+ "shasum": ""
1117
+ },
1118
+ "require": {
1119
+ "php": "^5.5.9|>=7.0.8",
1120
+ "symfony/debug": "~2.8|~3.0",
1121
+ "symfony/polyfill-mbstring": "~1.0"
1122
+ },
1123
+ "conflict": {
1124
+ "symfony/dependency-injection": "<3.3"
1125
+ },
1126
+ "require-dev": {
1127
+ "psr/log": "~1.0",
1128
+ "symfony/config": "~3.3",
1129
+ "symfony/dependency-injection": "~3.3",
1130
+ "symfony/event-dispatcher": "~2.8|~3.0",
1131
+ "symfony/filesystem": "~2.8|~3.0",
1132
+ "symfony/process": "~2.8|~3.0"
1133
+ },
1134
+ "suggest": {
1135
+ "psr/log": "For using the console logger",
1136
+ "symfony/event-dispatcher": "",
1137
+ "symfony/filesystem": "",
1138
+ "symfony/process": ""
1139
+ },
1140
+ "type": "library",
1141
+ "extra": {
1142
+ "branch-alias": {
1143
+ "dev-master": "3.3-dev"
1144
+ }
1145
+ },
1146
+ "autoload": {
1147
+ "psr-4": {
1148
+ "Symfony\\Component\\Console\\": ""
1149
+ },
1150
+ "exclude-from-classmap": [
1151
+ "/Tests/"
1152
+ ]
1153
+ },
1154
+ "notification-url": "https://packagist.org/downloads/",
1155
+ "license": [
1156
+ "MIT"
1157
+ ],
1158
+ "authors": [
1159
+ {
1160
+ "name": "Fabien Potencier",
1161
+ "email": "fabien@symfony.com"
1162
+ },
1163
+ {
1164
+ "name": "Symfony Community",
1165
+ "homepage": "https://symfony.com/contributors"
1166
+ }
1167
+ ],
1168
+ "description": "Symfony Console Component",
1169
+ "homepage": "https://symfony.com",
1170
+ "time": "2017-11-16T15:24:32+00:00"
1171
+ },
1172
+ {
1173
+ "name": "symfony/debug",
1174
+ "version": "v3.3.13",
1175
+ "source": {
1176
+ "type": "git",
1177
+ "url": "https://github.com/symfony/debug.git",
1178
+ "reference": "74557880e2846b5c84029faa96b834da37e29810"
1179
+ },
1180
+ "dist": {
1181
+ "type": "zip",
1182
+ "url": "https://api.github.com/repos/symfony/debug/zipball/74557880e2846b5c84029faa96b834da37e29810",
1183
+ "reference": "74557880e2846b5c84029faa96b834da37e29810",
1184
+ "shasum": ""
1185
+ },
1186
+ "require": {
1187
+ "php": "^5.5.9|>=7.0.8",
1188
+ "psr/log": "~1.0"
1189
+ },
1190
+ "conflict": {
1191
+ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
1192
+ },
1193
+ "require-dev": {
1194
+ "symfony/http-kernel": "~2.8|~3.0"
1195
+ },
1196
+ "type": "library",
1197
+ "extra": {
1198
+ "branch-alias": {
1199
+ "dev-master": "3.3-dev"
1200
+ }
1201
+ },
1202
+ "autoload": {
1203
+ "psr-4": {
1204
+ "Symfony\\Component\\Debug\\": ""
1205
+ },
1206
+ "exclude-from-classmap": [
1207
+ "/Tests/"
1208
+ ]
1209
+ },
1210
+ "notification-url": "https://packagist.org/downloads/",
1211
+ "license": [
1212
+ "MIT"
1213
+ ],
1214
+ "authors": [
1215
+ {
1216
+ "name": "Fabien Potencier",
1217
+ "email": "fabien@symfony.com"
1218
+ },
1219
+ {
1220
+ "name": "Symfony Community",
1221
+ "homepage": "https://symfony.com/contributors"
1222
+ }
1223
+ ],
1224
+ "description": "Symfony Debug Component",
1225
+ "homepage": "https://symfony.com",
1226
+ "time": "2017-11-10T16:38:39+00:00"
1227
+ },
1228
+ {
1229
+ "name": "symfony/finder",
1230
+ "version": "v3.3.13",
1231
+ "source": {
1232
+ "type": "git",
1233
+ "url": "https://github.com/symfony/finder.git",
1234
+ "reference": "138af5ec075d4b1d1bd19de08c38a34bb2d7d880"
1235
+ },
1236
+ "dist": {
1237
+ "type": "zip",
1238
+ "url": "https://api.github.com/repos/symfony/finder/zipball/138af5ec075d4b1d1bd19de08c38a34bb2d7d880",
1239
+ "reference": "138af5ec075d4b1d1bd19de08c38a34bb2d7d880",
1240
+ "shasum": ""
1241
+ },
1242
+ "require": {
1243
+ "php": "^5.5.9|>=7.0.8"
1244
+ },
1245
+ "type": "library",
1246
+ "extra": {
1247
+ "branch-alias": {
1248
+ "dev-master": "3.3-dev"
1249
+ }
1250
+ },
1251
+ "autoload": {
1252
+ "psr-4": {
1253
+ "Symfony\\Component\\Finder\\": ""
1254
+ },
1255
+ "exclude-from-classmap": [
1256
+ "/Tests/"
1257
+ ]
1258
+ },
1259
+ "notification-url": "https://packagist.org/downloads/",
1260
+ "license": [
1261
+ "MIT"
1262
+ ],
1263
+ "authors": [
1264
+ {
1265
+ "name": "Fabien Potencier",
1266
+ "email": "fabien@symfony.com"
1267
+ },
1268
+ {
1269
+ "name": "Symfony Community",
1270
+ "homepage": "https://symfony.com/contributors"
1271
+ }
1272
+ ],
1273
+ "description": "Symfony Finder Component",
1274
+ "homepage": "https://symfony.com",
1275
+ "time": "2017-11-05T15:47:03+00:00"
1276
+ },
1277
+ {
1278
+ "name": "symfony/polyfill-mbstring",
1279
+ "version": "v1.6.0",
1280
+ "source": {
1281
+ "type": "git",
1282
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
1283
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
1284
+ },
1285
+ "dist": {
1286
+ "type": "zip",
1287
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
1288
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
1289
+ "shasum": ""
1290
+ },
1291
+ "require": {
1292
+ "php": ">=5.3.3"
1293
+ },
1294
+ "suggest": {
1295
+ "ext-mbstring": "For best performance"
1296
+ },
1297
+ "type": "library",
1298
+ "extra": {
1299
+ "branch-alias": {
1300
+ "dev-master": "1.6-dev"
1301
+ }
1302
+ },
1303
+ "autoload": {
1304
+ "psr-4": {
1305
+ "Symfony\\Polyfill\\Mbstring\\": ""
1306
+ },
1307
+ "files": [
1308
+ "bootstrap.php"
1309
+ ]
1310
+ },
1311
+ "notification-url": "https://packagist.org/downloads/",
1312
+ "license": [
1313
+ "MIT"
1314
+ ],
1315
+ "authors": [
1316
+ {
1317
+ "name": "Nicolas Grekas",
1318
+ "email": "p@tchwork.com"
1319
+ },
1320
+ {
1321
+ "name": "Symfony Community",
1322
+ "homepage": "https://symfony.com/contributors"
1323
+ }
1324
+ ],
1325
+ "description": "Symfony polyfill for the Mbstring extension",
1326
+ "homepage": "https://symfony.com",
1327
+ "keywords": [
1328
+ "compatibility",
1329
+ "mbstring",
1330
+ "polyfill",
1331
+ "portable",
1332
+ "shim"
1333
+ ],
1334
+ "time": "2017-10-11T12:05:26+00:00"
1335
+ },
1336
+ {
1337
+ "name": "symfony/process",
1338
+ "version": "v3.3.13",
1339
+ "source": {
1340
+ "type": "git",
1341
+ "url": "https://github.com/symfony/process.git",
1342
+ "reference": "a56a3989fb762d7b19a0cf8e7693ee99a6ffb78d"
1343
+ },
1344
+ "dist": {
1345
+ "type": "zip",
1346
+ "url": "https://api.github.com/repos/symfony/process/zipball/a56a3989fb762d7b19a0cf8e7693ee99a6ffb78d",
1347
+ "reference": "a56a3989fb762d7b19a0cf8e7693ee99a6ffb78d",
1348
+ "shasum": ""
1349
+ },
1350
+ "require": {
1351
+ "php": "^5.5.9|>=7.0.8"
1352
+ },
1353
+ "type": "library",
1354
+ "extra": {
1355
+ "branch-alias": {
1356
+ "dev-master": "3.3-dev"
1357
+ }
1358
+ },
1359
+ "autoload": {
1360
+ "psr-4": {
1361
+ "Symfony\\Component\\Process\\": ""
1362
+ },
1363
+ "exclude-from-classmap": [
1364
+ "/Tests/"
1365
+ ]
1366
+ },
1367
+ "notification-url": "https://packagist.org/downloads/",
1368
+ "license": [
1369
+ "MIT"
1370
+ ],
1371
+ "authors": [
1372
+ {
1373
+ "name": "Fabien Potencier",
1374
+ "email": "fabien@symfony.com"
1375
+ },
1376
+ {
1377
+ "name": "Symfony Community",
1378
+ "homepage": "https://symfony.com/contributors"
1379
+ }
1380
+ ],
1381
+ "description": "Symfony Process Component",
1382
+ "homepage": "https://symfony.com",
1383
+ "time": "2017-11-13T15:31:11+00:00"
1384
+ },
1385
+ {
1386
+ "name": "symfony/yaml",
1387
+ "version": "v3.3.13",
1388
+ "source": {
1389
+ "type": "git",
1390
+ "url": "https://github.com/symfony/yaml.git",
1391
+ "reference": "0938408c4faa518d95230deabb5f595bf0de31b9"
1392
+ },
1393
+ "dist": {
1394
+ "type": "zip",
1395
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/0938408c4faa518d95230deabb5f595bf0de31b9",
1396
+ "reference": "0938408c4faa518d95230deabb5f595bf0de31b9",
1397
+ "shasum": ""
1398
+ },
1399
+ "require": {
1400
+ "php": "^5.5.9|>=7.0.8"
1401
+ },
1402
+ "require-dev": {
1403
+ "symfony/console": "~2.8|~3.0"
1404
+ },
1405
+ "suggest": {
1406
+ "symfony/console": "For validating YAML files using the lint command"
1407
+ },
1408
+ "type": "library",
1409
+ "extra": {
1410
+ "branch-alias": {
1411
+ "dev-master": "3.3-dev"
1412
+ }
1413
+ },
1414
+ "autoload": {
1415
+ "psr-4": {
1416
+ "Symfony\\Component\\Yaml\\": ""
1417
+ },
1418
+ "exclude-from-classmap": [
1419
+ "/Tests/"
1420
+ ]
1421
+ },
1422
+ "notification-url": "https://packagist.org/downloads/",
1423
+ "license": [
1424
+ "MIT"
1425
+ ],
1426
+ "authors": [
1427
+ {
1428
+ "name": "Fabien Potencier",
1429
+ "email": "fabien@symfony.com"
1430
+ },
1431
+ {
1432
+ "name": "Symfony Community",
1433
+ "homepage": "https://symfony.com/contributors"
1434
+ }
1435
+ ],
1436
+ "description": "Symfony Yaml Component",
1437
+ "homepage": "https://symfony.com",
1438
+ "time": "2017-11-10T18:26:04+00:00"
1439
+ },
1440
+ {
1441
+ "name": "typo3-ter/realurl",
1442
+ "version": "2.3.0",
1443
+ "dist": {
1444
+ "type": "t3x",
1445
+ "url": "https://extensions.typo3.org/extension/download/realurl/2.3.0/t3x/",
1446
+ "reference": null,
1447
+ "shasum": null
1448
+ },
1449
+ "require": {
1450
+ "php": ">= 5.4.0, <= 7.1.999",
1451
+ "typo3/cms-core": ">= 6.2.0, <= 8.7.999"
1452
+ },
1453
+ "conflict": {
1454
+ "typo3-ter/cooluri": "*",
1455
+ "typo3-ter/simulatestatic": "*"
1456
+ },
1457
+ "replace": {
1458
+ "realurl": "self.version"
1459
+ },
1460
+ "type": "typo3-cms-extension",
1461
+ "autoload": {
1462
+ "psr-4": {
1463
+ "DmitryDulepov\\Realurl\\": "Classes"
1464
+ }
1465
+ },
1466
+ "authors": [
1467
+ {
1468
+ "name": "Dmitry Dulepov",
1469
+ "email": "dmitry.dulepov@gmail.com",
1470
+ "company": "",
1471
+ "username": "dmitry"
1472
+ }
1473
+ ],
1474
+ "description": "Makes TYPO3 URLs search engine friendly. Donations are welcome to dmitry.dulepov@gmail.com. They help to support the extension!",
1475
+ "time": "2017-10-05T11:00:55+00:00"
1476
+ },
1477
+ {
1478
+ "name": "typo3/class-alias-loader",
1479
+ "version": "1.0.0",
1480
+ "source": {
1481
+ "type": "git",
1482
+ "url": "https://github.com/TYPO3/class-alias-loader.git",
1483
+ "reference": "a9dd295c81ed0b51455644be420ab9210cad688f"
1484
+ },
1485
+ "dist": {
1486
+ "type": "zip",
1487
+ "url": "https://api.github.com/repos/TYPO3/class-alias-loader/zipball/a9dd295c81ed0b51455644be420ab9210cad688f",
1488
+ "reference": "a9dd295c81ed0b51455644be420ab9210cad688f",
1489
+ "shasum": ""
1490
+ },
1491
+ "require": {
1492
+ "composer-plugin-api": "^1.0",
1493
+ "php": ">=5.3.7"
1494
+ },
1495
+ "replace": {
1496
+ "helhum/class-alias-loader": "*"
1497
+ },
1498
+ "require-dev": {
1499
+ "composer/composer": "dev-master",
1500
+ "mikey179/vfsstream": "1.4.*@dev",
1501
+ "phpunit/phpunit": "~4.7.0"
1502
+ },
1503
+ "type": "composer-plugin",
1504
+ "extra": {
1505
+ "class": "TYPO3\\ClassAliasLoader\\Plugin",
1506
+ "branch-alias": {
1507
+ "dev-master": "1.0.x-dev"
1508
+ }
1509
+ },
1510
+ "autoload": {
1511
+ "psr-4": {
1512
+ "TYPO3\\ClassAliasLoader\\": "src/"
1513
+ }
1514
+ },
1515
+ "notification-url": "https://packagist.org/downloads/",
1516
+ "license": [
1517
+ "MIT"
1518
+ ],
1519
+ "authors": [
1520
+ {
1521
+ "name": "Helmut Hummel",
1522
+ "email": "info@helhum.io"
1523
+ }
1524
+ ],
1525
+ "description": "Amends the composer class loader to support class aliases to provide backwards compatibility for packages",
1526
+ "homepage": "http://github.com/TYPO3/class-alias-loader",
1527
+ "keywords": [
1528
+ "alias",
1529
+ "autoloader",
1530
+ "classloader",
1531
+ "composer"
1532
+ ],
1533
+ "time": "2015-10-06T10:25:44+00:00"
1534
+ },
1535
+ {
1536
+ "name": "typo3/cms",
1537
+ "version": "v8.7.8",
1538
+ "source": {
1539
+ "type": "git",
1540
+ "url": "https://github.com/TYPO3/TYPO3.CMS.git",
1541
+ "reference": "90f1c05c306f4633d7561cb60534b99e394f9e22"
1542
+ },
1543
+ "dist": {
1544
+ "type": "zip",
1545
+ "url": "https://api.github.com/repos/TYPO3/TYPO3.CMS/zipball/90f1c05c306f4633d7561cb60534b99e394f9e22",
1546
+ "reference": "90f1c05c306f4633d7561cb60534b99e394f9e22",
1547
+ "shasum": ""
1548
+ },
1549
+ "require": {
1550
+ "cogpowered/finediff": "~0.3.1",
1551
+ "doctrine/dbal": "~2.5.4",
1552
+ "doctrine/instantiator": "~1.0.4",
1553
+ "ext-json": "*",
1554
+ "ext-pcre": "*",
1555
+ "ext-session": "*",
1556
+ "ext-xml": "*",
1557
+ "guzzlehttp/guzzle": "^6.3.0",
1558
+ "mso/idna-convert": "^1.1.0",
1559
+ "php": "^7.0",
1560
+ "psr/http-message": "~1.0",
1561
+ "psr/log": "~1.0.0",
1562
+ "swiftmailer/swiftmailer": "~5.4.5",
1563
+ "symfony/console": "^2.7 || ^3.0",
1564
+ "symfony/finder": "^2.7 || ^3.0",
1565
+ "symfony/polyfill-mbstring": "^1.2",
1566
+ "symfony/yaml": "^2.7 || ^3.0",
1567
+ "typo3/class-alias-loader": "^1.0",
1568
+ "typo3/cms-cli": "^1.0.2",
1569
+ "typo3/cms-composer-installers": "^1.2.8",
1570
+ "typo3fluid/fluid": "^2.3"
1571
+ },
1572
+ "replace": {
1573
+ "typo3-ter/func": "*",
1574
+ "typo3/cms-about": "self.version",
1575
+ "typo3/cms-backend": "self.version",
1576
+ "typo3/cms-belog": "self.version",
1577
+ "typo3/cms-beuser": "self.version",
1578
+ "typo3/cms-context-help": "self.version",
1579
+ "typo3/cms-core": "self.version",
1580
+ "typo3/cms-cshmanual": "self.version",
1581
+ "typo3/cms-css-styled-content": "self.version",
1582
+ "typo3/cms-documentation": "self.version",
1583
+ "typo3/cms-extbase": "self.version",
1584
+ "typo3/cms-extensionmanager": "self.version",
1585
+ "typo3/cms-feedit": "self.version",
1586
+ "typo3/cms-felogin": "self.version",
1587
+ "typo3/cms-filelist": "self.version",
1588
+ "typo3/cms-filemetadata": "self.version",
1589
+ "typo3/cms-fluid": "self.version",
1590
+ "typo3/cms-fluid-styled-content": "self.version",
1591
+ "typo3/cms-form": "self.version",
1592
+ "typo3/cms-frontend": "self.version",
1593
+ "typo3/cms-func": "self.version",
1594
+ "typo3/cms-func-wizards": "self.version",
1595
+ "typo3/cms-impexp": "self.version",
1596
+ "typo3/cms-indexed-search": "self.version",
1597
+ "typo3/cms-info": "self.version",
1598
+ "typo3/cms-info-pagetsconfig": "self.version",
1599
+ "typo3/cms-install": "self.version",
1600
+ "typo3/cms-lang": "self.version",
1601
+ "typo3/cms-linkvalidator": "self.version",
1602
+ "typo3/cms-lowlevel": "self.version",
1603
+ "typo3/cms-opendocs": "self.version",
1604
+ "typo3/cms-recordlist": "self.version",
1605
+ "typo3/cms-recycler": "self.version",
1606
+ "typo3/cms-reports": "self.version",
1607
+ "typo3/cms-rsaauth": "self.version",
1608
+ "typo3/cms-rte-ckeditor": "self.version",
1609
+ "typo3/cms-saltedpasswords": "self.version",
1610
+ "typo3/cms-scheduler": "self.version",
1611
+ "typo3/cms-setup": "self.version",
1612
+ "typo3/cms-sv": "self.version",
1613
+ "typo3/cms-sys-action": "self.version",
1614
+ "typo3/cms-sys-note": "self.version",
1615
+ "typo3/cms-t3editor": "self.version",
1616
+ "typo3/cms-taskcenter": "self.version",
1617
+ "typo3/cms-tstemplate": "self.version",
1618
+ "typo3/cms-version": "self.version",
1619
+ "typo3/cms-viewpage": "self.version",
1620
+ "typo3/cms-wizard-crpages": "self.version",
1621
+ "typo3/cms-wizard-sortpages": "self.version",
1622
+ "typo3/cms-workspaces": "self.version"
1623
+ },
1624
+ "require-dev": {
1625
+ "codeception/codeception": "^2.3",
1626
+ "enm1989/chromedriver": "~2.30",
1627
+ "fiunchinho/phpunit-randomizer": "~3.0.0",
1628
+ "friendsofphp/php-cs-fixer": "^2.0",
1629
+ "typo3/cms-styleguide": "~8.0.8",
1630
+ "typo3/testing-framework": "~1.1.0"
1631
+ },
1632
+ "suggest": {
1633
+ "ext-fileinfo": "Used for proper file type detection in the file abstraction layer",
1634
+ "ext-gd": "GDlib/Freetype is required for building images with text (GIFBUILDER) and can also be used to scale images",
1635
+ "ext-mysqli": "",
1636
+ "ext-openssl": "",
1637
+ "ext-zip": "",
1638
+ "ext-zlib": "TYPO3 uses zlib for amongst others output compression and un/packing t3x extension files"
1639
+ },
1640
+ "type": "typo3-cms-core",
1641
+ "extra": {
1642
+ "typo3/class-alias-loader": {
1643
+ "always-add-alias-loader": true,
1644
+ "class-alias-maps": [
1645
+ "typo3/sysext/extbase/Migrations/Code/ClassAliasMap.php",
1646
+ "typo3/sysext/fluid/Migrations/Code/ClassAliasMap.php",
1647
+ "typo3/sysext/version/Migrations/Code/ClassAliasMap.php"
1648
+ ]
1649
+ },
1650
+ "branch-alias": {
1651
+ "dev-TYPO3_8-7": "8.x-dev"
1652
+ }
1653
+ },
1654
+ "autoload": {
1655
+ "psr-4": {
1656
+ "TYPO3\\CMS\\About\\": "typo3/sysext/about/Classes/",
1657
+ "TYPO3\\CMS\\Backend\\": "typo3/sysext/backend/Classes/",
1658
+ "TYPO3\\CMS\\Belog\\": "typo3/sysext/belog/Classes/",
1659
+ "TYPO3\\CMS\\Beuser\\": "typo3/sysext/beuser/Classes/",
1660
+ "TYPO3\\CMS\\ContextHelp\\": "typo3/sysext/context_help/Classes/",
1661
+ "TYPO3\\CMS\\Core\\": "typo3/sysext/core/Classes/",
1662
+ "TYPO3\\CMS\\Cshmanual\\": "typo3/sysext/cshmanual/Classes/",
1663
+ "TYPO3\\CMS\\CssStyledContent\\": "typo3/sysext/css_styled_content/Classes/",
1664
+ "TYPO3\\CMS\\Documentation\\": "typo3/sysext/documentation/Classes/",
1665
+ "TYPO3\\CMS\\Extbase\\": "typo3/sysext/extbase/Classes/",
1666
+ "TYPO3\\CMS\\Extensionmanager\\": "typo3/sysext/extensionmanager/Classes/",
1667
+ "TYPO3\\CMS\\Feedit\\": "typo3/sysext/feedit/Classes/",
1668
+ "TYPO3\\CMS\\Felogin\\": "typo3/sysext/felogin/Classes/",
1669
+ "TYPO3\\CMS\\Filelist\\": "typo3/sysext/filelist/Classes/",
1670
+ "TYPO3\\CMS\\Fluid\\": "typo3/sysext/fluid/Classes/",
1671
+ "TYPO3\\CMS\\FluidStyledContent\\": "typo3/sysext/fluid_styled_content/Classes/",
1672
+ "TYPO3\\CMS\\Form\\": "typo3/sysext/form/Classes/",
1673
+ "TYPO3\\CMS\\Frontend\\": "typo3/sysext/frontend/Classes/",
1674
+ "TYPO3\\CMS\\Func\\": "typo3/sysext/func/Classes/",
1675
+ "TYPO3\\CMS\\Impexp\\": "typo3/sysext/impexp/Classes/",
1676
+ "TYPO3\\CMS\\IndexedSearch\\": "typo3/sysext/indexed_search/Classes/",
1677
+ "TYPO3\\CMS\\Info\\": "typo3/sysext/info/Classes/",
1678
+ "TYPO3\\CMS\\InfoPagetsconfig\\": "typo3/sysext/info_pagetsconfig/Classes/",
1679
+ "TYPO3\\CMS\\Install\\": "typo3/sysext/install/Classes/",
1680
+ "TYPO3\\CMS\\Lang\\": "typo3/sysext/lang/Classes/",
1681
+ "TYPO3\\CMS\\Linkvalidator\\": "typo3/sysext/linkvalidator/Classes/",
1682
+ "TYPO3\\CMS\\Lowlevel\\": "typo3/sysext/lowlevel/Classes/",
1683
+ "TYPO3\\CMS\\Opendocs\\": "typo3/sysext/opendocs/Classes/",
1684
+ "TYPO3\\CMS\\Recordlist\\": "typo3/sysext/recordlist/Classes/",
1685
+ "TYPO3\\CMS\\Recycler\\": "typo3/sysext/recycler/Classes/",
1686
+ "TYPO3\\CMS\\Reports\\": "typo3/sysext/reports/Classes/",
1687
+ "TYPO3\\CMS\\Rsaauth\\": "typo3/sysext/rsaauth/Classes/",
1688
+ "TYPO3\\CMS\\RteCKEditor\\": "typo3/sysext/rte_ckeditor/Classes/",
1689
+ "TYPO3\\CMS\\Saltedpasswords\\": "typo3/sysext/saltedpasswords/Classes/",
1690
+ "TYPO3\\CMS\\Scheduler\\": "typo3/sysext/scheduler/Classes/",
1691
+ "TYPO3\\CMS\\Setup\\": "typo3/sysext/setup/Classes/",
1692
+ "TYPO3\\CMS\\Sv\\": "typo3/sysext/sv/Classes/",
1693
+ "TYPO3\\CMS\\SysAction\\": "typo3/sysext/sys_action/Classes/",
1694
+ "TYPO3\\CMS\\SysNote\\": "typo3/sysext/sys_note/Classes/",
1695
+ "TYPO3\\CMS\\T3editor\\": "typo3/sysext/t3editor/Classes/",
1696
+ "TYPO3\\CMS\\Taskcenter\\": "typo3/sysext/taskcenter/Classes/",
1697
+ "TYPO3\\CMS\\Tstemplate\\": "typo3/sysext/tstemplate/Classes/",
1698
+ "TYPO3\\CMS\\Version\\": "typo3/sysext/version/Classes/",
1699
+ "TYPO3\\CMS\\Viewpage\\": "typo3/sysext/viewpage/Classes/",
1700
+ "TYPO3\\CMS\\WizardCrpages\\": "typo3/sysext/wizard_crpages/Classes/",
1701
+ "TYPO3\\CMS\\WizardSortpages\\": "typo3/sysext/wizard_sortpages/Classes/",
1702
+ "TYPO3\\CMS\\Workspaces\\": "typo3/sysext/workspaces/Classes/"
1703
+ },
1704
+ "classmap": [
1705
+ "typo3/sysext/core/Resources/PHP/"
1706
+ ],
1707
+ "files": [
1708
+ "typo3/sysext/core/Resources/PHP/GlobalDebugFunctions.php"
1709
+ ]
1710
+ },
1711
+ "notification-url": "https://packagist.org/downloads/",
1712
+ "license": [
1713
+ "GPL-2.0+"
1714
+ ],
1715
+ "authors": [
1716
+ {
1717
+ "name": "The TYPO3 Community",
1718
+ "homepage": "https://typo3.org/community/",
1719
+ "role": "Contributor"
1720
+ },
1721
+ {
1722
+ "name": "TYPO3 CMS Core Team",
1723
+ "homepage": "https://forge.typo3.org/projects/typo3cms-core",
1724
+ "role": "Developer"
1725
+ }
1726
+ ],
1727
+ "description": "TYPO3 CMS is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL.",
1728
+ "homepage": "https://typo3.org/",
1729
+ "keywords": [
1730
+ "Content management system",
1731
+ "cms",
1732
+ "extbase",
1733
+ "typo3"
1734
+ ],
1735
+ "time": "2017-10-10T16:08:44+00:00"
1736
+ },
1737
+ {
1738
+ "name": "typo3/cms-cli",
1739
+ "version": "1.0.2",
1740
+ "source": {
1741
+ "type": "git",
1742
+ "url": "https://github.com/TYPO3/cms-cli.git",
1743
+ "reference": "c27c3580b384353414d0b4ff61137127798f8189"
1744
+ },
1745
+ "dist": {
1746
+ "type": "zip",
1747
+ "url": "https://api.github.com/repos/TYPO3/cms-cli/zipball/c27c3580b384353414d0b4ff61137127798f8189",
1748
+ "reference": "c27c3580b384353414d0b4ff61137127798f8189",
1749
+ "shasum": ""
1750
+ },
1751
+ "require": {
1752
+ "php": "^7.0"
1753
+ },
1754
+ "bin": [
1755
+ "typo3"
1756
+ ],
1757
+ "type": "library",
1758
+ "autoload": {
1759
+ "psr-4": {
1760
+ "TYPO3\\CMS\\Cli\\": "src"
1761
+ }
1762
+ },
1763
+ "notification-url": "https://packagist.org/downloads/",
1764
+ "license": [
1765
+ "GPL-2.0+"
1766
+ ],
1767
+ "description": "TYPO3 command line binary",
1768
+ "homepage": "https://typo3.org",
1769
+ "time": "2017-09-06T12:09:47+00:00"
1770
+ },
1771
+ {
1772
+ "name": "typo3/cms-composer-installers",
1773
+ "version": "1.4.5",
1774
+ "source": {
1775
+ "type": "git",
1776
+ "url": "https://github.com/TYPO3/CmsComposerInstallers.git",
1777
+ "reference": "0ef630f82f12aa611fb44a3e1e5491fc98b97e78"
1778
+ },
1779
+ "dist": {
1780
+ "type": "zip",
1781
+ "url": "https://api.github.com/repos/TYPO3/CmsComposerInstallers/zipball/0ef630f82f12aa611fb44a3e1e5491fc98b97e78",
1782
+ "reference": "0ef630f82f12aa611fb44a3e1e5491fc98b97e78",
1783
+ "shasum": ""
1784
+ },
1785
+ "require": {
1786
+ "composer-plugin-api": "^1.0.0",
1787
+ "php": ">=7.0.0 <7.3"
1788
+ },
1789
+ "conflict": {
1790
+ "composer/installers": "<1.0.24 || >1.0.24"
1791
+ },
1792
+ "replace": {
1793
+ "lw/typo3cms-installers": "*",
1794
+ "netresearch/composer-installers": "*"
1795
+ },
1796
+ "require-dev": {
1797
+ "composer/composer": "^1.2"
1798
+ },
1799
+ "type": "composer-plugin",
1800
+ "extra": {
1801
+ "class": "TYPO3\\CMS\\Composer\\Installer\\Plugin",
1802
+ "branch-alias": {
1803
+ "dev-master": "1.4.x-dev"
1804
+ }
1805
+ },
1806
+ "autoload": {
1807
+ "psr-4": {
1808
+ "TYPO3\\CMS\\Composer\\": "src/"
1809
+ }
1810
+ },
1811
+ "notification-url": "https://packagist.org/downloads/",
1812
+ "license": [
1813
+ "GPL-2.0+"
1814
+ ],
1815
+ "authors": [
1816
+ {
1817
+ "name": "Christian Opitz",
1818
+ "email": "christian.opitz@netresearch.de"
1819
+ },
1820
+ {
1821
+ "name": "Lars Peipmann",
1822
+ "email": "lars@peipmann.de"
1823
+ },
1824
+ {
1825
+ "name": "Helmut Hummel",
1826
+ "email": "info@helhum.io"
1827
+ }
1828
+ ],
1829
+ "description": "TYPO3 CMS Installers",
1830
+ "homepage": "https://github.com/TYPO3/CmsComposerInstallers",
1831
+ "keywords": [
1832
+ "cms",
1833
+ "core",
1834
+ "extension",
1835
+ "installer",
1836
+ "typo3"
1837
+ ],
1838
+ "time": "2017-11-06T11:44:16+00:00"
1839
+ },
1840
+ {
1841
+ "name": "typo3fluid/fluid",
1842
+ "version": "2.4.0",
1843
+ "source": {
1844
+ "type": "git",
1845
+ "url": "https://github.com/TYPO3/Fluid.git",
1846
+ "reference": "f583badd3b2a90f046fe5c1e0459300325a3e0ce"
1847
+ },
1848
+ "dist": {
1849
+ "type": "zip",
1850
+ "url": "https://api.github.com/repos/TYPO3/Fluid/zipball/f583badd3b2a90f046fe5c1e0459300325a3e0ce",
1851
+ "reference": "f583badd3b2a90f046fe5c1e0459300325a3e0ce",
1852
+ "shasum": ""
1853
+ },
1854
+ "require": {
1855
+ "php": ">=5.5.0"
1856
+ },
1857
+ "require-dev": {
1858
+ "mikey179/vfsstream": "^1.6",
1859
+ "phpunit/phpunit": "^4.8",
1860
+ "satooshi/php-coveralls": "^1.0",
1861
+ "squizlabs/php_codesniffer": "^2.7"
1862
+ },
1863
+ "bin": [
1864
+ "bin/fluid"
1865
+ ],
1866
+ "type": "library",
1867
+ "autoload": {
1868
+ "psr-4": {
1869
+ "TYPO3Fluid\\Fluid\\": "src/"
1870
+ }
1871
+ },
1872
+ "notification-url": "https://packagist.org/downloads/",
1873
+ "license": [
1874
+ "LGPL-3.0"
1875
+ ],
1876
+ "description": "The TYPO3 Fluid template rendering engine",
1877
+ "time": "2017-08-25T10:10:42+00:00"
1878
+ }
1879
+ ],
1880
+ "packages-dev": [],
1881
+ "aliases": [],
1882
+ "minimum-stability": "stable",
1883
+ "stability-flags": [],
1884
+ "prefer-stable": false,
1885
+ "prefer-lowest": false,
1886
+ "platform": [],
1887
+ "platform-dev": []
1888
+ }