the middle of the idiots
This commit is contained in:
		
							
								
								
									
										3
									
								
								qwen/php/vendor/phar-io/manifest/.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								qwen/php/vendor/phar-io/manifest/.github/FUNDING.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# These are supported funding model platforms
 | 
			
		||||
 | 
			
		||||
github: [theseer]
 | 
			
		||||
							
								
								
									
										86
									
								
								qwen/php/vendor/phar-io/manifest/.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								qwen/php/vendor/phar-io/manifest/.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,86 @@
 | 
			
		||||
name: "CI"
 | 
			
		||||
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
      - "master"
 | 
			
		||||
  pull_request: null
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  qa:
 | 
			
		||||
    name: "QA"
 | 
			
		||||
 | 
			
		||||
    runs-on: "ubuntu-latest"
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: "Checkout"
 | 
			
		||||
        uses: "actions/checkout@v3.5.2"
 | 
			
		||||
 | 
			
		||||
      - name: "Set up PHP"
 | 
			
		||||
        uses: "shivammathur/setup-php@2.25.1"
 | 
			
		||||
        with:
 | 
			
		||||
          coverage: "none"
 | 
			
		||||
          php-version: "8.0"
 | 
			
		||||
          tools: "phive"
 | 
			
		||||
 | 
			
		||||
      - name: "Install dependencies with composer"
 | 
			
		||||
        run: "composer install --no-interaction --optimize-autoloader --prefer-dist"
 | 
			
		||||
 | 
			
		||||
      - name: "Install dependencies with phive"
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        run: "ant install-tools"
 | 
			
		||||
 | 
			
		||||
      - name: "Run php-cs-fixer"
 | 
			
		||||
        run: "ant php-cs-fixer"
 | 
			
		||||
 | 
			
		||||
      - name: "Run psalm"
 | 
			
		||||
        run: "ant psalm"
 | 
			
		||||
 | 
			
		||||
  tests:
 | 
			
		||||
    name: "Tests"
 | 
			
		||||
 | 
			
		||||
    runs-on: "ubuntu-latest"
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
 | 
			
		||||
      matrix:
 | 
			
		||||
        php-versions:
 | 
			
		||||
          - "7.2"
 | 
			
		||||
          - "7.3"
 | 
			
		||||
          - "7.4"
 | 
			
		||||
          - "8.0"
 | 
			
		||||
          - "8.1"
 | 
			
		||||
          - "8.2"
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: "Checkout"
 | 
			
		||||
        uses: "actions/checkout@v3.5.2"
 | 
			
		||||
 | 
			
		||||
      - name: "Set up PHP"
 | 
			
		||||
        uses: "shivammathur/setup-php@2.25.1"
 | 
			
		||||
        env:
 | 
			
		||||
          COMPOSER_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
 | 
			
		||||
        with:
 | 
			
		||||
          coverage: "pcov"
 | 
			
		||||
          extensions: "${{ env.extensions }}"
 | 
			
		||||
          ini-values: "display_errors=On, error_reporting=-1, memory_limit=2G"
 | 
			
		||||
          php-version: "${{ matrix.php-versions }}"
 | 
			
		||||
          tools: "phive"
 | 
			
		||||
 | 
			
		||||
      - name: "Install dependencies with composer"
 | 
			
		||||
        run: "composer install --no-interaction --optimize-autoloader --prefer-dist"
 | 
			
		||||
 | 
			
		||||
      - name: "Install dependencies with phive"
 | 
			
		||||
        env:
 | 
			
		||||
          GITHUB_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
        run: "ant install-tools"
 | 
			
		||||
 | 
			
		||||
      - name: "Run PHPUnit"
 | 
			
		||||
        run: "tools/phpunit --coverage-clover build/logs/clover.xml"
 | 
			
		||||
 | 
			
		||||
      - name: "Send code coverage report to codecov.io"
 | 
			
		||||
        uses: "codecov/codecov-action@v3.1.4"
 | 
			
		||||
        with:
 | 
			
		||||
          files: "build/logs/clover.xml"
 | 
			
		||||
							
								
								
									
										223
									
								
								qwen/php/vendor/phar-io/manifest/.php-cs-fixer.dist.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										223
									
								
								qwen/php/vendor/phar-io/manifest/.php-cs-fixer.dist.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,223 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
require __DIR__ . '/tools/php-cs-fixer.d/PhpdocSingleLineVarFixer.php';
 | 
			
		||||
 | 
			
		||||
$header = file_get_contents(__DIR__ . '/tools/php-cs-fixer.d/header.txt');
 | 
			
		||||
 | 
			
		||||
