From 354a03b34a3d0d394df5f3634c3104dcda5ea2ba Mon Sep 17 00:00:00 2001 From: Josha von Gizycki Date: Fri, 31 Dec 2021 19:27:14 +0100 Subject: [PATCH] fiddling around with id3 --- .editorconfig | 1456 ++++++++++++++++++ .env | 2 + .gitignore | 2 + .php-version | 1 + bin/console | 6 +- bin/phpunit | 8 +- composer.json | 10 +- composer.lock | 271 +++- config/packages/doctrine.yaml | 2 +- migrations/Version20211217152806.php | 31 + src/Adapter/ScannedSong.php | 17 + src/Adapter/SongScanner.php | 60 + src/Controller/Home.php | 20 + src/Entity/Song.php | 97 ++ src/Repository/SongRepository.php | 49 + symfony.lock | 9 + templates/home.html.twig | 1 + tests/Adapter/1-second-of-silence.mp3 | Bin 0 -> 37206 bytes tests/Adapter/SongScannerTest.php | 16 + tests/Adapter/mock-band-a-album-a-song-1.mp3 | Bin 0 -> 37078 bytes tests/Adapter/mock-band-a-album-a-song-2.mp3 | Bin 0 -> 37078 bytes tests/Adapter/mock-band-a-album-b-song-1.mp3 | Bin 0 -> 37078 bytes tests/Adapter/mock-band-b-album-a-song-1.mp3 | Bin 0 -> 37078 bytes 23 files changed, 1963 insertions(+), 95 deletions(-) create mode 100644 .editorconfig create mode 100644 .php-version create mode 100644 migrations/Version20211217152806.php create mode 100644 src/Adapter/ScannedSong.php create mode 100644 src/Adapter/SongScanner.php create mode 100644 src/Controller/Home.php create mode 100644 src/Entity/Song.php create mode 100644 src/Repository/SongRepository.php create mode 100644 templates/home.html.twig create mode 100644 tests/Adapter/1-second-of-silence.mp3 create mode 100644 tests/Adapter/SongScannerTest.php create mode 100644 tests/Adapter/mock-band-a-album-a-song-1.mp3 create mode 100644 tests/Adapter/mock-band-a-album-a-song-2.mp3 create mode 100644 tests/Adapter/mock-band-a-album-b-song-1.mp3 create mode 100644 tests/Adapter/mock-band-b-album-a-song-1.mp3 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..191de8d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,1456 @@ +[*] +charset = utf-8 +end_of_line = lf +indent_size = 4 +indent_style = space +insert_final_newline = true +max_line_length = 100 +tab_width = 4 +ij_continuation_indent_size = 8 +ij_formatter_off_tag = @formatter:off +ij_formatter_on_tag = @formatter:on +ij_formatter_tags_enabled = true +ij_smart_tabs = false +ij_visual_guides = 80,100,120 +ij_wrap_on_typing = false + +[*.clj] +ij_visual_guides = none + +[*.css] +ij_visual_guides = none +ij_css_align_closing_brace_with_properties = false +ij_css_blank_lines_around_nested_selector = 1 +ij_css_blank_lines_between_blocks = 1 +ij_css_brace_placement = end_of_line +ij_css_enforce_quotes_on_format = false +ij_css_hex_color_long_format = false +ij_css_hex_color_lower_case = false +ij_css_hex_color_short_format = false +ij_css_hex_color_upper_case = false +ij_css_keep_blank_lines_in_code = 2 +ij_css_keep_indents_on_empty_lines = false +ij_css_keep_single_line_blocks = false +ij_css_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_css_space_after_colon = true +ij_css_space_before_opening_brace = true +ij_css_use_double_quotes = true +ij_css_value_alignment = do_not_align + +[*.feature] +indent_size = 2 +ij_visual_guides = none +ij_gherkin_keep_indents_on_empty_lines = false + +[*.gsp] +ij_visual_guides = none +ij_gsp_keep_indents_on_empty_lines = false + +[*.haml] +indent_size = 2 +ij_visual_guides = none +ij_haml_keep_indents_on_empty_lines = false + +[*.java] +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_java_align_consecutive_assignments = false +ij_java_align_consecutive_variable_declarations = false +ij_java_align_group_field_declarations = false +ij_java_align_multiline_annotation_parameters = false +ij_java_align_multiline_array_initializer_expression = false +ij_java_align_multiline_assignment = false +ij_java_align_multiline_binary_operation = false +ij_java_align_multiline_chained_methods = false +ij_java_align_multiline_extends_list = false +ij_java_align_multiline_for = true +ij_java_align_multiline_method_parentheses = false +ij_java_align_multiline_parameters = true +ij_java_align_multiline_parameters_in_calls = false +ij_java_align_multiline_parenthesized_expression = false +ij_java_align_multiline_records = true +ij_java_align_multiline_resources = true +ij_java_align_multiline_ternary_operation = false +ij_java_align_multiline_text_blocks = false +ij_java_align_multiline_throws_list = false +ij_java_align_subsequent_simple_methods = false +ij_java_align_throws_keyword = false +ij_java_annotation_parameter_wrap = off +ij_java_array_initializer_new_line_after_left_brace = false +ij_java_array_initializer_right_brace_on_new_line = false +ij_java_array_initializer_wrap = off +ij_java_assert_statement_colon_on_next_line = false +ij_java_assert_statement_wrap = off +ij_java_assignment_wrap = off +ij_java_binary_operation_sign_on_next_line = false +ij_java_binary_operation_wrap = off +ij_java_blank_lines_after_anonymous_class_header = 0 +ij_java_blank_lines_after_class_header = 0 +ij_java_blank_lines_after_imports = 1 +ij_java_blank_lines_after_package = 1 +ij_java_blank_lines_around_class = 1 +ij_java_blank_lines_around_field = 0 +ij_java_blank_lines_around_field_in_interface = 0 +ij_java_blank_lines_around_initializer = 1 +ij_java_blank_lines_around_method = 1 +ij_java_blank_lines_around_method_in_interface = 1 +ij_java_blank_lines_before_class_end = 0 +ij_java_blank_lines_before_imports = 1 +ij_java_blank_lines_before_method_body = 0 +ij_java_blank_lines_before_package = 0 +ij_java_block_brace_style = end_of_line +ij_java_block_comment_at_first_column = true +ij_java_builder_methods = none +ij_java_call_parameters_new_line_after_left_paren = false +ij_java_call_parameters_right_paren_on_new_line = false +ij_java_call_parameters_wrap = off +ij_java_case_statement_on_separate_line = true +ij_java_catch_on_new_line = false +ij_java_class_annotation_wrap = split_into_lines +ij_java_class_brace_style = end_of_line +ij_java_class_count_to_use_import_on_demand = 5 +ij_java_class_names_in_javadoc = 1 +ij_java_do_not_indent_top_level_class_members = false +ij_java_do_not_wrap_after_single_annotation = false +ij_java_do_while_brace_force = never +ij_java_doc_add_blank_line_after_description = true +ij_java_doc_add_blank_line_after_param_comments = false +ij_java_doc_add_blank_line_after_return = false +ij_java_doc_add_p_tag_on_empty_lines = false +ij_java_doc_align_exception_comments = true +ij_java_doc_align_param_comments = true +ij_java_doc_do_not_wrap_if_one_line = false +ij_java_doc_enable_formatting = true +ij_java_doc_enable_leading_asterisks = true +ij_java_doc_indent_on_continuation = false +ij_java_doc_keep_empty_lines = true +ij_java_doc_keep_empty_parameter_tag = true +ij_java_doc_keep_empty_return_tag = true +ij_java_doc_keep_empty_throws_tag = true +ij_java_doc_keep_invalid_tags = true +ij_java_doc_param_description_on_new_line = false +ij_java_doc_preserve_line_breaks = false +ij_java_doc_use_throws_not_exception_tag = true +ij_java_else_on_new_line = false +ij_java_entity_dd_suffix = EJB +ij_java_entity_eb_suffix = Bean +ij_java_entity_hi_suffix = Home +ij_java_entity_lhi_prefix = Local +ij_java_entity_lhi_suffix = Home +ij_java_entity_li_prefix = Local +ij_java_entity_pk_class = java.lang.String +ij_java_entity_vo_suffix = VO +ij_java_enum_constants_wrap = off +ij_java_extends_keyword_wrap = off +ij_java_extends_list_wrap = off +ij_java_field_annotation_wrap = split_into_lines +ij_java_finally_on_new_line = false +ij_java_for_brace_force = never +ij_java_for_statement_new_line_after_left_paren = false +ij_java_for_statement_right_paren_on_new_line = false +ij_java_for_statement_wrap = off +ij_java_generate_final_locals = false +ij_java_generate_final_parameters = false +ij_java_if_brace_force = never +ij_java_imports_layout = *,|,javax.**,java.**,|,$* +ij_java_indent_case_from_switch = true +ij_java_insert_inner_class_imports = false +ij_java_insert_override_annotation = true +ij_java_keep_blank_lines_before_right_brace = 2 +ij_java_keep_blank_lines_between_package_declaration_and_header = 2 +ij_java_keep_blank_lines_in_code = 2 +ij_java_keep_blank_lines_in_declarations = 2 +ij_java_keep_builder_methods_indents = false +ij_java_keep_control_statement_in_one_line = true +ij_java_keep_first_column_comment = true +ij_java_keep_indents_on_empty_lines = false +ij_java_keep_line_breaks = true +ij_java_keep_multiple_expressions_in_one_line = false +ij_java_keep_simple_blocks_in_one_line = false +ij_java_keep_simple_classes_in_one_line = false +ij_java_keep_simple_lambdas_in_one_line = false +ij_java_keep_simple_methods_in_one_line = false +ij_java_label_indent_absolute = false +ij_java_label_indent_size = 0 +ij_java_lambda_brace_style = end_of_line +ij_java_layout_static_imports_separately = true +ij_java_line_comment_add_space = false +ij_java_line_comment_at_first_column = true +ij_java_message_dd_suffix = EJB +ij_java_message_eb_suffix = Bean +ij_java_method_annotation_wrap = split_into_lines +ij_java_method_brace_style = end_of_line +ij_java_method_call_chain_wrap = off +ij_java_method_parameters_new_line_after_left_paren = false +ij_java_method_parameters_right_paren_on_new_line = false +ij_java_method_parameters_wrap = on_every_item +ij_java_modifier_list_wrap = false +ij_java_names_count_to_use_import_on_demand = 3 +ij_java_new_line_after_lparen_in_record_header = false +ij_java_packages_to_use_import_on_demand = java.awt.*,javax.swing.* +ij_java_parameter_annotation_wrap = off +ij_java_parentheses_expression_new_line_after_left_paren = false +ij_java_parentheses_expression_right_paren_on_new_line = false +ij_java_place_assignment_sign_on_next_line = false +ij_java_prefer_longer_names = true +ij_java_prefer_parameters_wrap = false +ij_java_record_components_wrap = normal +ij_java_repeat_synchronized = true +ij_java_replace_instanceof_and_cast = false +ij_java_replace_null_check = true +ij_java_replace_sum_lambda_with_method_ref = true +ij_java_resource_list_new_line_after_left_paren = false +ij_java_resource_list_right_paren_on_new_line = false +ij_java_resource_list_wrap = off +ij_java_rparen_on_new_line_in_record_header = false +ij_java_session_dd_suffix = EJB +ij_java_session_eb_suffix = Bean +ij_java_session_hi_suffix = Home +ij_java_session_lhi_prefix = Local +ij_java_session_lhi_suffix = Home +ij_java_session_li_prefix = Local +ij_java_session_si_suffix = Service +ij_java_space_after_closing_angle_bracket_in_type_argument = false +ij_java_space_after_colon = true +ij_java_space_after_comma = true +ij_java_space_after_comma_in_type_arguments = true +ij_java_space_after_for_semicolon = true +ij_java_space_after_quest = true +ij_java_space_after_type_cast = true +ij_java_space_before_annotation_array_initializer_left_brace = false +ij_java_space_before_annotation_parameter_list = false +ij_java_space_before_array_initializer_left_brace = false +ij_java_space_before_catch_keyword = true +ij_java_space_before_catch_left_brace = true +ij_java_space_before_catch_parentheses = true +ij_java_space_before_class_left_brace = true +ij_java_space_before_colon = true +ij_java_space_before_colon_in_foreach = true +ij_java_space_before_comma = false +ij_java_space_before_do_left_brace = true +ij_java_space_before_else_keyword = true +ij_java_space_before_else_left_brace = true +ij_java_space_before_finally_keyword = true +ij_java_space_before_finally_left_brace = true +ij_java_space_before_for_left_brace = true +ij_java_space_before_for_parentheses = true +ij_java_space_before_for_semicolon = false +ij_java_space_before_if_left_brace = true +ij_java_space_before_if_parentheses = true +ij_java_space_before_method_call_parentheses = false +ij_java_space_before_method_left_brace = true +ij_java_space_before_method_parentheses = false +ij_java_space_before_opening_angle_bracket_in_type_parameter = false +ij_java_space_before_quest = true +ij_java_space_before_switch_left_brace = true +ij_java_space_before_switch_parentheses = true +ij_java_space_before_synchronized_left_brace = true +ij_java_space_before_synchronized_parentheses = true +ij_java_space_before_try_left_brace = true +ij_java_space_before_try_parentheses = true +ij_java_space_before_type_parameter_list = false +ij_java_space_before_while_keyword = true +ij_java_space_before_while_left_brace = true +ij_java_space_before_while_parentheses = true +ij_java_space_inside_one_line_enum_braces = false +ij_java_space_within_empty_array_initializer_braces = false +ij_java_space_within_empty_method_call_parentheses = false +ij_java_space_within_empty_method_parentheses = false +ij_java_spaces_around_additive_operators = true +ij_java_spaces_around_assignment_operators = true +ij_java_spaces_around_bitwise_operators = true +ij_java_spaces_around_equality_operators = true +ij_java_spaces_around_lambda_arrow = true +ij_java_spaces_around_logical_operators = true +ij_java_spaces_around_method_ref_dbl_colon = false +ij_java_spaces_around_multiplicative_operators = true +ij_java_spaces_around_relational_operators = true +ij_java_spaces_around_shift_operators = true +ij_java_spaces_around_type_bounds_in_type_parameters = true +ij_java_spaces_around_unary_operator = false +ij_java_spaces_within_angle_brackets = false +ij_java_spaces_within_annotation_parentheses = false +ij_java_spaces_within_array_initializer_braces = false +ij_java_spaces_within_braces = false +ij_java_spaces_within_brackets = false +ij_java_spaces_within_cast_parentheses = false +ij_java_spaces_within_catch_parentheses = false +ij_java_spaces_within_for_parentheses = false +ij_java_spaces_within_if_parentheses = false +ij_java_spaces_within_method_call_parentheses = false +ij_java_spaces_within_method_parentheses = false +ij_java_spaces_within_parentheses = false +ij_java_spaces_within_record_header = false +ij_java_spaces_within_switch_parentheses = false +ij_java_spaces_within_synchronized_parentheses = false +ij_java_spaces_within_try_parentheses = false +ij_java_spaces_within_while_parentheses = false +ij_java_special_else_if_treatment = true +ij_java_subclass_name_suffix = Impl +ij_java_ternary_operation_signs_on_next_line = false +ij_java_ternary_operation_wrap = off +ij_java_test_name_suffix = Test +ij_java_throws_keyword_wrap = off +ij_java_throws_list_wrap = off +ij_java_use_external_annotations = false +ij_java_use_fq_class_names = false +ij_java_use_relative_indents = false +ij_java_use_single_class_imports = true +ij_java_variable_annotation_wrap = off +ij_java_visibility = public +ij_java_while_brace_force = never +ij_java_while_on_new_line = false +ij_java_wrap_comments = false +ij_java_wrap_first_method_in_call_chain = false +ij_java_wrap_long_lines = true + +[*.less] +ij_visual_guides = none +ij_less_align_closing_brace_with_properties = false +ij_less_blank_lines_around_nested_selector = 1 +ij_less_blank_lines_between_blocks = 1 +ij_less_brace_placement = 0 +ij_less_enforce_quotes_on_format = false +ij_less_hex_color_long_format = false +ij_less_hex_color_lower_case = false +ij_less_hex_color_short_format = false +ij_less_hex_color_upper_case = false +ij_less_keep_blank_lines_in_code = 2 +ij_less_keep_indents_on_empty_lines = false +ij_less_keep_single_line_blocks = false +ij_less_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_less_space_after_colon = true +ij_less_space_before_opening_brace = true +ij_less_use_double_quotes = true +ij_less_value_alignment = 0 + +[*.proto] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_protobuf_keep_blank_lines_in_code = 2 +ij_protobuf_keep_indents_on_empty_lines = false +ij_protobuf_keep_line_breaks = true +ij_protobuf_space_after_comma = true +ij_protobuf_space_before_comma = false +ij_protobuf_spaces_around_assignment_operators = true +ij_protobuf_spaces_within_braces = false +ij_protobuf_spaces_within_brackets = false + +[*.rbs] +ij_visual_guides = none + +[*.sass] +indent_size = 2 +ij_visual_guides = none +ij_sass_align_closing_brace_with_properties = false +ij_sass_blank_lines_around_nested_selector = 1 +ij_sass_blank_lines_between_blocks = 1 +ij_sass_brace_placement = 0 +ij_sass_enforce_quotes_on_format = false +ij_sass_hex_color_long_format = false +ij_sass_hex_color_lower_case = false +ij_sass_hex_color_short_format = false +ij_sass_hex_color_upper_case = false +ij_sass_keep_blank_lines_in_code = 2 +ij_sass_keep_indents_on_empty_lines = false +ij_sass_keep_single_line_blocks = false +ij_sass_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_sass_space_after_colon = true +ij_sass_space_before_opening_brace = true +ij_sass_use_double_quotes = true +ij_sass_value_alignment = 0 + +[*.scss] +indent_size = 2 +ij_visual_guides = none +ij_scss_align_closing_brace_with_properties = false +ij_scss_blank_lines_around_nested_selector = 1 +ij_scss_blank_lines_between_blocks = 1 +ij_scss_brace_placement = 0 +ij_scss_enforce_quotes_on_format = false +ij_scss_hex_color_long_format = false +ij_scss_hex_color_lower_case = false +ij_scss_hex_color_short_format = false +ij_scss_hex_color_upper_case = false +ij_scss_keep_blank_lines_in_code = 2 +ij_scss_keep_indents_on_empty_lines = false +ij_scss_keep_single_line_blocks = false +ij_scss_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_scss_space_after_colon = true +ij_scss_space_before_opening_brace = true +ij_scss_use_double_quotes = true +ij_scss_value_alignment = 0 + +[*.styl] +indent_size = 2 +ij_visual_guides = none +ij_stylus_align_closing_brace_with_properties = false +ij_stylus_blank_lines_around_nested_selector = 1 +ij_stylus_blank_lines_between_blocks = 1 +ij_stylus_brace_placement = 0 +ij_stylus_enforce_quotes_on_format = false +ij_stylus_hex_color_long_format = false +ij_stylus_hex_color_lower_case = false +ij_stylus_hex_color_short_format = false +ij_stylus_hex_color_upper_case = false +ij_stylus_keep_blank_lines_in_code = 2 +ij_stylus_keep_indents_on_empty_lines = false +ij_stylus_keep_single_line_blocks = false +ij_stylus_properties_order = font,font-family,font-size,font-weight,font-style,font-variant,font-size-adjust,font-stretch,line-height,position,z-index,top,right,bottom,left,display,visibility,float,clear,overflow,overflow-x,overflow-y,clip,zoom,align-content,align-items,align-self,flex,flex-flow,flex-basis,flex-direction,flex-grow,flex-shrink,flex-wrap,justify-content,order,box-sizing,width,min-width,max-width,height,min-height,max-height,margin,margin-top,margin-right,margin-bottom,margin-left,padding,padding-top,padding-right,padding-bottom,padding-left,table-layout,empty-cells,caption-side,border-spacing,border-collapse,list-style,list-style-position,list-style-type,list-style-image,content,quotes,counter-reset,counter-increment,resize,cursor,user-select,nav-index,nav-up,nav-right,nav-down,nav-left,transition,transition-delay,transition-timing-function,transition-duration,transition-property,transform,transform-origin,animation,animation-name,animation-duration,animation-play-state,animation-timing-function,animation-delay,animation-iteration-count,animation-direction,text-align,text-align-last,vertical-align,white-space,text-decoration,text-emphasis,text-emphasis-color,text-emphasis-style,text-emphasis-position,text-indent,text-justify,letter-spacing,word-spacing,text-outline,text-transform,text-wrap,text-overflow,text-overflow-ellipsis,text-overflow-mode,word-wrap,word-break,tab-size,hyphens,pointer-events,opacity,color,border,border-width,border-style,border-color,border-top,border-top-width,border-top-style,border-top-color,border-right,border-right-width,border-right-style,border-right-color,border-bottom,border-bottom-width,border-bottom-style,border-bottom-color,border-left,border-left-width,border-left-style,border-left-color,border-radius,border-top-left-radius,border-top-right-radius,border-bottom-right-radius,border-bottom-left-radius,border-image,border-image-source,border-image-slice,border-image-width,border-image-outset,border-image-repeat,outline,outline-width,outline-style,outline-color,outline-offset,background,background-color,background-image,background-repeat,background-attachment,background-position,background-position-x,background-position-y,background-clip,background-origin,background-size,box-decoration-break,box-shadow,text-shadow +ij_stylus_space_after_colon = true +ij_stylus_space_before_opening_brace = true +ij_stylus_use_double_quotes = true +ij_stylus_value_alignment = 0 + +[*.twig] +ij_visual_guides = none +ij_twig_keep_indents_on_empty_lines = false +ij_twig_spaces_inside_comments_delimiters = true +ij_twig_spaces_inside_delimiters = true +ij_twig_spaces_inside_variable_delimiters = true + +[.editorconfig] +ij_visual_guides = none +ij_editorconfig_align_group_field_declarations = false +ij_editorconfig_space_after_colon = false +ij_editorconfig_space_after_comma = true +ij_editorconfig_space_before_colon = false +ij_editorconfig_space_before_comma = false +ij_editorconfig_spaces_around_assignment_operators = true + +[go.mod] +ij_visual_guides = none + +[{*.ant,*.fxml,*.jhm,*.jnlp,*.jrxml,*.pom,*.rng,*.tld,*.wadl,*.wsdd,*.wsdl,*.xjb,*.xml,*.xsd,*.xsl,*.xslt,*.xul,phpunit.xml.dist}] +ij_visual_guides = none +ij_xml_align_attributes = true +ij_xml_align_text = false +ij_xml_attribute_wrap = normal +ij_xml_block_comment_at_first_column = true +ij_xml_keep_blank_lines = 2 +ij_xml_keep_indents_on_empty_lines = false +ij_xml_keep_line_breaks = true +ij_xml_keep_line_breaks_in_text = true +ij_xml_keep_whitespaces = false +ij_xml_keep_whitespaces_around_cdata = preserve +ij_xml_keep_whitespaces_inside_cdata = false +ij_xml_line_comment_at_first_column = true +ij_xml_space_after_tag_name = false +ij_xml_space_around_equals_in_attribute = false +ij_xml_space_inside_empty_tag = false +ij_xml_text_wrap = normal +ij_xml_use_custom_settings = false + +[{*.ats,*.ts}] +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_typescript_align_imports = false +ij_typescript_align_multiline_array_initializer_expression = false +ij_typescript_align_multiline_binary_operation = false +ij_typescript_align_multiline_chained_methods = false +ij_typescript_align_multiline_extends_list = false +ij_typescript_align_multiline_for = true +ij_typescript_align_multiline_parameters = true +ij_typescript_align_multiline_parameters_in_calls = false +ij_typescript_align_multiline_ternary_operation = false +ij_typescript_align_object_properties = 0 +ij_typescript_align_union_types = false +ij_typescript_align_var_statements = 0 +ij_typescript_array_initializer_new_line_after_left_brace = false +ij_typescript_array_initializer_right_brace_on_new_line = false +ij_typescript_array_initializer_wrap = off +ij_typescript_assignment_wrap = off +ij_typescript_binary_operation_sign_on_next_line = false +ij_typescript_binary_operation_wrap = off +ij_typescript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** +ij_typescript_blank_lines_after_imports = 1 +ij_typescript_blank_lines_around_class = 1 +ij_typescript_blank_lines_around_field = 0 +ij_typescript_blank_lines_around_field_in_interface = 0 +ij_typescript_blank_lines_around_function = 1 +ij_typescript_blank_lines_around_method = 1 +ij_typescript_blank_lines_around_method_in_interface = 1 +ij_typescript_block_brace_style = end_of_line +ij_typescript_call_parameters_new_line_after_left_paren = false +ij_typescript_call_parameters_right_paren_on_new_line = false +ij_typescript_call_parameters_wrap = off +ij_typescript_catch_on_new_line = false +ij_typescript_chained_call_dot_on_new_line = true +ij_typescript_class_brace_style = end_of_line +ij_typescript_comma_on_new_line = false +ij_typescript_do_while_brace_force = never +ij_typescript_else_on_new_line = false +ij_typescript_enforce_trailing_comma = keep +ij_typescript_extends_keyword_wrap = off +ij_typescript_extends_list_wrap = off +ij_typescript_field_prefix = _ +ij_typescript_file_name_style = relaxed +ij_typescript_finally_on_new_line = false +ij_typescript_for_brace_force = never +ij_typescript_for_statement_new_line_after_left_paren = false +ij_typescript_for_statement_right_paren_on_new_line = false +ij_typescript_for_statement_wrap = off +ij_typescript_force_quote_style = false +ij_typescript_force_semicolon_style = false +ij_typescript_function_expression_brace_style = end_of_line +ij_typescript_if_brace_force = never +ij_typescript_import_merge_members = global +ij_typescript_import_prefer_absolute_path = global +ij_typescript_import_sort_members = true +ij_typescript_import_sort_module_name = false +ij_typescript_import_use_node_resolution = true +ij_typescript_imports_wrap = on_every_item +ij_typescript_indent_case_from_switch = true +ij_typescript_indent_chained_calls = true +ij_typescript_indent_package_children = 0 +ij_typescript_jsdoc_include_types = false +ij_typescript_jsx_attribute_value = braces +ij_typescript_keep_blank_lines_in_code = 2 +ij_typescript_keep_first_column_comment = true +ij_typescript_keep_indents_on_empty_lines = false +ij_typescript_keep_line_breaks = true +ij_typescript_keep_simple_blocks_in_one_line = false +ij_typescript_keep_simple_methods_in_one_line = false +ij_typescript_line_comment_add_space = true +ij_typescript_line_comment_at_first_column = false +ij_typescript_method_brace_style = end_of_line +ij_typescript_method_call_chain_wrap = off +ij_typescript_method_parameters_new_line_after_left_paren = false +ij_typescript_method_parameters_right_paren_on_new_line = false +ij_typescript_method_parameters_wrap = off +ij_typescript_object_literal_wrap = on_every_item +ij_typescript_parentheses_expression_new_line_after_left_paren = false +ij_typescript_parentheses_expression_right_paren_on_new_line = false +ij_typescript_place_assignment_sign_on_next_line = false +ij_typescript_prefer_as_type_cast = false +ij_typescript_prefer_explicit_types_function_expression_returns = false +ij_typescript_prefer_explicit_types_function_returns = false +ij_typescript_prefer_explicit_types_vars_fields = false +ij_typescript_prefer_parameters_wrap = false +ij_typescript_reformat_c_style_comments = false +ij_typescript_space_after_colon = true +ij_typescript_space_after_comma = true +ij_typescript_space_after_dots_in_rest_parameter = false +ij_typescript_space_after_generator_mult = true +ij_typescript_space_after_property_colon = true +ij_typescript_space_after_quest = true +ij_typescript_space_after_type_colon = true +ij_typescript_space_after_unary_not = false +ij_typescript_space_before_async_arrow_lparen = true +ij_typescript_space_before_catch_keyword = true +ij_typescript_space_before_catch_left_brace = true +ij_typescript_space_before_catch_parentheses = true +ij_typescript_space_before_class_lbrace = true +ij_typescript_space_before_class_left_brace = true +ij_typescript_space_before_colon = true +ij_typescript_space_before_comma = false +ij_typescript_space_before_do_left_brace = true +ij_typescript_space_before_else_keyword = true +ij_typescript_space_before_else_left_brace = true +ij_typescript_space_before_finally_keyword = true +ij_typescript_space_before_finally_left_brace = true +ij_typescript_space_before_for_left_brace = true +ij_typescript_space_before_for_parentheses = true +ij_typescript_space_before_for_semicolon = false +ij_typescript_space_before_function_left_parenth = true +ij_typescript_space_before_generator_mult = false +ij_typescript_space_before_if_left_brace = true +ij_typescript_space_before_if_parentheses = true +ij_typescript_space_before_method_call_parentheses = false +ij_typescript_space_before_method_left_brace = true +ij_typescript_space_before_method_parentheses = false +ij_typescript_space_before_property_colon = false +ij_typescript_space_before_quest = true +ij_typescript_space_before_switch_left_brace = true +ij_typescript_space_before_switch_parentheses = true +ij_typescript_space_before_try_left_brace = true +ij_typescript_space_before_type_colon = false +ij_typescript_space_before_unary_not = false +ij_typescript_space_before_while_keyword = true +ij_typescript_space_before_while_left_brace = true +ij_typescript_space_before_while_parentheses = true +ij_typescript_spaces_around_additive_operators = true +ij_typescript_spaces_around_arrow_function_operator = true +ij_typescript_spaces_around_assignment_operators = true +ij_typescript_spaces_around_bitwise_operators = true +ij_typescript_spaces_around_equality_operators = true +ij_typescript_spaces_around_logical_operators = true +ij_typescript_spaces_around_multiplicative_operators = true +ij_typescript_spaces_around_relational_operators = true +ij_typescript_spaces_around_shift_operators = true +ij_typescript_spaces_around_unary_operator = false +ij_typescript_spaces_within_array_initializer_brackets = false +ij_typescript_spaces_within_brackets = false +ij_typescript_spaces_within_catch_parentheses = false +ij_typescript_spaces_within_for_parentheses = false +ij_typescript_spaces_within_if_parentheses = false +ij_typescript_spaces_within_imports = false +ij_typescript_spaces_within_interpolation_expressions = false +ij_typescript_spaces_within_method_call_parentheses = false +ij_typescript_spaces_within_method_parentheses = false +ij_typescript_spaces_within_object_literal_braces = false +ij_typescript_spaces_within_object_type_braces = true +ij_typescript_spaces_within_parentheses = false +ij_typescript_spaces_within_switch_parentheses = false +ij_typescript_spaces_within_type_assertion = false +ij_typescript_spaces_within_union_types = true +ij_typescript_spaces_within_while_parentheses = false +ij_typescript_special_else_if_treatment = true +ij_typescript_ternary_operation_signs_on_next_line = false +ij_typescript_ternary_operation_wrap = off +ij_typescript_union_types_wrap = on_every_item +ij_typescript_use_chained_calls_group_indents = false +ij_typescript_use_double_quotes = true +ij_typescript_use_explicit_js_extension = global +ij_typescript_use_path_mapping = always +ij_typescript_use_public_modifier = false +ij_typescript_use_semicolon_after_statement = true +ij_typescript_var_declaration_wrap = normal +ij_typescript_while_brace_force = never +ij_typescript_while_on_new_line = false +ij_typescript_wrap_comments = false + +[{*.bash,*.bats,*.sh,*.zsh}] +indent_size = 2 +tab_width = 2 +ij_visual_guides = none +ij_shell_binary_ops_start_line = false +ij_shell_keep_column_alignment_padding = false +ij_shell_minify_program = false +ij_shell_redirect_followed_by_space = false +ij_shell_switch_cases_indented = false +ij_shell_use_unix_line_separator = true + +[{*.cjs,*.js}] +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_javascript_align_imports = false +ij_javascript_align_multiline_array_initializer_expression = false +ij_javascript_align_multiline_binary_operation = false +ij_javascript_align_multiline_chained_methods = false +ij_javascript_align_multiline_extends_list = false +ij_javascript_align_multiline_for = true +ij_javascript_align_multiline_parameters = true +ij_javascript_align_multiline_parameters_in_calls = false +ij_javascript_align_multiline_ternary_operation = false +ij_javascript_align_object_properties = 0 +ij_javascript_align_union_types = false +ij_javascript_align_var_statements = 0 +ij_javascript_array_initializer_new_line_after_left_brace = false +ij_javascript_array_initializer_right_brace_on_new_line = false +ij_javascript_array_initializer_wrap = off +ij_javascript_assignment_wrap = off +ij_javascript_binary_operation_sign_on_next_line = false +ij_javascript_binary_operation_wrap = off +ij_javascript_blacklist_imports = rxjs/Rx,node_modules/**,**/node_modules/**,@angular/material,@angular/material/typings/** +ij_javascript_blank_lines_after_imports = 1 +ij_javascript_blank_lines_around_class = 1 +ij_javascript_blank_lines_around_field = 0 +ij_javascript_blank_lines_around_function = 1 +ij_javascript_blank_lines_around_method = 1 +ij_javascript_block_brace_style = end_of_line +ij_javascript_call_parameters_new_line_after_left_paren = false +ij_javascript_call_parameters_right_paren_on_new_line = false +ij_javascript_call_parameters_wrap = off +ij_javascript_catch_on_new_line = false +ij_javascript_chained_call_dot_on_new_line = true +ij_javascript_class_brace_style = end_of_line +ij_javascript_comma_on_new_line = false +ij_javascript_do_while_brace_force = never +ij_javascript_else_on_new_line = false +ij_javascript_enforce_trailing_comma = keep +ij_javascript_extends_keyword_wrap = off +ij_javascript_extends_list_wrap = off +ij_javascript_field_prefix = _ +ij_javascript_file_name_style = relaxed +ij_javascript_finally_on_new_line = false +ij_javascript_for_brace_force = never +ij_javascript_for_statement_new_line_after_left_paren = false +ij_javascript_for_statement_right_paren_on_new_line = false +ij_javascript_for_statement_wrap = off +ij_javascript_force_quote_style = false +ij_javascript_force_semicolon_style = false +ij_javascript_function_expression_brace_style = end_of_line +ij_javascript_if_brace_force = never +ij_javascript_import_merge_members = global +ij_javascript_import_prefer_absolute_path = global +ij_javascript_import_sort_members = true +ij_javascript_import_sort_module_name = false +ij_javascript_import_use_node_resolution = true +ij_javascript_imports_wrap = on_every_item +ij_javascript_indent_case_from_switch = true +ij_javascript_indent_chained_calls = true +ij_javascript_indent_package_children = 0 +ij_javascript_jsx_attribute_value = braces +ij_javascript_keep_blank_lines_in_code = 2 +ij_javascript_keep_first_column_comment = true +ij_javascript_keep_indents_on_empty_lines = false +ij_javascript_keep_line_breaks = true +ij_javascript_keep_simple_blocks_in_one_line = false +ij_javascript_keep_simple_methods_in_one_line = false +ij_javascript_line_comment_add_space = true +ij_javascript_line_comment_at_first_column = false +ij_javascript_method_brace_style = end_of_line +ij_javascript_method_call_chain_wrap = off +ij_javascript_method_parameters_new_line_after_left_paren = false +ij_javascript_method_parameters_right_paren_on_new_line = false +ij_javascript_method_parameters_wrap = off +ij_javascript_object_literal_wrap = on_every_item +ij_javascript_parentheses_expression_new_line_after_left_paren = false +ij_javascript_parentheses_expression_right_paren_on_new_line = false +ij_javascript_place_assignment_sign_on_next_line = false +ij_javascript_prefer_as_type_cast = false +ij_javascript_prefer_explicit_types_function_expression_returns = false +ij_javascript_prefer_explicit_types_function_returns = false +ij_javascript_prefer_explicit_types_vars_fields = false +ij_javascript_prefer_parameters_wrap = false +ij_javascript_reformat_c_style_comments = false +ij_javascript_space_after_colon = true +ij_javascript_space_after_comma = true +ij_javascript_space_after_dots_in_rest_parameter = false +ij_javascript_space_after_generator_mult = true +ij_javascript_space_after_property_colon = true +ij_javascript_space_after_quest = true +ij_javascript_space_after_type_colon = true +ij_javascript_space_after_unary_not = false +ij_javascript_space_before_async_arrow_lparen = true +ij_javascript_space_before_catch_keyword = true +ij_javascript_space_before_catch_left_brace = true +ij_javascript_space_before_catch_parentheses = true +ij_javascript_space_before_class_lbrace = true +ij_javascript_space_before_class_left_brace = true +ij_javascript_space_before_colon = true +ij_javascript_space_before_comma = false +ij_javascript_space_before_do_left_brace = true +ij_javascript_space_before_else_keyword = true +ij_javascript_space_before_else_left_brace = true +ij_javascript_space_before_finally_keyword = true +ij_javascript_space_before_finally_left_brace = true +ij_javascript_space_before_for_left_brace = true +ij_javascript_space_before_for_parentheses = true +ij_javascript_space_before_for_semicolon = false +ij_javascript_space_before_function_left_parenth = true +ij_javascript_space_before_generator_mult = false +ij_javascript_space_before_if_left_brace = true +ij_javascript_space_before_if_parentheses = true +ij_javascript_space_before_method_call_parentheses = false +ij_javascript_space_before_method_left_brace = true +ij_javascript_space_before_method_parentheses = false +ij_javascript_space_before_property_colon = false +ij_javascript_space_before_quest = true +ij_javascript_space_before_switch_left_brace = true +ij_javascript_space_before_switch_parentheses = true +ij_javascript_space_before_try_left_brace = true +ij_javascript_space_before_type_colon = false +ij_javascript_space_before_unary_not = false +ij_javascript_space_before_while_keyword = true +ij_javascript_space_before_while_left_brace = true +ij_javascript_space_before_while_parentheses = true +ij_javascript_spaces_around_additive_operators = true +ij_javascript_spaces_around_arrow_function_operator = true +ij_javascript_spaces_around_assignment_operators = true +ij_javascript_spaces_around_bitwise_operators = true +ij_javascript_spaces_around_equality_operators = true +ij_javascript_spaces_around_logical_operators = true +ij_javascript_spaces_around_multiplicative_operators = true +ij_javascript_spaces_around_relational_operators = true +ij_javascript_spaces_around_shift_operators = true +ij_javascript_spaces_around_unary_operator = false +ij_javascript_spaces_within_array_initializer_brackets = false +ij_javascript_spaces_within_brackets = false +ij_javascript_spaces_within_catch_parentheses = false +ij_javascript_spaces_within_for_parentheses = false +ij_javascript_spaces_within_if_parentheses = false +ij_javascript_spaces_within_imports = false +ij_javascript_spaces_within_interpolation_expressions = false +ij_javascript_spaces_within_method_call_parentheses = false +ij_javascript_spaces_within_method_parentheses = false +ij_javascript_spaces_within_object_literal_braces = false +ij_javascript_spaces_within_object_type_braces = true +ij_javascript_spaces_within_parentheses = false +ij_javascript_spaces_within_switch_parentheses = false +ij_javascript_spaces_within_type_assertion = false +ij_javascript_spaces_within_union_types = true +ij_javascript_spaces_within_while_parentheses = false +ij_javascript_special_else_if_treatment = true +ij_javascript_ternary_operation_signs_on_next_line = false +ij_javascript_ternary_operation_wrap = off +ij_javascript_union_types_wrap = on_every_item +ij_javascript_use_chained_calls_group_indents = false +ij_javascript_use_double_quotes = true +ij_javascript_use_explicit_js_extension = global +ij_javascript_use_path_mapping = always +ij_javascript_use_public_modifier = false +ij_javascript_use_semicolon_after_statement = true +ij_javascript_var_declaration_wrap = normal +ij_javascript_while_brace_force = never +ij_javascript_while_on_new_line = false +ij_javascript_wrap_comments = false + +[{*.ctp,*.hphp,*.inc,*.module,*.php,*.php4,*.php5,*.phtml}] +max_line_length = 120 +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_php_align_assignments = false +ij_php_align_class_constants = false +ij_php_align_group_field_declarations = false +ij_php_align_inline_comments = false +ij_php_align_key_value_pairs = false +ij_php_align_match_arm_bodies = false +ij_php_align_multiline_array_initializer_expression = false +ij_php_align_multiline_binary_operation = false +ij_php_align_multiline_chained_methods = false +ij_php_align_multiline_extends_list = false +ij_php_align_multiline_for = true +ij_php_align_multiline_parameters = true +ij_php_align_multiline_parameters_in_calls = false +ij_php_align_multiline_ternary_operation = false +ij_php_align_named_arguments = false +ij_php_align_phpdoc_comments = false +ij_php_align_phpdoc_param_names = false +ij_php_anonymous_brace_style = end_of_line +ij_php_api_weight = 28 +ij_php_array_initializer_new_line_after_left_brace = false +ij_php_array_initializer_right_brace_on_new_line = false +ij_php_array_initializer_wrap = off +ij_php_assignment_wrap = off +ij_php_attributes_wrap = off +ij_php_author_weight = 28 +ij_php_binary_operation_sign_on_next_line = false +ij_php_binary_operation_wrap = off +ij_php_blank_lines_after_class_header = 0 +ij_php_blank_lines_after_function = 1 +ij_php_blank_lines_after_imports = 1 +ij_php_blank_lines_after_opening_tag = 0 +ij_php_blank_lines_after_package = 0 +ij_php_blank_lines_around_class = 1 +ij_php_blank_lines_around_constants = 0 +ij_php_blank_lines_around_field = 0 +ij_php_blank_lines_around_method = 1 +ij_php_blank_lines_before_class_end = 0 +ij_php_blank_lines_before_imports = 1 +ij_php_blank_lines_before_method_body = 0 +ij_php_blank_lines_before_package = 1 +ij_php_blank_lines_before_return_statement = 0 +ij_php_blank_lines_between_imports = 0 +ij_php_block_brace_style = end_of_line +ij_php_call_parameters_new_line_after_left_paren = false +ij_php_call_parameters_right_paren_on_new_line = false +ij_php_call_parameters_wrap = off +ij_php_catch_on_new_line = false +ij_php_category_weight = 28 +ij_php_class_brace_style = next_line +ij_php_comma_after_last_array_element = false +ij_php_concat_spaces = true +ij_php_copyright_weight = 28 +ij_php_deprecated_weight = 28 +ij_php_do_while_brace_force = never +ij_php_else_if_style = as_is +ij_php_else_on_new_line = false +ij_php_example_weight = 28 +ij_php_extends_keyword_wrap = off +ij_php_extends_list_wrap = off +ij_php_fields_default_visibility = private +ij_php_filesource_weight = 28 +ij_php_finally_on_new_line = false +ij_php_for_brace_force = never +ij_php_for_statement_new_line_after_left_paren = false +ij_php_for_statement_right_paren_on_new_line = false +ij_php_for_statement_wrap = off +ij_php_force_short_declaration_array_style = false +ij_php_getters_setters_naming_style = camel_case +ij_php_getters_setters_order_style = getters_first +ij_php_global_weight = 28 +ij_php_group_use_wrap = on_every_item +ij_php_if_brace_force = never +ij_php_if_lparen_on_next_line = false +ij_php_if_rparen_on_next_line = false +ij_php_ignore_weight = 28 +ij_php_import_sorting = alphabetic +ij_php_indent_break_from_case = true +ij_php_indent_case_from_switch = true +ij_php_indent_code_in_php_tags = false +ij_php_internal_weight = 28 +ij_php_keep_blank_lines_after_lbrace = 2 +ij_php_keep_blank_lines_before_right_brace = 2 +ij_php_keep_blank_lines_in_code = 2 +ij_php_keep_blank_lines_in_declarations = 2 +ij_php_keep_control_statement_in_one_line = true +ij_php_keep_first_column_comment = true +ij_php_keep_indents_on_empty_lines = false +ij_php_keep_line_breaks = true +ij_php_keep_rparen_and_lbrace_on_one_line = false +ij_php_keep_simple_classes_in_one_line = false +ij_php_keep_simple_methods_in_one_line = false +ij_php_lambda_brace_style = end_of_line +ij_php_license_weight = 28 +ij_php_line_comment_add_space = false +ij_php_line_comment_at_first_column = true +ij_php_link_weight = 28 +ij_php_lower_case_boolean_const = false +ij_php_lower_case_keywords = true +ij_php_lower_case_null_const = false +ij_php_method_brace_style = end_of_line +ij_php_method_call_chain_wrap = off +ij_php_method_parameters_new_line_after_left_paren = false +ij_php_method_parameters_right_paren_on_new_line = false +ij_php_method_parameters_wrap = off +ij_php_method_weight = 28 +ij_php_modifier_list_wrap = false +ij_php_multiline_chained_calls_semicolon_on_new_line = false +ij_php_namespace_brace_style = 1 +ij_php_new_line_after_php_opening_tag = false +ij_php_null_type_position = in_the_end +ij_php_package_weight = 28 +ij_php_param_weight = 0 +ij_php_parameters_attributes_wrap = off +ij_php_parentheses_expression_new_line_after_left_paren = false +ij_php_parentheses_expression_right_paren_on_new_line = false +ij_php_phpdoc_blank_line_before_tags = false +ij_php_phpdoc_blank_lines_around_parameters = false +ij_php_phpdoc_keep_blank_lines = true +ij_php_phpdoc_param_spaces_between_name_and_description = 1 +ij_php_phpdoc_param_spaces_between_tag_and_type = 1 +ij_php_phpdoc_param_spaces_between_type_and_name = 1 +ij_php_phpdoc_use_fqcn = false +ij_php_phpdoc_wrap_long_lines = false +ij_php_place_assignment_sign_on_next_line = false +ij_php_place_parens_for_constructor = 0 +ij_php_property_read_weight = 28 +ij_php_property_weight = 28 +ij_php_property_write_weight = 28 +ij_php_return_type_on_new_line = false +ij_php_return_weight = 1 +ij_php_see_weight = 28 +ij_php_since_weight = 28 +ij_php_sort_phpdoc_elements = true +ij_php_space_after_colon = true +ij_php_space_after_colon_in_enum_backed_type = true +ij_php_space_after_colon_in_named_argument = true +ij_php_space_after_colon_in_return_type = true +ij_php_space_after_comma = true +ij_php_space_after_for_semicolon = true +ij_php_space_after_quest = true +ij_php_space_after_type_cast = false +ij_php_space_after_unary_not = false +ij_php_space_before_array_initializer_left_brace = false +ij_php_space_before_catch_keyword = true +ij_php_space_before_catch_left_brace = true +ij_php_space_before_catch_parentheses = true +ij_php_space_before_class_left_brace = true +ij_php_space_before_closure_left_parenthesis = true +ij_php_space_before_colon = true +ij_php_space_before_colon_in_enum_backed_type = false +ij_php_space_before_colon_in_named_argument = false +ij_php_space_before_colon_in_return_type = false +ij_php_space_before_comma = false +ij_php_space_before_do_left_brace = true +ij_php_space_before_else_keyword = true +ij_php_space_before_else_left_brace = true +ij_php_space_before_finally_keyword = true +ij_php_space_before_finally_left_brace = true +ij_php_space_before_for_left_brace = true +ij_php_space_before_for_parentheses = true +ij_php_space_before_for_semicolon = false +ij_php_space_before_if_left_brace = true +ij_php_space_before_if_parentheses = true +ij_php_space_before_method_call_parentheses = false +ij_php_space_before_method_left_brace = true +ij_php_space_before_method_parentheses = false +ij_php_space_before_quest = true +ij_php_space_before_short_closure_left_parenthesis = false +ij_php_space_before_switch_left_brace = true +ij_php_space_before_switch_parentheses = true +ij_php_space_before_try_left_brace = true +ij_php_space_before_unary_not = false +ij_php_space_before_while_keyword = true +ij_php_space_before_while_left_brace = true +ij_php_space_before_while_parentheses = true +ij_php_space_between_ternary_quest_and_colon = false +ij_php_spaces_around_additive_operators = true +ij_php_spaces_around_arrow = false +ij_php_spaces_around_assignment_in_declare = false +ij_php_spaces_around_assignment_operators = true +ij_php_spaces_around_bitwise_operators = true +ij_php_spaces_around_equality_operators = true +ij_php_spaces_around_logical_operators = true +ij_php_spaces_around_multiplicative_operators = true +ij_php_spaces_around_null_coalesce_operator = true +ij_php_spaces_around_pipe_in_union_type = false +ij_php_spaces_around_relational_operators = true +ij_php_spaces_around_shift_operators = true +ij_php_spaces_around_unary_operator = false +ij_php_spaces_around_var_within_brackets = false +ij_php_spaces_within_array_initializer_braces = false +ij_php_spaces_within_brackets = false +ij_php_spaces_within_catch_parentheses = false +ij_php_spaces_within_for_parentheses = false +ij_php_spaces_within_if_parentheses = false +ij_php_spaces_within_method_call_parentheses = false +ij_php_spaces_within_method_parentheses = false +ij_php_spaces_within_parentheses = false +ij_php_spaces_within_short_echo_tags = true +ij_php_spaces_within_switch_parentheses = false +ij_php_spaces_within_while_parentheses = false +ij_php_special_else_if_treatment = false +ij_php_subpackage_weight = 28 +ij_php_ternary_operation_signs_on_next_line = false +ij_php_ternary_operation_wrap = off +ij_php_throws_weight = 2 +ij_php_todo_weight = 28 +ij_php_unknown_tag_weight = 28 +ij_php_upper_case_boolean_const = false +ij_php_upper_case_null_const = false +ij_php_uses_weight = 28 +ij_php_var_weight = 28 +ij_php_variable_naming_style = mixed +ij_php_version_weight = 28 +ij_php_while_brace_force = never +ij_php_while_on_new_line = false + +[{*.erb,*.rhtml}] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 2 +ij_visual_guides = none +ij_rhtml_keep_indents_on_empty_lines = false + +[{*.ft,*.vm,*.vsl}] +ij_visual_guides = none +ij_vtl_keep_indents_on_empty_lines = false + +[{*.gant,*.gradle,*.groovy,*.gson,*.gy}] +ij_visual_guides = none +ij_groovy_align_group_field_declarations = false +ij_groovy_align_multiline_array_initializer_expression = false +ij_groovy_align_multiline_assignment = false +ij_groovy_align_multiline_binary_operation = false +ij_groovy_align_multiline_chained_methods = false +ij_groovy_align_multiline_extends_list = false +ij_groovy_align_multiline_for = true +ij_groovy_align_multiline_list_or_map = true +ij_groovy_align_multiline_method_parentheses = false +ij_groovy_align_multiline_parameters = true +ij_groovy_align_multiline_parameters_in_calls = false +ij_groovy_align_multiline_resources = true +ij_groovy_align_multiline_ternary_operation = false +ij_groovy_align_multiline_throws_list = false +ij_groovy_align_named_args_in_map = true +ij_groovy_align_throws_keyword = false +ij_groovy_array_initializer_new_line_after_left_brace = false +ij_groovy_array_initializer_right_brace_on_new_line = false +ij_groovy_array_initializer_wrap = off +ij_groovy_assert_statement_wrap = off +ij_groovy_assignment_wrap = off +ij_groovy_binary_operation_wrap = off +ij_groovy_blank_lines_after_class_header = 0 +ij_groovy_blank_lines_after_imports = 1 +ij_groovy_blank_lines_after_package = 1 +ij_groovy_blank_lines_around_class = 1 +ij_groovy_blank_lines_around_field = 0 +ij_groovy_blank_lines_around_field_in_interface = 0 +ij_groovy_blank_lines_around_method = 1 +ij_groovy_blank_lines_around_method_in_interface = 1 +ij_groovy_blank_lines_before_imports = 1 +ij_groovy_blank_lines_before_method_body = 0 +ij_groovy_blank_lines_before_package = 0 +ij_groovy_block_brace_style = end_of_line +ij_groovy_block_comment_at_first_column = true +ij_groovy_call_parameters_new_line_after_left_paren = false +ij_groovy_call_parameters_right_paren_on_new_line = false +ij_groovy_call_parameters_wrap = off +ij_groovy_catch_on_new_line = false +ij_groovy_class_annotation_wrap = split_into_lines +ij_groovy_class_brace_style = end_of_line +ij_groovy_class_count_to_use_import_on_demand = 5 +ij_groovy_do_while_brace_force = never +ij_groovy_else_on_new_line = false +ij_groovy_enum_constants_wrap = off +ij_groovy_extends_keyword_wrap = off +ij_groovy_extends_list_wrap = off +ij_groovy_field_annotation_wrap = split_into_lines +ij_groovy_finally_on_new_line = false +ij_groovy_for_brace_force = never +ij_groovy_for_statement_new_line_after_left_paren = false +ij_groovy_for_statement_right_paren_on_new_line = false +ij_groovy_for_statement_wrap = off +ij_groovy_if_brace_force = never +ij_groovy_import_annotation_wrap = 2 +ij_groovy_imports_layout = *,|,javax.**,java.**,|,$* +ij_groovy_indent_case_from_switch = true +ij_groovy_indent_label_blocks = true +ij_groovy_insert_inner_class_imports = false +ij_groovy_keep_blank_lines_before_right_brace = 2 +ij_groovy_keep_blank_lines_in_code = 2 +ij_groovy_keep_blank_lines_in_declarations = 2 +ij_groovy_keep_control_statement_in_one_line = true +ij_groovy_keep_first_column_comment = true +ij_groovy_keep_indents_on_empty_lines = false +ij_groovy_keep_line_breaks = true +ij_groovy_keep_multiple_expressions_in_one_line = false +ij_groovy_keep_simple_blocks_in_one_line = false +ij_groovy_keep_simple_classes_in_one_line = true +ij_groovy_keep_simple_lambdas_in_one_line = true +ij_groovy_keep_simple_methods_in_one_line = true +ij_groovy_label_indent_absolute = false +ij_groovy_label_indent_size = 0 +ij_groovy_lambda_brace_style = end_of_line +ij_groovy_layout_static_imports_separately = true +ij_groovy_line_comment_add_space = false +ij_groovy_line_comment_at_first_column = true +ij_groovy_method_annotation_wrap = split_into_lines +ij_groovy_method_brace_style = end_of_line +ij_groovy_method_call_chain_wrap = off +ij_groovy_method_parameters_new_line_after_left_paren = false +ij_groovy_method_parameters_right_paren_on_new_line = false +ij_groovy_method_parameters_wrap = off +ij_groovy_modifier_list_wrap = false +ij_groovy_names_count_to_use_import_on_demand = 3 +ij_groovy_parameter_annotation_wrap = off +ij_groovy_parentheses_expression_new_line_after_left_paren = false +ij_groovy_parentheses_expression_right_paren_on_new_line = false +ij_groovy_prefer_parameters_wrap = false +ij_groovy_resource_list_new_line_after_left_paren = false +ij_groovy_resource_list_right_paren_on_new_line = false +ij_groovy_resource_list_wrap = off +ij_groovy_space_after_assert_separator = true +ij_groovy_space_after_colon = true +ij_groovy_space_after_comma = true +ij_groovy_space_after_comma_in_type_arguments = true +ij_groovy_space_after_for_semicolon = true +ij_groovy_space_after_quest = true +ij_groovy_space_after_type_cast = true +ij_groovy_space_before_annotation_parameter_list = false +ij_groovy_space_before_array_initializer_left_brace = false +ij_groovy_space_before_assert_separator = false +ij_groovy_space_before_catch_keyword = true +ij_groovy_space_before_catch_left_brace = true +ij_groovy_space_before_catch_parentheses = true +ij_groovy_space_before_class_left_brace = true +ij_groovy_space_before_closure_left_brace = true +ij_groovy_space_before_colon = true +ij_groovy_space_before_comma = false +ij_groovy_space_before_do_left_brace = true +ij_groovy_space_before_else_keyword = true +ij_groovy_space_before_else_left_brace = true +ij_groovy_space_before_finally_keyword = true +ij_groovy_space_before_finally_left_brace = true +ij_groovy_space_before_for_left_brace = true +ij_groovy_space_before_for_parentheses = true +ij_groovy_space_before_for_semicolon = false +ij_groovy_space_before_if_left_brace = true +ij_groovy_space_before_if_parentheses = true +ij_groovy_space_before_method_call_parentheses = false +ij_groovy_space_before_method_left_brace = true +ij_groovy_space_before_method_parentheses = false +ij_groovy_space_before_quest = true +ij_groovy_space_before_switch_left_brace = true +ij_groovy_space_before_switch_parentheses = true +ij_groovy_space_before_synchronized_left_brace = true +ij_groovy_space_before_synchronized_parentheses = true +ij_groovy_space_before_try_left_brace = true +ij_groovy_space_before_try_parentheses = true +ij_groovy_space_before_while_keyword = true +ij_groovy_space_before_while_left_brace = true +ij_groovy_space_before_while_parentheses = true +ij_groovy_space_in_named_argument = true +ij_groovy_space_in_named_argument_before_colon = false +ij_groovy_space_within_empty_array_initializer_braces = false +ij_groovy_space_within_empty_method_call_parentheses = false +ij_groovy_spaces_around_additive_operators = true +ij_groovy_spaces_around_assignment_operators = true +ij_groovy_spaces_around_bitwise_operators = true +ij_groovy_spaces_around_equality_operators = true +ij_groovy_spaces_around_lambda_arrow = true +ij_groovy_spaces_around_logical_operators = true +ij_groovy_spaces_around_multiplicative_operators = true +ij_groovy_spaces_around_regex_operators = true +ij_groovy_spaces_around_relational_operators = true +ij_groovy_spaces_around_shift_operators = true +ij_groovy_spaces_within_annotation_parentheses = false +ij_groovy_spaces_within_array_initializer_braces = false +ij_groovy_spaces_within_braces = true +ij_groovy_spaces_within_brackets = false +ij_groovy_spaces_within_cast_parentheses = false +ij_groovy_spaces_within_catch_parentheses = false +ij_groovy_spaces_within_for_parentheses = false +ij_groovy_spaces_within_gstring_injection_braces = false +ij_groovy_spaces_within_if_parentheses = false +ij_groovy_spaces_within_list_or_map = false +ij_groovy_spaces_within_method_call_parentheses = false +ij_groovy_spaces_within_method_parentheses = false +ij_groovy_spaces_within_parentheses = false +ij_groovy_spaces_within_switch_parentheses = false +ij_groovy_spaces_within_synchronized_parentheses = false +ij_groovy_spaces_within_try_parentheses = false +ij_groovy_spaces_within_tuple_expression = false +ij_groovy_spaces_within_while_parentheses = false +ij_groovy_special_else_if_treatment = true +ij_groovy_ternary_operation_wrap = off +ij_groovy_throws_keyword_wrap = off +ij_groovy_throws_list_wrap = off +ij_groovy_use_flying_geese_braces = false +ij_groovy_use_fq_class_names = false +ij_groovy_use_fq_class_names_in_javadoc = true +ij_groovy_use_relative_indents = false +ij_groovy_use_single_class_imports = true +ij_groovy_variable_annotation_wrap = off +ij_groovy_while_brace_force = never +ij_groovy_while_on_new_line = false +ij_groovy_wrap_chain_calls_after_dot = false +ij_groovy_wrap_long_lines = false + +[{*.gemspec,*.jbuilder,*.rake,*.rb,*.rbw,*.ru,*.thor,.simplecov,capfile,cucumber,gemfile,guardfile,isolate,rails,rake,rakefile,rcov,spec,spork,steepfile,vagrantfile}] +ij_visual_guides = none +ij_ruby_align_group_field_declarations = false +ij_ruby_align_multiline_parameters = true +ij_ruby_blank_lines_around_class = 1 +ij_ruby_blank_lines_around_method = 1 +ij_ruby_chain_calls_alignment = 2 +ij_ruby_convert_brace_block_by_enter = true +ij_ruby_empty_declarations_style = 1 +ij_ruby_force_newlines_around_visibility_mods = true +ij_ruby_indent_private_methods = false +ij_ruby_indent_protected_methods = false +ij_ruby_indent_public_methods = false +ij_ruby_indent_when_cases = false +ij_ruby_keep_blank_lines_in_code = 1 +ij_ruby_keep_blank_lines_in_declarations = 1 +ij_ruby_keep_line_breaks = true +ij_ruby_parentheses_around_method_arguments = true +ij_ruby_spaces_around_assignment_operators = true +ij_ruby_spaces_around_hashrocket = true +ij_ruby_spaces_around_other_operators = true +ij_ruby_spaces_around_range_operators = false +ij_ruby_spaces_around_relational_operators = true +ij_ruby_spaces_within_array_initializer_braces = true +ij_ruby_spaces_within_braces = true + +[{*.go,*.go2}] +indent_style = tab +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_go_GROUP_CURRENT_PROJECT_IMPORTS = false +ij_go_add_leading_space_to_comments = false +ij_go_add_parentheses_for_single_import = false +ij_go_call_parameters_new_line_after_left_paren = true +ij_go_call_parameters_right_paren_on_new_line = true +ij_go_call_parameters_wrap = off +ij_go_fill_paragraph_width = 80 +ij_go_group_stdlib_imports = false +ij_go_import_sorting = gofmt +ij_go_keep_indents_on_empty_lines = false +ij_go_local_group_mode = project +ij_go_move_all_imports_in_one_declaration = false +ij_go_move_all_stdlib_imports_in_one_group = false +ij_go_remove_redundant_import_aliases = false +ij_go_run_go_fmt_on_reformat = true +ij_go_use_back_quotes_for_imports = false +ij_go_wrap_comp_lit = off +ij_go_wrap_comp_lit_newline_after_lbrace = true +ij_go_wrap_comp_lit_newline_before_rbrace = true +ij_go_wrap_func_params = off +ij_go_wrap_func_params_newline_after_lparen = true +ij_go_wrap_func_params_newline_before_rparen = true +ij_go_wrap_func_result = off +ij_go_wrap_func_result_newline_after_lparen = true +ij_go_wrap_func_result_newline_before_rparen = true + +[{*.gradle.kts,*.kt,*.kts,*.main.kts,*.space.kts}] +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_kotlin_align_in_columns_case_branch = false +ij_kotlin_align_multiline_binary_operation = false +ij_kotlin_align_multiline_extends_list = false +ij_kotlin_align_multiline_method_parentheses = false +ij_kotlin_align_multiline_parameters = true +ij_kotlin_align_multiline_parameters_in_calls = false +ij_kotlin_allow_trailing_comma = false +ij_kotlin_allow_trailing_comma_on_call_site = false +ij_kotlin_assignment_wrap = normal +ij_kotlin_blank_lines_after_class_header = 0 +ij_kotlin_blank_lines_around_block_when_branches = 0 +ij_kotlin_blank_lines_before_declaration_with_comment_or_annotation_on_separate_line = 1 +ij_kotlin_block_comment_at_first_column = true +ij_kotlin_call_parameters_new_line_after_left_paren = true +ij_kotlin_call_parameters_right_paren_on_new_line = true +ij_kotlin_call_parameters_wrap = on_every_item +ij_kotlin_catch_on_new_line = false +ij_kotlin_class_annotation_wrap = split_into_lines +ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL +ij_kotlin_continuation_indent_for_chained_calls = false +ij_kotlin_continuation_indent_for_expression_bodies = false +ij_kotlin_continuation_indent_in_argument_lists = false +ij_kotlin_continuation_indent_in_elvis = false +ij_kotlin_continuation_indent_in_if_conditions = false +ij_kotlin_continuation_indent_in_parameter_lists = false +ij_kotlin_continuation_indent_in_supertype_lists = false +ij_kotlin_else_on_new_line = false +ij_kotlin_enum_constants_wrap = off +ij_kotlin_extends_list_wrap = normal +ij_kotlin_field_annotation_wrap = split_into_lines +ij_kotlin_finally_on_new_line = false +ij_kotlin_if_rparen_on_new_line = true +ij_kotlin_import_nested_classes = false +ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^ +ij_kotlin_insert_whitespaces_in_simple_one_line_method = true +ij_kotlin_keep_blank_lines_before_right_brace = 2 +ij_kotlin_keep_blank_lines_in_code = 2 +ij_kotlin_keep_blank_lines_in_declarations = 2 +ij_kotlin_keep_first_column_comment = true +ij_kotlin_keep_indents_on_empty_lines = false +ij_kotlin_keep_line_breaks = true +ij_kotlin_lbrace_on_next_line = false +ij_kotlin_line_comment_add_space = false +ij_kotlin_line_comment_at_first_column = true +ij_kotlin_method_annotation_wrap = split_into_lines +ij_kotlin_method_call_chain_wrap = normal +ij_kotlin_method_parameters_new_line_after_left_paren = true +ij_kotlin_method_parameters_right_paren_on_new_line = true +ij_kotlin_method_parameters_wrap = on_every_item +ij_kotlin_name_count_to_use_star_import = 5 +ij_kotlin_name_count_to_use_star_import_for_members = 3 +ij_kotlin_packages_to_use_import_on_demand = java.util.*,kotlinx.android.synthetic.**,io.ktor.** +ij_kotlin_parameter_annotation_wrap = off +ij_kotlin_space_after_comma = true +ij_kotlin_space_after_extend_colon = true +ij_kotlin_space_after_type_colon = true +ij_kotlin_space_before_catch_parentheses = true +ij_kotlin_space_before_comma = false +ij_kotlin_space_before_extend_colon = true +ij_kotlin_space_before_for_parentheses = true +ij_kotlin_space_before_if_parentheses = true +ij_kotlin_space_before_lambda_arrow = true +ij_kotlin_space_before_type_colon = false +ij_kotlin_space_before_when_parentheses = true +ij_kotlin_space_before_while_parentheses = true +ij_kotlin_spaces_around_additive_operators = true +ij_kotlin_spaces_around_assignment_operators = true +ij_kotlin_spaces_around_equality_operators = true +ij_kotlin_spaces_around_function_type_arrow = true +ij_kotlin_spaces_around_logical_operators = true +ij_kotlin_spaces_around_multiplicative_operators = true +ij_kotlin_spaces_around_range = false +ij_kotlin_spaces_around_relational_operators = true +ij_kotlin_spaces_around_unary_operator = false +ij_kotlin_spaces_around_when_arrow = true +ij_kotlin_variable_annotation_wrap = off +ij_kotlin_while_on_new_line = false +ij_kotlin_wrap_elvis_expressions = 1 +ij_kotlin_wrap_expression_body_functions = 1 +ij_kotlin_wrap_first_method_in_call_chain = false + +[{*.har,*.jsb2,*.jsb3,*.json,.babelrc,.eslintrc,.stylelintrc,bowerrc,composer.lock,jest.config}] +indent_size = 2 +ij_visual_guides = none +ij_json_keep_blank_lines_in_code = 0 +ij_json_keep_indents_on_empty_lines = false +ij_json_keep_line_breaks = true +ij_json_space_after_colon = true +ij_json_space_after_comma = true +ij_json_space_before_colon = true +ij_json_space_before_comma = false +ij_json_spaces_within_braces = false +ij_json_spaces_within_brackets = false +ij_json_wrap_long_lines = false + +[{*.htm,*.html,*.ng,*.sht,*.shtm,*.shtml}] +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3 +ij_html_align_attributes = true +ij_html_align_text = false +ij_html_attribute_wrap = normal +ij_html_block_comment_at_first_column = true +ij_html_do_not_align_children_of_min_lines = 0 +ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p +ij_html_do_not_indent_children_of_tags = none +ij_html_enforce_quotes = true +ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var +ij_html_keep_blank_lines = 2 +ij_html_keep_indents_on_empty_lines = false +ij_html_keep_line_breaks = true +ij_html_keep_line_breaks_in_text = true +ij_html_keep_whitespaces = false +ij_html_keep_whitespaces_inside = span,pre,textarea +ij_html_line_comment_at_first_column = true +ij_html_new_line_after_last_attribute = never +ij_html_new_line_before_first_attribute = never +ij_html_quote_style = double +ij_html_remove_new_line_before_tags = br +ij_html_space_after_tag_name = false +ij_html_space_around_equality_in_attribute = false +ij_html_space_inside_empty_tag = false +ij_html_text_wrap = normal + +[{*.jade,*.pug}] +ij_visual_guides = none + +[{*.jsf,*.jsp,*.jspf,*.tag,*.tagf,*.xjsp}] +max_line_length = 120 +ij_visual_guides = none +ij_jsp_jsp_prefer_comma_separated_import_list = false +ij_jsp_keep_indents_on_empty_lines = false + +[{*.jspx,*.tagx}] +ij_visual_guides = none +ij_jspx_keep_indents_on_empty_lines = false + +[{*.markdown,*.md}] +ij_visual_guides = none +ij_markdown_force_one_space_after_blockquote_symbol = true +ij_markdown_force_one_space_after_header_symbol = true +ij_markdown_force_one_space_after_list_bullet = true +ij_markdown_force_one_space_between_words = true +ij_markdown_keep_indents_on_empty_lines = false +ij_markdown_max_lines_around_block_elements = 1 +ij_markdown_max_lines_around_header = 1 +ij_markdown_max_lines_between_paragraphs = 1 +ij_markdown_min_lines_around_block_elements = 1 +ij_markdown_min_lines_around_header = 1 +ij_markdown_min_lines_between_paragraphs = 1 + +[{*.mk,GNUmakefile,makefile}] +ij_visual_guides = none + +[{*.pb,*.textproto}] +indent_size = 2 +tab_width = 2 +ij_continuation_indent_size = 4 +ij_visual_guides = none +ij_prototext_keep_blank_lines_in_code = 2 +ij_prototext_keep_indents_on_empty_lines = false +ij_prototext_keep_line_breaks = true +ij_prototext_space_after_colon = true +ij_prototext_space_after_comma = true +ij_prototext_space_before_colon = false +ij_prototext_space_before_comma = false +ij_prototext_spaces_within_braces = true +ij_prototext_spaces_within_brackets = false + +[{*.properties,spring.handlers,spring.schemas}] +ij_visual_guides = none +ij_properties_align_group_field_declarations = false +ij_properties_keep_blank_lines = true +ij_properties_key_value_delimiter = equals +ij_properties_spaces_around_key_value_delimiter = false + +[{*.toml,Cargo.lock,Cargo.toml.orig,Gopkg.lock,Pipfile,poetry.lock}] +ij_visual_guides = none +ij_toml_keep_indents_on_empty_lines = false + +[{*.yaml,*.yml}] +indent_size = 2 +ij_visual_guides = none +ij_yaml_align_values_properties = do_not_align +ij_yaml_autoinsert_sequence_marker = true +ij_yaml_block_mapping_on_new_line = false +ij_yaml_indent_sequence_value = true +ij_yaml_keep_indents_on_empty_lines = false +ij_yaml_keep_line_breaks = true +ij_yaml_sequence_on_new_line = false +ij_yaml_space_before_colon = false +ij_yaml_spaces_within_braces = true +ij_yaml_spaces_within_brackets = true diff --git a/.env b/.env index c3df9cf..731321a 100644 --- a/.env +++ b/.env @@ -30,3 +30,5 @@ APP_SECRET=10807aa920111cc994ed503360f5cfa3 # DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name?serverVersion=5.7" DATABASE_URL="postgresql://symfony:ChangeMe@127.0.0.1:5432/app?serverVersion=13&charset=utf8" ###< doctrine/doctrine-bundle ### + +DATABASE_URL="sqlite:///%kernel.project_dir%/var/app.db" diff --git a/.gitignore b/.gitignore index b5664ba..5120e80 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,5 @@ /phpunit.xml .phpunit.result.cache ###< phpunit/phpunit ### + +.idea diff --git a/.php-version b/.php-version new file mode 100644 index 0000000..45a4fb7 --- /dev/null +++ b/.php-version @@ -0,0 +1 @@ +8 diff --git a/bin/console b/bin/console index c933dc5..6eb0925 100755 --- a/bin/console +++ b/bin/console @@ -4,14 +4,14 @@ use App\Kernel; use Symfony\Bundle\FrameworkBundle\Console\Application; -if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) { +if (!is_file(dirname(__DIR__) . '/vendor/autoload_runtime.php')) { throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".'); } -require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; +require_once dirname(__DIR__) . '/vendor/autoload_runtime.php'; return function (array $context) { - $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); + $kernel = new Kernel($context['APP_ENV'], (bool)$context['APP_DEBUG']); return new Application($kernel); }; diff --git a/bin/phpunit b/bin/phpunit index f26f2c7..afd1b0e 100755 --- a/bin/phpunit +++ b/bin/phpunit @@ -5,15 +5,15 @@ if (!ini_get('date.timezone')) { ini_set('date.timezone', 'UTC'); } -if (is_file(dirname(__DIR__).'/vendor/phpunit/phpunit/phpunit')) { - define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__).'/vendor/autoload.php'); +if (is_file(dirname(__DIR__) . '/vendor/phpunit/phpunit/phpunit')) { + define('PHPUNIT_COMPOSER_INSTALL', dirname(__DIR__) . '/vendor/autoload.php'); require PHPUNIT_COMPOSER_INSTALL; PHPUnit\TextUI\Command::main(); } else { - if (!is_file(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) { + if (!is_file(dirname(__DIR__) . '/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php')) { echo "Unable to find the `simple-phpunit.php` script in `vendor/symfony/phpunit-bridge/bin/`.\n"; exit(1); } - require dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php'; + require dirname(__DIR__) . '/vendor/symfony/phpunit-bridge/bin/simple-phpunit.php'; } diff --git a/composer.json b/composer.json index ee1c50f..d05465f 100644 --- a/composer.json +++ b/composer.json @@ -4,7 +4,7 @@ "minimum-stability": "stable", "prefer-stable": true, "require": { - "php": ">=7.2.5", + "php": ">=8", "ext-ctype": "*", "ext-iconv": "*", "composer/package-versions-deprecated": "1.11.99.4", @@ -12,9 +12,10 @@ "doctrine/doctrine-bundle": "^2.5", "doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/orm": "^2.10", + "lambdish/phunctional": "^2.1", "phpdocumentor/reflection-docblock": "^5.3", "phpstan/phpdoc-parser": "^1.2", - "sensio/framework-extra-bundle": "^6.1", + "sensio/framework-extra-bundle": "^6.2", "symfony/asset": "5.4.*", "symfony/console": "5.4.*", "symfony/dotenv": "5.4.*", @@ -26,7 +27,7 @@ "symfony/intl": "5.4.*", "symfony/mailer": "5.4.*", "symfony/mime": "5.4.*", - "symfony/monolog-bundle": "^3.1", + "symfony/monolog-bundle": "^3.7", "symfony/notifier": "5.4.*", "symfony/process": "5.4.*", "symfony/property-access": "5.4.*", @@ -42,7 +43,8 @@ "symfony/web-link": "5.4.*", "symfony/yaml": "5.4.*", "twig/extra-bundle": "^2.12|^3.0", - "twig/twig": "^2.12|^3.0" + "twig/twig": "^2.12|^3.0", + "wapmorgan/mp3info": "^0.0.7" }, "require-dev": { "phpunit/phpunit": "^9.5", diff --git a/composer.lock b/composer.lock index e0d90c5..0326242 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "076125f938e4eae50bc5a7eb0e35fcc9", + "content-hash": "8f3ee861127a5ff042bdbf2be1a1f61c", "packages": [ { "name": "composer/package-versions-deprecated", @@ -1203,16 +1203,16 @@ }, { "name": "doctrine/orm", - "version": "2.10.3", + "version": "2.10.4", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "7b242753466508e1dd10f67c1baee95785f845c1" + "reference": "cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/7b242753466508e1dd10f67c1baee95785f845c1", - "reference": "7b242753466508e1dd10f67c1baee95785f845c1", + "url": "https://api.github.com/repos/doctrine/orm/zipball/cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7", + "reference": "cccb2e2fdfed2969afb3d65c5ea82bafdefbe1a7", "shasum": "" }, "require": { @@ -1244,10 +1244,10 @@ "phpbench/phpbench": "^0.16.10 || ^1.0", "phpstan/phpstan": "1.2.0", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4", - "squizlabs/php_codesniffer": "3.6.1", + "squizlabs/php_codesniffer": "3.6.2", "symfony/cache": "^4.4 || ^5.2", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0", - "vimeo/psalm": "4.13.1" + "vimeo/psalm": "4.15.0" }, "suggest": { "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0", @@ -1296,9 +1296,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.10.3" + "source": "https://github.com/doctrine/orm/tree/2.10.4" }, - "time": "2021-12-03T12:27:05+00:00" + "time": "2021-12-20T21:23:47+00:00" }, { "name": "doctrine/persistence", @@ -1589,18 +1589,74 @@ ], "time": "2021-05-22T16:11:15+00:00" }, + { + "name": "lambdish/phunctional", + "version": "v2.1.0", + "source": { + "type": "git", + "url": "https://github.com/Lambdish/phunctional.git", + "reference": "ed3482e7da134d886789abb33c6df22a5d2f271c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Lambdish/phunctional/zipball/ed3482e7da134d886789abb33c6df22a5d2f271c", + "reference": "ed3482e7da134d886789abb33c6df22a5d2f271c", + "shasum": "" + }, + "require": { + "php": ">=7.2" + }, + "require-dev": { + "phpstan/phpstan": "^0.11.16", + "phpunit/phpunit": "^8.4" + }, + "type": "library", + "autoload": { + "files": [ + "src/_bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eloi Poch" + }, + { + "name": "Jorge Ávila" + }, + { + "name": "Rafa Gómez" + } + ], + "description": "λ PHP functional library", + "keywords": [ + "functional", + "generator", + "lambda", + "library", + "php" + ], + "support": { + "issues": "https://github.com/Lambdish/phunctional/issues", + "source": "https://github.com/Lambdish/phunctional/tree/v2.1.0" + }, + "time": "2020-09-18T07:22:08+00:00" + }, { "name": "laminas/laminas-code", - "version": "4.5.0", + "version": "4.5.1", "source": { "type": "git", "url": "https://github.com/laminas/laminas-code.git", - "reference": "c99ef8e5629c33bfaa3a8f1df773e916af564cd6" + "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laminas/laminas-code/zipball/c99ef8e5629c33bfaa3a8f1df773e916af564cd6", - "reference": "c99ef8e5629c33bfaa3a8f1df773e916af564cd6", + "url": "https://api.github.com/repos/laminas/laminas-code/zipball/6fd96d4d913571a2cd056a27b123fa28cb90ac4e", + "reference": "6fd96d4d913571a2cd056a27b123fa28cb90ac4e", "shasum": "" }, "require": { @@ -1653,7 +1709,7 @@ "type": "community_bridge" } ], - "time": "2021-12-07T06:00:32+00:00" + "time": "2021-12-19T18:06:55+00:00" }, { "name": "monolog/monolog", @@ -1965,20 +2021,20 @@ }, { "name": "psr/cache", - "version": "1.0.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "url": "https://api.github.com/repos/php-fig/cache/zipball/213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", + "reference": "213f9dbc5b9bfbc4f8db86d2838dc968752ce13b", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { @@ -1998,7 +2054,7 @@ "authors": [ { "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "homepage": "https://www.php-fig.org/" } ], "description": "Common interface for caching libraries", @@ -2008,9 +2064,9 @@ "psr-6" ], "support": { - "source": "https://github.com/php-fig/cache/tree/master" + "source": "https://github.com/php-fig/cache/tree/2.0.0" }, - "time": "2016-08-06T20:24:11+00:00" + "time": "2021-02-03T23:23:37+00:00" }, { "name": "psr/container", @@ -2112,20 +2168,20 @@ }, { "name": "psr/link", - "version": "1.0.0", + "version": "1.1.1", "source": { "type": "git", "url": "https://github.com/php-fig/link.git", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562" + "reference": "846c25f58a1f02b93a00f2404e3626b6bf9b7807" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562", - "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562", + "url": "https://api.github.com/repos/php-fig/link/zipball/846c25f58a1f02b93a00f2404e3626b6bf9b7807", + "reference": "846c25f58a1f02b93a00f2404e3626b6bf9b7807", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { @@ -2149,6 +2205,7 @@ } ], "description": "Common interfaces for HTTP links", + "homepage": "https://github.com/php-fig/link", "keywords": [ "http", "http-link", @@ -2158,36 +2215,36 @@ "rest" ], "support": { - "source": "https://github.com/php-fig/link/tree/master" + "source": "https://github.com/php-fig/link/tree/1.1.1" }, - "time": "2016-10-28T16:06:13+00:00" + "time": "2021-03-11T22:59:13+00:00" }, { "name": "psr/log", - "version": "1.1.4", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "url": "https://api.github.com/repos/php-fig/log/zipball/ef29f6d262798707a9edd554e2b82517ef3a9376", + "reference": "ef29f6d262798707a9edd554e2b82517ef3a9376", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=8.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Psr\\Log\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -2208,22 +2265,22 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" + "source": "https://github.com/php-fig/log/tree/2.0.0" }, - "time": "2021-05-03T11:20:27+00:00" + "time": "2021-07-14T16:41:46+00:00" }, { "name": "sensio/framework-extra-bundle", - "version": "v6.2.2", + "version": "v6.2.3", "source": { "type": "git", "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "8be174975f05cb9a91860308b8b306213689b736" + "reference": "eeab0bbe6ac94a600a7da7aac020646dcd739484" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/8be174975f05cb9a91860308b8b306213689b736", - "reference": "8be174975f05cb9a91860308b8b306213689b736", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/eeab0bbe6ac94a600a7da7aac020646dcd739484", + "reference": "eeab0bbe6ac94a600a7da7aac020646dcd739484", "shasum": "" }, "require": { @@ -2286,9 +2343,9 @@ ], "support": { "issues": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/issues", - "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.2" + "source": "https://github.com/sensiolabs/SensioFrameworkExtraBundle/tree/v6.2.3" }, - "time": "2021-12-17T02:08:16+00:00" + "time": "2021-12-17T14:36:53+00:00" }, { "name": "symfony/asset", @@ -2809,25 +2866,25 @@ }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", + "reference": "c726b64c1ccfe2896cb7df2e1331c357ad1c8ced", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=8.0.2" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -2856,7 +2913,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.0.0" }, "funding": [ { @@ -2872,7 +2929,7 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2021-11-01T23:48:49+00:00" }, { "name": "symfony/doctrine-bridge", @@ -3221,20 +3278,20 @@ }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.0", + "version": "v3.0.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a" + "reference": "aa5422287b75594b90ee9cd807caf8f0df491385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", - "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/aa5422287b75594b90ee9cd807caf8f0df491385", + "reference": "aa5422287b75594b90ee9cd807caf8f0df491385", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "psr/event-dispatcher": "^1" }, "suggest": { @@ -3243,7 +3300,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "3.0-dev" }, "thanks": { "name": "symfony/contracts", @@ -3280,7 +3337,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.0.0" }, "funding": [ { @@ -3296,7 +3353,7 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2021-07-15T12:33:35+00:00" }, { "name": "symfony/expression-language", @@ -3490,28 +3547,28 @@ }, { "name": "symfony/flex", - "version": "v1.17.6", + "version": "v2.0.1", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "7a79135e1dc66b30042b4d968ecba0908f9374bc" + "reference": "3dbfa5c4e3308fd9def9a2006a20fa0c272a30a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/7a79135e1dc66b30042b4d968ecba0908f9374bc", - "reference": "7a79135e1dc66b30042b4d968ecba0908f9374bc", + "url": "https://api.github.com/repos/symfony/flex/zipball/3dbfa5c4e3308fd9def9a2006a20fa0c272a30a2", + "reference": "3dbfa5c4e3308fd9def9a2006a20fa0c272a30a2", "shasum": "" }, "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": ">=7.1" + "composer-plugin-api": "^2.1", + "php": ">=8.0" }, "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "symfony/dotenv": "^4.4|^5.0|^6.0", - "symfony/filesystem": "^4.4|^5.0|^6.0", - "symfony/phpunit-bridge": "^4.4.12|^5.0|^6.0", - "symfony/process": "^4.4|^5.0|^6.0" + "composer/composer": "^2.1", + "symfony/dotenv": "^5.4|^6.0", + "symfony/filesystem": "^5.4|^6.0", + "symfony/phpunit-bridge": "^5.4|^6.0", + "symfony/process": "^5.4|^6.0" }, "type": "composer-plugin", "extra": { @@ -3535,7 +3592,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v1.17.6" + "source": "https://github.com/symfony/flex/tree/v2.0.1" }, "funding": [ { @@ -3551,7 +3608,7 @@ "type": "tidelift" } ], - "time": "2021-11-29T15:39:37+00:00" + "time": "2021-11-29T15:40:20+00:00" }, { "name": "symfony/form", @@ -6460,22 +6517,21 @@ }, { "name": "symfony/service-contracts", - "version": "v2.5.0", + "version": "v2.4.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" + "reference": "d664541b99d6fb0247ec5ff32e87238582236204" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d664541b99d6fb0247ec5ff32e87238582236204", + "reference": "d664541b99d6fb0247ec5ff32e87238582236204", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1" + "psr/container": "^1.1" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -6486,7 +6542,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.5-dev" + "dev-main": "2.4-dev" }, "thanks": { "name": "symfony/contracts", @@ -6523,7 +6579,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.4.1" }, "funding": [ { @@ -6539,7 +6595,7 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:48:04+00:00" + "time": "2021-11-04T16:37:19+00:00" }, { "name": "symfony/stopwatch", @@ -7664,6 +7720,55 @@ ], "time": "2021-11-25T13:46:55+00:00" }, + { + "name": "wapmorgan/mp3info", + "version": "0.0.7", + "source": { + "type": "git", + "url": "https://github.com/wapmorgan/Mp3Info.git", + "reference": "b53a5e936851921dc2b88238b39a5bcc0ace4866" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/wapmorgan/Mp3Info/zipball/b53a5e936851921dc2b88238b39a5bcc0ace4866", + "reference": "b53a5e936851921dc2b88238b39a5bcc0ace4866", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.4.0" + }, + "require-dev": { + "wapmorgan/terminal-info": "dev-master" + }, + "bin": [ + "bin/mp3scan" + ], + "type": "library", + "autoload": { + "psr-4": { + "wapmorgan\\Mp3Info\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "description": "The fastest php library to extract mp3 tags & meta information.", + "keywords": [ + "audio", + "id3", + "id3v1", + "id3v2", + "mp3", + "mpeg" + ], + "support": { + "issues": "https://github.com/wapmorgan/Mp3Info/issues", + "source": "https://github.com/wapmorgan/Mp3Info/tree/0.0.7" + }, + "time": "2021-08-12T00:38:40+00:00" + }, { "name": "webmozart/assert", "version": "1.10.0", @@ -10001,7 +10106,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=7.2.5", + "php": ">=8", "ext-ctype": "*", "ext-iconv": "*" }, diff --git a/config/packages/doctrine.yaml b/config/packages/doctrine.yaml index c319176..8a51fbf 100644 --- a/config/packages/doctrine.yaml +++ b/config/packages/doctrine.yaml @@ -12,7 +12,7 @@ doctrine: mappings: App: is_bundle: false - type: annotation + type: attribute dir: '%kernel.project_dir%/src/Entity' prefix: 'App\Entity' alias: App diff --git a/migrations/Version20211217152806.php b/migrations/Version20211217152806.php new file mode 100644 index 0000000..210e0ea --- /dev/null +++ b/migrations/Version20211217152806.php @@ -0,0 +1,31 @@ +addSql('CREATE TABLE song (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, path VARCHAR(2048) NOT NULL, artist VARCHAR(2048) DEFAULT NULL, album VARCHAR(2048) DEFAULT NULL, name VARCHAR(2048) DEFAULT NULL, filehash VARCHAR(2048) NOT NULL, release_year INTEGER DEFAULT NULL)'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('DROP TABLE song'); + } +} diff --git a/src/Adapter/ScannedSong.php b/src/Adapter/ScannedSong.php new file mode 100644 index 0000000..efed3c8 --- /dev/null +++ b/src/Adapter/ScannedSong.php @@ -0,0 +1,17 @@ +rootDir = $rootDir; + } + + /** + * @return ScannedSong[] + */ + public function scanFunctional(): array { + $it = new RecursiveDirectoryIterator( + $this->rootDir, + FilesystemIterator::FOLLOW_SYMLINKS | FilesystemIterator::SKIP_DOTS + ); + + $pipe = pipe([$this, 'isMp3'], [$this, 'toScannedFile']); + return $pipe(new RecursiveIteratorIterator($it)); + } + + public static function isMp3(iterable $files): iterable { + return filter(function (SplFileInfo $file, string $_): bool { + echo $_ . "\n"; + return $file->isFile() && strtolower($file->getExtension()) === 'mp3'; + }, $files); + } + + public static function toScannedFile(iterable $files): iterable { + return map( + function (SplFileInfo $file, string $path): ScannedSong { + $song = new ScannedSong(); + $song->file = $file; + $song->path = $path; + + $id3 = new Mp3Info($path, true); + $song->artist = $id3->tags['artist'] ?: ''; + $song->album = $id3->tags['album'] ?: ''; + $song->title = $id3->tags['song'] ?: ''; + $song->duration = $id3->duration ?: 0; + + return $song; + }, $files); + } + +} diff --git a/src/Controller/Home.php b/src/Controller/Home.php new file mode 100644 index 0000000..ea8c89c --- /dev/null +++ b/src/Controller/Home.php @@ -0,0 +1,20 @@ +render( + 'home.html.twig', + [] + ); + } + +} diff --git a/src/Entity/Song.php b/src/Entity/Song.php new file mode 100644 index 0000000..2a84a14 --- /dev/null +++ b/src/Entity/Song.php @@ -0,0 +1,97 @@ +id; + } + + public function getPath(): ?string { + return $this->path; + } + + public function setPath(string $path): self { + $this->path = $path; + + return $this; + } + + public function getArtist(): ?string { + return $this->artist; + } + + public function setArtist(?string $artist): self { + $this->artist = $artist; + + return $this; + } + + public function getAlbum(): ?string { + return $this->album; + } + + public function setAlbum(?string $album): self { + $this->album = $album; + + return $this; + } + + public function getName(): ?string { + return $this->name; + } + + public function setName(?string $name): self { + $this->name = $name; + + return $this; + } + + public function getFilehash(): ?string { + return $this->filehash; + } + + public function setFilehash(string $filehash): self { + $this->filehash = $filehash; + + return $this; + } + + public function getReleaseYear(): ?int { + return $this->releaseYear; + } + + public function setReleaseYear(?int $releaseYear): self { + $this->releaseYear = $releaseYear; + + return $this; + } +} diff --git a/src/Repository/SongRepository.php b/src/Repository/SongRepository.php new file mode 100644 index 0000000..efd1204 --- /dev/null +++ b/src/Repository/SongRepository.php @@ -0,0 +1,49 @@ +createQueryBuilder('s') + ->andWhere('s.exampleField = :val') + ->setParameter('val', $value) + ->orderBy('s.id', 'ASC') + ->setMaxResults(10) + ->getQuery() + ->getResult() + ; + } + */ + + /* + public function findOneBySomeField($value): ?Song + { + return $this->createQueryBuilder('s') + ->andWhere('s.exampleField = :val') + ->setParameter('val', $value) + ->getQuery() + ->getOneOrNullResult() + ; + } + */ +} diff --git a/symfony.lock b/symfony.lock index 00d7b5d..5cf1be0 100644 --- a/symfony.lock +++ b/symfony.lock @@ -88,6 +88,12 @@ "friendsofphp/proxy-manager-lts": { "version": "v1.0.5" }, + "james-heinrich/getid3": { + "version": "v1.9.21" + }, + "lambdish/phunctional": { + "version": "v2.1.0" + }, "laminas/laminas-code": { "version": "4.5.0" }, @@ -592,6 +598,9 @@ "twig/twig": { "version": "v3.3.4" }, + "wapmorgan/mp3info": { + "version": "0.0.7" + }, "webmozart/assert": { "version": "1.10.0" } diff --git a/templates/home.html.twig b/templates/home.html.twig new file mode 100644 index 0000000..d81a6b4 --- /dev/null +++ b/templates/home.html.twig @@ -0,0 +1 @@ +olla D: diff --git a/tests/Adapter/1-second-of-silence.mp3 b/tests/Adapter/1-second-of-silence.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..fed8dc6015f31a68e94a812141850e284803a300 GIT binary patch literal 37206 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 literal 0 HcmV?d00001 diff --git a/tests/Adapter/SongScannerTest.php b/tests/Adapter/SongScannerTest.php new file mode 100644 index 0000000..2b1a621 --- /dev/null +++ b/tests/Adapter/SongScannerTest.php @@ -0,0 +1,16 @@ +scanFunctional(); + var_dump($songs); + } +} diff --git a/tests/Adapter/mock-band-a-album-a-song-1.mp3 b/tests/Adapter/mock-band-a-album-a-song-1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8176801dce10ca2d3e8c99b28c006be45ad202fb GIT binary patch literal 37078 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%0DgX z2B^~?2{u3fqO_Zyj#5H$5nSH`Cha?&CAaA~O_K@wC)3lTtpZ#qF5FBrR{rcVhB7#} z%ls5glmPj{b+L!FG=F(IF(Rap0QmhaTn3gdO$q8f3!N*jQDR(kUQDMy6;qZHuZ<9U zwO<5AC!W?AE3j=R!iK2yxeY1u(SJwu#e!nSnlzj^i85PXKHKTG5)pbKPawv6w1tnq z(|I!DcQWFf^EdPp1J_xQnTFm4R=0IbtTFC8-u^^~gO}%tyo_)%s$bhy5N7SSnn~fe ze)ibziP#@nd6K#XcPVS&6VlJJbs^MS&ST;JW}RB&Lo@tl?cm=+*5z%)kL|F9kkIU7 zU9AItdvV0_DZ9YPY2C}Q0JBiDx=?xx(W#_1S;^l^Z%&*CA1H~;KhSbYM+oli zm;}cu!r}->Zy$^fV*y~6*RMLHolC#%1a77gTLv^%E~O_-z)YiZnh1xQ8AY$VJtzv= z)gS~-zQDYe^IofNQA{VNsv4ABfu+O(-@~{sPyhR??I zGMzT)xRD$y0EFHgV`NhD??pI)oM5+EIiv6mRtt1(D_h>hpoJKm$+<1Jv?xM2`ALT~s;MJRS$OX;b!^OS=7YYYv|*+Sebt;F0JLpfFwyFHji z8)6fiTp~Q^;7DqdhUf9boKyck8i}J37kGsmk{qXpBABhf7PfP`(UyX8sPZZrp+Z7h zS27APb^NO-Ysajo=HdYmzx-du$t%kXr7_W=D)gng-x{rD6t5xEKXXb#lRRQ>Y^swZj4{7!@26G!S5gi z+ct|*!NIpLRHjOMJ|tI`ohbyz4Ck|#Hs+75k-7T%)S<(&p~1-&{H@0F^vOFXMBKHp zaw>*qyFE|%REC@pSjadm9k>gq6YRN(2qHjrrd#zELH-Z!J5pH1{(j!tjoy^1=DxdB zw2!ZFWxkab+c>wzr>{-x6fuQS+)4I@MXupd&XxUL95?r)SzR`xUqKOj2>t443JSHZ zm9)TgUJBq+Z}}yN{Q3!Xb=@H|RE54T@V{0=s@+-2WOWswUHgAukH!L`RVD3pS)Y*QI&7#dGb3aq*;Vlmti?7`{o*rM8E7MIEFf8J^l3^m)~$AKq@B za)D%9;@dckHMI~?fV6Kz0x90n8LuQ0A|wtPJ~305Zq`X|lkA%x6?K?&D&_D<5smj5O3Y~$8C3|Gifk7N$snWf6i2X5Ds4(>e#Dfl(`U?-u=%` zna4LYT^fp!&ixLp27OBs(G}|+GEuFke%uMs#0{CnF*v z4sc}+MBHz&8>&A_X5=q88w)}B#ou=Mo<~CM572X})OTyc4X0)i7L{@RDM)FVWvX1jTB8v@3W6-A{nN=c56^msDxc>p))@ zCGClX7Oz}74r$Y;hQVD(A5h-60_VJEB)Q7xHIF`{H4GU^$oI8O%+-*zJIUjz0kOy5 zop3o?mj(|J&3)B-gscr#%|ong`^E9n9CUJlhvOI<>d zK`rUxZY27E9=%5$2rdJ00OHeHVh0i<O1 zg)&gb6Jr5lqWGhOb~&y`)C{%VqE1r-+aUwhfu?A4WWFX#1MRWajm>+hKR2v0<6cDF< zHHVX=i}O!j@?l~KoBOU`c3|XYl9o8yI7C=nrfTe`Y9vIok&+CW;B8oq@-G((qh4(lEMxHwX+zylAcGu(ks=di4me9`~q=}DK|L8 zv)W#~NML~*H8nC@)O-0k@Zvj=xR1}fp2+*#{kQmp>vkaJdIai#`NR_aj@29Mjpa6FWk7uU)6N3bEOR`<9%G5(bNh7ZerrTSU`P_&J+%gl3*F`bBl>JYp3$k_AzDb)j;DT8bpTY3BX&j?qQ(AVVl=6dJm5MZ8b`ocrKJb|*+zE?g z)DhF{A5xPSYXVhiMfZrp#edwHst>QHVcbRT5Tr)RLZ!<3A@8nXD1PaRZZYY@?aMRs zKomX5L!nJFe6fyU?)~q)d|VH0=0i2QU-Ywoz^{i9)>t3}{X+&~SVCHGBE7*iL`2~oNT8Gx3BRodaYXuaiT6Xq5t`||Z)iBYm*fO=pZcuzWdF(n&YW+Xa$DNs&I@ zR>PFE>W1&Zy$DBSCT)9hBg3%tEvcCVKPt{NpjdLaDRZ?^?))af9UsAYion-eVi%ZT zx__G`Ge9z{5R=KTR!R6Q5k zG1vLa4MIU8C@9R=qmSmeO3J`aRogV<<~AWWC(6yMYlNbJVJ#C&WjnJ=%g)`q`y1y7 zfzxY7P3Fh{Jl%G4dqF#Q>Y27YmsXQW+Kn5p-Msm#;nTo?0a~DZLtwJw`g?GFr{~Nj zSv+bEC`I@7^k}CV!z7TBlG5s5eL|*71wVhbDSIB^EA?TvYRwt7IXRDRmXAG{bP5U? z@^+}syB;Wq=1agccBjn+9F;E_nhFvyGep&L1hq5JcKMBh!fk0Lt)X8n1`oW??;t1+fkMFe77*>e;;Zy9_ox$pBI-#&a0p0>PcD;Tl>_L^`wI$3#*06 zI;D7uV%GYPaM!5SJD#ygq!>0FORva>x>JfSEh;itm>C@*(M@r;ZlfUeE!3W*BqhIn z?4@B5zWMFjH`CX4D0L{pGLF+lRYg%t>%bXOOsDALT|-MH=rHjXIQ3$Gxk{$xJKM32 z(X_dAzjil&#3*^1?yu$p#b9Aa-$ykjx^G$~4dwzfc z#=|i!ud1s0IcwaSCT-G^B6t1zbJfO}i%)h03Ojs4!?t*KqH4ZtE*gN|{`#e3dvNux z?T7|+L^}qeHO|@DnaLH^aHlDh8jhVhRjWJvj7ML_1xBbL+?CkjPex5#;ukNn@85rq znegr+JO5x|uaT?5&CPABLk=(4d9GmG%dz+6jd~pW5@pkMTj&)G z4BofvaU4B*RLJgkFfFU-heG$Q!|)-6od2GDv$}{1*tVIUeg3PzKYDR)G7gSHS*S?1 zX=h$MI`9G9N)Vw+SFd`3*_A$8eF6J}t1Z|R6u0ao#YA-D)qu z|JzWg3XsP8KFxyTc}!67W?o)img`cMmbUiG=g+@9qNFImYN7Ze=<4c<&h<=`@9Ele zoo--TRYTd!#IyyLoTr*@am^5`kld zcT#i@-QCMOJ3B}Co;-Qt;p5YYpiV_HHfjDOjxd+8=>Qj~!w$CNl7XkKqHKS+4c2Gr zR)wmg&ZIC{`_5*(TRdJZ^ZF5)U~@wjzyP`LCv4{t(qLV(LlXQRW!9dhh+P{!1r!wa zyeA~vxVv8OVq}cP;%3luai`fEg+iX_^unQo2QMPM%D+CPi*o?#ASq3t6oU3)YpnV! z6~VD+lJn9{+iL-8T#|U#fSIvQGmGS)z+;NBq*;2znQHA`fXomS*ZB(ruRxQ;^L-wG`->>pT7lpH5%_OracjfQd{5|yM)cV*lz_Q*Nf0F30A+cD#A?? zSlt%oFw8P8Y4E3wuor@99|eW)B^p}c9*c)FC;Q8d!Hk*yxs8gGDeO7T}7yfDoMU^H9yD35>Z=v{l(k8|A53CG9`AZ z=>04y9E`l=T?^W2^Y_o~?8!gl;}$|~h&lF+f`7h)&DElntRiY|ZtkdTsBo00qQt=? zM}~pwwE3d!?CjD4wwJOPuEqhX8xqu8^&D_9VC{}drYi8ImSlZj0Bm%5z=`tm@++7M z5)#ALs<-Xl9gP&Bj4B&QR0J*;eg5I*7;LYiO>_?n3tL=V^aGGD%#IC1c5Ic2$jdvX z@cyYX#TsqHx+rhRp4+yQtPBh>NR&o!a)d0p|7p;(eDmf_ta5S`F7pn5zqPii-n(~i zs3y`KP0rDyP`+*zzSNp>ClXF~Ye=cs%A&TAE9>%aA*T*1 zio18I{+vWkuS0K|9=FKJlh@)^QfvSGER=Wo#E)H_oSJ!R_}a>_8NqQ3$sD^}m@y8j zs4nqSy6a5G3`S1$SDi33GdpzTh!uqx6=f-Q6!Dt0@GikmP>Ne{fB5hYRtiZJ6%Iv3 zMep(4S&q}O4P%b*CK|Am6nsSn&uw@C?yG>@fsJjqm6Q;X2)Aos06P7Q)dlycrfVcv zUoXpCy;={WkQYw8LQt{zrAvlrGYAxO%PY3nMo%Aw)IEf5m4M1nkvPnXYEI|tyM;;_ zJx8B`q-6IJA_HN} zcl*oQAQy&UF*gmdrKuO~bBpLJRVws$@0>=HV$3CPMm)1?>~Qd*EA&CSgdBpFr@AcI z+9rHX0iWh*%fJZXPVW)Vr`!9h3VXsqH9R~$UrdG1eTC;S1tO~&f9U7coiFPRx3mZ~ z%HtJR4B$jEp1eh|VJ(?hdqx07mFe6gn!RdiAJ8M<7OR<`r}W|G?Mc3>^92^ejhxx7 zw*Xa4uVn9WD1Z9lVwh_;rom_Y<77j@mFF15poG2W2hT}AgK2#SZK1ZB0hkblezHbw zKi=~Ly#Zb4Ut-?77pzQW5RHa|fn&HG0D%qrJHPQ(DCO_2T+0M@fG*c`WB)|dH`Rxi zP?A#NZC^`Ka2X6>Z+B16sDEimNtU$(pq2!4#g_W|P)FR)5tEpba2BHvH{zdoZ zc73$tKm&yeUhM{$)`dx__)ES#vR$RVtY&t*HaqbNvS|73qEe@Da56$IRBtH*dy7>u z#Ma*yeObj4F!qCJD7Dq>$IuNoB@W|R_#0>)>b)3vQXm_w69r07QWSh0ctG`MpQNPZ zP-}W3cGvQG{@gS=&GUyh)1v1Qqk!p$m4*BjdF=bMnfs?B!DO9~wMqd;@V`KtEU&k{yvorj;DjmpMgI*E+c_&Q0O15qMl>m#m z30-viilg@BpO`p(g-d@8?cll5rvUNy&~J_q12(;7bQnk(5Jk&xLaJM2DJV{EUPD_@ zSX5Fngt~GaHjRCc65ArJz>-^|j-5=gOW_5tj2pUM0m#w5Hh!^*lbf4tV61_2%UQ-0 z^LhUhS1sy-(o%^q=ZPoHDG)oAoaHUKPU(4z6Iam4R&SWegUe-sLdHtRB2&@VTwM3( z>~LdzvH{gH$2unaEakY*B$&`7dV?j&buYhhwGZEj4vYvn2DagN=sf@I1fvF15TRT<7Hn=1H+*M3n@ z27Uv4En!1u0plOxU%y^XzO$A|))yoCYAHlTB0S-vb}20ev{GwzA7a9V0!sV$Z{HsD zWEtP|?-e?dwA}$E{T7}1tge4Q8#78Pgt8!E2rNK`e`omAhRV6B#$${L1x3Km51Z{j zVu}37h7iinlDRsb%VD6xObJ#zhEiLZLF<*Rzo8 z4Jd4;TJ&6ku6jE^kMur-5BSZfDcKws1)<54B@+5c4#Pm#b@IwN2(8_)LG|jEO`GKG z?d>0Ntc-7WG>BM3ad#LTh=ErcW29!-apVVgT|OD8v`1{Tn>W{jxA5o){zm=}B!^N^sJY*z z`g&Hk%+F$81Z4zw@`D1($$HAxG8^{PMDjgjq1h%}13n_X67{64Za>icMuJ+B$_)B* z3?P=uLe8YCHvO!*`+zv-89pb1D833}UD?cwpe?Be;Kl41pP!#kINEeR@Q@u@MkT}i z4H4lA{U9}O(UTLnob9%fhuRKN>>+{{=OLH4nh$GeXrS%!#VP$t{t9*>67W)~J#L+hp7<;#zqU0hIAc}K7Zo*pEeC#+EcZ0hiR(Daa{@giX)C~ycn zs%vX&+W-@KtHL@*DJ5_!N%9{*o}@dba2a~79zn8;nK>Q?ssU7AOSWC&^XJdomNS!e zzD3~BVR-G=@|@=gr^IR}`V0;#jFLc-2nmc}f={(^XFzT?Bx-gVDuek>!9ut*@#~vP zior8wiK+xkye9F6Kr6QUq$3~dxpgY7;kmNr~oN# zF%EngYBG-=m-kXHj}bC8(N_^C>@WeF;v6`Pyn=!s%BAnHf*hQm(jY;eWmNcZQ||Wd z+pv(Z;io=QVyo`A=f!Vg8%TI5m%j7e3~P`G>LhK6>{MyYdI}T(>5=CT`=@0RZh4G! z5PwEtz3RLriONGx@9<~rY=i;Fl;UBfnRh48bKafwIK%Qx7GHnUoguSh6)vOPu! z>rZ~+9n$(>OFBNQN4+H8-+K@Dc>svDV<@OZBPv-d7xTBEV=NuNgYgE5;n@EDpL_DN z_X?QS$0g>)!br>-O-G@X))Dk%)YU!PW;hDI{+%BmZxf47wXv790Kx5_#wz#@tPb9^Rbwvp&v<+*pxsMH2L_+lbXJY zAVR64D|c6Jq^4GYb=vS&a%Y{bqZ-2PkmSo_ir4WO9cT!ag+WWo9q2Wgrim@P*u#nB zz>KG!{-g?3Bfat)`FweK!K?zmk%2w&0>ig3_gLE-ebzr%)g>y83GY4h`7 znbA|aLvA=u4ZK00$5B*2V=CDo#{hbY7zJL(DT5{S8rd3#z~BnqA2KI0KL>9v;@pGv zM|pYcBZLup5HU(HD51Mv!bEd$aCm+G8K6Cmm~F_)*iV=E>eVZSfY)piv~_j4yens0 zGh;T<(#q5=GCQ0fH1%fWJ5@hBi|lUIYG;Q|RT&fCHS0DTz(ORG-hgfX?q)OBcQP@N zk&XqyjMCP8{u?|5PdSMGaV#(eWSnVK|6{;#q8K^RL4O}Vw-U>5(qhn6a8IwoQJC0R zd|2S?)~@~G5&{@RJyHb4EGMbUm#abcqcq)?6wlcGu79%gNZU+G2h`4x*~@3xb*~ID zn1oIH7m^G1A37wCo{$=R@&*OmW9S0dyk(0#qUUOVBy2chViA1-KA(#5QV0kD0gkTZ zIdsK8h0z=kp@QZvIV3w~p>%R@!|L#RXf1dHA3G~0O&co_n>zQ&-yMGs<5IpNfa$a) zJBB$W_3^3#SUFd5g&I)MV2wPy1SyOG9#p(8rU2xS9KS>R8SnYFpx|sS%Kw9T z-?*^$(RQH2Z9NTU#Ou0fPk!#8TLkXHbr970xEm+rrG2q&_yW?O9Pm}d)jAkx%c=b7 zB1XpcuLzW2tX$+HBGdv)i7Ns(c(g53o)kfpyPiFNuGPp}sba#&_AN*t(RFcL0(}Km zdUb?>p(SbnW25Aj&Dya|Y>}Ch*yvyx80R6hq+a*re z)pQCYf=vRuwr~HrSe%-eNR}khan`}d)YR1V_{D|z&}ec8khF6_{3fU3n12or#{rNL zhZ@I}KfOJ86j`1uIKpdzcNIT-`^#Ql*|M7}<$ZG|w3iF=yiyS3{NKL=h`qX}`!DQb zVlv(wi{_m7w+kQLfte7zks{+^z}sE?RJUT#XhQt-3QGx@YFHsdO^IQ6rrUD-df)d* z2MgBp4u?PzVz;0^!Lo)41YaCz-t)Ie;IKxTMj|F>Mq4q#eyA#NXliN_djsS~GS$Nj zJDK>ss zOifAt0C)-k5dt~@i~+dbmd#n%YO1_$^R8uv3 zb>``%`mqq-8@W+u^BS~YoXJIVXw(GCam-?_YQPOSlnVyiUa9buWA2-myrraps+cF? zWE%(joM|)wLj_As|G*ggbhs{5RrR{hp{W-FIzz$e{XdT$ z0dsWerLFVlhmN}}O*g3-ui4i{;kC{DpMU;&kD(pv$jz>B6=sTrtp)Nxyy6~;QDAUVVXpHr6+ZMmJw1x?DtvLW-NAC0I&@GL46S?5 zL+PHLo{pF{*e(OnNOCQ0Vl=8y^c**DafhKm5sTzSYZKbn+xu?3r!)@vM5#PcJv(YM z-LbcECZBLN(y@Ncvr$wk_zW55iJFkD>Bl*1&l0B|2@PYmColn51eAiT`8j~Q*c-Y^`8|2X5@C@?D3 zwP%0`Z(w@-tQW$vl!N$8eii!kX*kl+-2A*DHfA_t7tBGCfo-<%3sjQzyu~-PV+xfJ zX{*_W^I<8htvHLG5>h+rpUV3RBbT@++pRl5aZ#nM#yBwt%0Apo#}U|h@ZiDsP$srU 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 Vkk2zup)5W`V${EW`9FQdzX5J0wYC5N literal 0 HcmV?d00001 diff --git a/tests/Adapter/mock-band-a-album-b-song-1.mp3 b/tests/Adapter/mock-band-a-album-b-song-1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..628cd6a30048f06be8b2f718047e246d88637b1e GIT binary patch literal 37078 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

awT3V=bw}E9(DebacW| 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 W{SV~x%u^_f50M!4uV4O8U-55k<+Zi| literal 0 HcmV?d00001 diff --git a/tests/Adapter/mock-band-b-album-a-song-1.mp3 b/tests/Adapter/mock-band-b-album-a-song-1.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..2e72b694c7ac7b821ba8f6f87e912dc617474f18 GIT binary patch literal 37078 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%0DgX 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%0Apo#}U|h@ZiDsP$srU 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