return (new PhpCsFixer\Config())
 | 
			
		||||
    ->registerCustomFixers([
 | 
			
		||||
        new \PharIo\CSFixer\PhpdocSingleLineVarFixer()
 | 
			
		||||
    ])
 | 
			
		||||
    ->setRiskyAllowed(true)
 | 
			
		||||
    ->setRules(
 | 
			
		||||
        [
 | 
			
		||||
            'PharIo/phpdoc_single_line_var_fixer'           => true,
 | 
			
		||||
 | 
			
		||||
            'align_multiline_comment'                       => true,
 | 
			
		||||
            'array_indentation'                             => true,
 | 
			
		||||
            'array_syntax'                                  => ['syntax' => 'short'],
 | 
			
		||||
            'binary_operator_spaces'                        => [
 | 
			
		||||
                'operators' => [
 | 
			
		||||
                    '='  => 'align',
 | 
			
		||||
                    '=>' => 'align',
 | 
			
		||||
                ],
 | 
			
		||||
            ],
 | 
			
		||||
            'blank_line_after_namespace'                    => true,
 | 
			
		||||
            'blank_line_after_opening_tag'                  => false,
 | 
			
		||||
            'blank_line_before_statement'                   => [
 | 
			
		||||
                'statements' => [
 | 
			
		||||
                    'break',
 | 
			
		||||
                    'continue',
 | 
			
		||||
                    'declare',
 | 
			
		||||
                    'do',
 | 
			
		||||
                    'for',
 | 
			
		||||
                    'foreach',
 | 
			
		||||
                    'if',
 | 
			
		||||
                    'include',
 | 
			
		||||
                    'include_once',
 | 
			
		||||
                    'require',
 | 
			
		||||
                    'require_once',
 | 
			
		||||
                    'return',
 | 
			
		||||
                    'switch',
 | 
			
		||||
                    'throw',
 | 
			
		||||
                    'try',
 | 
			
		||||
                    'while',
 | 
			
		||||
                    'yield',
 | 
			
		||||
                ],
 | 
			
		||||
            ],
 | 
			
		||||
            'braces'                                        => [
 | 
			
		||||
                'allow_single_line_closure'                   => false,
 | 
			
		||||
                'position_after_anonymous_constructs'         => 'same',
 | 
			
		||||
                'position_after_control_structures'           => 'same',
 | 
			
		||||
                'position_after_functions_and_oop_constructs' => 'same'
 | 
			
		||||
            ],
 | 
			
		||||
            'cast_spaces'                                   => ['space' => 'none'],
 | 
			
		||||
 | 
			
		||||
            // This fixer removes the blank line at class start, no way to disable that, so we disable the fixer :(
 | 
			
		||||
            //'class_attributes_separation'                   => ['elements' => ['const', 'method', 'property']],
 | 
			
		||||
 | 
			
		||||
            'combine_consecutive_issets'                    => true,
 | 
			
		||||
            'combine_consecutive_unsets'                    => true,
 | 
			
		||||
            'compact_nullable_typehint'                     => true,
 | 
			
		||||
            'concat_space'                                  => ['spacing' => 'one'],
 | 
			
		||||
            'date_time_immutable'                           => true,
 | 
			
		||||
            'declare_equal_normalize'                       => ['space' => 'single'],
 | 
			
		||||
            'declare_strict_types'                          => true,
 | 
			
		||||
            'dir_constant'                                  => true,
 | 
			
		||||
            'elseif'                                        => true,
 | 
			
		||||
            'encoding'                                      => true,
 | 
			
		||||
            'full_opening_tag'                              => true,
 | 
			
		||||
            'fully_qualified_strict_types'                  => true,
 | 
			
		||||
            'function_declaration'                          => [
 | 
			
		||||
                'closure_function_spacing' => 'one'
 | 
			
		||||
            ],
 | 
			
		||||
            'global_namespace_import'                       => [
 | 
			
		||||
                'import_classes'   => true,
 | 
			
		||||
                'import_constants' => true,
 | 
			
		||||
                'import_functions' => true,
 | 
			
		||||
            ],
 | 
			
		||||
            'header_comment'                                => ['header' => $header, 'separate' => 'none'],
 | 
			
		||||
            'indentation_type'                              => true,
 | 
			
		||||
            'is_null'                                       => true,
 | 
			
		||||
            'line_ending'                                   => true,
 | 
			
		||||
            'list_syntax'                                   => ['syntax' => 'short'],
 | 
			
		||||
            'logical_operators'                             => true,
 | 
			
		||||
            'lowercase_cast'                                => true,
 | 
			
		||||
            'constant_case'                                 => ['case' => 'lower'],
 | 
			
		||||
            'lowercase_keywords'                            => true,
 | 
			
		||||
            'lowercase_static_reference'                    => true,
 | 
			
		||||
            'magic_constant_casing'                         => true,
 | 
			
		||||
            'method_argument_space'                         => ['on_multiline' => 'ensure_fully_multiline'],
 | 
			
		||||
            'modernize_types_casting'                       => true,
 | 
			
		||||
            'multiline_comment_opening_closing'             => true,
 | 
			
		||||
            'multiline_whitespace_before_semicolons'        => true,
 | 
			
		||||
            'new_with_braces'                               => false,
 | 
			
		||||
            'no_alias_functions'                            => true,
 | 
			
		||||
            'no_alternative_syntax'                         => true,
 | 
			
		||||
            'no_blank_lines_after_class_opening'            => false,
 | 
			
		||||
            'no_blank_lines_after_phpdoc'                   => true,
 | 
			
		||||
            'no_blank_lines_before_namespace'               => true,
 | 
			
		||||
            'no_closing_tag'                                => true,
 | 
			
		||||
            'no_empty_comment'                              => true,
 | 
			
		||||
            'no_empty_phpdoc'                               => true,
 | 
			
		||||
            'no_empty_statement'                            => true,
 | 
			
		||||
            'no_extra_blank_lines'                          => true,
 | 
			
		||||
            'no_homoglyph_names'                            => true,
 | 
			
		||||
            'no_leading_import_slash'                       => true,
 | 
			
		||||
            'no_leading_namespace_whitespace'               => true,
 | 
			
		||||
            'no_mixed_echo_print'                           => ['use' => 'print'],
 | 
			
		||||
            'no_multiline_whitespace_around_double_arrow'   => true,
 | 
			
		||||
            'no_null_property_initialization'               => true,
 | 
			
		||||
            'no_php4_constructor'                           => true,
 | 
			
		||||
            'no_short_bool_cast'                            => true,
 | 
			
		||||
            'echo_tag_syntax'                               => ['format' => 'long'],
 | 
			
		||||
            'no_singleline_whitespace_before_semicolons'    => true,
 | 
			
		||||
            'no_spaces_after_function_name'                 => true,
 | 
			
		||||
            'no_spaces_inside_parenthesis'                  => true,
 | 
			
		||||
            'no_superfluous_elseif'                         => true,
 | 
			
		||||
            'no_superfluous_phpdoc_tags'                    => true,
 | 
			
		||||
            'no_trailing_comma_in_list_call'                => true,
 | 
			
		||||
            'no_trailing_comma_in_singleline_array'         => true,
 | 
			
		||||
            'no_trailing_whitespace'                        => true,
 | 
			
		||||
            'no_trailing_whitespace_in_comment'             => true,
 | 
			
		||||
            'no_unneeded_control_parentheses'               => false,
 | 
			
		||||
            'no_unneeded_curly_braces'                      => false,
 | 
			
		||||
            'no_unneeded_final_method'                      => true,
 | 
			
		||||
            'no_unreachable_default_argument_value'         => true,
 | 
			
		||||
            'no_unset_on_property'                          => true,
 | 
			
		||||
            'no_unused_imports'                             => true,
 | 
			
		||||
            'no_useless_else'                               => 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,
 | 
			
		||||
            'object_operator_without_whitespace'            => true,
 | 
			
		||||
            'ordered_class_elements'                        => [
 | 
			
		||||
                'order' => [
 | 
			
		||||
                    'use_trait',
 | 
			
		||||
                    'constant_public',
 | 
			
		||||
                    'constant_protected',
 | 
			
		||||
                    'constant_private',
 | 
			
		||||
                    'property_public_static',
 | 
			
		||||
                    'property_protected_static',
 | 
			
		||||
                    'property_private_static',
 | 
			
		||||
                    'property_public',
 | 
			
		||||
                    'property_protected',
 | 
			
		||||
                    'property_private',
 | 
			
		||||
                    'method_public_static',
 | 
			
		||||
                    'construct',
 | 
			
		||||
                    'destruct',
 | 
			
		||||
                    'magic',
 | 
			
		||||
                    'phpunit',
 | 
			
		||||
                    'method_public',
 | 
			
		||||
                    'method_protected',
 | 
			
		||||
                    'method_private',
 | 
			
		||||
                    'method_protected_static',
 | 
			
		||||
                    'method_private_static',
 | 
			
		||||
                ],
 | 
			
		||||
            ],
 | 
			
		||||
            'ordered_imports' => [
 | 
			
		||||
                'imports_order' => [
 | 
			
		||||
                    PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CLASS,
 | 
			
		||||
                    PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_CONST,
 | 
			
		||||
                    PhpCsFixer\Fixer\Import\OrderedImportsFixer::IMPORT_TYPE_FUNCTION,
 | 
			
		||||
                ]
 | 
			
		||||
            ],
 | 
			
		||||
            'phpdoc_add_missing_param_annotation'           => true,
 | 
			
		||||
            'phpdoc_align'                                  => true,
 | 
			
		||||
            'phpdoc_annotation_without_dot'                 => true,
 | 
			
		||||
            'phpdoc_indent'                                 => true,
 | 
			
		||||
            'phpdoc_no_access'                              => true,
 | 
			
		||||
            'phpdoc_no_empty_return'                        => true,
 | 
			
		||||
            'phpdoc_no_package'                             => true,
 | 
			
		||||
            'phpdoc_order'                                  => true,
 | 
			
		||||
            'phpdoc_return_self_reference'                  => true,
 | 
			
		||||
            'phpdoc_scalar'                                 => true,
 | 
			
		||||
            'phpdoc_separation'                             => true,
 | 
			
		||||
            'phpdoc_single_line_var_spacing'                => true,
 | 
			
		||||
            'phpdoc_to_comment'                             => true,
 | 
			
		||||
            'phpdoc_trim'                                   => true,
 | 
			
		||||
            'phpdoc_trim_consecutive_blank_line_separation' => true,
 | 
			
		||||
            'phpdoc_types'                                  => ['groups' => ['simple', 'meta']],
 | 
			
		||||
            'phpdoc_types_order'                            => true,
 | 
			
		||||
            'phpdoc_to_return_type'                         => true,
 | 
			
		||||
            'phpdoc_var_without_name'                       => true,
 | 
			
		||||
            'pow_to_exponentiation'                         => true,
 | 
			
		||||
            'protected_to_private'                          => true,
 | 
			
		||||
            'return_assignment'                             => true,
 | 
			
		||||
            'return_type_declaration'                       => ['space_before' => 'none'],
 | 
			
		||||
            'self_accessor'                                 => false,
 | 
			
		||||
            'semicolon_after_instruction'                   => true,
 | 
			
		||||
            'set_type_to_cast'                              => true,
 | 
			
		||||
            'short_scalar_cast'                             => true,
 | 
			
		||||
            'simplified_null_return'                        => true,
 | 
			
		||||
            'single_blank_line_at_eof'                      => true,
 | 
			
		||||
            'single_import_per_statement'                   => true,
 | 
			
		||||
            'single_line_after_imports'                     => true,
 | 
			
		||||
            'single_quote'                                  => true,
 | 
			
		||||
            'standardize_not_equals'                        => true,
 | 
			
		||||
            'ternary_to_null_coalescing'                    => true,
 | 
			
		||||
            'trailing_comma_in_multiline'                   => false,
 | 
			
		||||
            'trim_array_spaces'                             => true,
 | 
			
		||||
            'unary_operator_spaces'                         => true,
 | 
			
		||||
            'visibility_required'                           => [
 | 
			
		||||
                'elements' => [
 | 
			
		||||
                    'const',
 | 
			
		||||
                    'method',
 | 
			
		||||
                    'property',
 | 
			
		||||
                ],
 | 
			
		||||
            ],
 | 
			
		||||
            'void_return'                                   => true,
 | 
			
		||||
            'whitespace_after_comma_in_array'               => true,
 | 
			
		||||
            'yoda_style'                                    => false
 | 
			
		||||
        ]
 | 
			
		||||
    )
 | 
			
		||||
    ->setFinder(
 | 
			
		||||
        PhpCsFixer\Finder::create()
 | 
			
		||||
            ->files()
 | 
			
		||||
            ->in(__DIR__ . '/build')
 | 
			
		||||
            ->in(__DIR__ . '/src')
 | 
			
		||||
            ->in(__DIR__ . '/tests')
 | 
			
		||||
            ->notName('autoload.php')
 | 
			
		||||
    );
 | 
			
		||||
							
								
								
									
										45
									
								
								qwen/php/vendor/phar-io/manifest/CHANGELOG.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								qwen/php/vendor/phar-io/manifest/CHANGELOG.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,45 @@
 | 
			
		||||
# Changelog
 | 
			
		||||
 | 
			
		||||
All notable changes to phar-io/manifest are documented in this file using the [Keep a CHANGELOG](http://keepachangelog.com/) principles.
 | 
			
		||||
 | 
			
		||||
## [2.0.4] - 03-03-2024
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
- Make `EMail` an optional attribute for author
 | 
			
		||||
- Stick with PHP 7.2 compatibilty 
 | 
			
		||||
- Do not use implict nullable type (thanks @sebastianbergmann), this should make things work on PHP 8.4
 | 
			
		||||
 | 
			
		||||
## [2.0.3] - 20.07.2021
 | 
			
		||||
 | 
			
		||||
- Fixed PHP 7.2 / PHP 7.3 incompatibility introduced in previous release
 | 
			
		||||
 | 
			
		||||
## [2.0.2] - 20.07.2021
 | 
			
		||||
 | 
			
		||||
- Fixed PHP 8.1 deprecation notice
 | 
			
		||||
 | 
			
		||||
## [2.0.1] - 27.06.2020
 | 
			
		||||
 | 
			
		||||
This release now supports the use of PHP 7.2+ and ^8.0
 | 
			
		||||
 | 
			
		||||
## [2.0.0] - 10.05.2020
 | 
			
		||||
 | 
			
		||||
This release now requires PHP 7.2+
 | 
			
		||||
 | 
			
		||||
### Changed
 | 
			
		||||
 | 
			
		||||
- Upgraded to phar-io/version 3.0
 | 
			
		||||
    - Version strings `v1.2.3` will now be converted to valid semantic version strings `1.2.3`
 | 
			
		||||
    - Abreviated strings like `1.0` will get expaneded to `1.0.0`  
 | 
			
		||||
 | 
			
		||||
### Unreleased
 | 
			
		||||
 | 
			
		||||
[Unreleased]: https://github.com/phar-io/manifest/compare/2.1.0...HEAD
 | 
			
		||||
[2.1.0]: https://github.com/phar-io/manifest/compare/2.0.3...2.1.0
 | 
			
		||||
[2.0.3]: https://github.com/phar-io/manifest/compare/2.0.2...2.0.3
 | 
			
		||||
[2.0.2]: https://github.com/phar-io/manifest/compare/2.0.1...2.0.2
 | 
			
		||||
[2.0.1]: https://github.com/phar-io/manifest/compare/2.0.0...2.0.1
 | 
			
		||||
[2.0.0]: https://github.com/phar-io/manifest/compare/1.0.1...2.0.0
 | 
			
		||||
[1.0.3]: https://github.com/phar-io/manifest/compare/1.0.2...1.0.3
 | 
			
		||||
[1.0.2]: https://github.com/phar-io/manifest/compare/1.0.1...1.0.2
 | 
			
		||||
[1.0.1]: https://github.com/phar-io/manifest/compare/1.0.0...1.0.1
 | 
			
		||||
							
								
								
									
										31
									
								
								qwen/php/vendor/phar-io/manifest/LICENSE
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								qwen/php/vendor/phar-io/manifest/LICENSE
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
Phar.io - Manifest
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2016-2019 Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de>, and contributors
 | 
			
		||||
All rights reserved.
 | 
			
		||||
 | 
			
		||||
Redistribution and use in source and binary forms, with or without modification,
 | 
			
		||||
are permitted provided that the following conditions are met:
 | 
			
		||||
 | 
			
		||||
* Redistributions of source code must retain the above copyright notice,
 | 
			
		||||
  this list of conditions and the following disclaimer.
 | 
			
		||||
 | 
			
		||||
* Redistributions in binary form must reproduce the above copyright notice,
 | 
			
		||||
  this list of conditions and the following disclaimer in the documentation
 | 
			
		||||
  and/or other materials provided with the distribution.
 | 
			
		||||
 | 
			
		||||
* Neither the name of Arne Blankerts nor the names of contributors
 | 
			
		||||
  may be used to endorse or promote products derived from this software
 | 
			
		||||
  without specific prior written permission.
 | 
			
		||||
 | 
			
		||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
			
		||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT  * NOT LIMITED TO,
 | 
			
		||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 | 
			
		||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
 | 
			
		||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
 | 
			
		||||
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 | 
			
		||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 | 
			
		||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 | 
			
		||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
			
		||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 | 
			
		||||
POSSIBILITY OF SUCH DAMAGE.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										178
									
								
								qwen/php/vendor/phar-io/manifest/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										178
									
								
								qwen/php/vendor/phar-io/manifest/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,178 @@
 | 
			
		||||
# Manifest
 | 
			
		||||
 | 
			
		||||
Component for reading [phar.io](https://phar.io/) manifest information from a [PHP Archive (PHAR)](http://php.net/phar).
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/):
 | 
			
		||||
 | 
			
		||||
    composer require phar-io/manifest
 | 
			
		||||
 | 
			
		||||
If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency:
 | 
			
		||||
 | 
			
		||||
    composer require --dev phar-io/manifest
 | 
			
		||||
 | 
			
		||||
## Usage Examples
 | 
			
		||||
 | 
			
		||||
### Read from `manifest.xml`
 | 
			
		||||
```php
 | 
			
		||||
use PharIo\Manifest\ManifestLoader;
 | 
			
		||||
use PharIo\Manifest\ManifestSerializer;
 | 
			
		||||
 | 
			
		||||
$manifest = ManifestLoader::fromFile('manifest.xml');
 | 
			
		||||
 | 
			
		||||
var_dump($manifest);
 | 
			
		||||
 | 
			
		||||
echo (new ManifestSerializer)->serializeToString($manifest);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<details>
 | 
			
		||||
  <summary>Output</summary>
 | 
			
		||||
    
 | 
			
		||||
```shell
 | 
			
		||||
object(PharIo\Manifest\Manifest)#14 (6) {
 | 
			
		||||
  ["name":"PharIo\Manifest\Manifest":private]=>
 | 
			
		||||
  object(PharIo\Manifest\ApplicationName)#10 (1) {
 | 
			
		||||
    ["name":"PharIo\Manifest\ApplicationName":private]=>
 | 
			
		||||
    string(12) "some/library"
 | 
			
		||||
  }
 | 
			
		||||
  ["version":"PharIo\Manifest\Manifest":private]=>
 | 
			
		||||
  object(PharIo\Version\Version)#12 (5) {
 | 
			
		||||
    ["originalVersionString":"PharIo\Version\Version":private]=>
 | 
			
		||||
    string(5) "1.0.0"
 | 
			
		||||
    ["major":"PharIo\Version\Version":private]=>
 | 
			
		||||
    object(PharIo\Version\VersionNumber)#13 (1) {
 | 
			
		||||
      ["value":"PharIo\Version\VersionNumber":private]=>
 | 
			
		||||
      int(1)
 | 
			
		||||
    }
 | 
			
		||||
    ["minor":"PharIo\Version\Version":private]=>
 | 
			
		||||
    object(PharIo\Version\VersionNumber)#23 (1) {
 | 
			
		||||
      ["value":"PharIo\Version\VersionNumber":private]=>
 | 
			
		||||
      int(0)
 | 
			
		||||
    }
 | 
			
		||||
    ["patch":"PharIo\Version\Version":private]=>
 | 
			
		||||
    object(PharIo\Version\VersionNumber)#22 (1) {
 | 
			
		||||
      ["value":"PharIo\Version\VersionNumber":private]=>
 | 
			
		||||
      int(0)
 | 
			
		||||
    }
 | 
			
		||||
    ["preReleaseSuffix":"PharIo\Version\Version":private]=>
 | 
			
		||||
    NULL
 | 
			
		||||
  }
 | 
			
		||||
  ["type":"PharIo\Manifest\Manifest":private]=>
 | 
			
		||||
  object(PharIo\Manifest\Library)#6 (0) {
 | 
			
		||||
  }
 | 
			
		||||
  ["copyrightInformation":"PharIo\Manifest\Manifest":private]=>
 | 
			
		||||
  object(PharIo\Manifest\CopyrightInformation)#19 (2) {
 | 
			
		||||
    ["authors":"PharIo\Manifest\CopyrightInformation":private]=>
 | 
			
		||||
    object(PharIo\Manifest\AuthorCollection)#9 (1) {
 | 
			
		||||
      ["authors":"PharIo\Manifest\AuthorCollection":private]=>
 | 
			
		||||
      array(1) {
 | 
			
		||||
        [0]=>
 | 
			
		||||
        object(PharIo\Manifest\Author)#15 (2) {
 | 
			
		||||
          ["name":"PharIo\Manifest\Author":private]=>
 | 
			
		||||
          string(13) "Reiner Zufall"
 | 
			
		||||
          ["email":"PharIo\Manifest\Author":private]=>
 | 
			
		||||
          object(PharIo\Manifest\Email)#16 (1) {
 | 
			
		||||
            ["email":"PharIo\Manifest\Email":private]=>
 | 
			
		||||
            string(16) "reiner@zufall.de"
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    ["license":"PharIo\Manifest\CopyrightInformation":private]=>
 | 
			
		||||
    object(PharIo\Manifest\License)#11 (2) {
 | 
			
		||||
      ["name":"PharIo\Manifest\License":private]=>
 | 
			
		||||
      string(12) "BSD-3-Clause"
 | 
			
		||||
      ["url":"PharIo\Manifest\License":private]=>
 | 
			
		||||
      object(PharIo\Manifest\Url)#18 (1) {
 | 
			
		||||
        ["url":"PharIo\Manifest\Url":private]=>
 | 
			
		||||
        string(26) "https://domain.tld/LICENSE"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  ["requirements":"PharIo\Manifest\Manifest":private]=>
 | 
			
		||||
  object(PharIo\Manifest\RequirementCollection)#17 (1) {
 | 
			
		||||
    ["requirements":"PharIo\Manifest\RequirementCollection":private]=>
 | 
			
		||||
    array(1) {
 | 
			
		||||
      [0]=>
 | 
			
		||||
      object(PharIo\Manifest\PhpVersionRequirement)#20 (1) {
 | 
			
		||||
        ["versionConstraint":"PharIo\Manifest\PhpVersionRequirement":private]=>
 | 
			
		||||
        object(PharIo\Version\SpecificMajorAndMinorVersionConstraint)#24 (3) {
 | 
			
		||||
          ["originalValue":"PharIo\Version\AbstractVersionConstraint":private]=>
 | 
			
		||||
          string(3) "7.0"
 | 
			
		||||
          ["major":"PharIo\Version\SpecificMajorAndMinorVersionConstraint":private]=>
 | 
			
		||||
          int(7)
 | 
			
		||||
          ["minor":"PharIo\Version\SpecificMajorAndMinorVersionConstraint":private]=>
 | 
			
		||||
          int(0)
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  ["bundledComponents":"PharIo\Manifest\Manifest":private]=>
 | 
			
		||||
  object(PharIo\Manifest\BundledComponentCollection)#8 (1) {
 | 
			
		||||
    ["bundledComponents":"PharIo\Manifest\BundledComponentCollection":private]=>
 | 
			
		||||
    array(0) {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<phar xmlns="https://phar.io/xml/manifest/1.0">
 | 
			
		||||
    <contains name="some/library" version="1.0.0" type="library"/>
 | 
			
		||||
    <copyright>
 | 
			
		||||
        <author name="Reiner Zufall" email="reiner@zufall.de"/>
 | 
			
		||||
        <license type="BSD-3-Clause" url="https://domain.tld/LICENSE"/>
 | 
			
		||||
    </copyright>
 | 
			
		||||
    <requires>
 | 
			
		||||
        <php version="7.0"/>
 | 
			
		||||
    </requires>
 | 
			
		||||
</phar>
 | 
			
		||||
```
 | 
			
		||||
</details>
 | 
			
		||||
 | 
			
		||||
### Create via API
 | 
			
		||||
```php
 | 
			
		||||
$bundled = new \PharIo\Manifest\BundledComponentCollection();
 | 
			
		||||
$bundled->add(
 | 
			
		||||
    new \PharIo\Manifest\BundledComponent('vendor/packageA', new \PharIo\Version\Version('1.2.3-dev')
 | 
			
		||||
    )
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
$manifest = new PharIo\Manifest\Manifest(
 | 
			
		||||
    new \PharIo\Manifest\ApplicationName('vendor/package'),
 | 
			
		||||
    new \PharIo\Version\Version('1.0.0'),
 | 
			
		||||
    new \PharIo\Manifest\Library(),
 | 
			
		||||
    new \PharIo\Manifest\CopyrightInformation(
 | 
			
		||||
        new \PharIo\Manifest\AuthorCollection(),
 | 
			
		||||
        new \PharIo\Manifest\License(
 | 
			
		||||
            'BSD-3-Clause',
 | 
			
		||||
            new \PharIo\Manifest\Url('https://spdx.org/licenses/BSD-3-Clause.html')
 | 
			
		||||
        )
 | 
			
		||||
    ),
 | 
			
		||||
    new \PharIo\Manifest\RequirementCollection(),
 | 
			
		||||
    $bundled
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
echo (new ManifestSerializer)->serializeToString($manifest);
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
<details>
 | 
			
		||||
  <summary>Output</summary>
 | 
			
		||||
    
 | 
			
		||||
```xml
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<phar xmlns="https://phar.io/xml/manifest/1.0">
 | 
			
		||||
    <contains name="vendor/package" version="1.0.0" type="library"/>
 | 
			
		||||
    <copyright>
 | 
			
		||||
        <license type="BSD-3-Clause" url="https://spdx.org/licenses/BSD-3-Clause.html"/>
 | 
			
		||||
    </copyright>
 | 
			
		||||
    <requires>
 | 
			
		||||
        <php version="*"/>
 | 
			
		||||
    </requires>
 | 
			
		||||
    <bundles>
 | 
			
		||||
        <component name="vendor/packageA" version="1.2.3-dev"/>
 | 
			
		||||
    </bundles>
 | 
			
		||||
</phar>
 | 
			
		||||
```
 | 
			
		||||
    
 | 
			
		||||
</details>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										43
									
								
								qwen/php/vendor/phar-io/manifest/composer.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								qwen/php/vendor/phar-io/manifest/composer.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "phar-io/manifest",
 | 
			
		||||
  "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
 | 
			
		||||
  "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"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
  "support": {
 | 
			
		||||
    "issues": "https://github.com/phar-io/manifest/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "require": {
 | 
			
		||||
    "php": "^7.2 || ^8.0",
 | 
			
		||||
    "ext-dom": "*",
 | 
			
		||||
    "ext-phar": "*",
 | 
			
		||||
    "ext-libxml": "*",
 | 
			
		||||
    "ext-xmlwriter": "*",
 | 
			
		||||
    "phar-io/version": "^3.0.1"
 | 
			
		||||
  },
 | 
			
		||||
  "autoload": {
 | 
			
		||||
    "classmap": [
 | 
			
		||||
      "src/"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
  "extra": {
 | 
			
		||||
    "branch-alias": {
 | 
			
		||||
        "dev-master": "2.0.x-dev"
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										76
									
								
								qwen/php/vendor/phar-io/manifest/composer.lock
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								qwen/php/vendor/phar-io/manifest/composer.lock
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
{
 | 
			
		||||
    "_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": "279b3c4fe44357abd924fdcc0cfa5664",
 | 
			
		||||
    "packages": [
 | 
			
		||||
        {
 | 
			
		||||
            "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"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "packages-dev": [],
 | 
			
		||||
    "aliases": [],
 | 
			
		||||
    "minimum-stability": "stable",
 | 
			
		||||
    "stability-flags": [],
 | 
			
		||||
    "prefer-stable": false,
 | 
			
		||||
    "prefer-lowest": false,
 | 
			
		||||
    "platform": {
 | 
			
		||||
        "php": "^7.2 || ^8.0",
 | 
			
		||||
        "ext-dom": "*",
 | 
			
		||||
        "ext-phar": "*",
 | 
			
		||||
        "ext-libxml": "*",
 | 
			
		||||
        "ext-xmlwriter": "*"
 | 
			
		||||
    },
 | 
			
		||||
    "platform-dev": [],
 | 
			
		||||
    "plugin-api-version": "2.3.0"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										116
									
								
								qwen/php/vendor/phar-io/manifest/manifest.xsd
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								qwen/php/vendor/phar-io/manifest/manifest.xsd
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="https://phar.io/xml/manifest/1.0"
 | 
			
		||||
           xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns="https://phar.io/xml/manifest/1.0">
 | 
			
		||||
 | 
			
		||||
  <xs:element name="phar">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:sequence>
 | 
			
		||||
        <xs:element ref="ns:contains" maxOccurs="1" />
 | 
			
		||||
        <xs:element ref="ns:copyright" maxOccurs="1" />
 | 
			
		||||
        <xs:element ref="ns:requires" maxOccurs="1" />
 | 
			
		||||
        <xs:element ref="ns:bundles" minOccurs="0" maxOccurs="1" />
 | 
			
		||||
      </xs:sequence>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="contains">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:simpleContent>
 | 
			
		||||
        <xs:extension base="xs:string">
 | 
			
		||||
          <xs:attribute type="xs:string" use="required" name="name"/>
 | 
			
		||||
          <xs:attribute type="xs:string" use="required" name="version"/>
 | 
			
		||||
          <xs:attribute use="required" name="type">
 | 
			
		||||
            <xs:simpleType>
 | 
			
		||||
              <xs:restriction base="xs:string">
 | 
			
		||||
                <xs:enumeration value="application"/>
 | 
			
		||||
                <xs:enumeration value="extension"/>
 | 
			
		||||
                <xs:enumeration value="library"/>
 | 
			
		||||
                <xs:enumeration value="stub"/>
 | 
			
		||||
              </xs:restriction>
 | 
			
		||||
            </xs:simpleType>
 | 
			
		||||
          </xs:attribute>
 | 
			
		||||
        </xs:extension>
 | 
			
		||||
      </xs:simpleContent>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="copyright">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:sequence>
 | 
			
		||||
        <xs:choice maxOccurs="unbounded">
 | 
			
		||||
          <xs:element ref="ns:author" minOccurs="1" maxOccurs="unbounded" />
 | 
			
		||||
        </xs:choice>
 | 
			
		||||
        <xs:element ref="ns:license" minOccurs="1" maxOccurs="1" />
 | 
			
		||||
      </xs:sequence>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="author">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:simpleContent>
 | 
			
		||||
        <xs:extension base="xs:string">
 | 
			
		||||
          <xs:attribute type="xs:string" use="required" name="name"/>
 | 
			
		||||
          <xs:attribute type="xs:string" use="optional" name="email"/>
 | 
			
		||||
        </xs:extension>
 | 
			
		||||
      </xs:simpleContent>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="license">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:simpleContent>
 | 
			
		||||
        <xs:extension base="xs:string">
 | 
			
		||||
          <xs:attribute type="xs:string" use="required" name="type"/>
 | 
			
		||||
          <xs:attribute type="xs:string" use="required" name="url"/>
 | 
			
		||||
        </xs:extension>
 | 
			
		||||
      </xs:simpleContent>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="requires">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:sequence>
 | 
			
		||||
        <xs:element ref="ns:php" />
 | 
			
		||||
      </xs:sequence>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="php">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:sequence>
 | 
			
		||||
        <xs:element ref="ns:ext" maxOccurs="unbounded" minOccurs="0"  />
 | 
			
		||||
      </xs:sequence>
 | 
			
		||||
      <xs:attribute type="xs:string" use="required" name="version"/>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="ext">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:simpleContent>
 | 
			
		||||
        <xs:extension base="xs:string">
 | 
			
		||||
          <xs:attribute type="xs:string" name="name" use="required" />
 | 
			
		||||
        </xs:extension>
 | 
			
		||||
      </xs:simpleContent>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="bundles">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:sequence>
 | 
			
		||||
        <xs:element ref="ns:component" maxOccurs="unbounded" minOccurs="0" />
 | 
			
		||||
      </xs:sequence>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
  <xs:element name="component">
 | 
			
		||||
    <xs:complexType>
 | 
			
		||||
      <xs:simpleContent>
 | 
			
		||||
        <xs:extension base="xs:string">
 | 
			
		||||
          <xs:attribute type="xs:string" name="name" use="required"/>
 | 
			
		||||
          <xs:attribute type="xs:string" name="version" use="required"/>
 | 
			
		||||
        </xs:extension>
 | 
			
		||||
      </xs:simpleContent>
 | 
			
		||||
    </xs:complexType>
 | 
			
		||||
  </xs:element>
 | 
			
		||||
 | 
			
		||||
</xs:schema>
 | 
			
		||||
							
								
								
									
										151
									
								
								qwen/php/vendor/phar-io/manifest/src/ManifestDocumentMapper.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								qwen/php/vendor/phar-io/manifest/src/ManifestDocumentMapper.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,151 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\Exception as VersionException;
 | 
			
		||||
use PharIo\Version\Version;
 | 
			
		||||
use PharIo\Version\VersionConstraintParser;
 | 
			
		||||
use Throwable;
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class ManifestDocumentMapper {
 | 
			
		||||
    public function map(ManifestDocument $document): Manifest {
 | 
			
		||||
        try {
 | 
			
		||||
            $contains          = $document->getContainsElement();
 | 
			
		||||
            $type              = $this->mapType($contains);
 | 
			
		||||
            $copyright         = $this->mapCopyright($document->getCopyrightElement());
 | 
			
		||||
            $requirements      = $this->mapRequirements($document->getRequiresElement());
 | 
			
		||||
            $bundledComponents = $this->mapBundledComponents($document);
 | 
			
		||||
 | 
			
		||||
            return new Manifest(
 | 
			
		||||
                new ApplicationName($contains->getName()),
 | 
			
		||||
                new Version($contains->getVersion()),
 | 
			
		||||
                $type,
 | 
			
		||||
                $copyright,
 | 
			
		||||
                $requirements,
 | 
			
		||||
                $bundledComponents
 | 
			
		||||
            );
 | 
			
		||||
        } catch (Throwable $e) {
 | 
			
		||||
            throw new ManifestDocumentMapperException($e->getMessage(), (int)$e->getCode(), $e);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function mapType(ContainsElement $contains): Type {
 | 
			
		||||
        switch ($contains->getType()) {
 | 
			
		||||
            case 'application':
 | 
			
		||||
                return Type::application();
 | 
			
		||||
            case 'library':
 | 
			
		||||
                return Type::library();
 | 
			
		||||
            case 'extension':
 | 
			
		||||
                return $this->mapExtension($contains->getExtensionElement());
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        throw new ManifestDocumentMapperException(
 | 
			
		||||
            sprintf('Unsupported type %s', $contains->getType())
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function mapCopyright(CopyrightElement $copyright): CopyrightInformation {
 | 
			
		||||
        $authors = new AuthorCollection();
 | 
			
		||||
 | 
			
		||||
        foreach ($copyright->getAuthorElements() as $authorElement) {
 | 
			
		||||
            $authors->add(
 | 
			
		||||
                new Author(
 | 
			
		||||
                    $authorElement->getName(),
 | 
			
		||||
                    $authorElement->hasEMail() ? new Email($authorElement->getEmail()) : null
 | 
			
		||||
                )
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $licenseElement = $copyright->getLicenseElement();
 | 
			
		||||
        $license        = new License(
 | 
			
		||||
            $licenseElement->getType(),
 | 
			
		||||
            new Url($licenseElement->getUrl())
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        return new CopyrightInformation(
 | 
			
		||||
            $authors,
 | 
			
		||||
            $license
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function mapRequirements(RequiresElement $requires): RequirementCollection {
 | 
			
		||||
        $collection = new RequirementCollection();
 | 
			
		||||
        $phpElement = $requires->getPHPElement();
 | 
			
		||||
        $parser     = new VersionConstraintParser;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            $versionConstraint = $parser->parse($phpElement->getVersion());
 | 
			
		||||
        } catch (VersionException $e) {
 | 
			
		||||
            throw new ManifestDocumentMapperException(
 | 
			
		||||
                sprintf('Unsupported version constraint - %s', $e->getMessage()),
 | 
			
		||||
                (int)$e->getCode(),
 | 
			
		||||
                $e
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $collection->add(
 | 
			
		||||
            new PhpVersionRequirement(
 | 
			
		||||
                $versionConstraint
 | 
			
		||||
            )
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        if (!$phpElement->hasExtElements()) {
 | 
			
		||||
            return $collection;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        foreach ($phpElement->getExtElements() as $extElement) {
 | 
			
		||||
            $collection->add(
 | 
			
		||||
                new PhpExtensionRequirement($extElement->getName())
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $collection;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function mapBundledComponents(ManifestDocument $document): BundledComponentCollection {
 | 
			
		||||
        $collection = new BundledComponentCollection();
 | 
			
		||||
 | 
			
		||||
        if (!$document->hasBundlesElement()) {
 | 
			
		||||
            return $collection;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        foreach ($document->getBundlesElement()->getComponentElements() as $componentElement) {
 | 
			
		||||
            $collection->add(
 | 
			
		||||
                new BundledComponent(
 | 
			
		||||
                    $componentElement->getName(),
 | 
			
		||||
                    new Version(
 | 
			
		||||
                        $componentElement->getVersion()
 | 
			
		||||
                    )
 | 
			
		||||
                )
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $collection;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function mapExtension(ExtensionElement $extension): Extension {
 | 
			
		||||
        try {
 | 
			
		||||
            $versionConstraint = (new VersionConstraintParser)->parse($extension->getCompatible());
 | 
			
		||||
 | 
			
		||||
            return Type::extension(
 | 
			
		||||
                new ApplicationName($extension->getFor()),
 | 
			
		||||
                $versionConstraint
 | 
			
		||||
            );
 | 
			
		||||
        } catch (VersionException $e) {
 | 
			
		||||
            throw new ManifestDocumentMapperException(
 | 
			
		||||
                sprintf('Unsupported version constraint - %s', $e->getMessage()),
 | 
			
		||||
                (int)$e->getCode(),
 | 
			
		||||
                $e
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/ManifestLoader.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/ManifestLoader.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class ManifestLoader {
 | 
			
		||||
    public static function fromFile(string $filename): Manifest {
 | 
			
		||||
        try {
 | 
			
		||||
            return (new ManifestDocumentMapper())->map(
 | 
			
		||||
                ManifestDocument::fromFile($filename)
 | 
			
		||||
            );
 | 
			
		||||
        } catch (Exception $e) {
 | 
			
		||||
            throw new ManifestLoaderException(
 | 
			
		||||
                sprintf('Loading %s failed.', $filename),
 | 
			
		||||
                (int)$e->getCode(),
 | 
			
		||||
                $e
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function fromPhar(string $filename): Manifest {
 | 
			
		||||
        return self::fromFile('phar://' . $filename . '/manifest.xml');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function fromString(string $manifest): Manifest {
 | 
			
		||||
        try {
 | 
			
		||||
            return (new ManifestDocumentMapper())->map(
 | 
			
		||||
                ManifestDocument::fromString($manifest)
 | 
			
		||||
            );
 | 
			
		||||
        } catch (Exception $e) {
 | 
			
		||||
            throw new ManifestLoaderException(
 | 
			
		||||
                'Processing string failed',
 | 
			
		||||
                (int)$e->getCode(),
 | 
			
		||||
                $e
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										172
									
								
								qwen/php/vendor/phar-io/manifest/src/ManifestSerializer.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								qwen/php/vendor/phar-io/manifest/src/ManifestSerializer.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,172 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\AnyVersionConstraint;
 | 
			
		||||
use PharIo\Version\Version;
 | 
			
		||||
use PharIo\Version\VersionConstraint;
 | 
			
		||||
use XMLWriter;
 | 
			
		||||
use function count;
 | 
			
		||||
use function file_put_contents;
 | 
			
		||||
use function str_repeat;
 | 
			
		||||
 | 
			
		||||
/** @psalm-suppress MissingConstructor */
 | 
			
		||||
class ManifestSerializer {
 | 
			
		||||
    /** @var XMLWriter */
 | 
			
		||||
    private $xmlWriter;
 | 
			
		||||
 | 
			
		||||
    public function serializeToFile(Manifest $manifest, string $filename): void {
 | 
			
		||||
        file_put_contents(
 | 
			
		||||
            $filename,
 | 
			
		||||
            $this->serializeToString($manifest)
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function serializeToString(Manifest $manifest): string {
 | 
			
		||||
        $this->startDocument();
 | 
			
		||||
 | 
			
		||||
        $this->addContains($manifest->getName(), $manifest->getVersion(), $manifest->getType());
 | 
			
		||||
        $this->addCopyright($manifest->getCopyrightInformation());
 | 
			
		||||
        $this->addRequirements($manifest->getRequirements());
 | 
			
		||||
        $this->addBundles($manifest->getBundledComponents());
 | 
			
		||||
 | 
			
		||||
        return $this->finishDocument();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function startDocument(): void {
 | 
			
		||||
        $xmlWriter = new XMLWriter();
 | 
			
		||||
        $xmlWriter->openMemory();
 | 
			
		||||
        $xmlWriter->setIndent(true);
 | 
			
		||||
        $xmlWriter->setIndentString(str_repeat(' ', 4));
 | 
			
		||||
        $xmlWriter->startDocument('1.0', 'UTF-8');
 | 
			
		||||
        $xmlWriter->startElement('phar');
 | 
			
		||||
        $xmlWriter->writeAttribute('xmlns', 'https://phar.io/xml/manifest/1.0');
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter = $xmlWriter;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function finishDocument(): string {
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
        $this->xmlWriter->endDocument();
 | 
			
		||||
 | 
			
		||||
        return $this->xmlWriter->outputMemory();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function addContains(ApplicationName $name, Version $version, Type $type): void {
 | 
			
		||||
        $this->xmlWriter->startElement('contains');
 | 
			
		||||
        $this->xmlWriter->writeAttribute('name', $name->asString());
 | 
			
		||||
        $this->xmlWriter->writeAttribute('version', $version->getVersionString());
 | 
			
		||||
 | 
			
		||||
        switch (true) {
 | 
			
		||||
            case $type->isApplication(): {
 | 
			
		||||
                $this->xmlWriter->writeAttribute('type', 'application');
 | 
			
		||||
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            case $type->isLibrary(): {
 | 
			
		||||
                $this->xmlWriter->writeAttribute('type', 'library');
 | 
			
		||||
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            case $type->isExtension(): {
 | 
			
		||||
                $this->xmlWriter->writeAttribute('type', 'extension');
 | 
			
		||||
                /* @var $type Extension */
 | 
			
		||||
                $this->addExtension(
 | 
			
		||||
                    $type->getApplicationName(),
 | 
			
		||||
                    $type->getVersionConstraint()
 | 
			
		||||
                );
 | 
			
		||||
 | 
			
		||||
                break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            default: {
 | 
			
		||||
                $this->xmlWriter->writeAttribute('type', 'custom');
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function addCopyright(CopyrightInformation $copyrightInformation): void {
 | 
			
		||||
        $this->xmlWriter->startElement('copyright');
 | 
			
		||||
 | 
			
		||||
        foreach ($copyrightInformation->getAuthors() as $author) {
 | 
			
		||||
            $this->xmlWriter->startElement('author');
 | 
			
		||||
            $this->xmlWriter->writeAttribute('name', $author->getName());
 | 
			
		||||
            $this->xmlWriter->writeAttribute('email', $author->getEmail()->asString());
 | 
			
		||||
            $this->xmlWriter->endElement();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $license = $copyrightInformation->getLicense();
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter->startElement('license');
 | 
			
		||||
        $this->xmlWriter->writeAttribute('type', $license->getName());
 | 
			
		||||
        $this->xmlWriter->writeAttribute('url', $license->getUrl()->asString());
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function addRequirements(RequirementCollection $requirementCollection): void {
 | 
			
		||||
        $phpRequirement = new AnyVersionConstraint();
 | 
			
		||||
        $extensions     = [];
 | 
			
		||||
 | 
			
		||||
        foreach ($requirementCollection as $requirement) {
 | 
			
		||||
            if ($requirement instanceof PhpVersionRequirement) {
 | 
			
		||||
                $phpRequirement = $requirement->getVersionConstraint();
 | 
			
		||||
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if ($requirement instanceof PhpExtensionRequirement) {
 | 
			
		||||
                $extensions[] = $requirement->asString();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter->startElement('requires');
 | 
			
		||||
        $this->xmlWriter->startElement('php');
 | 
			
		||||
        $this->xmlWriter->writeAttribute('version', $phpRequirement->asString());
 | 
			
		||||
 | 
			
		||||
        foreach ($extensions as $extension) {
 | 
			
		||||
            $this->xmlWriter->startElement('ext');
 | 
			
		||||
            $this->xmlWriter->writeAttribute('name', $extension);
 | 
			
		||||
            $this->xmlWriter->endElement();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function addBundles(BundledComponentCollection $bundledComponentCollection): void {
 | 
			
		||||
        if (count($bundledComponentCollection) === 0) {
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
        $this->xmlWriter->startElement('bundles');
 | 
			
		||||
 | 
			
		||||
        foreach ($bundledComponentCollection as $bundledComponent) {
 | 
			
		||||
            $this->xmlWriter->startElement('component');
 | 
			
		||||
            $this->xmlWriter->writeAttribute('name', $bundledComponent->getName());
 | 
			
		||||
            $this->xmlWriter->writeAttribute('version', $bundledComponent->getVersion()->getVersionString());
 | 
			
		||||
            $this->xmlWriter->endElement();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function addExtension(ApplicationName $applicationName, VersionConstraint $versionConstraint): void {
 | 
			
		||||
        $this->xmlWriter->startElement('extension');
 | 
			
		||||
        $this->xmlWriter->writeAttribute('for', $applicationName->asString());
 | 
			
		||||
        $this->xmlWriter->writeAttribute('compatible', $versionConstraint->asString());
 | 
			
		||||
        $this->xmlWriter->endElement();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ElementCollectionException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ElementCollectionException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use InvalidArgumentException;
 | 
			
		||||
 | 
			
		||||
class ElementCollectionException extends InvalidArgumentException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/Exception.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/Exception.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Throwable;
 | 
			
		||||
 | 
			
		||||
interface Exception extends Throwable {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/InvalidApplicationNameException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use InvalidArgumentException;
 | 
			
		||||
 | 
			
		||||
class InvalidApplicationNameException extends InvalidArgumentException implements Exception {
 | 
			
		||||
    public const InvalidFormat = 2;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/InvalidEmailException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use InvalidArgumentException;
 | 
			
		||||
 | 
			
		||||
class InvalidEmailException extends InvalidArgumentException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/InvalidUrlException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use InvalidArgumentException;
 | 
			
		||||
 | 
			
		||||
class InvalidUrlException extends InvalidArgumentException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestDocumentException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use RuntimeException;
 | 
			
		||||
 | 
			
		||||
class ManifestDocumentException extends RuntimeException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestDocumentLoadingException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use LibXMLError;
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class ManifestDocumentLoadingException extends \Exception implements Exception {
 | 
			
		||||
    /** @var LibXMLError[] */
 | 
			
		||||
    private $libxmlErrors;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * ManifestDocumentLoadingException constructor.
 | 
			
		||||
     *
 | 
			
		||||
     * @param LibXMLError[] $libxmlErrors
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct(array $libxmlErrors) {
 | 
			
		||||
        $this->libxmlErrors = $libxmlErrors;
 | 
			
		||||
        $first              = $this->libxmlErrors[0];
 | 
			
		||||
 | 
			
		||||
        parent::__construct(
 | 
			
		||||
            sprintf(
 | 
			
		||||
                '%s (Line: %d / Column: %d / File: %s)',
 | 
			
		||||
                $first->message,
 | 
			
		||||
                $first->line,
 | 
			
		||||
                $first->column,
 | 
			
		||||
                $first->file
 | 
			
		||||
            ),
 | 
			
		||||
            $first->code
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return LibXMLError[]
 | 
			
		||||
     */
 | 
			
		||||
    public function getLibxmlErrors(): array {
 | 
			
		||||
        return $this->libxmlErrors;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestDocumentMapperException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use RuntimeException;
 | 
			
		||||
 | 
			
		||||
class ManifestDocumentMapperException extends RuntimeException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestElementException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestElementException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use RuntimeException;
 | 
			
		||||
 | 
			
		||||
class ManifestElementException extends RuntimeException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestLoaderException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/ManifestLoaderException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ManifestLoaderException extends \Exception implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/NoEmailAddressException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								qwen/php/vendor/phar-io/manifest/src/exceptions/NoEmailAddressException.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use InvalidArgumentException;
 | 
			
		||||
 | 
			
		||||
class NoEmailAddressException extends InvalidArgumentException implements Exception {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Application.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Application.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class Application extends Type {
 | 
			
		||||
    public function isApplication(): bool {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										41
									
								
								qwen/php/vendor/phar-io/manifest/src/values/ApplicationName.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								qwen/php/vendor/phar-io/manifest/src/values/ApplicationName.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,41 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use function preg_match;
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class ApplicationName {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $name;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $name) {
 | 
			
		||||
        $this->ensureValidFormat($name);
 | 
			
		||||
        $this->name = $name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function asString(): string {
 | 
			
		||||
        return $this->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isEqual(ApplicationName $name): bool {
 | 
			
		||||
        return $this->name === $name->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function ensureValidFormat(string $name): void {
 | 
			
		||||
        if (!preg_match('#\w/\w#', $name)) {
 | 
			
		||||
            throw new InvalidApplicationNameException(
 | 
			
		||||
                sprintf('Format of name "%s" is not valid - expected: vendor/packagename', $name),
 | 
			
		||||
                InvalidApplicationNameException::InvalidFormat
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										57
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Author.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Author.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class Author {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $name;
 | 
			
		||||
 | 
			
		||||
    /** @var null|Email */
 | 
			
		||||
    private $email;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $name, ?Email $email = null) {
 | 
			
		||||
        $this->name  = $name;
 | 
			
		||||
        $this->email = $email;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function asString(): string {
 | 
			
		||||
        if (!$this->hasEmail()) {
 | 
			
		||||
            return $this->name;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return sprintf(
 | 
			
		||||
            '%s <%s>',
 | 
			
		||||
            $this->name,
 | 
			
		||||
            $this->email->asString()
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @psalm-assert-if-true Email $this->email
 | 
			
		||||
     */
 | 
			
		||||
    public function hasEmail(): bool {
 | 
			
		||||
        return $this->email !== null;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getEmail(): Email {
 | 
			
		||||
        if (!$this->hasEmail()) {
 | 
			
		||||
            throw new NoEmailAddressException();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $this->email;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								qwen/php/vendor/phar-io/manifest/src/values/AuthorCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								qwen/php/vendor/phar-io/manifest/src/values/AuthorCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Countable;
 | 
			
		||||
use IteratorAggregate;
 | 
			
		||||
use function count;
 | 
			
		||||
 | 
			
		||||
/** @template-implements IteratorAggregate<int,Author> */
 | 
			
		||||
class AuthorCollection implements Countable, IteratorAggregate {
 | 
			
		||||
    /** @var Author[] */
 | 
			
		||||
    private $authors = [];
 | 
			
		||||
 | 
			
		||||
    public function add(Author $author): void {
 | 
			
		||||
        $this->authors[] = $author;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return Author[]
 | 
			
		||||
     */
 | 
			
		||||
    public function getAuthors(): array {
 | 
			
		||||
        return $this->authors;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function count(): int {
 | 
			
		||||
        return count($this->authors);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getIterator(): AuthorCollectionIterator {
 | 
			
		||||
        return new AuthorCollectionIterator($this);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/AuthorCollectionIterator.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Iterator;
 | 
			
		||||
use function count;
 | 
			
		||||
 | 
			
		||||
/** @template-implements Iterator<int,Author> */
 | 
			
		||||
class AuthorCollectionIterator implements Iterator {
 | 
			
		||||
    /** @var Author[] */
 | 
			
		||||
    private $authors;
 | 
			
		||||
 | 
			
		||||
    /** @var int */
 | 
			
		||||
    private $position = 0;
 | 
			
		||||
 | 
			
		||||
    public function __construct(AuthorCollection $authors) {
 | 
			
		||||
        $this->authors = $authors->getAuthors();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function rewind(): void {
 | 
			
		||||
        $this->position = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function valid(): bool {
 | 
			
		||||
        return $this->position < count($this->authors);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function key(): int {
 | 
			
		||||
        return $this->position;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function current(): Author {
 | 
			
		||||
        return $this->authors[$this->position];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function next(): void {
 | 
			
		||||
        $this->position++;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								qwen/php/vendor/phar-io/manifest/src/values/BundledComponent.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								qwen/php/vendor/phar-io/manifest/src/values/BundledComponent.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\Version;
 | 
			
		||||
 | 
			
		||||
class BundledComponent {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $name;
 | 
			
		||||
 | 
			
		||||
    /** @var Version */
 | 
			
		||||
    private $version;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $name, Version $version) {
 | 
			
		||||
        $this->name    = $name;
 | 
			
		||||
        $this->version = $version;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getVersion(): Version {
 | 
			
		||||
        return $this->version;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								qwen/php/vendor/phar-io/manifest/src/values/BundledComponentCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								qwen/php/vendor/phar-io/manifest/src/values/BundledComponentCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Countable;
 | 
			
		||||
use IteratorAggregate;
 | 
			
		||||
use function count;
 | 
			
		||||
 | 
			
		||||
/** @template-implements IteratorAggregate<int,BundledComponent> */
 | 
			
		||||
class BundledComponentCollection implements Countable, IteratorAggregate {
 | 
			
		||||
    /** @var BundledComponent[] */
 | 
			
		||||
    private $bundledComponents = [];
 | 
			
		||||
 | 
			
		||||
    public function add(BundledComponent $bundledComponent): void {
 | 
			
		||||
        $this->bundledComponents[] = $bundledComponent;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return BundledComponent[]
 | 
			
		||||
     */
 | 
			
		||||
    public function getBundledComponents(): array {
 | 
			
		||||
        return $this->bundledComponents;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function count(): int {
 | 
			
		||||
        return count($this->bundledComponents);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getIterator(): BundledComponentCollectionIterator {
 | 
			
		||||
        return new BundledComponentCollectionIterator($this);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/BundledComponentCollectionIterator.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Iterator;
 | 
			
		||||
use function count;
 | 
			
		||||
 | 
			
		||||
/** @template-implements Iterator<int,BundledComponent> */
 | 
			
		||||
class BundledComponentCollectionIterator implements Iterator {
 | 
			
		||||
    /** @var BundledComponent[] */
 | 
			
		||||
    private $bundledComponents;
 | 
			
		||||
 | 
			
		||||
    /** @var int */
 | 
			
		||||
    private $position = 0;
 | 
			
		||||
 | 
			
		||||
    public function __construct(BundledComponentCollection $bundledComponents) {
 | 
			
		||||
        $this->bundledComponents = $bundledComponents->getBundledComponents();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function rewind(): void {
 | 
			
		||||
        $this->position = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function valid(): bool {
 | 
			
		||||
        return $this->position < count($this->bundledComponents);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function key(): int {
 | 
			
		||||
        return $this->position;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function current(): BundledComponent {
 | 
			
		||||
        return $this->bundledComponents[$this->position];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function next(): void {
 | 
			
		||||
        $this->position++;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								qwen/php/vendor/phar-io/manifest/src/values/CopyrightInformation.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								qwen/php/vendor/phar-io/manifest/src/values/CopyrightInformation.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class CopyrightInformation {
 | 
			
		||||
    /** @var AuthorCollection */
 | 
			
		||||
    private $authors;
 | 
			
		||||
 | 
			
		||||
    /** @var License */
 | 
			
		||||
    private $license;
 | 
			
		||||
 | 
			
		||||
    public function __construct(AuthorCollection $authors, License $license) {
 | 
			
		||||
        $this->authors = $authors;
 | 
			
		||||
        $this->license = $license;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getAuthors(): AuthorCollection {
 | 
			
		||||
        return $this->authors;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLicense(): License {
 | 
			
		||||
        return $this->license;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										35
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Email.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Email.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use const FILTER_VALIDATE_EMAIL;
 | 
			
		||||
use function filter_var;
 | 
			
		||||
 | 
			
		||||
class Email {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $email;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $email) {
 | 
			
		||||
        $this->ensureEmailIsValid($email);
 | 
			
		||||
 | 
			
		||||
        $this->email = $email;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function asString(): string {
 | 
			
		||||
        return $this->email;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function ensureEmailIsValid(string $url): void {
 | 
			
		||||
        if (filter_var($url, FILTER_VALIDATE_EMAIL) === false) {
 | 
			
		||||
            throw new InvalidEmailException;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Extension.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Extension.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\Version;
 | 
			
		||||
use PharIo\Version\VersionConstraint;
 | 
			
		||||
 | 
			
		||||
class Extension extends Type {
 | 
			
		||||
    /** @var ApplicationName */
 | 
			
		||||
    private $application;
 | 
			
		||||
 | 
			
		||||
    /** @var VersionConstraint */
 | 
			
		||||
    private $versionConstraint;
 | 
			
		||||
 | 
			
		||||
    public function __construct(ApplicationName $application, VersionConstraint $versionConstraint) {
 | 
			
		||||
        $this->application       = $application;
 | 
			
		||||
        $this->versionConstraint = $versionConstraint;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getApplicationName(): ApplicationName {
 | 
			
		||||
        return $this->application;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getVersionConstraint(): VersionConstraint {
 | 
			
		||||
        return $this->versionConstraint;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isExtension(): bool {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isExtensionFor(ApplicationName $name): bool {
 | 
			
		||||
        return $this->application->isEqual($name);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isCompatibleWith(ApplicationName $name, Version $version): bool {
 | 
			
		||||
        return $this->isExtensionFor($name) && $this->versionConstraint->complies($version);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Library.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Library.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class Library extends Type {
 | 
			
		||||
    public function isLibrary(): bool {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								qwen/php/vendor/phar-io/manifest/src/values/License.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								qwen/php/vendor/phar-io/manifest/src/values/License.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class License {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $name;
 | 
			
		||||
 | 
			
		||||
    /** @var Url */
 | 
			
		||||
    private $url;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $name, Url $url) {
 | 
			
		||||
        $this->name = $name;
 | 
			
		||||
        $this->url  = $url;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getUrl(): Url {
 | 
			
		||||
        return $this->url;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										93
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Manifest.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Manifest.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,93 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\Version;
 | 
			
		||||
 | 
			
		||||
class Manifest {
 | 
			
		||||
    /** @var ApplicationName */
 | 
			
		||||
    private $name;
 | 
			
		||||
 | 
			
		||||
    /** @var Version */
 | 
			
		||||
    private $version;
 | 
			
		||||
 | 
			
		||||
    /** @var Type */
 | 
			
		||||
    private $type;
 | 
			
		||||
 | 
			
		||||
    /** @var CopyrightInformation */
 | 
			
		||||
    private $copyrightInformation;
 | 
			
		||||
 | 
			
		||||
    /** @var RequirementCollection */
 | 
			
		||||
    private $requirements;
 | 
			
		||||
 | 
			
		||||
    /** @var BundledComponentCollection */
 | 
			
		||||
    private $bundledComponents;
 | 
			
		||||
 | 
			
		||||
    public function __construct(ApplicationName $name, Version $version, Type $type, CopyrightInformation $copyrightInformation, RequirementCollection $requirements, BundledComponentCollection $bundledComponents) {
 | 
			
		||||
        $this->name                 = $name;
 | 
			
		||||
        $this->version              = $version;
 | 
			
		||||
        $this->type                 = $type;
 | 
			
		||||
        $this->copyrightInformation = $copyrightInformation;
 | 
			
		||||
        $this->requirements         = $requirements;
 | 
			
		||||
        $this->bundledComponents    = $bundledComponents;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getName(): ApplicationName {
 | 
			
		||||
        return $this->name;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getVersion(): Version {
 | 
			
		||||
        return $this->version;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getType(): Type {
 | 
			
		||||
        return $this->type;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getCopyrightInformation(): CopyrightInformation {
 | 
			
		||||
        return $this->copyrightInformation;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getRequirements(): RequirementCollection {
 | 
			
		||||
        return $this->requirements;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getBundledComponents(): BundledComponentCollection {
 | 
			
		||||
        return $this->bundledComponents;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isApplication(): bool {
 | 
			
		||||
        return $this->type->isApplication();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isLibrary(): bool {
 | 
			
		||||
        return $this->type->isLibrary();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isExtension(): bool {
 | 
			
		||||
        return $this->type->isExtension();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isExtensionFor(ApplicationName $application, ?Version $version = null): bool {
 | 
			
		||||
        if (!$this->isExtension()) {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /** @var Extension $type */
 | 
			
		||||
        $type = $this->type;
 | 
			
		||||
 | 
			
		||||
        if ($version !== null) {
 | 
			
		||||
            return $type->isCompatibleWith($application, $version);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $type->isExtensionFor($application);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								qwen/php/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								qwen/php/vendor/phar-io/manifest/src/values/PhpExtensionRequirement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class PhpExtensionRequirement implements Requirement {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $extension;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $extension) {
 | 
			
		||||
        $this->extension = $extension;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function asString(): string {
 | 
			
		||||
        return $this->extension;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										26
									
								
								qwen/php/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								qwen/php/vendor/phar-io/manifest/src/values/PhpVersionRequirement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\VersionConstraint;
 | 
			
		||||
 | 
			
		||||
class PhpVersionRequirement implements Requirement {
 | 
			
		||||
    /** @var VersionConstraint */
 | 
			
		||||
    private $versionConstraint;
 | 
			
		||||
 | 
			
		||||
    public function __construct(VersionConstraint $versionConstraint) {
 | 
			
		||||
        $this->versionConstraint = $versionConstraint;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getVersionConstraint(): VersionConstraint {
 | 
			
		||||
        return $this->versionConstraint;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Requirement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Requirement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
interface Requirement {
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										40
									
								
								qwen/php/vendor/phar-io/manifest/src/values/RequirementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								qwen/php/vendor/phar-io/manifest/src/values/RequirementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Countable;
 | 
			
		||||
use IteratorAggregate;
 | 
			
		||||
use function count;
 | 
			
		||||
 | 
			
		||||
/** @template-implements IteratorAggregate<int,Requirement> */
 | 
			
		||||
class RequirementCollection implements Countable, IteratorAggregate {
 | 
			
		||||
    /** @var Requirement[] */
 | 
			
		||||
    private $requirements = [];
 | 
			
		||||
 | 
			
		||||
    public function add(Requirement $requirement): void {
 | 
			
		||||
        $this->requirements[] = $requirement;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @return Requirement[]
 | 
			
		||||
     */
 | 
			
		||||
    public function getRequirements(): array {
 | 
			
		||||
        return $this->requirements;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function count(): int {
 | 
			
		||||
        return count($this->requirements);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getIterator(): RequirementCollectionIterator {
 | 
			
		||||
        return new RequirementCollectionIterator($this);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								qwen/php/vendor/phar-io/manifest/src/values/RequirementCollectionIterator.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,47 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use Iterator;
 | 
			
		||||
use function count;
 | 
			
		||||
 | 
			
		||||
/** @template-implements Iterator<int,Requirement> */
 | 
			
		||||
class RequirementCollectionIterator implements Iterator {
 | 
			
		||||
    /** @var Requirement[] */
 | 
			
		||||
    private $requirements;
 | 
			
		||||
 | 
			
		||||
    /** @var int */
 | 
			
		||||
    private $position = 0;
 | 
			
		||||
 | 
			
		||||
    public function __construct(RequirementCollection $requirements) {
 | 
			
		||||
        $this->requirements = $requirements->getRequirements();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function rewind(): void {
 | 
			
		||||
        $this->position = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function valid(): bool {
 | 
			
		||||
        return $this->position < count($this->requirements);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function key(): int {
 | 
			
		||||
        return $this->position;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function current(): Requirement {
 | 
			
		||||
        return $this->requirements[$this->position];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function next(): void {
 | 
			
		||||
        $this->position++;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										42
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Type.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Type.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use PharIo\Version\VersionConstraint;
 | 
			
		||||
 | 
			
		||||
abstract class Type {
 | 
			
		||||
    public static function application(): Application {
 | 
			
		||||
        return new Application;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function library(): Library {
 | 
			
		||||
        return new Library;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function extension(ApplicationName $application, VersionConstraint $versionConstraint): Extension {
 | 
			
		||||
        return new Extension($application, $versionConstraint);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** @psalm-assert-if-true Application $this */
 | 
			
		||||
    public function isApplication(): bool {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** @psalm-assert-if-true Library $this */
 | 
			
		||||
    public function isLibrary(): bool {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /** @psalm-assert-if-true Extension $this */
 | 
			
		||||
    public function isExtension(): bool {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										38
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Url.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								qwen/php/vendor/phar-io/manifest/src/values/Url.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use const FILTER_VALIDATE_URL;
 | 
			
		||||
use function filter_var;
 | 
			
		||||
 | 
			
		||||
class Url {
 | 
			
		||||
    /** @var string */
 | 
			
		||||
    private $url;
 | 
			
		||||
 | 
			
		||||
    public function __construct(string $url) {
 | 
			
		||||
        $this->ensureUrlIsValid($url);
 | 
			
		||||
 | 
			
		||||
        $this->url = $url;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function asString(): string {
 | 
			
		||||
        return $this->url;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @throws InvalidUrlException
 | 
			
		||||
     */
 | 
			
		||||
    private function ensureUrlIsValid(string $url): void {
 | 
			
		||||
        if (filter_var($url, FILTER_VALIDATE_URL) === false) {
 | 
			
		||||
            throw new InvalidUrlException;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/AuthorElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/AuthorElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class AuthorElement extends ManifestElement {
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->getAttributeValue('name');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getEmail(): string {
 | 
			
		||||
        return $this->getAttributeValue('email');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function hasEMail(): bool {
 | 
			
		||||
        return $this->hasAttribute('email');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/AuthorElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class AuthorElementCollection extends ElementCollection {
 | 
			
		||||
    public function current(): AuthorElement {
 | 
			
		||||
        return new AuthorElement(
 | 
			
		||||
            $this->getCurrentElement()
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/BundlesElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/BundlesElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class BundlesElement extends ManifestElement {
 | 
			
		||||
    public function getComponentElements(): ComponentElementCollection {
 | 
			
		||||
        return new ComponentElementCollection(
 | 
			
		||||
            $this->getChildrenByName('component')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ComponentElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ComponentElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ComponentElement extends ManifestElement {
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->getAttributeValue('name');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getVersion(): string {
 | 
			
		||||
        return $this->getAttributeValue('version');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ComponentElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ComponentElementCollection extends ElementCollection {
 | 
			
		||||
    public function current(): ComponentElement {
 | 
			
		||||
        return new ComponentElement(
 | 
			
		||||
            $this->getCurrentElement()
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										31
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ContainsElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ContainsElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ContainsElement extends ManifestElement {
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->getAttributeValue('name');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getVersion(): string {
 | 
			
		||||
        return $this->getAttributeValue('version');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getType(): string {
 | 
			
		||||
        return $this->getAttributeValue('type');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getExtensionElement(): ExtensionElement {
 | 
			
		||||
        return new ExtensionElement(
 | 
			
		||||
            $this->getChildByName('extension')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/CopyrightElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/CopyrightElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class CopyrightElement extends ManifestElement {
 | 
			
		||||
    public function getAuthorElements(): AuthorElementCollection {
 | 
			
		||||
        return new AuthorElementCollection(
 | 
			
		||||
            $this->getChildrenByName('author')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getLicenseElement(): LicenseElement {
 | 
			
		||||
        return new LicenseElement(
 | 
			
		||||
            $this->getChildByName('license')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										68
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,68 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use DOMElement;
 | 
			
		||||
use DOMNodeList;
 | 
			
		||||
use Iterator;
 | 
			
		||||
use ReturnTypeWillChange;
 | 
			
		||||
use function count;
 | 
			
		||||
use function get_class;
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
/** @template-implements Iterator<int,DOMElement> */
 | 
			
		||||
abstract class ElementCollection implements Iterator {
 | 
			
		||||
    /** @var DOMElement[] */
 | 
			
		||||
    private $nodes = [];
 | 
			
		||||
 | 
			
		||||
    /** @var int */
 | 
			
		||||
    private $position;
 | 
			
		||||
 | 
			
		||||
    public function __construct(DOMNodeList $nodeList) {
 | 
			
		||||
        $this->position = 0;
 | 
			
		||||
        $this->importNodes($nodeList);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #[ReturnTypeWillChange]
 | 
			
		||||
    abstract public function current();
 | 
			
		||||
 | 
			
		||||
    public function next(): void {
 | 
			
		||||
        $this->position++;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function key(): int {
 | 
			
		||||
        return $this->position;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function valid(): bool {
 | 
			
		||||
        return $this->position < count($this->nodes);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function rewind(): void {
 | 
			
		||||
        $this->position = 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function getCurrentElement(): DOMElement {
 | 
			
		||||
        return $this->nodes[$this->position];
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function importNodes(DOMNodeList $nodeList): void {
 | 
			
		||||
        foreach ($nodeList as $node) {
 | 
			
		||||
            if (!$node instanceof DOMElement) {
 | 
			
		||||
                throw new ElementCollectionException(
 | 
			
		||||
                    sprintf('\DOMElement expected, got \%s', get_class($node))
 | 
			
		||||
                );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            $this->nodes[] = $node;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ExtElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ExtElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ExtElement extends ManifestElement {
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return $this->getAttributeValue('name');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ExtElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ExtElementCollection.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ExtElementCollection extends ElementCollection {
 | 
			
		||||
    public function current(): ExtElement {
 | 
			
		||||
        return new ExtElement(
 | 
			
		||||
            $this->getCurrentElement()
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ExtensionElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ExtensionElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class ExtensionElement extends ManifestElement {
 | 
			
		||||
    public function getFor(): string {
 | 
			
		||||
        return $this->getAttributeValue('for');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getCompatible(): string {
 | 
			
		||||
        return $this->getAttributeValue('compatible');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										21
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/LicenseElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/LicenseElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class LicenseElement extends ManifestElement {
 | 
			
		||||
    public function getType(): string {
 | 
			
		||||
        return $this->getAttributeValue('type');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getUrl(): string {
 | 
			
		||||
        return $this->getAttributeValue('url');
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										115
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ManifestDocument.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										115
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ManifestDocument.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,115 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use DOMDocument;
 | 
			
		||||
use DOMElement;
 | 
			
		||||
use Throwable;
 | 
			
		||||
use function count;
 | 
			
		||||
use function file_get_contents;
 | 
			
		||||
use function is_file;
 | 
			
		||||
use function libxml_clear_errors;
 | 
			
		||||
use function libxml_get_errors;
 | 
			
		||||
use function libxml_use_internal_errors;
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class ManifestDocument {
 | 
			
		||||
    public const XMLNS = 'https://phar.io/xml/manifest/1.0';
 | 
			
		||||
 | 
			
		||||
    /** @var DOMDocument */
 | 
			
		||||
    private $dom;
 | 
			
		||||
 | 
			
		||||
    public static function fromFile(string $filename): ManifestDocument {
 | 
			
		||||
        if (!is_file($filename)) {
 | 
			
		||||
            throw new ManifestDocumentException(
 | 
			
		||||
                sprintf('File "%s" not found', $filename)
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return self::fromString(
 | 
			
		||||
            file_get_contents($filename)
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public static function fromString(string $xmlString): ManifestDocument {
 | 
			
		||||
        $prev = libxml_use_internal_errors(true);
 | 
			
		||||
        libxml_clear_errors();
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            $dom = new DOMDocument();
 | 
			
		||||
            $dom->loadXML($xmlString);
 | 
			
		||||
            $errors = libxml_get_errors();
 | 
			
		||||
            libxml_use_internal_errors($prev);
 | 
			
		||||
        } catch (Throwable $t) {
 | 
			
		||||
            throw new ManifestDocumentException($t->getMessage(), 0, $t);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (count($errors) !== 0) {
 | 
			
		||||
            throw new ManifestDocumentLoadingException($errors);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return new self($dom);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function __construct(DOMDocument $dom) {
 | 
			
		||||
        $this->ensureCorrectDocumentType($dom);
 | 
			
		||||
 | 
			
		||||
        $this->dom = $dom;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getContainsElement(): ContainsElement {
 | 
			
		||||
        return new ContainsElement(
 | 
			
		||||
            $this->fetchElementByName('contains')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getCopyrightElement(): CopyrightElement {
 | 
			
		||||
        return new CopyrightElement(
 | 
			
		||||
            $this->fetchElementByName('copyright')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getRequiresElement(): RequiresElement {
 | 
			
		||||
        return new RequiresElement(
 | 
			
		||||
            $this->fetchElementByName('requires')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function hasBundlesElement(): bool {
 | 
			
		||||
        return $this->dom->getElementsByTagNameNS(self::XMLNS, 'bundles')->length === 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getBundlesElement(): BundlesElement {
 | 
			
		||||
        return new BundlesElement(
 | 
			
		||||
            $this->fetchElementByName('bundles')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function ensureCorrectDocumentType(DOMDocument $dom): void {
 | 
			
		||||
        $root = $dom->documentElement;
 | 
			
		||||
 | 
			
		||||
        if ($root->localName !== 'phar' || $root->namespaceURI !== self::XMLNS) {
 | 
			
		||||
            throw new ManifestDocumentException('Not a phar.io manifest document');
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function fetchElementByName(string $elementName): DOMElement {
 | 
			
		||||
        $element = $this->dom->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0);
 | 
			
		||||
 | 
			
		||||
        if (!$element instanceof DOMElement) {
 | 
			
		||||
            throw new ManifestDocumentException(
 | 
			
		||||
                sprintf('Element %s missing', $elementName)
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $element;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ManifestElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/ManifestElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
use DOMElement;
 | 
			
		||||
use DOMNodeList;
 | 
			
		||||
use function sprintf;
 | 
			
		||||
 | 
			
		||||
class ManifestElement {
 | 
			
		||||
    public const XMLNS = 'https://phar.io/xml/manifest/1.0';
 | 
			
		||||
 | 
			
		||||
    /** @var DOMElement */
 | 
			
		||||
    private $element;
 | 
			
		||||
 | 
			
		||||
    public function __construct(DOMElement $element) {
 | 
			
		||||
        $this->element = $element;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function getAttributeValue(string $name): string {
 | 
			
		||||
        if (!$this->element->hasAttribute($name)) {
 | 
			
		||||
            throw new ManifestElementException(
 | 
			
		||||
                sprintf(
 | 
			
		||||
                    'Attribute %s not set on element %s',
 | 
			
		||||
                    $name,
 | 
			
		||||
                    $this->element->localName
 | 
			
		||||
                )
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $this->element->getAttribute($name);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function hasAttribute(string $name): bool {
 | 
			
		||||
        return $this->element->hasAttribute($name);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function getChildByName(string $elementName): DOMElement {
 | 
			
		||||
        $element = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->item(0);
 | 
			
		||||
 | 
			
		||||
        if (!$element instanceof DOMElement) {
 | 
			
		||||
            throw new ManifestElementException(
 | 
			
		||||
                sprintf('Element %s missing', $elementName)
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $element;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function getChildrenByName(string $elementName): DOMNodeList {
 | 
			
		||||
        $elementList = $this->element->getElementsByTagNameNS(self::XMLNS, $elementName);
 | 
			
		||||
 | 
			
		||||
        if ($elementList->length === 0) {
 | 
			
		||||
            throw new ManifestElementException(
 | 
			
		||||
                sprintf('Element(s) %s missing', $elementName)
 | 
			
		||||
            );
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $elementList;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function hasChild(string $elementName): bool {
 | 
			
		||||
        return $this->element->getElementsByTagNameNS(self::XMLNS, $elementName)->length !== 0;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										27
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/PhpElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/PhpElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class PhpElement extends ManifestElement {
 | 
			
		||||
    public function getVersion(): string {
 | 
			
		||||
        return $this->getAttributeValue('version');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function hasExtElements(): bool {
 | 
			
		||||
        return $this->hasChild('ext');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getExtElements(): ExtElementCollection {
 | 
			
		||||
        return new ExtElementCollection(
 | 
			
		||||
            $this->getChildrenByName('ext')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/RequiresElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								qwen/php/vendor/phar-io/manifest/src/xml/RequiresElement.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
			
		||||
<?php declare(strict_types = 1);
 | 
			
		||||
/*
 | 
			
		||||
 * This file is part of PharIo\Manifest.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 *
 | 
			
		||||
 * For the full copyright and license information, please view the LICENSE
 | 
			
		||||
 * file that was distributed with this source code.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
namespace PharIo\Manifest;
 | 
			
		||||
 | 
			
		||||
class RequiresElement extends ManifestElement {
 | 
			
		||||
    public function getPHPElement(): PhpElement {
 | 
			
		||||
        return new PhpElement(
 | 
			
		||||
            $this->getChildByName('php')
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										72
									
								
								qwen/php/vendor/phar-io/manifest/tools/php-cs-fixer.d/PhpdocSingleLineVarFixer.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								qwen/php/vendor/phar-io/manifest/tools/php-cs-fixer.d/PhpdocSingleLineVarFixer.php
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,72 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace PharIo\CSFixer;
 | 
			
		||||
 | 
			
		||||
use PhpCsFixer\Fixer\FixerInterface;
 | 
			
		||||
use PhpCsFixer\FixerDefinition\FixerDefinition;
 | 
			
		||||
use PhpCsFixer\Tokenizer\Tokens;
 | 
			
		||||
use PhpCsFixer\Tokenizer\Token;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Main implementation taken from kubawerlos/php-cs-fixer-customere-fixers
 | 
			
		||||
 * Copyright (c) 2018 Kuba Werłos
 | 
			
		||||
 *
 | 
			
		||||
 * Slightly modified to work without the gazillion of composer dependencies
 | 
			
		||||
 *
 | 
			
		||||
 * Original:
 | 
			
		||||
 * https://github.com/kubawerlos/php-cs-fixer-custom-fixers/blob/master/src/Fixer/PhpdocSingleLineVarFixer.php
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
class PhpdocSingleLineVarFixer implements FixerInterface {
 | 
			
		||||
 | 
			
		||||
    public function getDefinition(): FixerDefinition {
 | 
			
		||||
        return new FixerDefinition(
 | 
			
		||||
            '`@var` annotation must be in single line when is the only content.',
 | 
			
		||||
            [new CodeSample('<?php
 | 
			
		||||
                    /**
 | 
			
		||||
                     * @var string
 | 
			
		||||
                     */
 | 
			
		||||
                ')]
 | 
			
		||||
        );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isCandidate(Tokens $tokens): bool {
 | 
			
		||||
        return $tokens->isTokenKindFound(T_DOC_COMMENT);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function isRisky(): bool {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function fix(\SplFileInfo $file, Tokens $tokens): void {
 | 
			
		||||
        foreach($tokens as $index => $token) {
 | 
			
		||||
            if (!$token->isGivenKind(T_DOC_COMMENT)) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            if (\stripos($token->getContent(), '@var') === false) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (preg_match('#^/\*\*[\s\*]+(@var[^\r\n]+)[\s\*]*\*\/$#u', $token->getContent(), $matches) !== 1) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            $newContent = '/** ' . \rtrim($matches[1]) . ' */';
 | 
			
		||||
            if ($newContent === $token->getContent()) {
 | 
			
		||||
                continue;
 | 
			
		||||
            }
 | 
			
		||||
            $tokens[$index] = new Token([T_DOC_COMMENT, $newContent]);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getPriority(): int {
 | 
			
		||||
        return 0;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getName(): string {
 | 
			
		||||
        return 'PharIo/phpdoc_single_line_var_fixer';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function supports(\SplFileInfo $file): bool {
 | 
			
		||||
        return true;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								qwen/php/vendor/phar-io/manifest/tools/php-cs-fixer.d/header.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								qwen/php/vendor/phar-io/manifest/tools/php-cs-fixer.d/header.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
This file is part of PharIo\Manifest.
 | 
			
		||||
 | 
			
		||||
Copyright (c) Arne Blankerts <arne@blankerts.de>, Sebastian Heuer <sebastian@phpeople.de>, Sebastian Bergmann <sebastian@phpunit.de> and contributors
 | 
			
		||||
 | 
			
		||||
For the full copyright and license information, please view the LICENSE
 | 
			
		||||
file that was distributed with this source code.
 | 
			
		||||
		Reference in New Issue
	
	Block a user