diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e359684
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+
+Backend/.php-cs-fixer.cache
diff --git a/Backend/.php-cs-fixer.cache b/Backend/.php-cs-fixer.cache
index 48750f7..fec2eeb 100644
--- a/Backend/.php-cs-fixer.cache
+++ b/Backend/.php-cs-fixer.cache
@@ -1 +1 @@
-{"php":"8.2.12","version":"3.64.0:v3.64.0#58dd9c931c785a79739310aef5178928305ffa67","indent":" ","lineEnding":"\n","rules":{"no_whitespace_before_comma_in_array":true,"array_indentation":true,"trim_array_spaces":true,"whitespace_after_comma_in_array":true,"array_syntax":{"syntax":"short"},"php_unit_method_casing":true,"function_to_constant":true,"explicit_indirect_variable":true,"single_class_element_per_statement":{"elements":["const","property"]},"new_with_parentheses":true,"class_definition":{"single_line":true},"standardize_increment":true,"self_accessor":true,"magic_constant_casing":true,"no_useless_else":true,"ordered_class_elements":{"order":["use_trait","case","constant_public","constant_protected","constant_private","property_public","property_protected","property_private","construct","destruct","magic","phpunit","property_public_static","method_public_static","method_public","property_protected_static","method_protected_static","method_protected","property_private_static","method_private_static","method_private"]},"no_trailing_whitespace_in_comment":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_trim":true,"no_empty_phpdoc":true,"phpdoc_no_empty_return":true,"phpdoc_indent":true,"phpdoc_types":true,"phpdoc_return_self_reference":true,"phpdoc_var_without_name":true,"no_superfluous_phpdoc_tags":{"remove_inheritdoc":true,"allow_mixed":true},"php_unit_test_annotation":true,"php_unit_set_up_tear_down_visibility":true,"blank_line_after_opening_tag":true,"method_chaining_indentation":true,"concat_space":{"spacing":"one"},"binary_operator_spaces":{"operators":{"=>":"single_space","=":"single_space","&":"no_space"}},"single_trait_insert_per_statement":true,"no_blank_lines_after_class_opening":true,"no_singleline_whitespace_before_semicolons":true,"phpdoc_single_line_var_spacing":true,"no_leading_namespace_whitespace":true,"no_spaces_around_offset":true,"no_whitespace_in_blank_line":true,"return_type_declaration":true,"space_after_semicolon":true,"ternary_operator_spaces":true,"method_argument_space":true,"strict_comparison":true,"is_null":true,"strict_param":true,"no_unused_imports":true,"no_empty_statement":true,"no_unneeded_control_parentheses":true,"no_unneeded_braces":true,"declare_strict_types":true,"cast_spaces":{"space":"none"},"Blumilk\/double_quote":true,"void_return":true,"use_arrow_functions":true,"fully_qualified_strict_types":{"import_symbols":true},"ordered_imports":{"sort_algorithm":"alpha","imports_order":["class","function","const"]},"phpdoc_line_span":{"const":"single","property":"single"},"general_phpdoc_annotation_remove":{"annotations":["package","author"]},"no_extra_blank_lines":{"tokens":["attribute","break","case","continue","curly_brace_block","default","extra","parenthesis_brace_block","return","square_brace_block","switch","throw","use"]},"trailing_comma_in_multiline":{"elements":["arrays","parameters","arguments","match"]},"nullable_type_declaration_for_default_null_value":true,"PhpCsFixerCustomFixers\/constructor_empty_braces":true,"PhpCsFixerCustomFixers\/multiline_promoted_properties":true,"PhpCsFixerCustomFixers\/no_useless_comment":true,"PhpCsFixerCustomFixers\/phpdoc_array_style":true,"PhpCsFixerCustomFixers\/promoted_constructor_property":true,"PhpCsFixerCustomFixers\/single_space_after_statement":true,"PhpCsFixerCustomFixers\/single_space_before_statement":true,"PhpCsFixerCustomFixers\/stringable_interface":true,"visibility_required":true,"no_leading_import_slash":true,"lowercase_cast":true,"lowercase_static_reference":true,"compact_nullable_type_declaration":true,"declare_equal_normalize":true,"short_scalar_cast":true,"clean_namespace":true,"unary_operator_spaces":true,"class_attributes_separation":{"elements":{"property":"none","const":"none","method":"one","trait_import":"none","case":"none"}},"PhpCsFixerCustomFixers\/no_useless_parenthesis":true,"single_blank_line_at_eof":true,"Blumilk\/no_laravel_migrations_generated_comments":true,"PhpCsFixerCustomFixers\/commented_out_function":{"functions":["print_r","var_dump","var_export","dd"]},"PhpCsFixerCustomFixers\/no_commented_out_code":true,"PhpCsFixerCustomFixers\/no_php_storm_generated_comment":true,"PhpCsFixerCustomFixers\/phpdoc_no_incorrect_var_annotation":true,"PhpCsFixerCustomFixers\/phpdoc_no_superfluous_param":true,"yoda_style":{"equal":false,"identical":false,"less_and_greater":false},"object_operator_without_whitespace":true,"function_declaration":{"closure_function_spacing":"none","closure_fn_spacing":"none"},"single_line_after_imports":true,"single_line_comment_spacing":true,"blank_line_after_namespace":true,"simple_to_complex_string_variable":true,"no_empty_comment":true,"no_trailing_comma_in_singleline":true,"magic_method_casing":true,"native_function_casing":true,"lambda_not_used_import":true,"no_homoglyph_names":true,"assign_null_coalescing_to_coalesce_equal":true,"no_useless_nullsafe_operator":true,"no_useless_return":true,"simplified_null_return":true,"multiline_whitespace_before_semicolons":true,"line_ending":true,"statement_indentation":true,"blank_line_between_import_groups":true,"blank_line_before_statement":{"statements":["break","continue","declare","return","throw","try","if","do","for","foreach","while"]},"no_multiple_statements_per_line":true,"blank_lines_before_namespace":true,"psr_autoloading":true,"type_declaration_spaces":true,"control_structure_braces":true,"control_structure_continuation_position":true,"braces_position":{"anonymous_functions_opening_brace":"same_line"},"lowercase_keywords":true,"no_multiline_whitespace_around_double_arrow":true,"Blumilk\/compact_empty_array":true,"Blumilk\/class_keyword_fixer":true,"Blumilk\/named_arguments":true,"no_blank_lines_after_phpdoc":true,"constant_case":true,"php_unit_attributes":true,"spaces_inside_parentheses":true},"hashes":{"storage\\framework\\views\\9bf0bf855bc13e16750e2a5e36744ca4.php":"e5844427b776eb699d5ec89f44d3e2ce","database\\migrations\\2024_10_16_105416_create_kebabs_table.php":"2a6935368dc3e59f1ad35e74d19acb4b","database\\migrations\\2024_10_16_110140_create_suggestions_table.php":"dcd28a096eb6ad324c7a7d79673a4e3f","database\\seeders\\DatabaseSeeder.php":"b82d88332bc59876a3e674a5fc2a8d8b","public\\index.php":"dd9420d1946e6f5ac53594066ed21bcd","resources\\views\\mail\\contactUsMail.blade.php":"2e5a0f145b80848cb5b1c643b0b6e2f2","resources\\views\\welcome.blade.php":"7c20c7ebc3218c403dea71117f69dfed","routes\\api.php":"52ec85f0a6cd9a3499e5d17728d7c104","routes\\channels.php":"69224ae3142ba715c9a88ab51ebb0f2a","routes\\console.php":"e8ec20fcf9db2c8ed133bd71f541959b","routes\\web.php":"e9b97e09a1af3d9e0ff688d87e147512","tests\\CreatesApplication.php":"547b076015f8c5a1bb558b7b1d3d8548","tests\\Feature\\ExampleTest.php":"cbc86ef604b670eff5077c52ba43cff3","tests\\TestCase.php":"b9ad5821823c481100f73431178caa71","tests\\Unit\\ExampleTest.php":"1892966e6e20f3cd936dcfa4ed7275eb","codestyle.php":"78106c01bb6c67815aad1f58ec44cd0d","config\\app.php":"9fc6583a7668465151943600476ea442","config\\auth.php":"a488b0d57431b546548feb34edccd48e","config\\broadcasting.php":"c72d877f6c2bc0726fb9a1e717fd62c8","config\\cache.php":"ef8901d79de3b0790253c5a96d0e4ca6","config\\cors.php":"6fcb0b17f2f7c50460588c995172acf7","app\\Http\\Middleware\\TrimStrings.php":"6fc714347e06b50092ab8ed32dde44a3","app\\Http\\Middleware\\TrustHosts.php":"296d5025e64924ad380db403db212e03","app\\Http\\Middleware\\TrustProxies.php":"6ef300cb0fa4760b0b78eeed4b562487","app\\Http\\Middleware\\ValidateSignature.php":"a3b8b6a39e865b98596215de1d2b1b49","app\\Http\\Middleware\\VerifyCsrfToken.php":"ec90d977fba72bf47b36209750f6c309","app\\Http\\Requests\\LoginRequest.php":"2e4b5eb1f7e96522fc6606563bc153c9","app\\Http\\Requests\\SignupRequest.php":"64d40c6fb14d7f0f4416f4fc65077af2","app\\Http\\Requests\\UserRequest.php":"9924fb264e27913626e84ac5caab2c2f","app\\Models\\User.php":"8e58a4ac95edb329538f5bfc27d9ee4f","app\\Providers\\AppServiceProvider.php":"1ec4db88d3552a5250b23a5730a20185","app\\Console\\Kernel.php":"f7036533db76cf5f2180e942e3a51ebb","app\\Exceptions\\Handler.php":"51a92074c25f79602e1d88bab27cc6f5","app\\Http\\Controllers\\AuthController.php":"8f1505c581c3fae595a22b8e5b1ef02d","app\\Http\\Controllers\\Controller.php":"3cd28b4b4ae4d9fa3300376350c2751c","app\\Http\\Controllers\\UserController.php":"1dd5a69833e88e3fec2c8d28564ed71d","app\\Http\\Kernel.php":"ac608ba6bc4e68cf52ad6f26c1c002bd","app\\Http\\Middleware\\Authenticate.php":"c5c9966ed056b0c30c346e4e1ed6de52","app\\Http\\Middleware\\EncryptCookies.php":"fba0599e278cebd030c54270cf855686","app\\Http\\Middleware\\PreventRequestsDuringMaintenance.php":"bc36f9173ef40b9ed9e334466863d3cd","app\\Http\\Middleware\\RedirectIfAuthenticated.php":"bbf6fd4f1eee7db7212ccf467071910c","config\\database.php":"59e8b95ff50e3af1234201287e03f44f","config\\filesystems.php":"0832e73395b006321f46a83ccedb3ccc","config\\hashing.php":"d00fd9ca9075c4ea6f6ad22ce52b3270","config\\logging.php":"555f0f96051df392fdf8eb228343fed7","config\\mail.php":"9eaf706909d67b21ba11906c18188479","config\\queue.php":"3602debf67f71c07e7448b9411146a5f","config\\sanctum.php":"a7d069d5340bf31bb697bff3fc71a969","config\\services.php":"58f64381ee639c666aa976be791e36e7","config\\session.php":"3e81cc78f6b54d08b7ffcaf100e6ce57","config\\view.php":"b06ef698da6be2f1214571bb4c4a311e","app\\Providers\\AuthServiceProvider.php":"9235162bfd5da878db7470e4c479451d","app\\Providers\\BroadcastServiceProvider.php":"06e096a7dbb308964951af17f6ea190c","app\\Providers\\EventServiceProvider.php":"b46c5ca9cef8dd7cb86250582c4dd6e0","app\\Providers\\RouteServiceProvider.php":"b178ac899e4b1c45d5672f07762590b8","bootstrap\\app.php":"5e869cd81ba78c305abc18d334c0cba2","bootstrap\\cache\\packages.php":"10b79dba6a80b7d2e2db7d4d0239f676","bootstrap\\cache\\services.php":"7f1948d3238688c7d2b954694882c3f4","database\\factories\\UserFactory.php":"529ff335b3146262e3d23374ed56a8bd","database\\migrations\\0001_01_01_000000_create_users_table.php":"e6563bc95e78a8c535ce12e4442eaaf8","database\\migrations\\2019_12_14_000001_create_personal_access_tokens_table.php":"56cb4a268545b0e74d68c8aced1f58e3","storage\\framework\\views\\967092ef3e1507558668863e9463f057.php":"71d1d2804f69c88121eb63e827f0de83","storage\\framework\\views\\f4aff3de51c6874079719f39e969bfb7.php":"2673d1d0efb6de66fc933b875221563e"}}
\ No newline at end of file
+{"php":"8.2.12","version":"3.64.0:v3.64.0#58dd9c931c785a79739310aef5178928305ffa67","indent":" ","lineEnding":"\n","rules":{"no_whitespace_before_comma_in_array":true,"array_indentation":true,"trim_array_spaces":true,"whitespace_after_comma_in_array":true,"array_syntax":{"syntax":"short"},"php_unit_method_casing":true,"function_to_constant":true,"explicit_indirect_variable":true,"single_class_element_per_statement":{"elements":["const","property"]},"new_with_parentheses":true,"class_definition":{"single_line":true},"standardize_increment":true,"self_accessor":true,"magic_constant_casing":true,"no_useless_else":true,"ordered_class_elements":{"order":["use_trait","case","constant_public","constant_protected","constant_private","property_public","property_protected","property_private","construct","destruct","magic","phpunit","property_public_static","method_public_static","method_public","property_protected_static","method_protected_static","method_protected","property_private_static","method_private_static","method_private"]},"no_trailing_whitespace_in_comment":true,"phpdoc_trim_consecutive_blank_line_separation":true,"phpdoc_trim":true,"no_empty_phpdoc":true,"phpdoc_no_empty_return":true,"phpdoc_indent":true,"phpdoc_types":true,"phpdoc_return_self_reference":true,"phpdoc_var_without_name":true,"no_superfluous_phpdoc_tags":{"remove_inheritdoc":true,"allow_mixed":true},"php_unit_test_annotation":true,"php_unit_set_up_tear_down_visibility":true,"blank_line_after_opening_tag":true,"method_chaining_indentation":true,"concat_space":{"spacing":"one"},"binary_operator_spaces":{"operators":{"=>":"single_space","=":"single_space","&":"no_space"}},"single_trait_insert_per_statement":true,"no_blank_lines_after_class_opening":true,"no_singleline_whitespace_before_semicolons":true,"phpdoc_single_line_var_spacing":true,"no_leading_namespace_whitespace":true,"no_spaces_around_offset":true,"no_whitespace_in_blank_line":true,"return_type_declaration":true,"space_after_semicolon":true,"ternary_operator_spaces":true,"method_argument_space":true,"strict_comparison":true,"is_null":true,"strict_param":true,"no_unused_imports":true,"no_empty_statement":true,"no_unneeded_control_parentheses":true,"no_unneeded_braces":true,"declare_strict_types":true,"cast_spaces":{"space":"none"},"Blumilk\/double_quote":true,"void_return":true,"use_arrow_functions":true,"fully_qualified_strict_types":{"import_symbols":true},"ordered_imports":{"sort_algorithm":"alpha","imports_order":["class","function","const"]},"phpdoc_line_span":{"const":"single","property":"single"},"general_phpdoc_annotation_remove":{"annotations":["package","author"]},"no_extra_blank_lines":{"tokens":["attribute","break","case","continue","curly_brace_block","default","extra","parenthesis_brace_block","return","square_brace_block","switch","throw","use"]},"trailing_comma_in_multiline":{"elements":["arrays","parameters","arguments","match"]},"nullable_type_declaration_for_default_null_value":true,"PhpCsFixerCustomFixers\/constructor_empty_braces":true,"PhpCsFixerCustomFixers\/multiline_promoted_properties":true,"PhpCsFixerCustomFixers\/no_useless_comment":true,"PhpCsFixerCustomFixers\/phpdoc_array_style":true,"PhpCsFixerCustomFixers\/promoted_constructor_property":true,"PhpCsFixerCustomFixers\/single_space_after_statement":true,"PhpCsFixerCustomFixers\/single_space_before_statement":true,"PhpCsFixerCustomFixers\/stringable_interface":true,"visibility_required":true,"no_leading_import_slash":true,"lowercase_cast":true,"lowercase_static_reference":true,"compact_nullable_type_declaration":true,"declare_equal_normalize":true,"short_scalar_cast":true,"clean_namespace":true,"unary_operator_spaces":true,"class_attributes_separation":{"elements":{"property":"none","const":"none","method":"one","trait_import":"none","case":"none"}},"PhpCsFixerCustomFixers\/no_useless_parenthesis":true,"single_blank_line_at_eof":true,"Blumilk\/no_laravel_migrations_generated_comments":true,"PhpCsFixerCustomFixers\/commented_out_function":{"functions":["print_r","var_dump","var_export","dd"]},"PhpCsFixerCustomFixers\/no_commented_out_code":true,"PhpCsFixerCustomFixers\/no_php_storm_generated_comment":true,"PhpCsFixerCustomFixers\/phpdoc_no_incorrect_var_annotation":true,"PhpCsFixerCustomFixers\/phpdoc_no_superfluous_param":true,"yoda_style":{"equal":false,"identical":false,"less_and_greater":false},"object_operator_without_whitespace":true,"function_declaration":{"closure_function_spacing":"none","closure_fn_spacing":"none"},"single_line_after_imports":true,"single_line_comment_spacing":true,"blank_line_after_namespace":true,"simple_to_complex_string_variable":true,"no_empty_comment":true,"no_trailing_comma_in_singleline":true,"magic_method_casing":true,"native_function_casing":true,"lambda_not_used_import":true,"no_homoglyph_names":true,"assign_null_coalescing_to_coalesce_equal":true,"no_useless_nullsafe_operator":true,"no_useless_return":true,"simplified_null_return":true,"multiline_whitespace_before_semicolons":true,"line_ending":true,"statement_indentation":true,"blank_line_between_import_groups":true,"blank_line_before_statement":{"statements":["break","continue","declare","return","throw","try","if","do","for","foreach","while"]},"no_multiple_statements_per_line":true,"blank_lines_before_namespace":true,"psr_autoloading":true,"type_declaration_spaces":true,"control_structure_braces":true,"control_structure_continuation_position":true,"braces_position":{"anonymous_functions_opening_brace":"same_line"},"lowercase_keywords":true,"no_multiline_whitespace_around_double_arrow":true,"Blumilk\/compact_empty_array":true,"Blumilk\/class_keyword_fixer":true,"Blumilk\/named_arguments":true,"no_blank_lines_after_phpdoc":true,"constant_case":true,"php_unit_attributes":true,"spaces_inside_parentheses":true},"hashes":{"storage\\framework\\views\\9bf0bf855bc13e16750e2a5e36744ca4.php":"e5844427b776eb699d5ec89f44d3e2ce","database\\migrations\\2024_10_16_105416_create_kebabs_table.php":"1e355493c4cc9272fb4c67c2e6ba96c4","database\\migrations\\2024_10_16_110140_create_suggestions_table.php":"dcd28a096eb6ad324c7a7d79673a4e3f","database\\seeders\\DatabaseSeeder.php":"b82d88332bc59876a3e674a5fc2a8d8b","public\\index.php":"dd9420d1946e6f5ac53594066ed21bcd","resources\\views\\mail\\contactUsMail.blade.php":"2e5a0f145b80848cb5b1c643b0b6e2f2","resources\\views\\welcome.blade.php":"7c20c7ebc3218c403dea71117f69dfed","routes\\api.php":"91da4672c7a81bfecd52f75776c26414","routes\\channels.php":"69224ae3142ba715c9a88ab51ebb0f2a","routes\\console.php":"e8ec20fcf9db2c8ed133bd71f541959b","routes\\web.php":"622624c7aa262186fec4dfff56aa46ed","tests\\CreatesApplication.php":"547b076015f8c5a1bb558b7b1d3d8548","tests\\Feature\\ExampleTest.php":"cbc86ef604b670eff5077c52ba43cff3","tests\\TestCase.php":"b9ad5821823c481100f73431178caa71","tests\\Unit\\ExampleTest.php":"1892966e6e20f3cd936dcfa4ed7275eb","codestyle.php":"78106c01bb6c67815aad1f58ec44cd0d","config\\app.php":"9fc6583a7668465151943600476ea442","config\\auth.php":"a488b0d57431b546548feb34edccd48e","config\\broadcasting.php":"c72d877f6c2bc0726fb9a1e717fd62c8","config\\cache.php":"ef8901d79de3b0790253c5a96d0e4ca6","config\\cors.php":"584b47b3b8a04d20e28ec711f88871b0","app\\Http\\Middleware\\TrimStrings.php":"6fc714347e06b50092ab8ed32dde44a3","app\\Http\\Middleware\\TrustHosts.php":"296d5025e64924ad380db403db212e03","app\\Http\\Middleware\\TrustProxies.php":"6ef300cb0fa4760b0b78eeed4b562487","app\\Http\\Middleware\\ValidateSignature.php":"a3b8b6a39e865b98596215de1d2b1b49","app\\Http\\Middleware\\VerifyCsrfToken.php":"ec90d977fba72bf47b36209750f6c309","app\\Http\\Requests\\LoginRequest.php":"2e4b5eb1f7e96522fc6606563bc153c9","app\\Http\\Requests\\SignupRequest.php":"64d40c6fb14d7f0f4416f4fc65077af2","app\\Http\\Requests\\UserRequest.php":"9924fb264e27913626e84ac5caab2c2f","app\\Models\\User.php":"804b578c498bc1a16659ba94c7e4ae4b","app\\Providers\\AppServiceProvider.php":"1ec4db88d3552a5250b23a5730a20185","app\\Console\\Kernel.php":"f7036533db76cf5f2180e942e3a51ebb","app\\Exceptions\\Handler.php":"51a92074c25f79602e1d88bab27cc6f5","app\\Http\\Controllers\\AuthController.php":"da2847a9a182eaec1d125b2d91bc0d42","app\\Http\\Controllers\\Controller.php":"3cd28b4b4ae4d9fa3300376350c2751c","app\\Http\\Controllers\\UserController.php":"a435c4286a2532f277def2023df7c315","app\\Http\\Kernel.php":"dd78ef286f08e779169ef79df8cbd150","app\\Http\\Middleware\\Authenticate.php":"c5c9966ed056b0c30c346e4e1ed6de52","app\\Http\\Middleware\\EncryptCookies.php":"fba0599e278cebd030c54270cf855686","app\\Http\\Middleware\\PreventRequestsDuringMaintenance.php":"bc36f9173ef40b9ed9e334466863d3cd","app\\Http\\Middleware\\RedirectIfAuthenticated.php":"bbf6fd4f1eee7db7212ccf467071910c","config\\database.php":"40d5122ad3be69b8da2be286baeb8a52","config\\filesystems.php":"0832e73395b006321f46a83ccedb3ccc","config\\hashing.php":"d00fd9ca9075c4ea6f6ad22ce52b3270","config\\logging.php":"555f0f96051df392fdf8eb228343fed7","config\\mail.php":"9eaf706909d67b21ba11906c18188479","config\\queue.php":"3602debf67f71c07e7448b9411146a5f","config\\sanctum.php":"a7d069d5340bf31bb697bff3fc71a969","config\\services.php":"58f64381ee639c666aa976be791e36e7","config\\session.php":"3e81cc78f6b54d08b7ffcaf100e6ce57","config\\view.php":"b06ef698da6be2f1214571bb4c4a311e","app\\Providers\\AuthServiceProvider.php":"9235162bfd5da878db7470e4c479451d","app\\Providers\\BroadcastServiceProvider.php":"06e096a7dbb308964951af17f6ea190c","app\\Providers\\EventServiceProvider.php":"b46c5ca9cef8dd7cb86250582c4dd6e0","app\\Providers\\RouteServiceProvider.php":"b178ac899e4b1c45d5672f07762590b8","bootstrap\\app.php":"5e869cd81ba78c305abc18d334c0cba2","bootstrap\\cache\\packages.php":"4729b9b7c89ffdcef02efc391e29d3e9","bootstrap\\cache\\services.php":"a7ef73ba590bbdc8deb767a8f3d6aab3","database\\factories\\UserFactory.php":"529ff335b3146262e3d23374ed56a8bd","database\\migrations\\0001_01_01_000000_create_users_table.php":"e6563bc95e78a8c535ce12e4442eaaf8","database\\migrations\\2019_12_14_000001_create_personal_access_tokens_table.php":"56cb4a268545b0e74d68c8aced1f58e3","storage\\framework\\views\\967092ef3e1507558668863e9463f057.php":"71d1d2804f69c88121eb63e827f0de83","storage\\framework\\views\\f4aff3de51c6874079719f39e969bfb7.php":"2673d1d0efb6de66fc933b875221563e","app\\Models\\Kebab.php":"fcdf01f9d18b9a53ee7c6be0d604c799","app\\Http\\Controllers\\KebabController.php":"5071168a7fd3eeaf2c1d90c4fcc627c3","app\\Http\\Middleware\\CheckAdmin.php":"bfbf273b33fdacb20f8577ad9748a8fc","app\\Http\\Requests\\ChangeEmailRequest.php":"70916b29c6e0aadd102159dc4cad920d","app\\Http\\Requests\\ChangeNameRequest.php":"5cb6eef366a99592a09d7b3ee1f98517","app\\Http\\Requests\\ChangePasswordRequest.php":"65da5c250cf407ebdead62c0a202d4e1","app\\Http\\Requests\\FavoriteKebabRequest.php":"5ce9e715b9cc3209e32cf9cd88b993d6","app\\Http\\Requests\\KebabRequests\\KebabRequest.php":"a2f7670c140e6b02e608b748e0a44cb1","app\\Http\\Controllers\\SuggestionsController.php":"443647e36b95f95002de7e0ca9e2e20d","app\\Models\\Suggestions.php":"dc615d61c486362961ac6b5759735a7c","app\\Http\\Requests\\UserRequests\\UserRequest.php":"e93fdf35b2e521d2b02a23664ded82e3","app\\Http\\Requests\\SuggestionRequest.php":"28832169adb92ccb25e8c62e090f04e5","app\\Http\\Requests\\UserRequests\\ChangeEmailRequest.php":"96acb58486b9bfc2d5d0e871f97d7e07","app\\Http\\Requests\\UserRequests\\ChangeNameRequest.php":"3de895405d2aba7f262fcf39fe48c16b","app\\Http\\Requests\\UserRequests\\ChangePasswordRequest.php":"55f7d4be9b989cf3781dc91a3c0c1dff","app\\Http\\Requests\\UserRequests\\FavoriteKebabRequest.php":"c9c04478f6be56243a4db1ea2a0e4fc4","tests\\Feature\\AuthControllerTest.php":"60def14d559fbc5969ca0dd43bba1020","app\\Http\\Controllers\\GoogleScraperController.php":"de8ae9535538ef7664559b2e3cebb12d","app\\Services\\GoogleScraper.php":"f6e5adad52184bce6d8f064868b4f3be","config\\l5-swagger.php":"933a221eeb784e9243d4c94531a8d40a","app\\Http\\Requests\\UserRequests\\ChangeUserRoleRequest.php":"0ec918f5e4c570ba8fd9db66d1de610a","resources\\views\\vendor\\l5-swagger\\index.blade.php":"5c07239178c67784c1ce65d0261c3cfb","storage\\framework\\views\\3f4a2a5117a095683b4bd4f4817cdd7e.php":"b0d3aaf049ae81da1627ad4a870c9408","app\\Http\\Requests\\KebabRequests\\KebabIsChainstoreRequest.php":"65ebf250f36e3a274d22c16b4dd791b4","app\\Http\\Requests\\KebabRequests\\KebabIsCraftedRequest.php":"381b102d9c9580c2d513531a7467dd3b","app\\Http\\Requests\\KebabRequests\\KebabIsPremisesRequest.php":"f8767ea5fa7565e29386cfa3cb324b56","app\\Http\\Requests\\KebabRequests\\KebabMeatRequest.php":"b9c006d775847fae4d10429f47342a93","app\\Http\\Requests\\KebabRequests\\KebabNameRequest.php":"0da0b3a32ef0c82df40f2e8f6c1c0fee","app\\Http\\Requests\\KebabRequests\\KebabOpeningHourRequest.php":"ab573d1cdc8dc61a5a35c3b4ff0c9012","app\\Http\\Requests\\KebabRequests\\KebabOpeningYearRequest.php":"bb638d93a94e75490ebfabf248cb69b9","app\\Http\\Requests\\KebabRequests\\KebabOrderingOptionRequest.php":"ed527e4eb517950688b22ad6303d9e8c","app\\Http\\Requests\\KebabRequests\\KebabPageRequest.php":"014b90a00819d4440cb3e749e28f2eb3","app\\Http\\Requests\\KebabRequests\\KebabRemoveOpeningHourRequest.php":"00b961233ee7a2d01eacbeeb1fd64aeb","storage\\framework\\views\\6c885b58304fbc4e2aec93b32e21e7d9.php":"b19e8caccdfc6bd8b1e7e830f5e1d73a","storage\\framework\\views\\7ad1c4a57fd20667e171684a776a6a4b.php":"821b94ab7733ebb96e50e1ad1433d626","storage\\framework\\views\\8db7a9c997446847b068860e72051f3f.php":"8edde35264218afe04804880f3021cb9","storage\\framework\\views\\92c61c37d62d309b2261696533623f0e.php":"feedb36e617bd932aee32f5245a5785d","storage\\framework\\views\\ab38df06e69f67dc01873ae179e9d8ac.php":"00b4d8ea20981e02df7d3a8b4ebc0069","storage\\framework\\views\\e5e9ac36fad87cbd2f3251ed9abe7296.php":"a1b239be85267d69c41a467c0f831f77","storage\\framework\\views\\06147b58b27e243b8a91117bcb2e7c76.php":"df03083fa4992a953a9adb33f86db636","storage\\framework\\views\\09d4d7244749dd8974944448cf2bf96f.php":"eb8405a6435c6d8e056d02342db1778f","storage\\framework\\views\\39b6db6ec59539b2c5045f87bed7448a.php":"1140a46aa1a4c1796bd0bf02b1131dbb","storage\\framework\\views\\533535455bececf37749798130da41bd.php":"74d47637030959bfde388944831898d9","storage\\framework\\views\\536ae9e7a221fbfbb57822904ba3aacd.php":"216b289ad08ab01d8a8753234c53796f","storage\\framework\\views\\5ed5e5b51be7b3cfa9851b0e60f8238d.php":"9993f6fb33357d32079c929de0a6c877","storage\\framework\\views\\643935d0d2475a73239c913510676f7a.php":"779fa58ac9e55d40597198c9a67c24fd","storage\\framework\\views\\6468ca2f48adc9c1058f7b5eba9629cd.php":"3cbe9f7c4e9bc14ec04ad4115e6dfcd8","config\\scribe.php":"b6c71b001f3da9b58b724528d6f00970","app\\Http\\Controllers\\KebabScraperController.php":"fa440530a00c1119560417d1e0d6fa00","app\\Http\\Requests\\KebabRequests\\KebabAddressRequest.php":"3fc80132ea0e01f7c599142a0713a32b","app\\Http\\Requests\\KebabRequests\\KebabClosingYearRequest.php":"a6c42ed5a33b0ca0149967228e4be2a9","app\\Http\\Requests\\KebabRequests\\KebabCommentRequest.php":"0315ce8a66bdb7e4d6923e5054f5ec7a","app\\Http\\Requests\\KebabRequests\\KebabCoordinatesRequest.php":"5f338ef5344cb8ed68e436f259db9eaa","app\\Http\\Requests\\KebabRequests\\KebabRemoveOrderingOptionRequest.php":"6be6e425d50113dbe68d31d43f3dceec","app\\Http\\Requests\\KebabRequests\\KebabStatusRequest.php":"6a95b56abfed7dcff01626258dff65e8","app\\Http\\Requests\\KebabRequests\\SauceKebabRequest.php":"a6db49ff8865a674e765f0375afdf96e","app\\Services\\PyszneScraper.php":"21286caf798b637455a2996ac278d24c","database\\seeders\\KebabSeeder.php":"165fb3475df8388da617cd92d5aa292d"}}
\ No newline at end of file
diff --git a/Backend/.scribe/.filehashes b/Backend/.scribe/.filehashes
new file mode 100644
index 0000000..08fa645
--- /dev/null
+++ b/Backend/.scribe/.filehashes
@@ -0,0 +1,4 @@
+# GENERATED. YOU SHOULDN'T MODIFY OR DELETE THIS FILE.
+# Scribe uses this file to know when you change something manually in your docs.
+.scribe/intro.md=2d432f59f3d780ec094e1b4b0b024f33
+.scribe/auth.md=7cec6a1c5e4916daf2548212cee2ff83
\ No newline at end of file
diff --git a/Backend/.scribe/auth.md b/Backend/.scribe/auth.md
new file mode 100644
index 0000000..bc31d5f
--- /dev/null
+++ b/Backend/.scribe/auth.md
@@ -0,0 +1,7 @@
+# Authenticating requests
+
+To authenticate requests, include an **`Authorization`** header with the value **`"Bearer {YOUR_AUTH_KEY}"`**.
+
+All authenticated endpoints are marked with a `requires authentication` badge in the documentation below.
+
+You can retrieve your token by visiting your dashboard and clicking Generate API token .
diff --git a/Backend/.scribe/endpoints.cache/00.yaml b/Backend/.scribe/endpoints.cache/00.yaml
new file mode 100644
index 0000000..568a33d
--- /dev/null
+++ b/Backend/.scribe/endpoints.cache/00.yaml
@@ -0,0 +1,150 @@
+## Autogenerated by Scribe. DO NOT MODIFY.
+
+name: Auth
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - POST
+ uri: api/register
+ metadata:
+ groupName: Auth
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ name:
+ name: name
+ description: ''
+ required: true
+ example: aspernatur
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ email:
+ name: email
+ description: 'Must be a valid email address.'
+ required: true
+ example: jamison69@example.org
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ password:
+ name: password
+ description: ''
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ name: aspernatur
+ email: jamison69@example.org
+ password: ut
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/login
+ metadata:
+ groupName: Auth
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ email:
+ name: email
+ description: 'Must be a valid email address. The email of an existing record in the users table.'
+ required: true
+ example: kamryn22@example.com
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ password:
+ name: password
+ description: ''
+ required: true
+ example: at
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ email: kamryn22@example.com
+ password: at
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/logout
+ metadata:
+ groupName: Auth
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints.cache/01.yaml b/Backend/.scribe/endpoints.cache/01.yaml
new file mode 100644
index 0000000..76a1d49
--- /dev/null
+++ b/Backend/.scribe/endpoints.cache/01.yaml
@@ -0,0 +1,1525 @@
+## Autogenerated by Scribe. DO NOT MODIFY.
+
+name: Kebab
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/kebabs
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/kebabs could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/comments'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: unde
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: unde
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ id_user:
+ name: id_user
+ description: ''
+ required: true
+ example: 7
+ type: integer
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ comment:
+ name: comment
+ description: ''
+ required: true
+ example: itaque
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ id_user: 7
+ comment: itaque
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/comments'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: voluptatem
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: voluptatem
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ id_user:
+ name: id_user
+ description: ''
+ required: true
+ example: 18
+ type: integer
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ comment:
+ name: comment
+ description: ''
+ required: true
+ example: deserunt
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ id_user: 18
+ comment: deserunt
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/addKebab
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ logo:
+ name: logo
+ description: ''
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ name:
+ name: name
+ description: ''
+ required: true
+ example: perferendis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ address:
+ name: address
+ description: ''
+ required: true
+ example: vel
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ coordinates:
+ name: coordinates
+ description: ''
+ required: true
+ example: nisi
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ sauces:
+ name: sauces
+ description: ''
+ required: true
+ example: at
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ meats:
+ name: meats
+ description: ''
+ required: true
+ example: ullam
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ status:
+ name: status
+ description: ''
+ required: true
+ example: perferendis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ opening_hours:
+ name: opening_hours
+ description: ''
+ required: true
+ example: perspiciatis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ opening_year:
+ name: opening_year
+ description: ''
+ required: true
+ example: deleniti
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ closing_year:
+ name: closing_year
+ description: ''
+ required: true
+ example: accusantium
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ is_crafted:
+ name: is_crafted
+ description: ''
+ required: true
+ example: placeat
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ is_premises:
+ name: is_premises
+ description: ''
+ required: true
+ example: minus
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ is_chainstore:
+ name: is_chainstore
+ description: ''
+ required: true
+ example: aut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ ordering_options:
+ name: ordering_options
+ description: ''
+ required: true
+ example: voluptas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ logo: ut
+ name: perferendis
+ address: vel
+ coordinates: nisi
+ sauces: at
+ meats: ullam
+ status: perferendis
+ opening_hours: perspiciatis
+ opening_year: deleniti
+ closing_year: accusantium
+ is_crafted: placeat
+ is_premises: minus
+ is_chainstore: aut
+ ordering_options: voluptas
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{id}'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the kebab.'
+ required: true
+ example: adipisci
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: adipisci
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/logo'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: quia
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: quia
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/name'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: consequuntur
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: consequuntur
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ name:
+ name: name
+ description: ''
+ required: true
+ example: quidem
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ name: quidem
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/address'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ab
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ab
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ address:
+ name: address
+ description: 'Must not be greater than 255 characters.'
+ required: true
+ example: huxswcermiukedcsywurinn
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ address: huxswcermiukedcsywurinn
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/coordinates'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: eaque
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: eaque
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ coordinates:
+ name: coordinates
+ description: ''
+ required: true
+ example: []
+ type: object
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ coordinates: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/sauce'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: laboriosam
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: laboriosam
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ sauce:
+ name: sauce
+ description: ''
+ required: true
+ example: nostrum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ sauce: nostrum
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/sauce'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: necessitatibus
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: necessitatibus
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ sauce:
+ name: sauce
+ description: ''
+ required: true
+ example: dolore
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ sauce: dolore
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/meat'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: facere
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: facere
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ meat:
+ name: meat
+ description: ''
+ required: true
+ example: voluptatibus
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ meat: voluptatibus
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/meat'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ratione
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ratione
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ meat:
+ name: meat
+ description: ''
+ required: true
+ example: eos
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ meat: eos
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/status'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: quas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: quas
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ status:
+ name: status
+ description: ''
+ required: true
+ example: exists
+ type: string
+ enumValues:
+ - exists
+ - closed
+ - planned
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ status: exists
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/opening-hours'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: est
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: est
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ day:
+ name: day
+ description: ''
+ required: true
+ example: saturday
+ type: string
+ enumValues:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ hours:
+ name: hours
+ description: ''
+ required: true
+ example: quis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ day: saturday
+ hours: quis
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/opening-hours'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: omnis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: omnis
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ day:
+ name: day
+ description: ''
+ required: true
+ example: monday
+ type: string
+ enumValues:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ day: monday
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/opening-hours'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: qui
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: qui
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ day:
+ name: day
+ description: ''
+ required: true
+ example: sunday
+ type: string
+ enumValues:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ hours:
+ name: hours
+ description: ''
+ required: true
+ example: explicabo
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ day: sunday
+ hours: explicabo
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/opening-year'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: recusandae
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: recusandae
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ opening_year:
+ name: opening_year
+ description: 'Must be 4 digits.'
+ required: false
+ example: '6167'
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ opening_year: '6167'
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/closing-year'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: voluptatem
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: voluptatem
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ closing_year:
+ name: closing_year
+ description: 'Must be 4 digits.'
+ required: false
+ example: '2621'
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ closing_year: '2621'
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/is-crafted'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: vel
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: vel
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ is_crafted:
+ name: is_crafted
+ description: ''
+ required: false
+ example: true
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ is_crafted: true
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/is-premises'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: laudantium
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: laudantium
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ is_premises:
+ name: is_premises
+ description: ''
+ required: false
+ example: false
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ is_premises: false
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/is-chainstore'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ea
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ea
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ is_chainstore:
+ name: is_chainstore
+ description: ''
+ required: false
+ example: false
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ is_chainstore: false
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/ordering-options'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: reprehenderit
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: reprehenderit
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ new_option:
+ name: new_option
+ description: ''
+ required: true
+ example: nesciunt
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ new_option: nesciunt
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/ordering-options'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: assumenda
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: assumenda
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ option_to_remove:
+ name: option_to_remove
+ description: ''
+ required: true
+ example: est
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ option_to_remove: est
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/pages'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: consectetur
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: consectetur
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ new_page:
+ name: new_page
+ description: ''
+ required: true
+ example: explicabo
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ new_page: explicabo
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/pages'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ad
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ad
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ page_to_remove:
+ name: page_to_remove
+ description: ''
+ required: true
+ example: corporis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ page_to_remove: corporis
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints.cache/02.yaml b/Backend/.scribe/endpoints.cache/02.yaml
new file mode 100644
index 0000000..e02ba93
--- /dev/null
+++ b/Backend/.scribe/endpoints.cache/02.yaml
@@ -0,0 +1,47 @@
+## Autogenerated by Scribe. DO NOT MODIFY.
+
+name: KebabScraper
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/scrape-reviews
+ metadata:
+ groupName: KebabScraper
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/scrape-reviews could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints.cache/03.yaml b/Backend/.scribe/endpoints.cache/03.yaml
new file mode 100644
index 0000000..1c84934
--- /dev/null
+++ b/Backend/.scribe/endpoints.cache/03.yaml
@@ -0,0 +1,569 @@
+## Autogenerated by Scribe. DO NOT MODIFY.
+
+name: Users
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/getCurrentUser
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/getCurrentUser could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - GET
+ uri: 'api/fav/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the fav.'
+ required: true
+ example: veritatis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: veritatis
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/fav/veritatis could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/addfav
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ user_id:
+ name: user_id
+ description: ''
+ required: true
+ example: eum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ kebab_id:
+ name: kebab_id
+ description: ''
+ required: true
+ example: quia
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ user_id: eum
+ kebab_id: quia
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/remfav
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ user_id:
+ name: user_id
+ description: ''
+ required: true
+ example: quas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ kebab_id:
+ name: kebab_id
+ description: ''
+ required: true
+ example: quia
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ user_id: quas
+ kebab_id: quia
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changeName/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changeName.'
+ required: true
+ example: facilis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: facilis
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ newName:
+ name: newName
+ description: ''
+ required: true
+ example: nobis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ newName: nobis
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changePassword/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changePassword.'
+ required: true
+ example: laborum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: laborum
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ newPassword:
+ name: newPassword
+ description: ''
+ required: true
+ example: quas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ confirmPassword:
+ name: confirmPassword
+ description: ''
+ required: true
+ example: rerum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ newPassword: quas
+ confirmPassword: rerum
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changeEmail/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changeEmail.'
+ required: true
+ example: commodi
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: commodi
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ newEmail:
+ name: newEmail
+ description: 'Must be a valid email address.'
+ required: true
+ example: shanie84@example.org
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ newEmail: shanie84@example.org
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changeUserRole/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changeUserRole.'
+ required: true
+ example: atque
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: atque
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ isAdmin:
+ name: isAdmin
+ description: ''
+ required: true
+ example: false
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ isAdmin: false
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/deleteUser/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the deleteUser.'
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: ut
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - GET
+ uri: api/getAllUsers
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/getAllUsers could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/addNewUser
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ name:
+ name: name
+ description: ''
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ email:
+ name: email
+ description: 'Must be a valid email address.'
+ required: true
+ example: moconnell@example.com
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ password:
+ name: password
+ description: ''
+ required: true
+ example: est
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ name: ut
+ email: moconnell@example.com
+ password: est
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints.cache/04.yaml b/Backend/.scribe/endpoints.cache/04.yaml
new file mode 100644
index 0000000..f36a418
--- /dev/null
+++ b/Backend/.scribe/endpoints.cache/04.yaml
@@ -0,0 +1,140 @@
+## Autogenerated by Scribe. DO NOT MODIFY.
+
+name: Suggestions
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - POST
+ uri: api/suggestions
+ metadata:
+ groupName: Suggestions
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ user:
+ name: user
+ description: 'Must not be greater than 255 characters.'
+ required: true
+ example: yhyrnmamtgxprtslmownvg
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ contents:
+ name: contents
+ description: 'Must not be greater than 255 characters.'
+ required: true
+ example: vmtnljhahaj
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ user: yhyrnmamtgxprtslmownvg
+ contents: vmtnljhahaj
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - GET
+ uri: api/suggestions
+ metadata:
+ groupName: Suggestions
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/suggestions could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/suggestions/{id}'
+ metadata:
+ groupName: Suggestions
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the suggestion.'
+ required: true
+ example: magni
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: magni
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints.cache/05.yaml b/Backend/.scribe/endpoints.cache/05.yaml
new file mode 100644
index 0000000..528ac50
--- /dev/null
+++ b/Backend/.scribe/endpoints.cache/05.yaml
@@ -0,0 +1,47 @@
+## Autogenerated by Scribe. DO NOT MODIFY.
+
+name: Endpoints
+description: ''
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/documentation
+ metadata:
+ groupName: Endpoints
+ groupDescription: ''
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/documentation could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/00.yaml b/Backend/.scribe/endpoints/00.yaml
new file mode 100644
index 0000000..cc0ec1a
--- /dev/null
+++ b/Backend/.scribe/endpoints/00.yaml
@@ -0,0 +1,148 @@
+name: Auth
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - POST
+ uri: api/register
+ metadata:
+ groupName: Auth
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ name:
+ name: name
+ description: ''
+ required: true
+ example: aspernatur
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ email:
+ name: email
+ description: 'Must be a valid email address.'
+ required: true
+ example: jamison69@example.org
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ password:
+ name: password
+ description: ''
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ name: aspernatur
+ email: jamison69@example.org
+ password: ut
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/login
+ metadata:
+ groupName: Auth
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ email:
+ name: email
+ description: 'Must be a valid email address. The email of an existing record in the users table.'
+ required: true
+ example: kamryn22@example.com
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ password:
+ name: password
+ description: ''
+ required: true
+ example: at
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ email: kamryn22@example.com
+ password: at
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/logout
+ metadata:
+ groupName: Auth
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/01.yaml b/Backend/.scribe/endpoints/01.yaml
new file mode 100644
index 0000000..3d66fe0
--- /dev/null
+++ b/Backend/.scribe/endpoints/01.yaml
@@ -0,0 +1,1523 @@
+name: Kebab
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/kebabs
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/kebabs could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/comments'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: unde
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: unde
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ id_user:
+ name: id_user
+ description: ''
+ required: true
+ example: 7
+ type: integer
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ comment:
+ name: comment
+ description: ''
+ required: true
+ example: itaque
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ id_user: 7
+ comment: itaque
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/comments'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: voluptatem
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: voluptatem
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ id_user:
+ name: id_user
+ description: ''
+ required: true
+ example: 18
+ type: integer
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ comment:
+ name: comment
+ description: ''
+ required: true
+ example: deserunt
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ id_user: 18
+ comment: deserunt
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/addKebab
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ logo:
+ name: logo
+ description: ''
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ name:
+ name: name
+ description: ''
+ required: true
+ example: perferendis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ address:
+ name: address
+ description: ''
+ required: true
+ example: vel
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ coordinates:
+ name: coordinates
+ description: ''
+ required: true
+ example: nisi
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ sauces:
+ name: sauces
+ description: ''
+ required: true
+ example: at
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ meats:
+ name: meats
+ description: ''
+ required: true
+ example: ullam
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ status:
+ name: status
+ description: ''
+ required: true
+ example: perferendis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ opening_hours:
+ name: opening_hours
+ description: ''
+ required: true
+ example: perspiciatis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ opening_year:
+ name: opening_year
+ description: ''
+ required: true
+ example: deleniti
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ closing_year:
+ name: closing_year
+ description: ''
+ required: true
+ example: accusantium
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ is_crafted:
+ name: is_crafted
+ description: ''
+ required: true
+ example: placeat
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ is_premises:
+ name: is_premises
+ description: ''
+ required: true
+ example: minus
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ is_chainstore:
+ name: is_chainstore
+ description: ''
+ required: true
+ example: aut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ ordering_options:
+ name: ordering_options
+ description: ''
+ required: true
+ example: voluptas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ logo: ut
+ name: perferendis
+ address: vel
+ coordinates: nisi
+ sauces: at
+ meats: ullam
+ status: perferendis
+ opening_hours: perspiciatis
+ opening_year: deleniti
+ closing_year: accusantium
+ is_crafted: placeat
+ is_premises: minus
+ is_chainstore: aut
+ ordering_options: voluptas
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{id}'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the kebab.'
+ required: true
+ example: adipisci
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: adipisci
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/logo'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: quia
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: quia
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/name'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: consequuntur
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: consequuntur
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ name:
+ name: name
+ description: ''
+ required: true
+ example: quidem
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ name: quidem
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/address'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ab
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ab
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ address:
+ name: address
+ description: 'Must not be greater than 255 characters.'
+ required: true
+ example: huxswcermiukedcsywurinn
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ address: huxswcermiukedcsywurinn
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/coordinates'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: eaque
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: eaque
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ coordinates:
+ name: coordinates
+ description: ''
+ required: true
+ example: []
+ type: object
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ coordinates: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/sauce'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: laboriosam
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: laboriosam
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ sauce:
+ name: sauce
+ description: ''
+ required: true
+ example: nostrum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ sauce: nostrum
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/sauce'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: necessitatibus
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: necessitatibus
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ sauce:
+ name: sauce
+ description: ''
+ required: true
+ example: dolore
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ sauce: dolore
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/meat'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: facere
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: facere
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ meat:
+ name: meat
+ description: ''
+ required: true
+ example: voluptatibus
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ meat: voluptatibus
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/meat'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ratione
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ratione
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ meat:
+ name: meat
+ description: ''
+ required: true
+ example: eos
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ meat: eos
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/status'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: quas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: quas
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ status:
+ name: status
+ description: ''
+ required: true
+ example: exists
+ type: string
+ enumValues:
+ - exists
+ - closed
+ - planned
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ status: exists
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/opening-hours'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: est
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: est
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ day:
+ name: day
+ description: ''
+ required: true
+ example: saturday
+ type: string
+ enumValues:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ hours:
+ name: hours
+ description: ''
+ required: true
+ example: quis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ day: saturday
+ hours: quis
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/opening-hours'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: omnis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: omnis
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ day:
+ name: day
+ description: ''
+ required: true
+ example: monday
+ type: string
+ enumValues:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ day: monday
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/opening-hours'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: qui
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: qui
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ day:
+ name: day
+ description: ''
+ required: true
+ example: sunday
+ type: string
+ enumValues:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ hours:
+ name: hours
+ description: ''
+ required: true
+ example: explicabo
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ day: sunday
+ hours: explicabo
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/opening-year'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: recusandae
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: recusandae
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ opening_year:
+ name: opening_year
+ description: 'Must be 4 digits.'
+ required: false
+ example: '6167'
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ opening_year: '6167'
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/closing-year'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: voluptatem
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: voluptatem
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ closing_year:
+ name: closing_year
+ description: 'Must be 4 digits.'
+ required: false
+ example: '2621'
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ closing_year: '2621'
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/is-crafted'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: vel
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: vel
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ is_crafted:
+ name: is_crafted
+ description: ''
+ required: false
+ example: true
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ is_crafted: true
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/is-premises'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: laudantium
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: laudantium
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ is_premises:
+ name: is_premises
+ description: ''
+ required: false
+ example: false
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ is_premises: false
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/kebabs/{kebabId}/is-chainstore'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ea
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ea
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ is_chainstore:
+ name: is_chainstore
+ description: ''
+ required: false
+ example: false
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: true
+ custom: []
+ cleanBodyParameters:
+ is_chainstore: false
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/ordering-options'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: reprehenderit
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: reprehenderit
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ new_option:
+ name: new_option
+ description: ''
+ required: true
+ example: nesciunt
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ new_option: nesciunt
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/ordering-options'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: assumenda
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: assumenda
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ option_to_remove:
+ name: option_to_remove
+ description: ''
+ required: true
+ example: est
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ option_to_remove: est
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: 'api/kebabs/{kebabId}/pages'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: consectetur
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: consectetur
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ new_page:
+ name: new_page
+ description: ''
+ required: true
+ example: explicabo
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ new_page: explicabo
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/kebabs/{kebabId}/pages'
+ metadata:
+ groupName: Kebab
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ kebabId:
+ name: kebabId
+ description: ''
+ required: true
+ example: ad
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ kebabId: ad
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ page_to_remove:
+ name: page_to_remove
+ description: ''
+ required: true
+ example: corporis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ page_to_remove: corporis
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/02.yaml b/Backend/.scribe/endpoints/02.yaml
new file mode 100644
index 0000000..335420e
--- /dev/null
+++ b/Backend/.scribe/endpoints/02.yaml
@@ -0,0 +1,45 @@
+name: KebabScraper
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/scrape-reviews
+ metadata:
+ groupName: KebabScraper
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/scrape-reviews could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/03.yaml b/Backend/.scribe/endpoints/03.yaml
new file mode 100644
index 0000000..e96baad
--- /dev/null
+++ b/Backend/.scribe/endpoints/03.yaml
@@ -0,0 +1,567 @@
+name: Users
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/getCurrentUser
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/getCurrentUser could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - GET
+ uri: 'api/fav/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the fav.'
+ required: true
+ example: veritatis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: veritatis
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/fav/veritatis could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/addfav
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ user_id:
+ name: user_id
+ description: ''
+ required: true
+ example: eum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ kebab_id:
+ name: kebab_id
+ description: ''
+ required: true
+ example: quia
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ user_id: eum
+ kebab_id: quia
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/remfav
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ user_id:
+ name: user_id
+ description: ''
+ required: true
+ example: quas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ kebab_id:
+ name: kebab_id
+ description: ''
+ required: true
+ example: quia
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ user_id: quas
+ kebab_id: quia
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changeName/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changeName.'
+ required: true
+ example: facilis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: facilis
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ newName:
+ name: newName
+ description: ''
+ required: true
+ example: nobis
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ newName: nobis
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changePassword/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changePassword.'
+ required: true
+ example: laborum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: laborum
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ newPassword:
+ name: newPassword
+ description: ''
+ required: true
+ example: quas
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ confirmPassword:
+ name: confirmPassword
+ description: ''
+ required: true
+ example: rerum
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ newPassword: quas
+ confirmPassword: rerum
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changeEmail/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changeEmail.'
+ required: true
+ example: commodi
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: commodi
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ newEmail:
+ name: newEmail
+ description: 'Must be a valid email address.'
+ required: true
+ example: shanie84@example.org
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ newEmail: shanie84@example.org
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - PUT
+ uri: 'api/changeUserRole/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the changeUserRole.'
+ required: true
+ example: atque
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: atque
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ isAdmin:
+ name: isAdmin
+ description: ''
+ required: true
+ example: false
+ type: boolean
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ isAdmin: false
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/deleteUser/{id}'
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the deleteUser.'
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: ut
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - GET
+ uri: api/getAllUsers
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/getAllUsers could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - POST
+ uri: api/addNewUser
+ metadata:
+ groupName: Users
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ name:
+ name: name
+ description: ''
+ required: true
+ example: ut
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ email:
+ name: email
+ description: 'Must be a valid email address.'
+ required: true
+ example: moconnell@example.com
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ password:
+ name: password
+ description: ''
+ required: true
+ example: est
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ name: ut
+ email: moconnell@example.com
+ password: est
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/04.yaml b/Backend/.scribe/endpoints/04.yaml
new file mode 100644
index 0000000..1743cc3
--- /dev/null
+++ b/Backend/.scribe/endpoints/04.yaml
@@ -0,0 +1,138 @@
+name: Suggestions
+description: '*'
+endpoints:
+ -
+ httpMethods:
+ - POST
+ uri: api/suggestions
+ metadata:
+ groupName: Suggestions
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters:
+ user:
+ name: user
+ description: 'Must not be greater than 255 characters.'
+ required: true
+ example: yhyrnmamtgxprtslmownvg
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ contents:
+ name: contents
+ description: 'Must not be greater than 255 characters.'
+ required: true
+ example: vmtnljhahaj
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanBodyParameters:
+ user: yhyrnmamtgxprtslmownvg
+ contents: vmtnljhahaj
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - GET
+ uri: api/suggestions
+ metadata:
+ groupName: Suggestions
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/suggestions could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
+ -
+ httpMethods:
+ - DELETE
+ uri: 'api/suggestions/{id}'
+ metadata:
+ groupName: Suggestions
+ groupDescription: '*'
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters:
+ id:
+ name: id
+ description: 'The ID of the suggestion.'
+ required: true
+ example: magni
+ type: string
+ enumValues: []
+ exampleWasSpecified: false
+ nullable: false
+ custom: []
+ cleanUrlParameters:
+ id: magni
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/05.yaml b/Backend/.scribe/endpoints/05.yaml
new file mode 100644
index 0000000..eac0c3b
--- /dev/null
+++ b/Backend/.scribe/endpoints/05.yaml
@@ -0,0 +1,45 @@
+name: Endpoints
+description: ''
+endpoints:
+ -
+ httpMethods:
+ - GET
+ uri: api/documentation
+ metadata:
+ groupName: Endpoints
+ groupDescription: ''
+ subgroup: ''
+ subgroupDescription: ''
+ title: ''
+ description: ''
+ authenticated: false
+ custom: []
+ headers:
+ Content-Type: application/json
+ Accept: application/json
+ urlParameters: []
+ cleanUrlParameters: []
+ queryParameters: []
+ cleanQueryParameters: []
+ bodyParameters: []
+ cleanBodyParameters: []
+ fileParameters: []
+ responses:
+ -
+ status: 404
+ content: |-
+ {
+ "message": "The route api/documentation could not be found."
+ }
+ headers:
+ cache-control: 'no-cache, private'
+ content-type: application/json
+ vary: Origin
+ description: null
+ custom: []
+ responseFields: []
+ auth: []
+ controller: null
+ method: null
+ route: null
+ custom: []
diff --git a/Backend/.scribe/endpoints/custom.0.yaml b/Backend/.scribe/endpoints/custom.0.yaml
new file mode 100644
index 0000000..4b02352
--- /dev/null
+++ b/Backend/.scribe/endpoints/custom.0.yaml
@@ -0,0 +1,53 @@
+# To include an endpoint that isn't a part of your Laravel app (or belongs to a vendor package),
+# you can define it in a custom.*.yaml file, like this one.
+# Each custom file should contain an array of endpoints. Here's an example:
+# See https://scribe.knuckles.wtf/laravel/documenting/custom-endpoints#extra-sorting-groups-in-custom-endpoint-files for more options
+
+#- httpMethods:
+# - POST
+# uri: api/doSomething/{param}
+# metadata:
+# groupName: The group the endpoint belongs to. Can be a new group or an existing group.
+# groupDescription: A description for the group. You don't need to set this for every endpoint; once is enough.
+# subgroup: You can add a subgroup, too.
+# title: Do something
+# description: 'This endpoint allows you to do something.'
+# authenticated: false
+# headers:
+# Content-Type: application/json
+# Accept: application/json
+# urlParameters:
+# param:
+# name: param
+# description: A URL param for no reason.
+# required: true
+# example: 2
+# type: integer
+# queryParameters:
+# speed:
+# name: speed
+# description: How fast the thing should be done. Can be `slow` or `fast`.
+# required: false
+# example: fast
+# type: string
+# bodyParameters:
+# something:
+# name: something
+# description: The things we should do.
+# required: true
+# example:
+# - string 1
+# - string 2
+# type: 'string[]'
+# responses:
+# - status: 200
+# description: 'When the thing was done smoothly.'
+# content: # Your response content can be an object, an array, a string or empty.
+# {
+# "hey": "ho ho ho"
+# }
+# responseFields:
+# hey:
+# name: hey
+# description: Who knows?
+# type: string # This is optional
diff --git a/Backend/.scribe/intro.md b/Backend/.scribe/intro.md
new file mode 100644
index 0000000..2ad461b
--- /dev/null
+++ b/Backend/.scribe/intro.md
@@ -0,0 +1,13 @@
+# Introduction
+
+
+
+
+ Base URL : https://sponge-climbing-adder.ngrok-free.app/api/documentation
+
+
+This documentation aims to provide all the information you need to work with our API.
+
+As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
+You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).
+
diff --git a/Backend/Images/images.png b/Backend/Images/images.png
new file mode 100644
index 0000000..59947a1
Binary files /dev/null and b/Backend/Images/images.png differ
diff --git a/Backend/api/documentation/collection.json b/Backend/api/documentation/collection.json
new file mode 100644
index 0000000..db935ee
--- /dev/null
+++ b/Backend/api/documentation/collection.json
@@ -0,0 +1,1733 @@
+{
+ "variable": [
+ {
+ "id": "baseUrl",
+ "key": "baseUrl",
+ "type": "string",
+ "name": "string",
+ "value": "api\/documentation"
+ }
+ ],
+ "info": {
+ "name": "Kebab Api",
+ "_postman_id": "317b0c86-8c70-44bc-a09f-d4a42be95c59",
+ "description": "",
+ "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
+ },
+ "item": [
+ {
+ "name": "Endpoints",
+ "description": "",
+ "item": [
+ {
+ "name": "POST api\/register",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/register",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/register"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"name\":\"est\",\"email\":\"igibson@example.com\",\"password\":\"corporis\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/login",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/login",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/login"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"email\":\"kirlin.tara@example.com\",\"password\":\"expedita\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "GET api\/kebabs",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/kebabs could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "GET api\/scrape-reviews",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/scrape-reviews",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/scrape-reviews"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/scrape-reviews could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "POST api\/logout",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/logout",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/logout"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "GET api\/getCurrentUser",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/getCurrentUser",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/getCurrentUser"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/getCurrentUser could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "GET api\/fav\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/fav\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/fav\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "iste",
+ "description": "The ID of the fav."
+ }
+ ]
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/fav\/iste could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "POST api\/addfav",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/addfav",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/addfav"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"user_id\":\"voluptatem\",\"kebab_id\":\"ullam\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/remfav",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/remfav",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/remfav"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"user_id\":\"eum\",\"kebab_id\":\"dicta\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changeName\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changeName\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changeName\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "id",
+ "description": "The ID of the changeName."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"newName\":\"voluptas\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changePassword\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changePassword\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changePassword\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "culpa",
+ "description": "The ID of the changePassword."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"newPassword\":\"eligendi\",\"confirmPassword\":\"possimus\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changeEmail\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changeEmail\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changeEmail\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "et",
+ "description": "The ID of the changeEmail."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"newEmail\":\"ervin.kuphal@example.net\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/suggestions",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/suggestions",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/suggestions"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"user\":\"bghrjiaodyjq\",\"contents\":\"vyjf\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/comments",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/comments",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/comments",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "reprehenderit",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"id_user\":20,\"comment\":\"aliquam\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/comments",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/comments",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/comments",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "rerum",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"id_user\":12,\"comment\":\"inventore\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changeUserRole\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changeUserRole\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changeUserRole\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "nesciunt",
+ "description": "The ID of the changeUserRole."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"isAdmin\":true}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/deleteUser\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/deleteUser\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/deleteUser\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "minima",
+ "description": "The ID of the deleteUser."
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "GET api\/getAllUsers",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/getAllUsers",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/getAllUsers"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/getAllUsers could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "POST api\/addNewUser",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/addNewUser",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/addNewUser"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"name\":\"eveniet\",\"email\":\"tyrique37@example.org\",\"password\":\"qui\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/addKebab",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/addKebab",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/addKebab"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"logo\":\"quis\",\"name\":\"qui\",\"address\":\"dicta\",\"coordinates\":\"porro\",\"sauces\":\"impedit\",\"meats\":\"dolorem\",\"status\":\"rem\",\"opening_hours\":\"eligendi\",\"opening_year\":\"eveniet\",\"closing_year\":\"omnis\",\"is_crafted\":\"molestias\",\"is_premises\":\"excepturi\",\"is_chainstore\":\"iste\",\"ordering_options\":\"nam\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "architecto",
+ "description": "The ID of the kebab."
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/logo",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/logo",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/logo",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "necessitatibus",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/name",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/name",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/name",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "minima",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"name\":\"molestiae\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/address",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/address",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/address",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "aut",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"address\":\"hasoytxcdkunpxsulsofhjcbd\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/coordinates",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/coordinates",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/coordinates",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "autem",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"coordinates\":[]}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/sauce",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/sauce",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/sauce",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "accusamus",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"sauce\":\"nulla\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/sauce",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/sauce",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/sauce",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "officia",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"sauce\":\"est\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/meat",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/meat",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/meat",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "et",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"meat\":\"voluptates\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/meat",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/meat",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/meat",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "et",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"meat\":\"suscipit\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/status",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/status",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/status",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "doloribus",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"status\":\"exists\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/opening-hours",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-hours",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-hours",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "quam",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"day\":\"saturday\",\"hours\":\"recusandae\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/opening-hours",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-hours",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-hours",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "enim",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"day\":\"wednesday\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/opening-hours",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-hours",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-hours",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "maxime",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"day\":\"friday\",\"hours\":\"vel\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/opening-year",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-year",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-year",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "necessitatibus",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"opening_year\":\"1897\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/closing-year",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/closing-year",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/closing-year",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "velit",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"closing_year\":\"8861\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/is-crafted",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/is-crafted",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/is-crafted",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "dicta",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"is_crafted\":true}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/is-premises",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/is-premises",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/is-premises",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "neque",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"is_premises\":false}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/is-chainstore",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/is-chainstore",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/is-chainstore",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "corporis",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"is_chainstore\":false}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/ordering-options",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/ordering-options",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/ordering-options",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "eum",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"new_option\":\"distinctio\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/ordering-options",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/ordering-options",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/ordering-options",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "tenetur",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"option_to_remove\":\"eaque\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/pages",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/pages",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/pages",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "id",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"new_page\":\"voluptates\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/pages",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/pages",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/pages",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "iusto",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"page_to_remove\":\"quaerat\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "GET api\/suggestions",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/suggestions",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/suggestions"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/suggestions could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "DELETE api\/suggestions\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/suggestions\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/suggestions\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "non",
+ "description": "The ID of the suggestion."
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ }
+ ]
+ }
+ ],
+ "auth": {
+ "type": "bearer",
+ "bearer": [
+ {
+ "key": "Authorization",
+ "type": "string"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Backend/api/documentation/css/theme-default.print.css b/Backend/api/documentation/css/theme-default.print.css
new file mode 100644
index 0000000..18ab760
--- /dev/null
+++ b/Backend/api/documentation/css/theme-default.print.css
@@ -0,0 +1,393 @@
+/* Copied from https://github.com/slatedocs/slate/blob/c4b4c0b8f83e891ca9fab6bbe9a1a88d5fe41292/stylesheets/print.css and unminified */
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%
+}
+
+body {
+ margin: 0
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0
+}
+
+[hidden],
+template {
+ display: none
+}
+
+a {
+ background-color: transparent
+}
+
+a:active,
+a:hover {
+ outline: 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b,
+strong {
+ font-weight: bold
+}
+
+dfn {
+ font-style: italic
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0
+}
+
+mark {
+ background: #ff0;
+ color: #000
+}
+
+small {
+ font-size: 80%
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+}
+
+sup {
+ top: -0.5em
+}
+
+sub {
+ bottom: -0.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+figure {
+ margin: 1em 40px
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0
+}
+
+pre {
+ overflow: auto
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+}
+
+button {
+ overflow: visible
+}
+
+button,
+select {
+ text-transform: none
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+input {
+ line-height: normal
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto
+}
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto
+}
+
+optgroup {
+ font-weight: bold
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+td,
+th {
+ padding: 0
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+body {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-size: 14px
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4 {
+ font-weight: bold
+}
+
+.content pre,
+.content code {
+ font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
+ font-size: 12px;
+ line-height: 1.5
+}
+
+.content pre,
+.content code {
+ word-break: break-all;
+ -webkit-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto
+}
+
+@font-face {
+ font-family: 'slate';
+ src: url(../fonts/slate.eot?-syv14m);
+ src: url(../fonts/slate.eot?#iefix-syv14m) format("embedded-opentype"), url(../fonts/slate.woff2?-syv14m) format("woff2"), url(../fonts/slate.woff?-syv14m) format("woff"), url(../fonts/slate.ttf?-syv14m) format("truetype"), url(../fonts/slate.svg?-syv14m#slate) format("svg");
+ font-weight: normal;
+ font-style: normal
+}
+
+.content aside.warning:before,
+.content aside.notice:before,
+.content aside.success:before {
+ font-family: 'slate';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1
+}
+
+.content aside.warning:before {
+ content: "\e600"
+}
+
+.content aside.notice:before {
+ content: "\e602"
+}
+
+.content aside.success:before {
+ content: "\e606"
+}
+
+.tocify,
+.toc-footer,
+.lang-selector,
+.search,
+#nav-button {
+ display: none
+}
+
+.tocify-wrapper>img {
+ margin: 0 auto;
+ display: block
+}
+
+.content {
+ font-size: 12px
+}
+
+.content pre,
+.content code {
+ border: 1px solid #999;
+ border-radius: 5px;
+ font-size: 0.8em
+}
+
+.content pre code {
+ border: 0
+}
+
+.content pre {
+ padding: 1.3em
+}
+
+.content code {
+ padding: 0.2em
+}
+
+.content table {
+ border: 1px solid #999
+}
+
+.content table tr {
+ border-bottom: 1px solid #999
+}
+
+.content table td,
+.content table th {
+ padding: 0.7em
+}
+
+.content p {
+ line-height: 1.5
+}
+
+.content a {
+ text-decoration: none;
+ color: #000
+}
+
+.content h1 {
+ font-size: 2.5em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ margin-top: 1em;
+ margin-bottom: 21px;
+ border: 2px solid #ccc;
+ border-width: 2px 0;
+ text-align: center
+}
+
+.content h2 {
+ font-size: 1.8em;
+ margin-top: 2em;
+ border-top: 2px solid #ccc;
+ padding-top: 0.8em
+}
+
+.content h1+h2,
+.content h1+div+h2 {
+ border-top: none;
+ padding-top: 0;
+ margin-top: 0
+}
+
+.content h3,
+.content h4 {
+ font-size: 0.8em;
+ margin-top: 1.5em;
+ margin-bottom: 0.8em;
+ text-transform: uppercase
+}
+
+.content h5,
+.content h6 {
+ text-transform: uppercase
+}
+
+.content aside {
+ padding: 1em;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ line-height: 1.6
+}
+
+.content aside:before {
+ vertical-align: middle;
+ padding-right: 0.5em;
+ font-size: 14px
+}
diff --git a/Backend/api/documentation/css/theme-default.style.css b/Backend/api/documentation/css/theme-default.style.css
new file mode 100644
index 0000000..9a4741c
--- /dev/null
+++ b/Backend/api/documentation/css/theme-default.style.css
@@ -0,0 +1,1090 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+html {
+ font-family: 'Open Sans', sans-serif;
+ font-size: 1.2em;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%
+}
+
+body {
+ margin: 0
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section {
+ display: block
+}
+
+summary {
+ cursor: pointer;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0
+}
+
+[hidden],
+template {
+ display: none
+}
+
+a {
+ background-color: transparent
+}
+
+a:active,
+a:hover {
+ outline: 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b,
+strong {
+ font-weight: 700
+}
+
+dfn {
+ font-style: italic
+}
+
+h1 {
+ font-size: 2em;
+ margin: .67em 0
+}
+
+mark {
+ background: #ff0;
+ color: #000
+}
+
+small {
+ font-size: 80%
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+}
+
+sup {
+ top: -.5em
+}
+
+sub {
+ bottom: -.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+figure {
+ margin: 1em 40px
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0
+}
+
+pre {
+ overflow: auto
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+}
+
+button {
+ overflow: visible
+}
+
+button,
+select {
+ text-transform: none
+}
+
+button,
+html input[type=button],
+input[type=reset],
+input[type=submit] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+input {
+ line-height: normal
+}
+
+input[type=checkbox],
+input[type=radio] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type=number]::-webkit-inner-spin-button,
+input[type=number]::-webkit-outer-spin-button {
+ height: auto
+}
+
+input[type=search] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+}
+
+input[type=search]::-webkit-search-cancel-button,
+input[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+fieldset {
+ border: 1px solid silver;
+ margin: 0 2px;
+ padding: .35em .625em .75em
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto
+}
+
+optgroup {
+ font-weight: 700
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+td,
+th {
+ padding: 0
+}
+
+body,
+html {
+ font-family: 'Open Sans', Helvetica Neue, Helvetica, Arial, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif;
+ font-size: 16px;
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ font-family: 'Open Sans', Helvetica Neue, Helvetica, Arial, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif;
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ font-weight: 700
+}
+
+.content code,
+.content pre {
+ font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
+ font-size: 14px;
+ line-height: 1.5
+}
+
+.content code {
+ word-break: break-all;
+ word-break: break-word;
+ -webkit-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto
+}
+
+.content aside.notice:before,
+.content aside.success:before,
+.content aside.warning:before,
+.tocify-wrapper>.search:before {
+ font-family: 'Open Sans', sans-serif;
+ speak: none;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1
+}
+
+.content aside.warning:before {
+ content: "✋"
+}
+
+.content aside.notice:before {
+ content: "ℹ"
+}
+
+.content aside.success:before {
+ content: "✅"
+}
+
+.tocify-wrapper>.search:before {
+ content: "🔎"
+}
+
+.highlight .c,
+.highlight .c1,
+.highlight .cm,
+.highlight .cs {
+ color: #909090
+}
+
+.highlight,
+.highlight .w {
+ background-color: #292929
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: .5em;
+ background: #23241f
+}
+
+.hljs,
+.hljs-subst,
+.hljs-tag {
+ color: #f8f8f2
+}
+
+.hljs-emphasis,
+.hljs-strong {
+ color: #a8a8a2
+}
+
+.hljs-bullet,
+.hljs-link,
+.hljs-literal,
+.hljs-number,
+.hljs-quote,
+.hljs-regexp {
+ color: #ae81ff
+}
+
+.hljs-code,
+.hljs-section,
+.hljs-selector-class,
+.hljs-title {
+ color: #a6e22e
+}
+
+.hljs-strong {
+ font-weight: 700
+}
+
+.hljs-emphasis {
+ font-style: italic
+}
+
+.hljs-attr,
+.hljs-keyword,
+.hljs-name,
+.hljs-selector-tag {
+ color: #f92672
+}
+
+.hljs-attribute,
+.hljs-symbol {
+ color: #66d9ef
+}
+
+.hljs-class .hljs-title,
+.hljs-params {
+ color: #f8f8f2
+}
+
+.hljs-addition,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-selector-attr,
+.hljs-selector-id,
+.hljs-selector-pseudo,
+.hljs-string,
+.hljs-template-variable,
+.hljs-type,
+.hljs-variable {
+ color: #e6db74
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-meta {
+ color: #75715e
+}
+
+body,
+html {
+ color: #333;
+ padding: 0;
+ margin: 0;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ background-color: whitesmoke;
+ height: 100%;
+ -webkit-text-size-adjust: none
+}
+
+#toc>ul>li>a>span {
+ float: right;
+ background-color: #2484ff;
+ border-radius: 40px;
+ width: 20px
+}
+
+.tocify-wrapper {
+ transition: left .3s ease-in-out;
+ overflow-y: auto;
+ overflow-x: hidden;
+ position: fixed;
+ z-index: 30;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 230px;
+ background-color: #393939;
+ font-size: 13px;
+ font-weight: 700
+}
+
+.tocify-wrapper .lang-selector {
+ display: none
+}
+
+.tocify-wrapper .lang-selector a {
+ padding-top: .5em;
+ padding-bottom: .5em
+}
+
+.tocify-wrapper>img {
+ display: block
+}
+
+.tocify-wrapper>.search {
+ position: relative
+}
+
+.tocify-wrapper>.search input {
+ background: #393939;
+ border-width: 0 0 1px;
+ border-color: #666;
+ padding: 6px 0 6px 20px;
+ box-sizing: border-box;
+ margin: 10px 15px;
+ width: 200px;
+ outline: none;
+ color: #fff;
+ border-radius: 0
+}
+
+.tocify-wrapper>.search:before {
+ position: absolute;
+ top: 17px;
+ left: 15px;
+ color: #fff
+}
+
+.tocify-wrapper img+.tocify {
+ margin-top: 20px
+}
+
+.tocify-wrapper .search-results {
+ margin-top: 0;
+ box-sizing: border-box;
+ height: 0;
+ overflow-y: auto;
+ overflow-x: hidden;
+ transition-property: height, margin;
+ transition-duration: .18s;
+ transition-timing-function: ease-in-out;
+ background: linear-gradient(180deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(180deg, #000, transparent 1.5px), linear-gradient(0deg, #939393, hsla(0, 0%, 58%, 0) 1.5px), #262626
+}
+
+.tocify-wrapper .search-results.visible {
+ height: 30%;
+ margin-bottom: 1em
+}
+
+.tocify-wrapper .search-results li {
+ margin: 1em 15px;
+ line-height: 1
+}
+
+.tocify-wrapper a {
+ color: #fff;
+ text-decoration: none
+}
+
+.tocify-wrapper .search-results a:hover {
+ text-decoration: underline
+}
+
+.tocify-wrapper .toc-footer li,
+.tocify-wrapper .tocify-item>a {
+ padding: 0 15px;
+ display: block;
+ overflow-x: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+}
+.tocify-wrapper .tocify-item.level-3>a {
+ padding: 0 25px;
+}
+
+.tocify-wrapper li,
+.tocify-wrapper ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ line-height: 28px
+}
+
+.tocify-wrapper li {
+ color: #fff;
+ transition-property: background;
+ transition-timing-function: linear;
+ transition-duration: .23s
+}
+
+.tocify-wrapper .tocify-focus {
+ box-shadow: 0 1px 0 #000;
+ background-color: #2467af;
+ color: #fff;
+ font-weight: bold;
+}
+
+.tocify-wrapper .tocify-subheader {
+ display: none;
+ background-color: #262626;
+ font-weight: 500;
+ background: linear-gradient(180deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(180deg, #000, transparent 1.5px), linear-gradient(0deg, #939393, hsla(0, 0%, 58%, 0) 1.5px), #262626
+}
+
+.tocify-wrapper .jets-searching .tocify-subheader,
+.tocify-wrapper .tocify-subheader.visible {
+ display: block;
+}
+
+.tocify-wrapper .tocify-subheader .tocify-item>a {
+ padding-left: 25px;
+ font-size: 12px
+}
+
+.tocify-wrapper .tocify-subheader .tocify-item.level-3>a {
+ padding-left: 35px;
+}
+
+.tocify-wrapper .tocify-subheader>li:last-child {
+ box-shadow: none
+}
+
+.tocify-wrapper .toc-footer {
+ padding: 1em 0;
+ margin-top: 1em;
+ border-top: 1px dashed #666
+}
+
+.tocify-wrapper .toc-footer a,
+.tocify-wrapper .toc-footer li {
+ color: #fff;
+ text-decoration: none
+}
+
+.tocify-wrapper .toc-footer a:hover {
+ text-decoration: underline
+}
+
+.tocify-wrapper .toc-footer li {
+ font-size: .8em;
+ line-height: 1.7;
+ text-decoration: none
+}
+
+#nav-button {
+ padding: 0 1.5em 5em 0;
+ display: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 100;
+ color: #000;
+ text-decoration: none;
+ font-weight: 700;
+ opacity: .7;
+ line-height: 16px;
+ transition: left .3s ease-in-out
+}
+
+#nav-button span {
+ display: block;
+ padding: 6px;
+ background-color: rgba(234, 242, 246, .7);
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: rotate(-90deg) translate(-100%);
+ transform: rotate(-90deg) translate(-100%);
+ border-radius: 0 0 0 5px
+}
+
+#nav-button img {
+ height: 16px;
+ vertical-align: bottom
+}
+
+#nav-button:hover {
+ opacity: 1
+}
+
+#nav-button.open {
+ left: 230px
+}
+
+.page-wrapper {
+ margin-left: 230px;
+ position: relative;
+ z-index: 10;
+ background-color: #eaf2f6;
+ min-height: 100%;
+ padding-bottom: 1px
+}
+
+.page-wrapper .dark-box {
+ width: 50%;
+ background-color: #393939;
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0
+}
+
+.page-wrapper .lang-selector {
+ position: fixed;
+ z-index: 50;
+ border-bottom: 5px solid #393939
+}
+
+.lang-selector {
+ background-color: #222;
+ width: 100%;
+ font-weight: 700
+}
+
+.lang-selector button {
+ display: block;
+ float: left;
+ color: #fff;
+ text-decoration: none;
+ padding: 0 10px;
+ line-height: 30px;
+ outline: 0;
+ background: transparent;
+ border: none;
+}
+
+.lang-selector button:active,
+.lang-selector button:hover,
+.lang-selector button:focus {
+ background-color: #111;
+ color: #fff
+}
+
+.lang-selector button.active {
+ background-color: #393939;
+ color: #fff
+}
+
+.lang-selector:after {
+ content: '';
+ clear: both;
+ display: block
+}
+
+.content {
+ position: relative;
+ z-index: 30
+}
+
+.content:after {
+ content: '';
+ display: block;
+ clear: both
+}
+
+.content>aside,
+.content>details,
+.content>dl,
+.content>h1,
+.content>h2,
+.content>h3,
+.content>h4,
+.content>h5,
+.content>h6,
+.content>ol,
+.content>p,
+.content>table,
+.content>ul,
+.content>div,
+.content>form>aside,
+.content>form>details,
+.content>form>h1,
+.content>form>h2,
+.content>form>h3,
+.content>form>h4,
+.content>form>h5,
+.content>form>h6,
+.content>form>p,
+.content>form>table,
+.content>form>ul,
+.content>form>div {
+ margin-right: 50%;
+ padding: 0 28px;
+ box-sizing: border-box;
+ display: block;
+ text-shadow: 0 1px 0 #fff
+}
+
+.content>ol,
+.content>ul {
+ padding-left: 43px
+}
+
+.content>div,
+.content>h1,
+.content>h2 {
+ clear: both
+}
+
+.content h1 {
+ font-size: 30px;
+ padding-top: .5em;
+ padding-bottom: .5em;
+ border-bottom: 1px solid #ccc;
+ margin-bottom: 21px;
+ margin-top: 2em;
+ border-top: 1px solid #ddd;
+ background-image: linear-gradient(180deg, #fff, #f9f9f9)
+}
+
+.content div:first-child+h1,
+.content h1:first-child {
+ border-top-width: 0;
+ margin-top: 0
+}
+
+.content h2 {
+ font-size: 20px;
+ margin-top: 4em;
+ margin-bottom: 0;
+ border-top: 1px solid #ccc;
+ padding-top: 1.2em;
+ padding-bottom: 1.2em;
+ background-image: linear-gradient(180deg, hsla(0, 0%, 100%, .4), hsla(0, 0%, 100%, 0))
+}
+
+.content h1+div+h2,
+.content h1+h2 {
+ margin-top: -21px;
+ border-top: none
+}
+
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ font-size: 15px;
+ margin-top: 2.5em;
+ margin-bottom: .8em
+}
+
+.content h4,
+.content h5,
+.content h6 {
+ font-size: 10px
+}
+
+.content hr {
+ margin: 2em 0;
+ border-top: 2px solid #393939;
+ border-bottom: 2px solid #eaf2f6
+}
+
+.content table {
+ margin-bottom: 1em;
+ overflow: auto
+}
+
+.content table td,
+.content table th {
+ text-align: left;
+ vertical-align: top;
+ line-height: 1.6
+}
+
+.content table th {
+ padding: 5px 10px;
+ border-bottom: 1px solid #ccc;
+ vertical-align: bottom
+}
+
+.content table td {
+ padding: 10px
+}
+
+.content table tr:last-child {
+ border-bottom: 1px solid #ccc
+}
+
+.content table tr:nth-child(odd)>td {
+ background-color: #ebf3f6
+}
+
+.content table tr:nth-child(even)>td {
+ background-color: #ebf2f6
+}
+
+.content dt {
+ font-weight: 700
+}
+
+.content dd {
+ margin-left: 15px
+}
+
+.content dd,
+.content dt,
+.content li,
+.content p {
+ line-height: 1.6;
+ margin-top: 0
+}
+
+.content img {
+ max-width: 100%
+}
+
+.content code {
+ padding: 3px;
+ border-radius: 3px
+}
+
+.content pre>code {
+ background-color: transparent;
+ padding: 0
+}
+
+.content aside {
+ padding-top: 1em;
+ padding-bottom: 1em;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ background: #292929;
+ line-height: 1.6;
+ color: #c8c8c8;
+ text-shadow: none;
+}
+
+.content aside.info {
+ background: #8fbcd4;
+ text-shadow: 0 1px 0 #a0c6da;
+ color: initial;
+}
+
+.content aside.warning {
+ background-color: #c97a7e;
+ text-shadow: 0 1px 0 #d18e91;
+ color: initial;
+}
+
+.content aside.success {
+ background-color: #6ac174;
+ text-shadow: 0 1px 0 #80ca89;
+ color: initial;
+}
+
+.content aside:before {
+ vertical-align: middle;
+ padding-right: .5em;
+ font-size: 14px
+}
+
+.content .search-highlight {
+ padding: 2px;
+ margin: -2px;
+ border-radius: 4px;
+ border: 1px solid #f7e633;
+ text-shadow: 1px 1px 0 #666;
+ background: linear-gradient(to top left, #f7e633, #f1d32f)
+}
+
+.content blockquote,
+.content pre {
+ background-color: #292929;
+ color: #fff;
+ padding: 1.5em 28px;
+ margin: 0;
+ width: 50%;
+ float: right;
+ clear: right;
+ box-sizing: border-box;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .4)
+}
+
+.content blockquote pre.sf-dump,
+.content pre pre.sf-dump {
+ width: 100%;
+}
+
+.content .annotation {
+ background-color: #292929;
+ color: #fff;
+ padding: 0 28px;
+ margin: 0;
+ width: 50%;
+ float: right;
+ clear: right;
+ box-sizing: border-box;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .4)
+}
+
+.content .annotation pre {
+ padding: 0 0;
+ width: 100%;
+ float: none;
+}
+
+.content blockquote>p,
+.content pre>p {
+ margin: 0
+}
+
+.content blockquote a,
+.content pre a {
+ color: #fff;
+ text-decoration: none;
+ border-bottom: 1px dashed #ccc
+}
+
+.content blockquote>p {
+ background-color: #1c1c1c;
+ border-radius: 5px;
+ padding: 13px;
+ color: #ccc;
+ border-top: 1px solid #000;
+ border-bottom: 1px solid #404040
+}
+
+@media (max-width:930px) {
+ .tocify-wrapper {
+ left: -230px
+ }
+ .tocify-wrapper.open {
+ left: 0
+ }
+ .page-wrapper {
+ margin-left: 0
+ }
+ #nav-button {
+ display: block
+ }
+ .tocify-wrapper .tocify-item>a {
+ padding-top: .3em;
+ padding-bottom: .3em
+ }
+}
+
+@media (max-width:700px) {
+ .dark-box {
+ display: none
+ }
+ .tocify-wrapper .lang-selector {
+ display: block
+ }
+ .page-wrapper .lang-selector {
+ display: none
+ }
+ .content>aside,
+ .content>details,
+ .content>dl,
+ .content>h1,
+ .content>h2,
+ .content>h3,
+ .content>h4,
+ .content>h5,
+ .content>h6,
+ .content>ol,
+ .content>p,
+ .content>table,
+ .content>ul,
+ .content>div,
+ .content>form>aside,
+ .content>form>details,
+ .content>form>h1,
+ .content>form>h2,
+ .content>form>h3,
+ .content>form>h4,
+ .content>form>h5,
+ .content>form>h6,
+ .content>form>p,
+ .content>form>table,
+ .content>form>ul,
+ .content>form>div {
+ margin-right: 0;
+ }
+ .content blockquote,
+ .content pre {
+ float: none;
+ width: auto
+ }
+ .content .annotation {
+ float: none;
+ width: auto
+ }
+}
+
+.badge {
+ padding: 1px 9px 2px;
+ white-space: nowrap;
+ -webkit-border-radius: 9px;
+ -moz-border-radius: 9px;
+ border-radius: 9px;
+ color: #ffffff;
+ text-shadow: none !important;
+ font-weight: bold;
+}
+
+.badge.badge-darkred {
+ background-color: darkred;
+}
+
+.badge.badge-red {
+ background-color: red;
+}
+
+.badge.badge-blue {
+ background-color: blue;
+}
+
+.badge.badge-darkblue {
+ background-color: darkblue;
+}
+
+.badge.badge-green {
+ background-color: green;
+}
+
+.badge.badge-darkgreen {
+ background-color: darkgreen;
+}
+
+.badge.badge-purple {
+ background-color: purple;
+}
+
+.badge.badge-black {
+ background-color: black;
+}
+
+.badge.badge-grey {
+ background-color: grey;
+}
+
+.fancy-heading-panel {
+ background-color: lightgrey;
+ border-radius: 5px;
+ padding-left: 5px !important;
+ padding-top: 5px !important;
+ padding-bottom: 5px !important;
+ margin-left: 25px;
+ margin-right: 10px;
+ width: 47%;
+}
+
+@media screen and (max-width: 700px) {
+ .fancy-heading-panel {
+ width: 95%;
+ }
+
+}
+
+button {
+ border: none;
+}
+
+* {
+ /* Foreground, Background */
+ scrollbar-color: #3c4c67 transparent;
+}
+*::-webkit-scrollbar { /* Background */
+ width: 10px;
+ height: 10px;
+ background: transparent;
+}
+
+*::-webkit-scrollbar-thumb { /* Foreground */
+ background: #626161;
+}
diff --git a/Backend/api/documentation/images/navbar.png b/Backend/api/documentation/images/navbar.png
new file mode 100644
index 0000000..df38e90
Binary files /dev/null and b/Backend/api/documentation/images/navbar.png differ
diff --git a/Backend/api/documentation/index.html b/Backend/api/documentation/index.html
new file mode 100644
index 0000000..f106e7c
--- /dev/null
+++ b/Backend/api/documentation/index.html
@@ -0,0 +1,7384 @@
+
+
+
+
+
+
+ Kebab Api
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MENU
+
+
+
+
+
+
+ bash
+ javascript
+ php
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Introduction
+
+ Base URL : api/documentation
+
+
This documentation aims to provide all the information you need to work with our API.
+
As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
+You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).
+
+
Authenticating requests
+
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}" .
+
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
+
You can retrieve your token by visiting your dashboard and clicking Generate API token .
+
+
Endpoints
+
+
+
+
POST api/register
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/register" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"name\": \"est\",
+ \"email\": \"igibson@example.com\",
+ \"password\": \"corporis\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/register"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "name": "est",
+ "email": "igibson@example.com",
+ "password": "corporis"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/register';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'name' => 'est',
+ 'email' => 'igibson@example.com',
+ 'password' => 'corporis',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/login
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/login" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"email\": \"kirlin.tara@example.com\",
+ \"password\": \"expedita\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/login"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "email": "kirlin.tara@example.com",
+ "password": "expedita"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/login';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'email' => 'kirlin.tara@example.com',
+ 'password' => 'expedita',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/kebabs
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "api/documentation/api/kebabs" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/kebabs could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/scrape-reviews
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "api/documentation/api/scrape-reviews" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/scrape-reviews"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/scrape-reviews';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/scrape-reviews could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/logout
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/logout" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/logout"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/logout';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/getCurrentUser
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "api/documentation/api/getCurrentUser" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/getCurrentUser"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/getCurrentUser';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/getCurrentUser could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/fav/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "api/documentation/api/fav/iste" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/fav/iste"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/fav/iste';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/fav/iste could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/addfav
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/addfav" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"user_id\": \"voluptatem\",
+ \"kebab_id\": \"ullam\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/addfav"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "user_id": "voluptatem",
+ "kebab_id": "ullam"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/addfav';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'user_id' => 'voluptatem',
+ 'kebab_id' => 'ullam',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/remfav
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/remfav" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"user_id\": \"eum\",
+ \"kebab_id\": \"dicta\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/remfav"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "user_id": "eum",
+ "kebab_id": "dicta"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/remfav';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'user_id' => 'eum',
+ 'kebab_id' => 'dicta',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changeName/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/changeName/id" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"newName\": \"voluptas\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/changeName/id"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "newName": "voluptas"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/changeName/id';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'newName' => 'voluptas',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changePassword/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/changePassword/culpa" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"newPassword\": \"eligendi\",
+ \"confirmPassword\": \"possimus\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/changePassword/culpa"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "newPassword": "eligendi",
+ "confirmPassword": "possimus"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/changePassword/culpa';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'newPassword' => 'eligendi',
+ 'confirmPassword' => 'possimus',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changeEmail/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/changeEmail/et" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"newEmail\": \"ervin.kuphal@example.net\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/changeEmail/et"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "newEmail": "ervin.kuphal@example.net"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/changeEmail/et';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'newEmail' => 'ervin.kuphal@example.net',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/suggestions
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/suggestions" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"user\": \"bghrjiaodyjq\",
+ \"contents\": \"vyjf\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/suggestions"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "user": "bghrjiaodyjq",
+ "contents": "vyjf"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/suggestions';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'user' => 'bghrjiaodyjq',
+ 'contents' => 'vyjf',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
PUT api/changeUserRole/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/changeUserRole/nesciunt" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"isAdmin\": true
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/changeUserRole/nesciunt"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "isAdmin": true
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/changeUserRole/nesciunt';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'isAdmin' => true,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/deleteUser/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/deleteUser/minima" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/deleteUser/minima"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/deleteUser/minima';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/getAllUsers
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "api/documentation/api/getAllUsers" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/getAllUsers"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/getAllUsers';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/getAllUsers could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/addNewUser
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/addNewUser" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"name\": \"eveniet\",
+ \"email\": \"tyrique37@example.org\",
+ \"password\": \"qui\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/addNewUser"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "name": "eveniet",
+ "email": "tyrique37@example.org",
+ "password": "qui"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/addNewUser';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'name' => 'eveniet',
+ 'email' => 'tyrique37@example.org',
+ 'password' => 'qui',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/addKebab
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/addKebab" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"logo\": \"quis\",
+ \"name\": \"qui\",
+ \"address\": \"dicta\",
+ \"coordinates\": \"porro\",
+ \"sauces\": \"impedit\",
+ \"meats\": \"dolorem\",
+ \"status\": \"rem\",
+ \"opening_hours\": \"eligendi\",
+ \"opening_year\": \"eveniet\",
+ \"closing_year\": \"omnis\",
+ \"is_crafted\": \"molestias\",
+ \"is_premises\": \"excepturi\",
+ \"is_chainstore\": \"iste\",
+ \"ordering_options\": \"nam\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/addKebab"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "logo": "quis",
+ "name": "qui",
+ "address": "dicta",
+ "coordinates": "porro",
+ "sauces": "impedit",
+ "meats": "dolorem",
+ "status": "rem",
+ "opening_hours": "eligendi",
+ "opening_year": "eveniet",
+ "closing_year": "omnis",
+ "is_crafted": "molestias",
+ "is_premises": "excepturi",
+ "is_chainstore": "iste",
+ "ordering_options": "nam"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/addKebab';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'logo' => 'quis',
+ 'name' => 'qui',
+ 'address' => 'dicta',
+ 'coordinates' => 'porro',
+ 'sauces' => 'impedit',
+ 'meats' => 'dolorem',
+ 'status' => 'rem',
+ 'opening_hours' => 'eligendi',
+ 'opening_year' => 'eveniet',
+ 'closing_year' => 'omnis',
+ 'is_crafted' => 'molestias',
+ 'is_premises' => 'excepturi',
+ 'is_chainstore' => 'iste',
+ 'ordering_options' => 'nam',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/kebabs/architecto" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/architecto"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/architecto';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/logo
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/necessitatibus/logo" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/necessitatibus/logo"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/necessitatibus/logo';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/name
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/minima/name" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"name\": \"molestiae\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/minima/name"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "name": "molestiae"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/minima/name';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'name' => 'molestiae',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/address
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/aut/address" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"address\": \"hasoytxcdkunpxsulsofhjcbd\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/aut/address"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "address": "hasoytxcdkunpxsulsofhjcbd"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/aut/address';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'address' => 'hasoytxcdkunpxsulsofhjcbd',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/coordinates
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/autem/coordinates" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"coordinates\": []
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/autem/coordinates"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "coordinates": []
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/autem/coordinates';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'coordinates' => [],
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/sauce
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/kebabs/accusamus/sauce" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"sauce\": \"nulla\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/accusamus/sauce"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "sauce": "nulla"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/accusamus/sauce';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'sauce' => 'nulla',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/sauce
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/kebabs/officia/sauce" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"sauce\": \"est\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/officia/sauce"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "sauce": "est"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/officia/sauce';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'sauce' => 'est',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/meat
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/kebabs/et/meat" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"meat\": \"voluptates\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/et/meat"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "meat": "voluptates"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/et/meat';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'meat' => 'voluptates',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/meat
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/kebabs/et/meat" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"meat\": \"suscipit\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/et/meat"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "meat": "suscipit"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/et/meat';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'meat' => 'suscipit',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/status
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/doloribus/status" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"status\": \"exists\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/doloribus/status"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "status": "exists"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/doloribus/status';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'status' => 'exists',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/opening-hours
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/kebabs/quam/opening-hours" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"day\": \"saturday\",
+ \"hours\": \"recusandae\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/quam/opening-hours"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "day": "saturday",
+ "hours": "recusandae"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/quam/opening-hours';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'day' => 'saturday',
+ 'hours' => 'recusandae',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/opening-hours
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/kebabs/enim/opening-hours" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"day\": \"wednesday\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/enim/opening-hours"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "day": "wednesday"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/enim/opening-hours';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'day' => 'wednesday',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/opening-hours
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/maxime/opening-hours" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"day\": \"friday\",
+ \"hours\": \"vel\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/maxime/opening-hours"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "day": "friday",
+ "hours": "vel"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/maxime/opening-hours';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'day' => 'friday',
+ 'hours' => 'vel',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/opening-year
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/necessitatibus/opening-year" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"opening_year\": \"1897\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/necessitatibus/opening-year"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "opening_year": "1897"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/necessitatibus/opening-year';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'opening_year' => '1897',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/closing-year
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/velit/closing-year" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"closing_year\": \"8861\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/velit/closing-year"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "closing_year": "8861"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/velit/closing-year';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'closing_year' => '8861',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/is-crafted
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/dicta/is-crafted" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"is_crafted\": true
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/dicta/is-crafted"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "is_crafted": true
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/dicta/is-crafted';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'is_crafted' => true,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/is-premises
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/neque/is-premises" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"is_premises\": false
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/neque/is-premises"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "is_premises": false
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/neque/is-premises';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'is_premises' => false,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/is-chainstore
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "api/documentation/api/kebabs/corporis/is-chainstore" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"is_chainstore\": false
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/corporis/is-chainstore"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "is_chainstore": false
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/corporis/is-chainstore';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'is_chainstore' => false,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/ordering-options
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/kebabs/eum/ordering-options" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"new_option\": \"distinctio\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/eum/ordering-options"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "new_option": "distinctio"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/eum/ordering-options';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'new_option' => 'distinctio',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/ordering-options
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/kebabs/tenetur/ordering-options" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"option_to_remove\": \"eaque\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/tenetur/ordering-options"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "option_to_remove": "eaque"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/tenetur/ordering-options';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'option_to_remove' => 'eaque',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/pages
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "api/documentation/api/kebabs/id/pages" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"new_page\": \"voluptates\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/id/pages"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "new_page": "voluptates"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/id/pages';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'new_page' => 'voluptates',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/pages
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/kebabs/iusto/pages" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"page_to_remove\": \"quaerat\"
+}"
+
+
+
+
+
const url = new URL(
+ "api/documentation/api/kebabs/iusto/pages"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "page_to_remove": "quaerat"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/kebabs/iusto/pages';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'page_to_remove' => 'quaerat',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/suggestions
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "api/documentation/api/suggestions" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/suggestions"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/suggestions';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/suggestions could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/suggestions/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "api/documentation/api/suggestions/non" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "api/documentation/api/suggestions/non"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'api/documentation/api/suggestions/non';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
+
+
+
+
+
+ bash
+ javascript
+ php
+
+
+
+
+
diff --git a/Backend/api/documentation/js/theme-default-4.39.0.js b/Backend/api/documentation/js/theme-default-4.39.0.js
new file mode 100644
index 0000000..31c8451
--- /dev/null
+++ b/Backend/api/documentation/js/theme-default-4.39.0.js
@@ -0,0 +1,149 @@
+document.addEventListener('DOMContentLoaded', function() {
+ const updateHash = function (id) {
+ window.location.hash = `#${id}`;
+ };
+
+ const navButton = document.getElementById('nav-button');
+ const menuWrapper = document.querySelector('.tocify-wrapper');
+ function toggleSidebar(event) {
+ event.preventDefault();
+ if (menuWrapper) {
+ menuWrapper.classList.toggle('open');
+ navButton.classList.toggle('open');
+ }
+ }
+ function closeSidebar() {
+ if (menuWrapper) {
+ menuWrapper.classList.remove('open');
+ navButton.classList.remove('open');
+ }
+ }
+ navButton.addEventListener('click', toggleSidebar);
+
+ window.hljs.highlightAll();
+
+ const wrapper = document.getElementById('toc');
+ // https://jets.js.org/
+ window.jets = new window.Jets({
+ // *OR - Selects elements whose values contains at least one part of search substring
+ searchSelector: '*OR',
+ searchTag: '#input-search',
+ contentTag: '#toc li',
+ didSearch: function(term) {
+ wrapper.classList.toggle('jets-searching', String(term).length > 0)
+ },
+ // map these accent keys to plain values
+ diacriticsMap: {
+ a: 'ÀÁÂÃÄÅàáâãäåĀāąĄ',
+ c: 'ÇçćĆčČ',
+ d: 'đĐďĎ',
+ e: 'ÈÉÊËèéêëěĚĒēęĘ',
+ i: 'ÌÍÎÏìíîïĪī',
+ l: 'łŁ',
+ n: 'ÑñňŇńŃ',
+ o: 'ÒÓÔÕÕÖØòóôõöøŌō',
+ r: 'řŘ',
+ s: 'ŠšśŚ',
+ t: 'ťŤ',
+ u: 'ÙÚÛÜùúûüůŮŪū',
+ y: 'ŸÿýÝ',
+ z: 'ŽžżŻźŹ'
+ }
+ });
+
+ function hashChange() {
+ const currentItems = document.querySelectorAll('.tocify-subheader.visible, .tocify-item.tocify-focus');
+ Array.from(currentItems).forEach((elem) => {
+ elem.classList.remove('visible', 'tocify-focus');
+ });
+
+ const currentTag = document.querySelector(`a[href="${window.location.hash}"]`);
+ if (currentTag) {
+ const parent = currentTag.closest('.tocify-subheader');
+ if (parent) {
+ parent.classList.add('visible');
+ }
+
+ const siblings = currentTag.closest('.tocify-header');
+ if (siblings) {
+ Array.from(siblings.querySelectorAll('.tocify-subheader')).forEach((elem) => {
+ elem.classList.add('visible');
+ });
+ }
+
+ currentTag.parentElement.classList.add('tocify-focus');
+
+ // wait for dom changes to be done
+ setTimeout(() => {
+ currentTag.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
+ // only close the sidebar on level-2 events
+ if (currentTag.parentElement.classList.contains('level-2')) {
+ closeSidebar();
+ }
+ }, 1500);
+ }
+ }
+
+ let languages = JSON.parse(document.body.getAttribute('data-languages'));
+ // Support a key => value object where the key is the name, or an array of strings where the value is the name
+ if (!Array.isArray(languages)) {
+ languages = Object.values(languages);
+ }
+ // if there is no language use the first one
+ const currentLanguage = window.localStorage.getItem('language') || languages[0];
+ const languageStyle = document.getElementById('language-style');
+ const langSelector = document.querySelectorAll('.lang-selector button.lang-button');
+
+ function setActiveLanguage(newLanguage) {
+ window.localStorage.setItem('language', newLanguage);
+ if (!languageStyle) {
+ return;
+ }
+
+ const newStyle = languages.map((language) => {
+ return language === newLanguage
+ // the current one should be visible
+ ? `body .content .${language}-example pre { display: block; }`
+ // the inactive one should be hidden
+ : `body .content .${language}-example pre { display: none; }`;
+ }).join(`\n`);
+
+ Array.from(langSelector).forEach((elem) => {
+ elem.classList.toggle('active', elem.getAttribute('data-language-name') === newLanguage);
+ });
+
+ const activeHash = window.location.hash.slice(1);
+
+ languageStyle.innerHTML = newStyle;
+
+ setTimeout(() => {
+ updateHash(activeHash);
+ }, 200);
+ }
+
+ setActiveLanguage(currentLanguage);
+
+ Array.from(langSelector).forEach((elem) => {
+ elem.addEventListener('click', () => {
+ const newLanguage = elem.getAttribute('data-language-name');
+ setActiveLanguage(newLanguage);
+ });
+ });
+
+ window.addEventListener('hashchange', hashChange, false);
+
+ const divs = document.querySelectorAll('.content h1[id], .content h2[id]');
+
+ document.addEventListener('scroll', () => {
+ divs.forEach(item => {
+ const rect = item.getBoundingClientRect();
+ if (rect.top > 0 && rect.top < 150) {
+ const location = window.location.toString().split('#')[0];
+ history.replaceState(null, null, location + '#' + item.id);
+ hashChange();
+ }
+ });
+ });
+
+ hashChange();
+});
diff --git a/Backend/api/documentation/js/tryitout-4.39.0.js b/Backend/api/documentation/js/tryitout-4.39.0.js
new file mode 100644
index 0000000..2a1d2b8
--- /dev/null
+++ b/Backend/api/documentation/js/tryitout-4.39.0.js
@@ -0,0 +1,289 @@
+window.abortControllers = {};
+
+function cacheAuthValue() {
+ // Whenever the auth header is set for one endpoint, cache it for the others
+ window.lastAuthValue = '';
+ let authInputs = document.querySelectorAll(`.auth-value`)
+ authInputs.forEach(el => {
+ el.addEventListener('input', (event) => {
+ window.lastAuthValue = event.target.value;
+ authInputs.forEach(otherInput => {
+ if (otherInput === el) return;
+ // Don't block the main thread
+ setTimeout(() => {
+ otherInput.value = window.lastAuthValue;
+ }, 0);
+ });
+ });
+ });
+}
+
+window.addEventListener('DOMContentLoaded', cacheAuthValue);
+
+function getCookie(name) {
+ if (!document.cookie) {
+ return null;
+ }
+
+ const cookies = document.cookie.split(';')
+ .map(c => c.trim())
+ .filter(c => c.startsWith(name + '='));
+
+ if (cookies.length === 0) {
+ return null;
+ }
+
+ return decodeURIComponent(cookies[0].split('=')[1]);
+}
+
+function tryItOut(endpointId) {
+ document.querySelector(`#btn-tryout-${endpointId}`).hidden = true;
+ document.querySelector(`#btn-canceltryout-${endpointId}`).hidden = false;
+ const executeBtn = document.querySelector(`#btn-executetryout-${endpointId}`).hidden = false;
+ executeBtn.disabled = false;
+
+ // Show all input fields
+ document.querySelectorAll(`input[data-endpoint=${endpointId}],label[data-endpoint=${endpointId}]`)
+ .forEach(el => el.style.display = 'block');
+
+ if (document.querySelector(`#form-${endpointId}`).dataset.authed === "1") {
+ const authElement = document.querySelector(`#auth-${endpointId}`);
+ authElement && (authElement.hidden = false);
+ }
+ // Expand all nested fields
+ document.querySelectorAll(`#form-${endpointId} details`)
+ .forEach(el => el.open = true);
+}
+
+function cancelTryOut(endpointId) {
+ if (window.abortControllers[endpointId]) {
+ window.abortControllers[endpointId].abort();
+ delete window.abortControllers[endpointId];
+ }
+
+ document.querySelector(`#btn-tryout-${endpointId}`).hidden = false;
+ const executeBtn = document.querySelector(`#btn-executetryout-${endpointId}`);
+ executeBtn.hidden = true;
+ executeBtn.textContent = executeBtn.dataset.initialText;
+ document.querySelector(`#btn-canceltryout-${endpointId}`).hidden = true;
+ // Hide inputs
+ document.querySelectorAll(`input[data-endpoint=${endpointId}],label[data-endpoint=${endpointId}]`)
+ .forEach(el => el.style.display = 'none');
+ document.querySelectorAll(`#form-${endpointId} details`)
+ .forEach(el => el.open = false);
+ const authElement = document.querySelector(`#auth-${endpointId}`);
+ authElement && (authElement.hidden = true);
+
+ document.querySelector('#execution-results-' + endpointId).hidden = true;
+ document.querySelector('#execution-error-' + endpointId).hidden = true;
+
+ // Revert to sample code blocks
+ document.querySelector('#example-requests-' + endpointId).hidden = false;
+ document.querySelector('#example-responses-' + endpointId).hidden = false;
+}
+
+function makeAPICall(method, path, body = {}, query = {}, headers = {}, endpointId = null) {
+ console.log({endpointId, path, body, query, headers});
+
+ if (!(body instanceof FormData) && typeof body !== "string") {
+ body = JSON.stringify(body)
+ }
+
+ const url = new URL(window.tryItOutBaseUrl + '/' + path.replace(/^\//, ''));
+
+ // We need this function because if you try to set an array or object directly to a URLSearchParams object,
+ // you'll get [object Object] or the array.toString()
+ function addItemToSearchParamsObject(key, value, searchParams) {
+ if (Array.isArray(value)) {
+ value.forEach((v, i) => {
+ // Append {filters: [first, second]} as filters[0]=first&filters[1]second
+ addItemToSearchParamsObject(key + '[' + i + ']', v, searchParams);
+ })
+ } else if (typeof value === 'object' && value !== null) {
+ Object.keys(value).forEach((i) => {
+ // Append {filters: {name: first}} as filters[name]=first
+ addItemToSearchParamsObject(key + '[' + i + ']', value[i], searchParams);
+ });
+ } else {
+ searchParams.append(key, value);
+ }
+ }
+
+ Object.keys(query)
+ .forEach(key => addItemToSearchParamsObject(key, query[key], url.searchParams));
+
+ window.abortControllers[endpointId] = new AbortController();
+
+ return fetch(url, {
+ method,
+ headers,
+ body: method === 'GET' ? undefined : body,
+ signal: window.abortControllers[endpointId].signal,
+ referrer: window.tryItOutBaseUrl,
+ mode: 'cors',
+ credentials: 'same-origin',
+ })
+ .then(response => Promise.all([response.status, response.statusText, response.text(), response.headers]));
+}
+
+function hideCodeSamples(endpointId) {
+ document.querySelector('#example-requests-' + endpointId).hidden = true;
+ document.querySelector('#example-responses-' + endpointId).hidden = true;
+}
+
+function handleResponse(endpointId, response, status, headers) {
+ hideCodeSamples(endpointId);
+
+ // Hide error views
+ document.querySelector('#execution-error-' + endpointId).hidden = true;
+
+ const responseContentEl = document.querySelector('#execution-response-content-' + endpointId);
+
+ // Check if the response contains Laravel's dd() default dump output
+ const isLaravelDump = response.includes('Sfdump');
+
+ // If it's a Laravel dd() dump, use innerHTML to render it safely
+ if (isLaravelDump) {
+ responseContentEl.innerHTML = response === '' ? responseContentEl.dataset.emptyResponseText : response;
+ } else {
+ // Otherwise, stick to textContent for regular responses
+ responseContentEl.textContent = response === '' ? responseContentEl.dataset.emptyResponseText : response;
+ }
+
+ // Prettify it if it's JSON
+ let isJson = false;
+ try {
+ const jsonParsed = JSON.parse(response);
+ if (jsonParsed !== null) {
+ isJson = true;
+ response = JSON.stringify(jsonParsed, null, 4);
+ responseContentEl.textContent = response;
+ }
+ } catch (e) {
+
+ }
+
+ isJson && window.hljs.highlightElement(responseContentEl);
+ const statusEl = document.querySelector('#execution-response-status-' + endpointId);
+ statusEl.textContent = ` (${status})`;
+ document.querySelector('#execution-results-' + endpointId).hidden = false;
+ statusEl.scrollIntoView({behavior: "smooth", block: "center"});
+}
+
+function handleError(endpointId, err) {
+ hideCodeSamples(endpointId);
+ // Hide response views
+ document.querySelector('#execution-results-' + endpointId).hidden = true;
+
+ // Show error views
+ let errorMessage = err.message || err;
+ const $errorMessageEl = document.querySelector('#execution-error-message-' + endpointId);
+ $errorMessageEl.textContent = errorMessage + $errorMessageEl.textContent;
+ const errorEl = document.querySelector('#execution-error-' + endpointId);
+ errorEl.hidden = false;
+ errorEl.scrollIntoView({behavior: "smooth", block: "center"});
+
+}
+
+async function executeTryOut(endpointId, form) {
+ const executeBtn = document.querySelector(`#btn-executetryout-${endpointId}`);
+ executeBtn.textContent = executeBtn.dataset.loadingText;
+ executeBtn.disabled = true;
+ executeBtn.scrollIntoView({behavior: "smooth", block: "center"});
+
+ let body;
+ let setter;
+ if (form.dataset.hasfiles === "1") {
+ body = new FormData();
+ setter = (name, value) => body.append(name, value);
+ } else if (form.dataset.isarraybody === "1") {
+ body = [];
+ setter = (name, value) => _.set(body, name, value);
+ } else {
+ body = {};
+ setter = (name, value) => _.set(body, name, value);
+ }
+ const bodyParameters = form.querySelectorAll('input[data-component=body]');
+ bodyParameters.forEach(el => {
+ let value = el.value;
+
+ if (el.type === 'number' && typeof value === 'string') {
+ value = parseFloat(value);
+ }
+
+ if (el.type === 'file' && el.files[0]) {
+ setter(el.name, el.files[0]);
+ return;
+ }
+
+ if (el.type !== 'radio') {
+ if (value === "" && el.required === false) {
+ // Don't include empty optional values in the request
+ return;
+ }
+ setter(el.name, value);
+ return;
+ }
+
+ if (el.checked) {
+ value = (value === 'false') ? false : true;
+ setter(el.name, value);
+ }
+ });
+
+ const query = {};
+ const queryParameters = form.querySelectorAll('input[data-component=query]');
+ queryParameters.forEach(el => {
+ if (el.type !== 'radio' || (el.type === 'radio' && el.checked)) {
+ if (el.value === '') {
+ // Don't include empty values in the request
+ return;
+ }
+
+ _.set(query, el.name, el.value);
+ }
+ });
+
+ let path = form.dataset.path;
+ const urlParameters = form.querySelectorAll('input[data-component=url]');
+ urlParameters.forEach(el => (path = path.replace(new RegExp(`\\{${el.name}\\??}`), el.value)));
+
+ const headers = Object.fromEntries(Array.from(form.querySelectorAll('input[data-component=header]'))
+ .map(el => [el.name, el.value]));
+
+ // When using FormData, the browser sets the correct content-type + boundary
+ let method = form.dataset.method;
+ if (body instanceof FormData) {
+ delete headers['Content-Type'];
+
+ // When using FormData with PUT or PATCH, use method spoofing so PHP can access the post body
+ if (['PUT', 'PATCH'].includes(form.dataset.method)) {
+ method = 'POST';
+ setter('_method', form.dataset.method);
+ }
+ }
+
+ let preflightPromise = Promise.resolve();
+ if (window.useCsrf && window.csrfUrl) {
+ preflightPromise = makeAPICall('GET', window.csrfUrl).then(() => {
+ headers['X-XSRF-TOKEN'] = getCookie('XSRF-TOKEN');
+ });
+ }
+
+ return preflightPromise.then(() => makeAPICall(method, path, body, query, headers, endpointId))
+ .then(([responseStatus, statusText, responseContent, responseHeaders]) => {
+ handleResponse(endpointId, responseContent, responseStatus, responseHeaders)
+ })
+ .catch(err => {
+ if (err.name === "AbortError") {
+ console.log("Request cancelled");
+ return;
+ }
+ console.log("Error while making request: ", err);
+ handleError(endpointId, err);
+ })
+ .finally(() => {
+ executeBtn.disabled = false;
+ executeBtn.textContent = executeBtn.dataset.initialText;
+ });
+}
diff --git a/Backend/api/documentation/openapi.yaml b/Backend/api/documentation/openapi.yaml
new file mode 100644
index 0000000..cb450fb
--- /dev/null
+++ b/Backend/api/documentation/openapi.yaml
@@ -0,0 +1,1379 @@
+openapi: 3.0.3
+info:
+ title: 'Kebab Api'
+ description: ''
+ version: 1.0.0
+servers:
+ -
+ url: api/documentation
+paths:
+ /api/register:
+ post:
+ summary: ''
+ operationId: postApiRegister
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: ''
+ example: est
+ nullable: false
+ email:
+ type: string
+ description: 'Must be a valid email address.'
+ example: igibson@example.com
+ nullable: false
+ password:
+ type: string
+ description: ''
+ example: corporis
+ nullable: false
+ required:
+ - name
+ - email
+ - password
+ security: []
+ /api/login:
+ post:
+ summary: ''
+ operationId: postApiLogin
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ email:
+ type: string
+ description: 'Must be a valid email address. The email of an existing record in the users table.'
+ example: kirlin.tara@example.com
+ nullable: false
+ password:
+ type: string
+ description: ''
+ example: expedita
+ nullable: false
+ required:
+ - email
+ - password
+ security: []
+ /api/kebabs:
+ get:
+ summary: ''
+ operationId: getApiKebabs
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/kebabs could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/kebabs could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ /api/scrape-reviews:
+ get:
+ summary: ''
+ operationId: getApiScrapeReviews
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/scrape-reviews could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/scrape-reviews could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ /api/logout:
+ post:
+ summary: ''
+ operationId: postApiLogout
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ security: []
+ /api/getCurrentUser:
+ get:
+ summary: ''
+ operationId: getApiGetCurrentUser
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/getCurrentUser could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/getCurrentUser could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ '/api/fav/{id}':
+ get:
+ summary: ''
+ operationId: getApiFavId
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/fav/iste could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/fav/iste could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the fav.'
+ example: iste
+ required: true
+ schema:
+ type: string
+ /api/addfav:
+ post:
+ summary: ''
+ operationId: postApiAddfav
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: string
+ description: ''
+ example: voluptatem
+ nullable: false
+ kebab_id:
+ type: string
+ description: ''
+ example: ullam
+ nullable: false
+ required:
+ - user_id
+ - kebab_id
+ security: []
+ /api/remfav:
+ post:
+ summary: ''
+ operationId: postApiRemfav
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: string
+ description: ''
+ example: eum
+ nullable: false
+ kebab_id:
+ type: string
+ description: ''
+ example: dicta
+ nullable: false
+ required:
+ - user_id
+ - kebab_id
+ security: []
+ '/api/changeName/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangeNameId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ newName:
+ type: string
+ description: ''
+ example: voluptas
+ nullable: false
+ required:
+ - newName
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changeName.'
+ example: id
+ required: true
+ schema:
+ type: string
+ '/api/changePassword/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangePasswordId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ newPassword:
+ type: string
+ description: ''
+ example: eligendi
+ nullable: false
+ confirmPassword:
+ type: string
+ description: ''
+ example: possimus
+ nullable: false
+ required:
+ - newPassword
+ - confirmPassword
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changePassword.'
+ example: culpa
+ required: true
+ schema:
+ type: string
+ '/api/changeEmail/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangeEmailId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ newEmail:
+ type: string
+ description: 'Must be a valid email address.'
+ example: ervin.kuphal@example.net
+ nullable: false
+ required:
+ - newEmail
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changeEmail.'
+ example: et
+ required: true
+ schema:
+ type: string
+ /api/suggestions:
+ post:
+ summary: ''
+ operationId: postApiSuggestions
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user:
+ type: string
+ description: 'Must not be greater than 255 characters.'
+ example: bghrjiaodyjq
+ nullable: false
+ contents:
+ type: string
+ description: 'Must not be greater than 255 characters.'
+ example: vyjf
+ nullable: false
+ required:
+ - user
+ - contents
+ security: []
+ get:
+ summary: ''
+ operationId: getApiSuggestions
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/suggestions could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/suggestions could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ '/api/kebabs/{kebabId}/comments':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdComments
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id_user:
+ type: integer
+ description: ''
+ example: 20
+ nullable: false
+ comment:
+ type: string
+ description: ''
+ example: aliquam
+ nullable: false
+ required:
+ - id_user
+ - comment
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdComments
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id_user:
+ type: integer
+ description: ''
+ example: 12
+ nullable: false
+ comment:
+ type: string
+ description: ''
+ example: inventore
+ nullable: false
+ required:
+ - id_user
+ - comment
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: reprehenderit
+ required: true
+ schema:
+ type: string
+ '/api/changeUserRole/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangeUserRoleId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ isAdmin:
+ type: boolean
+ description: ''
+ example: true
+ nullable: false
+ required:
+ - isAdmin
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changeUserRole.'
+ example: nesciunt
+ required: true
+ schema:
+ type: string
+ '/api/deleteUser/{id}':
+ delete:
+ summary: ''
+ operationId: deleteApiDeleteUserId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the deleteUser.'
+ example: minima
+ required: true
+ schema:
+ type: string
+ /api/getAllUsers:
+ get:
+ summary: ''
+ operationId: getApiGetAllUsers
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/getAllUsers could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/getAllUsers could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ /api/addNewUser:
+ post:
+ summary: ''
+ operationId: postApiAddNewUser
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: ''
+ example: eveniet
+ nullable: false
+ email:
+ type: string
+ description: 'Must be a valid email address.'
+ example: tyrique37@example.org
+ nullable: false
+ password:
+ type: string
+ description: ''
+ example: qui
+ nullable: false
+ required:
+ - name
+ - email
+ - password
+ security: []
+ /api/addKebab:
+ post:
+ summary: ''
+ operationId: postApiAddKebab
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ logo:
+ type: string
+ description: ''
+ example: quis
+ nullable: false
+ name:
+ type: string
+ description: ''
+ example: qui
+ nullable: false
+ address:
+ type: string
+ description: ''
+ example: dicta
+ nullable: false
+ coordinates:
+ type: string
+ description: ''
+ example: porro
+ nullable: false
+ sauces:
+ type: string
+ description: ''
+ example: impedit
+ nullable: false
+ meats:
+ type: string
+ description: ''
+ example: dolorem
+ nullable: false
+ status:
+ type: string
+ description: ''
+ example: rem
+ nullable: false
+ opening_hours:
+ type: string
+ description: ''
+ example: eligendi
+ nullable: false
+ opening_year:
+ type: string
+ description: ''
+ example: eveniet
+ nullable: false
+ closing_year:
+ type: string
+ description: ''
+ example: omnis
+ nullable: false
+ is_crafted:
+ type: string
+ description: ''
+ example: molestias
+ nullable: false
+ is_premises:
+ type: string
+ description: ''
+ example: excepturi
+ nullable: false
+ is_chainstore:
+ type: string
+ description: ''
+ example: iste
+ nullable: false
+ ordering_options:
+ type: string
+ description: ''
+ example: nam
+ nullable: false
+ required:
+ - logo
+ - name
+ - address
+ - coordinates
+ - sauces
+ - meats
+ - status
+ - opening_hours
+ - opening_year
+ - closing_year
+ - is_crafted
+ - is_premises
+ - is_chainstore
+ - ordering_options
+ security: []
+ '/api/kebabs/{id}':
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the kebab.'
+ example: architecto
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/logo':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdLogo
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: necessitatibus
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/name':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdName
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: ''
+ example: molestiae
+ nullable: false
+ required:
+ - name
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: minima
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/address':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdAddress
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ address:
+ type: string
+ description: 'Must not be greater than 255 characters.'
+ example: hasoytxcdkunpxsulsofhjcbd
+ nullable: false
+ required:
+ - address
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: aut
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/coordinates':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdCoordinates
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ coordinates:
+ type: object
+ description: ''
+ example: []
+ nullable: false
+ properties: { }
+ required:
+ - coordinates
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: autem
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/sauce':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdSauce
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ sauce:
+ type: string
+ description: ''
+ example: nulla
+ nullable: false
+ required:
+ - sauce
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdSauce
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ sauce:
+ type: string
+ description: ''
+ example: est
+ nullable: false
+ required:
+ - sauce
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: accusamus
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/meat':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdMeat
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ meat:
+ type: string
+ description: ''
+ example: voluptates
+ nullable: false
+ required:
+ - meat
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdMeat
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ meat:
+ type: string
+ description: ''
+ example: suscipit
+ nullable: false
+ required:
+ - meat
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: et
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/status':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdStatus
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ type: string
+ description: ''
+ example: exists
+ nullable: false
+ enum:
+ - exists
+ - closed
+ - planned
+ required:
+ - status
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: doloribus
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/opening-hours':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdOpeningHours
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ day:
+ type: string
+ description: ''
+ example: saturday
+ nullable: false
+ enum:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ hours:
+ type: string
+ description: ''
+ example: recusandae
+ nullable: false
+ required:
+ - day
+ - hours
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdOpeningHours
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ day:
+ type: string
+ description: ''
+ example: wednesday
+ nullable: false
+ enum:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ required:
+ - day
+ security: []
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdOpeningHours
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ day:
+ type: string
+ description: ''
+ example: friday
+ nullable: false
+ enum:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ hours:
+ type: string
+ description: ''
+ example: vel
+ nullable: false
+ required:
+ - day
+ - hours
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: quam
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/opening-year':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdOpeningYear
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ opening_year:
+ type: string
+ description: 'Must be 4 digits.'
+ example: '1897'
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: necessitatibus
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/closing-year':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdClosingYear
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ closing_year:
+ type: string
+ description: 'Must be 4 digits.'
+ example: '8861'
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: velit
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/is-crafted':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdIsCrafted
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ is_crafted:
+ type: boolean
+ description: ''
+ example: true
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: dicta
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/is-premises':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdIsPremises
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ is_premises:
+ type: boolean
+ description: ''
+ example: false
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: neque
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/is-chainstore':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdIsChainstore
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ is_chainstore:
+ type: boolean
+ description: ''
+ example: false
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: corporis
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/ordering-options':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdOrderingOptions
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ new_option:
+ type: string
+ description: ''
+ example: distinctio
+ nullable: false
+ required:
+ - new_option
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdOrderingOptions
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ option_to_remove:
+ type: string
+ description: ''
+ example: eaque
+ nullable: false
+ required:
+ - option_to_remove
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: eum
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/pages':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdPages
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ new_page:
+ type: string
+ description: ''
+ example: voluptates
+ nullable: false
+ required:
+ - new_page
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdPages
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ page_to_remove:
+ type: string
+ description: ''
+ example: quaerat
+ nullable: false
+ required:
+ - page_to_remove
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: id
+ required: true
+ schema:
+ type: string
+ '/api/suggestions/{id}':
+ delete:
+ summary: ''
+ operationId: deleteApiSuggestionsId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Endpoints
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the suggestion.'
+ example: non
+ required: true
+ schema:
+ type: string
+tags:
+ -
+ name: Endpoints
+ description: ''
+components:
+ securitySchemes:
+ default:
+ type: http
+ scheme: bearer
+ description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token .'
+security:
+ -
+ default: []
diff --git a/Backend/app/Http/Controllers/AuthController.php b/Backend/app/Http/Controllers/AuthController.php
index f3d8e89..fb48b45 100644
--- a/Backend/app/Http/Controllers/AuthController.php
+++ b/Backend/app/Http/Controllers/AuthController.php
@@ -10,8 +10,43 @@
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
+/**
+ * @group Auth
+ * **/
class AuthController extends Controller
{
+ /**
+ * @OA\Post(
+ * path="/api/register",
+ * tags={"Auth"},
+ * summary="Register a new user",
+ * @OA\RequestBody(
+ * required=true,
+ * @OA\MediaType(
+ * mediaType="application/json",
+ * @OA\Schema(
+ * type="object",
+ * required={"name", "email", "password"},
+ * @OA\Property(property="name", type="string", example="John Doe"),
+ * @OA\Property(property="email", type="string", example="johndoe@example.com"),
+ * @OA\Property(property="password", type="string", format="password", example="password123")
+ * )
+ * )
+ * ),
+ * @OA\Response(
+ * response=200,
+ * description="User registered successfully",
+ * @OA\JsonContent(
+ * @OA\Property(property="user", ref="#/components/schemas/User"),
+ * @OA\Property(property="token", type="string")
+ * )
+ * ),
+ * @OA\Response(
+ * response=400,
+ * description="Invalid input"
+ * )
+ * )
+ */
public function register(SignupRequest $request)
{
$data = $request->validated();
@@ -22,7 +57,7 @@ public function register(SignupRequest $request)
"password" => bcrypt($data["password"]),
"isAdmin" => false,
]);
- $token = $user->createToken((int)["id" => (string)$user->id])->plainTextToken;
+ $token = $user->createToken("auth_token")->plainTextToken;
$res = [
"user" => $user,
@@ -32,6 +67,37 @@ public function register(SignupRequest $request)
return response($res);
}
+ /**
+ * @OA\Post(
+ * path="/api/login",
+ * tags={"Auth"},
+ * summary="Login an existing user",
+ * @OA\RequestBody(
+ * required=true,
+ * @OA\MediaType(
+ * mediaType="application/json",
+ * @OA\Schema(
+ * type="object",
+ * required={"email", "password"},
+ * @OA\Property(property="email", type="string", example="johndoe@example.com"),
+ * @OA\Property(property="password", type="string", format="password", example="password123")
+ * )
+ * )
+ * ),
+ * @OA\Response(
+ * response=200,
+ * description="User logged in successfully",
+ * @OA\JsonContent(
+ * @OA\Property(property="user", ref="#/components/schemas/User"),
+ * @OA\Property(property="token", type="string")
+ * )
+ * ),
+ * @OA\Response(
+ * response=400,
+ * description="Invalid credentials"
+ * )
+ * )
+ */
public function login(LoginRequest $request)
{
$credentials = $request->validated();
@@ -39,11 +105,11 @@ public function login(LoginRequest $request)
if (!Auth::attempt($credentials)) {
return response([
"message" => "Something wrong",
- ]);
+ ], 400);
}
/** @var User $user */
$user = Auth::user();
- $token = $user->createToken((int)["id" => (string)$user->id])->plainTextToken;
+ $token = $user->createToken("auth_token")->plainTextToken;
$res = [
"user" => $user,
"token" => $token,
@@ -52,6 +118,21 @@ public function login(LoginRequest $request)
return response($res);
}
+ /**
+ * @OA\Post(
+ * path="/api/logout",
+ * tags={"Auth"},
+ * summary="Logout the current user",
+ * @OA\Response(
+ * response=204,
+ * description="Successfully logged out"
+ * ),
+ * @OA\Response(
+ * response=401,
+ * description="Unauthorized"
+ * )
+ * )
+ */
public function logout(Request $request)
{
/** @var User $user */
diff --git a/Backend/app/Http/Controllers/KebabController.php b/Backend/app/Http/Controllers/KebabController.php
new file mode 100644
index 0000000..b9099ee
--- /dev/null
+++ b/Backend/app/Http/Controllers/KebabController.php
@@ -0,0 +1,722 @@
+map(function ($kebab) {
+ $kebab->logo = $kebab->logo ? "data:image/jpeg;base64," . base64_encode($kebab->logo) : null;
+
+ if (!is_array($kebab->opening_hours)) {
+ $kebab->opening_hours = json_decode($kebab->opening_hours, true) ?? [];
+ }
+
+ if (!is_array($kebab->meats)) {
+ $kebab->meats = json_decode($kebab->meats, true) ?? [];
+ }
+
+ if (!is_array($kebab->sauces)) {
+ $kebab->sauces = json_decode($kebab->sauces, true) ?? [];
+ }
+
+ if (!is_array($kebab->ordering_options)) {
+ $kebab->ordering_options = json_decode($kebab->ordering_options, true) ?? [];
+ }
+
+ if (!is_array($kebab->pages)) {
+ $kebab->pages = json_decode($kebab->pages, true) ?? [];
+ }
+
+ return $kebab;
+ });
+
+ return response()->json($data, 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Something went wrong.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addKebab(KebabRequest $request)
+ {
+ $data = $request->validated();
+
+ try {
+ $kebab = new Kebab($request->all());
+
+ if ($request->hasFile("logo")) {
+ $kebab->logo = file_get_contents($request->file("logo")->path());
+ }
+ $kebab->save();
+
+ return response()->json($kebab, 201);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not add kebab.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function deleteKebab($id)
+ {
+ $kebab = Kebab::find($id);
+
+ if (!$kebab) {
+ return response()->json(["message" => "Kebab not found"], 404);
+ }
+
+ $kebab->delete();
+
+ return response()->json(["message" => "Kebab deleted"]);
+ }
+
+ public function changeKebabLogo(Request $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $binaryData = file_get_contents("php://input");
+
+ if ($binaryData) {
+ $kebab->logo = $binaryData;
+ $kebab->save();
+
+ $logoUrl = url("/storage/kebabs/" . $kebab->id . "/logo.jpg");
+
+ return response()->json([
+ "message" => "Logo updated successfully.",
+ "kebab" => [
+ "id" => $kebab->id,
+ "logo_url" => $logoUrl,
+ ],
+ ], 200);
+ }
+
+ return response()->json([
+ "error" => "No logo file provided.",
+ ], 400);
+ } catch (Exception $e) {
+ Log::error("Error updating logo: " . $e->getMessage());
+
+ return response()->json([
+ "error" => "Could not update logo.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function changeKebabName(KebabNameRequest $request, $kebabId)
+ {
+ $request->validate([
+ "name" => "required",
+ ]);
+
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->name = $request->input("name");
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Name updated successfully.",
+ "kebab" => $kebab,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update name.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function changeKebabAddress(KebabAddressRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->address = $request->input("address");
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Address updated successfully.",
+ "kebab" => $kebab,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update address.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function changeKebabCoordinates(KebabCoordinatesRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->coordinates = $request->input("coordinates");
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Coordinates updated successfully.",
+ "kebab" => $kebab,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update coordinates.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addSauceToKebab(SauceKebabRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $sauces = is_array($kebab->sauces) ? $kebab->sauces : json_decode($kebab->sauces, true) ?? [];
+
+ if (!in_array($request->input("sauce"), $sauces, true)) {
+ $sauces[] = $request->input("sauce");
+ }
+
+ $kebab->sauces = $sauces;
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Sauce added successfully.",
+ "sauces" => $sauces,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not add sauce.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function removeSauceFromKebab(SauceKebabRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $sauces = is_array($kebab->sauces) ? $kebab->sauces : json_decode($kebab->sauces, true) ?? [];
+
+ if (($key = array_search($request->input("sauce"), $sauces, true)) !== false) {
+ unset($sauces[$key]);
+ }
+
+ $kebab->sauces = json_encode(array_values($sauces));
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Sauce removed successfully.",
+ "sauces" => $sauces,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not remove sauce.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addMeatToKebab(KebabMeatRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+ $meats = is_array($kebab->meats) ? $kebab->meats : json_decode($kebab->meats, true) ?? [];
+
+ if (!in_array($request->input("meat"), $meats, true)) {
+ $meats[] = $request->input("meat");
+ }
+
+ $kebab->meats = json_encode($meats);
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Meat added successfully.",
+ "meats" => $meats,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not add meat.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function removeMeatFromKebab(KebabMeatRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $meats = is_array($kebab->meats) ? $kebab->meats : json_decode($kebab->meats, true) ?? [];
+
+ if (($key = array_search($request->input("meat"), $meats, true)) !== false) {
+ unset($meats[$key]);
+ }
+
+ $kebab->meats = json_encode(array_values($meats));
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Meat removed successfully.",
+ "meats" => $meats,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not remove meat.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function changeKebabStatus(KebabStatusRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->status = $request->input("status");
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Status updated successfully.",
+ "kebab" => $kebab,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update status.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addOpeningHour(KebabOpeningHourRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+ $openingHours = [];
+
+ if (is_array($kebab->opening_hours)) {
+ $openingHours = $kebab->opening_hours;
+ } else {
+ if (is_string($kebab->opening_hours)) {
+ $openingHours = json_decode($kebab->opening_hours, true) ?? [];
+ }
+ }
+
+ $openingHours[$request->input("day")] = $request->input("hours");
+
+ $kebab->opening_hours = json_encode($openingHours);
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Opening hours updated successfully.",
+ "opening_hours" => $openingHours,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update opening hours.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function removeOpeningHour(KebabRemoveOpeningHourRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+ Log::info("Kebab znaleziony:", ["id" => $kebabId]);
+ $openingHours = [];
+
+ if (is_array($kebab->opening_hours)) {
+ $openingHours = $kebab->opening_hours;
+ } else {
+ if (is_string($kebab->opening_hours)) {
+ $openingHours = json_decode($kebab->opening_hours, true) ?? [];
+ }
+ }
+
+ if (isset($openingHours[$request->input("day")])) {
+ unset($openingHours[$request->input("day")]);
+ }
+
+ $kebab->opening_hours = $openingHours;
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Opening hour removed successfully.",
+ "opening_hours" => $openingHours,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not remove opening hour.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function changeOpeningHour(KebabOpeningHourRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $openingHours = json_decode($kebab->opening_hours, true) ?? [];
+
+ $openingHours[$request->input("day")] = $request->input("hours");
+
+ $kebab->opening_hours = json_encode($openingHours);
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Opening hour changed successfully.",
+ "opening_hours" => $openingHours,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not change opening hour.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function updateOpeningYear(KebabOpeningYearRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->opening_year = $request->input("opening_year") ?? null;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Opening year updated successfully.",
+ "opening_year" => $kebab->opening_year,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update opening year.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function updateClosingYear(KebabClosingYearRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->closing_year = $request->input("closing_year") ?? null;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Closing year updated successfully.",
+ "closing_year" => $kebab->closing_year,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update closing year.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function updateIsCrafted(KebabIsCraftedRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->is_crafted = $request->input("is_crafted") ?? null;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Crafted status updated successfully.",
+ "is_crafted" => $kebab->is_crafted,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update crafted status.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function updateIsPremises(KebabIsPremisesRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->is_premises = $request->input("is_premises") ?? null;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Premises status updated successfully.",
+ "is_premises" => $kebab->is_premises,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update premises status.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function updateIsChainstore(KebabIsChainstoreRequest $request, $kebabId)
+ {
+ $request->validate([
+ "is_chainstore" => "nullable|boolean",
+ ]);
+
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $kebab->is_chainstore = $request->input("is_chainstore") ?? null;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Chainstore status updated successfully.",
+ "is_chainstore" => $kebab->is_chainstore,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not update chainstore status.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addOrderingOption(KebabOrderingOptionRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $orderingOptions = is_array($kebab->ordering_options) ? $kebab->ordering_options : json_decode($kebab->ordering_options, true) ?? [];
+
+ if (!in_array($request->input("new_option"), $orderingOptions, true)) {
+ $orderingOptions[] = $request->input("new_option");
+ }
+ $kebab->ordering_options = $orderingOptions;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "New ordering option added successfully.",
+ "ordering_options" => $kebab->ordering_options,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not add ordering option.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function removeOrderingOption(KebabRemoveOrderingOptionRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $orderingOptions = is_array($kebab->ordering_options) ? $kebab->ordering_options : json_decode($kebab->ordering_options, true) ?? [];
+
+ if (($key = array_search($request->input("option_to_remove"), $orderingOptions, true)) !== false) {
+ unset($orderingOptions[$key]);
+ }
+ $kebab->ordering_options = $orderingOptions;
+
+ $kebab->ordering_options = json_encode(array_values($orderingOptions));
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Ordering option removed successfully.",
+ "ordering_options" => $kebab->ordering_options,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not remove ordering option.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addComment(KebabCommentRequest $request, $kebabId)
+ {
+ $request->validate([
+ "id_user" => "required|integer",
+ "comment" => "required|string",
+ "user_name" => "required|string",
+ ]);
+
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $comments = $kebab->comments ?? [];
+
+ $newComment = [
+ "id_user" => $request->input("id_user"),
+ "user_name" => $request->input("user_name"),
+ "comment" => $request->input("comment"),
+ ];
+
+ $comments[] = $newComment;
+
+ $kebab->comments = $comments;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Comment added successfully.",
+ "comments" => $kebab->comments,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not add comment.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function GetComments(Request $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::find($kebabId);
+
+ if (!$kebab) {
+ return response()->json([
+ "error" => "Kebab not found.",
+ ], 404);
+ }
+
+ $comments = $kebab->comments;
+
+ return response()->json($comments);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "An error occurred while fetching kebab comments.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function removeComment(KebabCommentRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $comments = $kebab->comments ?? [];
+
+ $comments = array_filter($comments, fn($item) => $item["id_user"] !== $request->input("id_user") || $item["comment"] !== $request->input("comment"));
+
+ $kebab->comments = array_values($comments);
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Comment removed successfully.",
+ "comments" => $kebab->comments,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not remove comment.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function addPage(KebabPageRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $page = is_array($kebab->pages) ? $kebab->pages : json_decode($kebab->pages, true) ?? [];
+
+ if (!in_array($request->input("page"), $page, true)) {
+ $page[] = $request->input("page");
+ }
+ $kebab->pages = $page;
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "New page added successfully.",
+ "pages" => $kebab->pages,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not add page.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+
+ public function removePage(KebabPageRequest $request, $kebabId)
+ {
+ try {
+ $kebab = Kebab::findOrFail($kebabId);
+
+ $page = is_array($kebab->pages) ? $kebab->pages : json_decode($kebab->pages, true) ?? [];
+
+ if (($key = array_search($request->input("page"), $page, true)) !== false) {
+ unset($page[$key]);
+ }
+ $kebab->pages = $page;
+
+ $kebab->pages = json_encode(array_values($page));
+
+ $kebab->save();
+
+ return response()->json([
+ "message" => "Page removed successfully.",
+ "pages" => $kebab->pages,
+ ], 200);
+ } catch (Exception $e) {
+ return response()->json([
+ "error" => "Could not remove page.",
+ "message" => $e->getMessage(),
+ ], 500);
+ }
+ }
+}
diff --git a/Backend/app/Http/Controllers/KebabScraperController.php b/Backend/app/Http/Controllers/KebabScraperController.php
new file mode 100644
index 0000000..ec49a75
--- /dev/null
+++ b/Backend/app/Http/Controllers/KebabScraperController.php
@@ -0,0 +1,43 @@
+pages, true);
+
+ if (isset($pages["pyszne.pl"])) {
+ $pyszneLink = $pages["pyszne.pl"];
+
+ $reviews = $this->scraper->scrapeReviews($pyszneLink);
+
+ $results[] = [
+ "kebab_id" => $kebab->id,
+ "name" => $kebab->name,
+ "reviews" => $reviews,
+ ];
+ }
+ }
+
+ return response()->json($results);
+ }
+}
diff --git a/Backend/app/Http/Controllers/SuggestionsController.php b/Backend/app/Http/Controllers/SuggestionsController.php
new file mode 100644
index 0000000..f9e735e
--- /dev/null
+++ b/Backend/app/Http/Controllers/SuggestionsController.php
@@ -0,0 +1,44 @@
+ $request->input("user"),
+ "contents" => $request->input("contents"),
+ ]);
+
+ return response()->json(["message" => "Suggestion created successfully!", "suggestion" => $suggestion], 201);
+ }
+
+ public function showAllSuggestions()
+ {
+ $suggestions = Suggestions::all();
+
+ return response()->json(["suggestions" => $suggestions]);
+ }
+
+ public function destroySuggestion($id)
+ {
+ $suggestion = Suggestions::find($id);
+
+ if (!$suggestion) {
+ return response()->json(["message" => "Suggestion not found"], 404);
+ }
+
+ $suggestion->delete();
+
+ return response()->json(["message" => "Suggestion deleted successfully."]);
+ }
+}
diff --git a/Backend/app/Http/Controllers/UserController.php b/Backend/app/Http/Controllers/UserController.php
index bf7b45a..c88343b 100644
--- a/Backend/app/Http/Controllers/UserController.php
+++ b/Backend/app/Http/Controllers/UserController.php
@@ -4,8 +4,19 @@
namespace App\Http\Controllers;
+use App\Http\Requests\UserRequests\ChangeEmailRequest;
+use App\Http\Requests\UserRequests\ChangeNameRequest;
+use App\Http\Requests\UserRequests\ChangePasswordRequest;
+use App\Http\Requests\UserRequests\ChangeUserRoleRequest;
+use App\Http\Requests\UserRequests\FavoriteKebabRequest;
+use App\Http\Requests\UserRequests\UserRequest;
+use App\Models\User;
use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Hash;
+/**
+ * @group Users
+ * **/
class UserController extends Controller
{
public function getCurrentUser()
@@ -16,6 +27,143 @@ public function getCurrentUser()
return response()->json(["user" => $user], 200);
}
- return response()->json(["message" => "Użytkownik niezalogowany"], 401);
+ return response()->json(["message" => "User not Auth"], 401);
+ }
+
+ public function getAllUsers()
+ {
+ $users = User::all();
+
+ return response()->json($users);
+ }
+
+ public function addNewUser(UserRequest $request)
+ {
+ $user = User::create([
+ "name" => $request->name,
+ "email" => $request->email,
+ "password" => Hash::make($request->password),
+ "role" => $request->role,
+ ]);
+
+ return response()->json($user, 201);
+ }
+
+ public function deleteUser($id)
+ {
+ $user = User::find($id);
+
+ if (!$user) {
+ return response()->json(["message" => "User not found"], 404);
+ }
+
+ $user->delete();
+
+ return response()->json(["message" => "User deleted"]);
+ }
+
+ public function changeName(ChangeNameRequest $request, $id)
+ {
+ $user = User::find($id);
+
+ $user->update([
+ "name" => $request->newName,
+ ]);
+
+ return response()->json($user);
+ }
+
+ public function changePassword(ChangePasswordRequest $request, $id)
+ {
+ $user = User::find($id);
+
+ $user->update([
+ "password" => Hash::make($request->newPassword),
+ ]);
+
+ return response()->json($user);
+ }
+
+ public function changeEmail(ChangeEmailRequest $request, $id)
+ {
+ $user = User::find($id);
+
+ $user->update([
+ "email" => $request->newEmail,
+ ]);
+
+ return response()->json($user);
+ }
+
+ public function changeUserRole(ChangeUserRoleRequest $request, $id)
+ {
+ $user = User::find($id);
+
+ $user->isAdmin = $request->isAdmin;
+
+ $user->save();
+
+ return response()->json($user);
+ }
+
+ public function getUserFavorites($id)
+ {
+ $user = User::find($id);
+
+ if ($user) {
+ $favorites = $user->favorites ? json_decode($user->favorites, true) : [];
+
+ return response()->json(["favorites" => $favorites]);
+ }
+
+ return response()->json(["error" => "User not found"], 404);
+ }
+
+ public function addToFavorites(FavoriteKebabRequest $request)
+ {
+ $userId = $request->input("user_id");
+ $kebabId = $request->input("kebab_id");
+
+ $user = User::find($userId);
+
+ if ($user) {
+ $favorites = $user->favorites ? json_decode($user->favorites, true) : [];
+
+ if (!in_array($kebabId, $favorites, true)) {
+ $favorites[] = $kebabId;
+ $user->favorites = json_encode($favorites);
+ $user->save();
+
+ return response()->json(["message" => "Kebab added to favorites"]);
+ }
+
+ return response()->json(["message" => "Kebab is already in favorites"], 400);
+ }
+
+ return response()->json(["error" => "User not found"], 404);
+ }
+
+ public function removeFromFavorites(FavoriteKebabRequest $request)
+ {
+ $userId = $request->input("user_id");
+ $kebabId = $request->input("kebab_id");
+
+ $user = User::find($userId);
+
+ if ($user) {
+ $favorites = $user->favorites ? json_decode($user->favorites, true) : [];
+
+ if (($key = array_search($kebabId, $favorites, true)) !== false) {
+ unset($favorites[$key]);
+ $user->favorites = json_encode(array_values($favorites));
+ $user->save();
+
+ return response()->json(["message" => "Kebab removed from favorites"]);
+ }
+
+ return response()->json(["message" => "Kebab not found in favorites"], 400);
+ }
+
+ return response()->json(["error" => "User not found"], 404);
}
}
diff --git a/Backend/app/Http/Kernel.php b/Backend/app/Http/Kernel.php
index 9958719..f7a403f 100644
--- a/Backend/app/Http/Kernel.php
+++ b/Backend/app/Http/Kernel.php
@@ -5,6 +5,7 @@
namespace App\Http;
use App\Http\Middleware\Authenticate;
+use App\Http\Middleware\CheckAdmin;
use App\Http\Middleware\EncryptCookies;
use App\Http\Middleware\PreventRequestsDuringMaintenance;
use App\Http\Middleware\RedirectIfAuthenticated;
@@ -89,5 +90,6 @@ class Kernel extends HttpKernel
"signed" => ValidateSignature::class,
"throttle" => ThrottleRequests::class,
"verified" => EnsureEmailIsVerified::class,
+ "admin" => CheckAdmin::class,
];
}
diff --git a/Backend/app/Http/Middleware/CheckAdmin.php b/Backend/app/Http/Middleware/CheckAdmin.php
new file mode 100644
index 0000000..e9fa623
--- /dev/null
+++ b/Backend/app/Http/Middleware/CheckAdmin.php
@@ -0,0 +1,22 @@
+user() && $request->user()->isAdmin === 1) {
+ return $next($request);
+ }
+
+ return response()->json(["error" => "Unauthorized"], 403);
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabAddressRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabAddressRequest.php
new file mode 100644
index 0000000..78502fe
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabAddressRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "address" => "required|string|max:255",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabClosingYearRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabClosingYearRequest.php
new file mode 100644
index 0000000..a4f3fde
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabClosingYearRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "closing_year" => "nullable|integer|digits:4",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabCommentRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabCommentRequest.php
new file mode 100644
index 0000000..fd9a18e
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabCommentRequest.php
@@ -0,0 +1,32 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "id_user" => "required|integer",
+ "comment" => "required|string",
+ "user_name" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabCoordinatesRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabCoordinatesRequest.php
new file mode 100644
index 0000000..ad49578
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabCoordinatesRequest.php
@@ -0,0 +1,32 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "coordinates" => "required|array",
+ "coordinates.*.lat" => "required|numeric|between:-90,90",
+ "coordinates.*.lng" => "required|numeric|between:-180,180",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabIsChainstoreRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabIsChainstoreRequest.php
new file mode 100644
index 0000000..f585ef7
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabIsChainstoreRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "is_chainstore" => "nullable|boolean",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabIsCraftedRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabIsCraftedRequest.php
new file mode 100644
index 0000000..906dc29
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabIsCraftedRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "is_crafted" => "nullable|boolean",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabIsPremisesRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabIsPremisesRequest.php
new file mode 100644
index 0000000..5cf1510
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabIsPremisesRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "is_premises" => "nullable|boolean",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabMeatRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabMeatRequest.php
new file mode 100644
index 0000000..c516c5b
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabMeatRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "meat" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabNameRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabNameRequest.php
new file mode 100644
index 0000000..43821eb
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabNameRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "name" => "required",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabOpeningHourRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabOpeningHourRequest.php
new file mode 100644
index 0000000..c73225c
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabOpeningHourRequest.php
@@ -0,0 +1,31 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "day" => "required|string|in:monday,tuesday,wednesday,thursday,friday,saturday,sunday",
+ "hours" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabOpeningYearRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabOpeningYearRequest.php
new file mode 100644
index 0000000..a8e8d9d
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabOpeningYearRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "opening_year" => "nullable|integer|digits:4",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabOrderingOptionRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabOrderingOptionRequest.php
new file mode 100644
index 0000000..91f0816
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabOrderingOptionRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "new_option" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabPageRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabPageRequest.php
new file mode 100644
index 0000000..7481e75
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabPageRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "page" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabRemoveOpeningHourRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabRemoveOpeningHourRequest.php
new file mode 100644
index 0000000..b5e6a7a
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabRemoveOpeningHourRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "day" => "required|string|in:monday,tuesday,wednesday,thursday,friday,saturday,sunday",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabRemoveOrderingOptionRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabRemoveOrderingOptionRequest.php
new file mode 100644
index 0000000..a0d7b93
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabRemoveOrderingOptionRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "option_to_remove" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabRequest.php
new file mode 100644
index 0000000..542e307
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabRequest.php
@@ -0,0 +1,48 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "logo" => "required",
+ "name" => "required",
+ "address" => "required|string|max:255",
+ "coordinates" => "required|array",
+ "coordinates.*.lat" => "required|numeric|between:-90,90",
+ "coordinates.*.lng" => "required|numeric|between:-180,180",
+ "sauce" => "required|string",
+ "meats" => "required|string",
+ "status" => "required|in:exists,closed,planned",
+ "opening_hours" => "required|array",
+ "opening_hours.*.day" => "required|string|in:monday,tuesday,wednesday,thursday,friday,saturday,sunday",
+ "opening_hours.*.hours" => "required|string",
+ "opening_year" => "nullable|integer|digits:4",
+ "closing_year" => "nullable|integer|digits:4",
+ "is_crafted" => "required|boolean",
+ "is_premises" => "required|boolean",
+ "is_chainstore" => "required|boolean",
+ "ordering_options" => "required|string",
+ "page" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/KebabStatusRequest.php b/Backend/app/Http/Requests/KebabRequests/KebabStatusRequest.php
new file mode 100644
index 0000000..8903031
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/KebabStatusRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "status" => "required|in:exists,closed,planned",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/KebabRequests/SauceKebabRequest.php b/Backend/app/Http/Requests/KebabRequests/SauceKebabRequest.php
new file mode 100644
index 0000000..4ddd36b
--- /dev/null
+++ b/Backend/app/Http/Requests/KebabRequests/SauceKebabRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "sauce" => "required|string",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/SuggestionRequest.php b/Backend/app/Http/Requests/SuggestionRequest.php
new file mode 100644
index 0000000..8098d82
--- /dev/null
+++ b/Backend/app/Http/Requests/SuggestionRequest.php
@@ -0,0 +1,28 @@
+
+ */
+ public function rules(): array
+ {
+ return [
+ "user" => "required|string|max:255",
+ "contents" => "required|string|max:255",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/UserRequests/ChangeEmailRequest.php b/Backend/app/Http/Requests/UserRequests/ChangeEmailRequest.php
new file mode 100644
index 0000000..17231f1
--- /dev/null
+++ b/Backend/app/Http/Requests/UserRequests/ChangeEmailRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "newEmail" => "required|email|unique:users,email",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/UserRequests/ChangeNameRequest.php b/Backend/app/Http/Requests/UserRequests/ChangeNameRequest.php
new file mode 100644
index 0000000..1162b8a
--- /dev/null
+++ b/Backend/app/Http/Requests/UserRequests/ChangeNameRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "newName" => "required",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/UserRequests/ChangePasswordRequest.php b/Backend/app/Http/Requests/UserRequests/ChangePasswordRequest.php
new file mode 100644
index 0000000..7baa4f9
--- /dev/null
+++ b/Backend/app/Http/Requests/UserRequests/ChangePasswordRequest.php
@@ -0,0 +1,31 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "newPassword" => "required",
+ "confirmPassword" => "required",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/UserRequests/ChangeUserRoleRequest.php b/Backend/app/Http/Requests/UserRequests/ChangeUserRoleRequest.php
new file mode 100644
index 0000000..b00a2f9
--- /dev/null
+++ b/Backend/app/Http/Requests/UserRequests/ChangeUserRoleRequest.php
@@ -0,0 +1,30 @@
+|string>
+ */
+ public function rules(): array
+ {
+ return [
+ "isAdmin" => "required|boolean",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/UserRequests/FavoriteKebabRequest.php b/Backend/app/Http/Requests/UserRequests/FavoriteKebabRequest.php
new file mode 100644
index 0000000..13e6809
--- /dev/null
+++ b/Backend/app/Http/Requests/UserRequests/FavoriteKebabRequest.php
@@ -0,0 +1,31 @@
+|string>
+ */
+ public function rules()
+ {
+ return [
+ "user_id" => "required",
+ "kebab_id" => "required",
+ ];
+ }
+}
diff --git a/Backend/app/Http/Requests/UserRequest.php b/Backend/app/Http/Requests/UserRequests/UserRequest.php
similarity index 93%
rename from Backend/app/Http/Requests/UserRequest.php
rename to Backend/app/Http/Requests/UserRequests/UserRequest.php
index 10680a4..346c1a1 100644
--- a/Backend/app/Http/Requests/UserRequest.php
+++ b/Backend/app/Http/Requests/UserRequests/UserRequest.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace App\Http\Requests;
+namespace App\Http\Requests\UserRequests;
use Illuminate\Foundation\Http\FormRequest;
diff --git a/Backend/app/Models/Kebab.php b/Backend/app/Models/Kebab.php
new file mode 100644
index 0000000..2b0a758
--- /dev/null
+++ b/Backend/app/Models/Kebab.php
@@ -0,0 +1,59 @@
+
+ */
+ protected $fillable = [
+ "logo",
+ "name",
+ "address",
+ "coordinates",
+ "sauces",
+ "meats",
+ "status",
+ "opening_hours",
+ "opening_year",
+ "closing_year",
+ "is_crafted",
+ "is_premises",
+ "is_chainstore",
+ "ordering_options",
+ "comments",
+ "pages",
+ ];
+
+ protected $casts = [
+ "coordinates" => "array",
+ "sauces" => "array",
+ "meats" => "array",
+ "opening_hours" => "array",
+ "ordering_options" => "array",
+ "comments" => "array",
+ ];
+
+ public function getPyszneLink(): ?string
+ {
+ $pages = json_decode($this->pages, true);
+
+ return $pages["pyszne.pl"] ?? null;
+ }
+}
diff --git a/Backend/app/Models/Suggestions.php b/Backend/app/Models/Suggestions.php
new file mode 100644
index 0000000..7ac6696
--- /dev/null
+++ b/Backend/app/Models/Suggestions.php
@@ -0,0 +1,27 @@
+
+ */
+ protected $fillable = [
+ "user",
+ "contents",
+ ];
+}
diff --git a/Backend/app/Models/User.php b/Backend/app/Models/User.php
index dda6f9b..3ce613e 100644
--- a/Backend/app/Models/User.php
+++ b/Backend/app/Models/User.php
@@ -9,6 +9,17 @@
use Illuminate\Notifications\Notifiable;
use Laravel\Sanctum\HasApiTokens;
+/**
+ * @OA\Schema(
+ * schema="User",
+ * type="object",
+ * required={"id", "name", "email", "isAdmin"},
+ * @OA\Property(property="id", type="integer", description="User ID"),
+ * @OA\Property(property="name", type="string", description="User's name"),
+ * @OA\Property(property="email", type="string", description="User's email"),
+ * @OA\Property(property="isAdmin", type="boolean", description="User's admin status")
+ * )
+ */
class User extends Authenticatable
{
use HasApiTokens;
@@ -47,4 +58,12 @@ class User extends Authenticatable
"email_verified_at" => "datetime",
"password" => "hashed",
];
+
+ /**
+ * Check if the user is an admin.
+ */
+ public function isAdmin(): bool
+ {
+ return (bool)$this->getAttribute("isAdmin");
+ }
}
diff --git a/Backend/app/Services/PyszneScraper.php b/Backend/app/Services/PyszneScraper.php
new file mode 100644
index 0000000..98ea818
--- /dev/null
+++ b/Backend/app/Services/PyszneScraper.php
@@ -0,0 +1,45 @@
+ [
+ "User-Agent" => "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
+ "Accept-Language" => "en-US,en;q=0.5",
+ "Accept" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
+ "Referer" => "https://www.pyszne.pl",
+ ],
+ "timeout" => 10.0,
+ ]);
+ $response = $client->get($url);
+
+ if ($response->getStatusCode() !== 200) {
+ throw new \Exception("Failed to retrieve the page");
+ }
+
+ $htmlContent = $response->getBody()->getContents();
+
+ $crawler = new Crawler($htmlContent);
+
+ $element = $crawler->filter('[data-qa="restaurant-header-score"] b')->first();
+
+ if ($element->count()) {
+ return $element->text();
+ }
+
+ throw new \Exception('Element with data-qa="restaurant-header-score" and child not found');
+ } catch (\Exception $e) {
+ return "Error: " . $e->getMessage();
+ }
+ }
+}
diff --git a/Backend/composer.json b/Backend/composer.json
index 80c0926..91ab8bb 100644
--- a/Backend/composer.json
+++ b/Backend/composer.json
@@ -9,19 +9,25 @@
"license": "MIT",
"require": {
"php": "^8.1",
- "guzzlehttp/guzzle": "^7.2",
+ "guzzlehttp/guzzle": "^7.9",
"laravel/framework": "^10.10",
"laravel/sanctum": "^3.3",
"laravel/socialite": "^5.11",
- "laravel/tinker": "^2.8"
+ "laravel/tinker": "^2.8",
+ "symfony/browser-kit": "^7.1",
+ "symfony/dom-crawler": "^7.2",
+ "symfony/http-client": "^7.1",
+ "zircote/swagger-php": "^4.11"
},
"require-dev": {
"blumilksoftware/codestyle": "^4.0",
"fakerphp/faker": "^1.9.1",
+ "knuckleswtf/scribe": "^4.39",
"laravel/pint": "^1.0",
"laravel/sail": "^1.18",
"mockery/mockery": "^1.4.4",
"nunomaduro/collision": "^7.0",
+ "pestphp/pest": "^2.36",
"phpunit/phpunit": "^10.1",
"spatie/laravel-ignition": "^2.0"
},
@@ -70,4 +76,4 @@
},
"minimum-stability": "stable",
"prefer-stable": true
-}
\ No newline at end of file
+}
diff --git a/Backend/composer.lock b/Backend/composer.lock
index 0efb8f0..5860e27 100644
--- a/Backend/composer.lock
+++ b/Backend/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": "3f4d1f1e81335e57c61cd1ac364b7e4b",
+ "content-hash": "b91ee5c49b8bfea7096edda021ce182a",
"packages": [
{
"name": "brick/math",
@@ -445,16 +445,16 @@
},
{
"name": "egulias/email-validator",
- "version": "4.0.2",
+ "version": "4.0.3",
"source": {
"type": "git",
"url": "https://github.com/egulias/EmailValidator.git",
- "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e"
+ "reference": "b115554301161fa21467629f1e1391c1936de517"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/ebaaf5be6c0286928352e054f2d5125608e5405e",
- "reference": "ebaaf5be6c0286928352e054f2d5125608e5405e",
+ "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/b115554301161fa21467629f1e1391c1936de517",
+ "reference": "b115554301161fa21467629f1e1391c1936de517",
"shasum": ""
},
"require": {
@@ -500,7 +500,7 @@
],
"support": {
"issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/4.0.2"
+ "source": "https://github.com/egulias/EmailValidator/tree/4.0.3"
},
"funding": [
{
@@ -508,7 +508,7 @@
"type": "github"
}
],
- "time": "2023-10-06T06:47:41+00:00"
+ "time": "2024-12-27T00:36:43+00:00"
},
{
"name": "firebase/php-jwt",
@@ -1119,16 +1119,16 @@
},
{
"name": "laravel/framework",
- "version": "v10.48.22",
+ "version": "v10.48.25",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "c4ea52bb044faef4a103d7dd81746c01b2ec860e"
+ "reference": "f132b23b13909cc22c615c01b0c5640541c3da0c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/c4ea52bb044faef4a103d7dd81746c01b2ec860e",
- "reference": "c4ea52bb044faef4a103d7dd81746c01b2ec860e",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/f132b23b13909cc22c615c01b0c5640541c3da0c",
+ "reference": "f132b23b13909cc22c615c01b0c5640541c3da0c",
"shasum": ""
},
"require": {
@@ -1235,7 +1235,7 @@
"nyholm/psr7": "^1.2",
"orchestra/testbench-core": "^8.23.4",
"pda/pheanstalk": "^4.0",
- "phpstan/phpstan": "^1.4.7",
+ "phpstan/phpstan": "~1.11.11",
"phpunit/phpunit": "^10.0.7",
"predis/predis": "^2.0.2",
"symfony/cache": "^6.2",
@@ -1322,7 +1322,7 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2024-09-12T15:00:09+00:00"
+ "time": "2024-11-26T15:32:57+00:00"
},
{
"name": "laravel/prompts",
@@ -1450,16 +1450,16 @@
},
{
"name": "laravel/serializable-closure",
- "version": "v1.3.5",
+ "version": "v1.3.7",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c"
+ "reference": "4f48ade902b94323ca3be7646db16209ec76be3d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
- "reference": "1dc4a3dbfa2b7628a3114e43e32120cce7cdda9c",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/4f48ade902b94323ca3be7646db16209ec76be3d",
+ "reference": "4f48ade902b94323ca3be7646db16209ec76be3d",
"shasum": ""
},
"require": {
@@ -1507,7 +1507,7 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2024-09-23T13:33:08+00:00"
+ "time": "2024-11-14T18:34:49+00:00"
},
{
"name": "laravel/socialite",
@@ -1649,16 +1649,16 @@
},
{
"name": "league/commonmark",
- "version": "2.5.3",
+ "version": "2.6.1",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "b650144166dfa7703e62a22e493b853b58d874b0"
+ "reference": "d990688c91cedfb69753ffc2512727ec646df2ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/b650144166dfa7703e62a22e493b853b58d874b0",
- "reference": "b650144166dfa7703e62a22e493b853b58d874b0",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/d990688c91cedfb69753ffc2512727ec646df2ad",
+ "reference": "d990688c91cedfb69753ffc2512727ec646df2ad",
"shasum": ""
},
"require": {
@@ -1683,8 +1683,9 @@
"phpstan/phpstan": "^1.8.2",
"phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
"scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3 | ^6.0 || ^7.0",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 || ^7.0",
+ "symfony/finder": "^5.3 | ^6.0 | ^7.0",
+ "symfony/process": "^5.4 | ^6.0 | ^7.0",
+ "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0 | ^7.0",
"unleashedtech/php-coding-standard": "^3.1.1",
"vimeo/psalm": "^4.24.0 || ^5.0.0"
},
@@ -1694,7 +1695,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.6-dev"
+ "dev-main": "2.7-dev"
}
},
"autoload": {
@@ -1751,7 +1752,7 @@
"type": "tidelift"
}
],
- "time": "2024-08-16T11:46:16+00:00"
+ "time": "2024-12-29T14:10:59+00:00"
},
{
"name": "league/config",
@@ -2099,18 +2100,85 @@
},
"time": "2022-04-15T14:02:14+00:00"
},
+ {
+ "name": "masterminds/html5",
+ "version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Masterminds/html5-php.git",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "reference": "f5ac2c0b0a2eefca70b2ce32a5809992227e75a6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35 || ^5.7.21 || ^6 || ^7 || ^8 || ^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Masterminds\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Matt Butcher",
+ "email": "technosophos@gmail.com"
+ },
+ {
+ "name": "Matt Farina",
+ "email": "matt@mattfarina.com"
+ },
+ {
+ "name": "Asmir Mustafic",
+ "email": "goetas@gmail.com"
+ }
+ ],
+ "description": "An HTML5 parser and serializer.",
+ "homepage": "http://masterminds.github.io/html5-php",
+ "keywords": [
+ "HTML5",
+ "dom",
+ "html",
+ "parser",
+ "querypath",
+ "serializer",
+ "xml"
+ ],
+ "support": {
+ "issues": "https://github.com/Masterminds/html5-php/issues",
+ "source": "https://github.com/Masterminds/html5-php/tree/2.9.0"
+ },
+ "time": "2024-03-31T07:05:07+00:00"
+ },
{
"name": "monolog/monolog",
- "version": "3.7.0",
+ "version": "3.8.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8"
+ "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f4393b648b78a5408747de94fca38beb5f7e9ef8",
- "reference": "f4393b648b78a5408747de94fca38beb5f7e9ef8",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/aef6ee73a77a66e404dd6540934a9ef1b3c855b4",
+ "reference": "aef6ee73a77a66e404dd6540934a9ef1b3c855b4",
"shasum": ""
},
"require": {
@@ -2130,12 +2198,14 @@
"guzzlehttp/psr7": "^2.2",
"mongodb/mongodb": "^1.8",
"php-amqplib/php-amqplib": "~2.4 || ^3",
- "phpstan/phpstan": "^1.9",
- "phpstan/phpstan-deprecation-rules": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.4",
- "phpunit/phpunit": "^10.5.17",
+ "php-console/php-console": "^3.1.8",
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^10.5.17 || ^11.0.7",
"predis/predis": "^1.1 || ^2",
- "ruflin/elastica": "^7",
+ "rollbar/rollbar": "^4.0",
+ "ruflin/elastica": "^7 || ^8",
"symfony/mailer": "^5.4 || ^6",
"symfony/mime": "^5.4 || ^6"
},
@@ -2186,7 +2256,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/3.7.0"
+ "source": "https://github.com/Seldaek/monolog/tree/3.8.1"
},
"funding": [
{
@@ -2198,20 +2268,20 @@
"type": "tidelift"
}
],
- "time": "2024-06-28T09:40:51+00:00"
+ "time": "2024-12-05T17:15:07+00:00"
},
{
"name": "nesbot/carbon",
- "version": "2.72.5",
+ "version": "2.72.6",
"source": {
"type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed"
+ "url": "https://github.com/CarbonPHP/carbon.git",
+ "reference": "1e9d50601e7035a4c61441a208cb5bed73e108c5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/afd46589c216118ecd48ff2b95d77596af1e57ed",
- "reference": "afd46589c216118ecd48ff2b95d77596af1e57ed",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/1e9d50601e7035a4c61441a208cb5bed73e108c5",
+ "reference": "1e9d50601e7035a4c61441a208cb5bed73e108c5",
"shasum": ""
},
"require": {
@@ -2231,7 +2301,7 @@
"doctrine/orm": "^2.7 || ^3.0",
"friendsofphp/php-cs-fixer": "^3.0",
"kylekatarnls/multi-tester": "^2.0",
- "ondrejmirtes/better-reflection": "*",
+ "ondrejmirtes/better-reflection": "<6",
"phpmd/phpmd": "^2.9",
"phpstan/extension-installer": "^1.0",
"phpstan/phpstan": "^0.12.99 || ^1.7.14",
@@ -2244,10 +2314,6 @@
],
"type": "library",
"extra": {
- "branch-alias": {
- "dev-master": "3.x-dev",
- "dev-2.x": "2.x-dev"
- },
"laravel": {
"providers": [
"Carbon\\Laravel\\ServiceProvider"
@@ -2257,6 +2323,10 @@
"includes": [
"extension.neon"
]
+ },
+ "branch-alias": {
+ "dev-2.x": "2.x-dev",
+ "dev-master": "3.x-dev"
}
},
"autoload": {
@@ -2305,7 +2375,7 @@
"type": "tidelift"
}
],
- "time": "2024-06-03T19:18:41+00:00"
+ "time": "2024-12-27T09:28:11+00:00"
},
{
"name": "nette/schema",
@@ -2457,16 +2527,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v5.3.1",
+ "version": "v5.4.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b"
+ "reference": "447a020a1f875a434d62f2a401f53b82a396e494"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/8eea230464783aa9671db8eea6f8c6ac5285794b",
- "reference": "8eea230464783aa9671db8eea6f8c6ac5285794b",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494",
+ "reference": "447a020a1f875a434d62f2a401f53b82a396e494",
"shasum": ""
},
"require": {
@@ -2509,38 +2579,38 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0"
},
- "time": "2024-10-08T18:51:32+00:00"
+ "time": "2024-12-30T11:07:19+00:00"
},
{
"name": "nunomaduro/termwind",
- "version": "v1.16.0",
+ "version": "v1.17.0",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "dcf1ec3dfa36137b7ce41d43866644a7ab8fc257"
+ "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/dcf1ec3dfa36137b7ce41d43866644a7ab8fc257",
- "reference": "dcf1ec3dfa36137b7ce41d43866644a7ab8fc257",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/5369ef84d8142c1d87e4ec278711d4ece3cbf301",
+ "reference": "5369ef84d8142c1d87e4ec278711d4ece3cbf301",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^8.1",
- "symfony/console": "^6.4.12"
+ "symfony/console": "^6.4.15"
},
"require-dev": {
- "illuminate/console": "^10.48.22",
- "illuminate/support": "^10.48.22",
- "laravel/pint": "^1.18.1",
- "pestphp/pest": "^2",
+ "illuminate/console": "^10.48.24",
+ "illuminate/support": "^10.48.24",
+ "laravel/pint": "^1.18.2",
+ "pestphp/pest": "^2.36.0",
"pestphp/pest-plugin-mock": "2.0.0",
- "phpstan/phpstan": "^1.12.6",
+ "phpstan/phpstan": "^1.12.11",
"phpstan/phpstan-strict-rules": "^1.6.1",
- "symfony/var-dumper": "^6.4.11",
+ "symfony/var-dumper": "^6.4.15",
"thecodingmachine/phpstan-strict-rules": "^1.0.0"
},
"type": "library",
@@ -2580,7 +2650,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v1.16.0"
+ "source": "https://github.com/nunomaduro/termwind/tree/v1.17.0"
},
"funding": [
{
@@ -2596,7 +2666,7 @@
"type": "github"
}
],
- "time": "2024-10-15T15:27:12+00:00"
+ "time": "2024-11-21T10:36:35+00:00"
},
{
"name": "paragonie/constant_time_encoding",
@@ -3616,18 +3686,86 @@
],
"time": "2024-04-27T21:32:50+00:00"
},
+ {
+ "name": "symfony/browser-kit",
+ "version": "v7.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/browser-kit.git",
+ "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/browser-kit/zipball/714becc9ba9b20115ffededc58f6b7172dc394cf",
+ "reference": "714becc9ba9b20115ffededc58f6b7172dc394cf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/dom-crawler": "^6.4|^7.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\BrowserKit\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/browser-kit/tree/v7.1.6"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-10-25T15:11:02+00:00"
+ },
{
"name": "symfony/console",
- "version": "v6.4.13",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79"
+ "reference": "799445db3f15768ecc382ac5699e6da0520a0a04"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/f793dd5a7d9ae9923e35d0503d08ba734cec1d79",
- "reference": "f793dd5a7d9ae9923e35d0503d08ba734cec1d79",
+ "url": "https://api.github.com/repos/symfony/console/zipball/799445db3f15768ecc382ac5699e6da0520a0a04",
+ "reference": "799445db3f15768ecc382ac5699e6da0520a0a04",
"shasum": ""
},
"require": {
@@ -3692,7 +3830,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.4.13"
+ "source": "https://github.com/symfony/console/tree/v6.4.17"
},
"funding": [
{
@@ -3708,20 +3846,20 @@
"type": "tidelift"
}
],
- "time": "2024-10-09T08:40:40+00:00"
+ "time": "2024-12-07T12:07:30+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66"
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
- "reference": "4aa4f6b3d6749c14d3aa815eef8226632e7bbc66",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/601a5ce9aaad7bf10797e3663faefce9e26c24e2",
+ "reference": "601a5ce9aaad7bf10797e3663faefce9e26c24e2",
"shasum": ""
},
"require": {
@@ -3757,7 +3895,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v7.1.6"
+ "source": "https://github.com/symfony/css-selector/tree/v7.2.0"
},
"funding": [
{
@@ -3773,20 +3911,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
- "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
+ "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6",
"shasum": ""
},
"require": {
@@ -3794,12 +3932,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -3824,7 +3962,74 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-09-25T14:20:29+00:00"
+ },
+ {
+ "name": "symfony/dom-crawler",
+ "version": "v7.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dom-crawler.git",
+ "reference": "b176e1f1f550ef44c94eb971bf92488de08f7c6b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/b176e1f1f550ef44c94eb971bf92488de08f7c6b",
+ "reference": "b176e1f1f550ef44c94eb971bf92488de08f7c6b",
+ "shasum": ""
+ },
+ "require": {
+ "masterminds/html5": "^2.6",
+ "php": ">=8.2",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.0"
+ },
+ "require-dev": {
+ "symfony/css-selector": "^6.4|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DomCrawler\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Eases DOM navigation for HTML and XML documents",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/dom-crawler/tree/v7.2.0"
},
"funding": [
{
@@ -3840,20 +4045,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-11-13T16:15:23+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v6.4.13",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c"
+ "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c",
- "reference": "e3c78742f86a5b65fe2ac4c4b6b776d92fd7ca0c",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/37ad2380e8c1a8cf62a1200a5c10080b679b446c",
+ "reference": "37ad2380e8c1a8cf62a1200a5c10080b679b446c",
"shasum": ""
},
"require": {
@@ -3899,7 +4104,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v6.4.13"
+ "source": "https://github.com/symfony/error-handler/tree/v6.4.17"
},
"funding": [
{
@@ -3915,20 +4120,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-12-06T13:30:51+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "87254c78dd50721cfd015b62277a8281c5589702"
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87254c78dd50721cfd015b62277a8281c5589702",
- "reference": "87254c78dd50721cfd015b62277a8281c5589702",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1",
+ "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1",
"shasum": ""
},
"require": {
@@ -3979,7 +4184,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.6"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0"
},
"funding": [
{
@@ -3995,20 +4200,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-09-25T14:21:43+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
- "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f",
+ "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f",
"shasum": ""
},
"require": {
@@ -4017,12 +4222,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -4055,7 +4260,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -4071,20 +4276,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.4.13",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958"
+ "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
- "reference": "daea9eca0b08d0ed1dc9ab702a46128fd1be4958",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
+ "reference": "1d0e8266248c5d9ab6a87e3789e6dc482af3c9c7",
"shasum": ""
},
"require": {
@@ -4119,7 +4324,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.4.13"
+ "source": "https://github.com/symfony/finder/tree/v6.4.17"
},
"funding": [
{
@@ -4135,45 +4340,59 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:30:56+00:00"
+ "time": "2024-12-29T13:51:37+00:00"
},
{
- "name": "symfony/http-foundation",
- "version": "v6.4.13",
+ "name": "symfony/http-client",
+ "version": "v7.1.8",
"source": {
"type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "4c0341b3e0a7291e752c69d2a1ed9a84b68d604c"
+ "url": "https://github.com/symfony/http-client.git",
+ "reference": "c30d91a1deac0dc3ed5e604683cf2e1dfc635b8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/4c0341b3e0a7291e752c69d2a1ed9a84b68d604c",
- "reference": "4c0341b3e0a7291e752c69d2a1ed9a84b68d604c",
+ "url": "https://api.github.com/repos/symfony/http-client/zipball/c30d91a1deac0dc3ed5e604683cf2e1dfc635b8a",
+ "reference": "c30d91a1deac0dc3ed5e604683cf2e1dfc635b8a",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
+ "psr/log": "^1|^2|^3",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php83": "^1.27"
+ "symfony/http-client-contracts": "^3.4.1",
+ "symfony/service-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/cache": "<6.3"
+ "php-http/discovery": "<1.15",
+ "symfony/http-foundation": "<6.4"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "1.0",
+ "symfony/http-client-implementation": "3.0"
},
"require-dev": {
- "doctrine/dbal": "^2.13.1|^3|^4",
- "predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.3|^7.0",
- "symfony/dependency-injection": "^5.4|^6.0|^7.0",
- "symfony/expression-language": "^5.4|^6.0|^7.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
- "symfony/mime": "^5.4|^6.0|^7.0",
- "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ "amphp/amp": "^2.5",
+ "amphp/http-client": "^4.2.1",
+ "amphp/http-tunnel": "^1.0",
+ "amphp/socket": "^1.1",
+ "guzzlehttp/promises": "^1.4|^2.0",
+ "nyholm/psr7": "^1.0",
+ "php-http/httplug": "^1.0|^2.0",
+ "psr/http-client": "^1.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\HttpFoundation\\": ""
+ "Symfony\\Component\\HttpClient\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -4185,18 +4404,21 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Defines an object-oriented layer for the HTTP specification",
+ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously",
"homepage": "https://symfony.com",
+ "keywords": [
+ "http"
+ ],
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.4.13"
+ "source": "https://github.com/symfony/http-client/tree/v7.1.8"
},
"funding": [
{
@@ -4212,56 +4434,211 @@
"type": "tidelift"
}
],
- "time": "2024-10-11T19:20:58+00:00"
+ "time": "2024-11-13T13:40:27+00:00"
},
{
- "name": "symfony/http-kernel",
- "version": "v6.4.13",
+ "name": "symfony/http-client-contracts",
+ "version": "v3.5.2",
"source": {
"type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "4474015c363ec0cd3bf47d55657e68630dbae66e"
+ "url": "https://github.com/symfony/http-client-contracts.git",
+ "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/4474015c363ec0cd3bf47d55657e68630dbae66e",
- "reference": "4474015c363ec0cd3bf47d55657e68630dbae66e",
+ "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/ee8d807ab20fcb51267fdace50fbe3494c31e645",
+ "reference": "ee8d807ab20fcb51267fdace50fbe3494c31e645",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/error-handler": "^6.4|^7.0",
- "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
- "symfony/http-foundation": "^6.4|^7.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.4",
- "symfony/config": "<6.1",
- "symfony/console": "<5.4",
- "symfony/dependency-injection": "<6.4",
- "symfony/doctrine-bridge": "<5.4",
- "symfony/form": "<5.4",
- "symfony/http-client": "<5.4",
- "symfony/http-client-contracts": "<2.5",
- "symfony/mailer": "<5.4",
- "symfony/messenger": "<5.4",
- "symfony/translation": "<5.4",
- "symfony/translation-contracts": "<2.5",
- "symfony/twig-bridge": "<5.4",
- "symfony/validator": "<6.4",
- "symfony/var-dumper": "<6.3",
- "twig/twig": "<2.13"
+ "php": ">=8.1"
},
- "provide": {
- "psr/log-implementation": "1.0|2.0|3.0"
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
+ "branch-alias": {
+ "dev-main": "3.5-dev"
+ }
},
- "require-dev": {
- "psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0|^7.0",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Contracts\\HttpClient\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Test/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Generic abstractions related to HTTP clients",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.2"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-12-07T08:49:48+00:00"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v6.4.16",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-foundation.git",
+ "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/431771b7a6f662f1575b3cfc8fd7617aa9864d57",
+ "reference": "431771b7a6f662f1575b3cfc8fd7617aa9864d57",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/polyfill-mbstring": "~1.1",
+ "symfony/polyfill-php83": "^1.27"
+ },
+ "conflict": {
+ "symfony/cache": "<6.4.12|>=7.0,<7.1.5"
+ },
+ "require-dev": {
+ "doctrine/dbal": "^2.13.1|^3|^4",
+ "predis/predis": "^1.1|^2.0",
+ "symfony/cache": "^6.4.12|^7.1.5",
+ "symfony/dependency-injection": "^5.4|^6.0|^7.0",
+ "symfony/expression-language": "^5.4|^6.0|^7.0",
+ "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0",
+ "symfony/mime": "^5.4|^6.0|^7.0",
+ "symfony/rate-limiter": "^5.4|^6.0|^7.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Defines an object-oriented layer for the HTTP specification",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/http-foundation/tree/v6.4.16"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-11-13T18:58:10+00:00"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v6.4.17",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/http-kernel.git",
+ "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/c5647393c5ce11833d13e4b70fff4b571d4ac710",
+ "reference": "c5647393c5ce11833d13e4b70fff4b571d4ac710",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1",
+ "psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^5.4|^6.0|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/browser-kit": "<5.4",
+ "symfony/cache": "<5.4",
+ "symfony/config": "<6.1",
+ "symfony/console": "<5.4",
+ "symfony/dependency-injection": "<6.4",
+ "symfony/doctrine-bridge": "<5.4",
+ "symfony/form": "<5.4",
+ "symfony/http-client": "<5.4",
+ "symfony/http-client-contracts": "<2.5",
+ "symfony/mailer": "<5.4",
+ "symfony/messenger": "<5.4",
+ "symfony/translation": "<5.4",
+ "symfony/translation-contracts": "<2.5",
+ "symfony/twig-bridge": "<5.4",
+ "symfony/validator": "<6.4",
+ "symfony/var-dumper": "<6.3",
+ "twig/twig": "<2.13"
+ },
+ "provide": {
+ "psr/log-implementation": "1.0|2.0|3.0"
+ },
+ "require-dev": {
+ "psr/cache": "^1.0|^2.0|^3.0",
+ "symfony/browser-kit": "^5.4|^6.0|^7.0",
"symfony/clock": "^6.2|^7.0",
"symfony/config": "^6.1|^7.0",
"symfony/console": "^5.4|^6.0|^7.0",
@@ -4310,7 +4687,7 @@
"description": "Provides a structured process for converting a Request into a Response",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-kernel/tree/v6.4.13"
+ "source": "https://github.com/symfony/http-kernel/tree/v6.4.17"
},
"funding": [
{
@@ -4326,7 +4703,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-27T13:00:29+00:00"
+ "time": "2024-12-31T14:49:31+00:00"
},
{
"name": "symfony/mailer",
@@ -4410,16 +4787,16 @@
},
{
"name": "symfony/mime",
- "version": "v6.4.13",
+ "version": "v6.4.17",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855"
+ "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
- "reference": "1de1cf14d99b12c7ebbb850491ec6ae3ed468855",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
+ "reference": "ea87c8850a54ff039d3e0ab4ae5586dd4e6c0232",
"shasum": ""
},
"require": {
@@ -4475,7 +4852,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v6.4.13"
+ "source": "https://github.com/symfony/mime/tree/v6.4.17"
},
"funding": [
{
@@ -4491,7 +4868,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-25T15:07:50+00:00"
+ "time": "2024-12-02T11:09:41+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -4519,8 +4896,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4595,8 +4972,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4674,8 +5051,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4756,8 +5133,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4840,8 +5217,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4914,8 +5291,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -4994,8 +5371,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5076,8 +5453,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -5131,16 +5508,16 @@
},
{
"name": "symfony/process",
- "version": "v6.4.13",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f"
+ "reference": "3cb242f059c14ae08591c5c4087d1fe443564392"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/1f9f59b46880201629df3bd950fc5ae8c55b960f",
- "reference": "1f9f59b46880201629df3bd950fc5ae8c55b960f",
+ "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392",
+ "reference": "3cb242f059c14ae08591c5c4087d1fe443564392",
"shasum": ""
},
"require": {
@@ -5172,7 +5549,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.4.13"
+ "source": "https://github.com/symfony/process/tree/v6.4.15"
},
"funding": [
{
@@ -5188,20 +5565,20 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-11-06T14:19:14+00:00"
},
{
"name": "symfony/routing",
- "version": "v6.4.13",
+ "version": "v6.4.16",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278"
+ "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/640a74250d13f9c30d5ca045b6aaaabcc8215278",
- "reference": "640a74250d13f9c30d5ca045b6aaaabcc8215278",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/91e02e606b4b705c2f4fb42f7e7708b7923a3220",
+ "reference": "91e02e606b4b705c2f4fb42f7e7708b7923a3220",
"shasum": ""
},
"require": {
@@ -5255,7 +5632,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v6.4.13"
+ "source": "https://github.com/symfony/routing/tree/v6.4.16"
},
"funding": [
{
@@ -5271,20 +5648,20 @@
"type": "tidelift"
}
],
- "time": "2024-10-01T08:30:56+00:00"
+ "time": "2024-11-13T15:31:34+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f"
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
- "reference": "bd1d9e59a81d8fa4acdcea3f617c581f7475a80f",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
+ "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0",
"shasum": ""
},
"require": {
@@ -5297,12 +5674,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -5338,7 +5715,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -5354,20 +5731,20 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/string",
- "version": "v7.1.6",
+ "version": "v7.2.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626"
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626",
- "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626",
+ "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82",
+ "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82",
"shasum": ""
},
"require": {
@@ -5425,7 +5802,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v7.1.6"
+ "source": "https://github.com/symfony/string/tree/v7.2.0"
},
"funding": [
{
@@ -5441,7 +5818,7 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-11-13T13:31:26+00:00"
},
{
"name": "symfony/translation",
@@ -5540,16 +5917,16 @@
},
{
"name": "symfony/translation-contracts",
- "version": "v3.5.0",
+ "version": "v3.5.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a"
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
- "reference": "b9d2189887bb6b2e0367a9fc7136c5239ab9b05a",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/4667ff3bd513750603a09c8dedbea942487fb07c",
+ "reference": "4667ff3bd513750603a09c8dedbea942487fb07c",
"shasum": ""
},
"require": {
@@ -5557,12 +5934,12 @@
},
"type": "library",
"extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/contracts",
+ "name": "symfony/contracts"
+ },
"branch-alias": {
"dev-main": "3.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
@@ -5598,7 +5975,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.5.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.5.1"
},
"funding": [
{
@@ -5614,7 +5991,7 @@
"type": "tidelift"
}
],
- "time": "2024-04-18T09:32:20+00:00"
+ "time": "2024-09-25T14:20:29+00:00"
},
{
"name": "symfony/uid",
@@ -5692,16 +6069,16 @@
},
{
"name": "symfony/var-dumper",
- "version": "v6.4.13",
+ "version": "v6.4.15",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41"
+ "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41",
- "reference": "2acb151474ed8cb43624e3f41a0bf7c4c8ce4f41",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
+ "reference": "38254d5a5ac2e61f2b52f9caf54e7aa3c9d36b80",
"shasum": ""
},
"require": {
@@ -5757,7 +6134,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v6.4.13"
+ "source": "https://github.com/symfony/var-dumper/tree/v6.4.15"
},
"funding": [
{
@@ -5773,35 +6150,109 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:18:03+00:00"
+ "time": "2024-11-08T15:28:48+00:00"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v7.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/yaml.git",
+ "reference": "099581e99f557e9f16b43c5916c26380b54abb22"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22",
+ "reference": "099581e99f557e9f16b43c5916c26380b54abb22",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.2",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
+ "symfony/polyfill-ctype": "^1.8"
+ },
+ "conflict": {
+ "symfony/console": "<6.4"
+ },
+ "require-dev": {
+ "symfony/console": "^6.4|^7.0"
+ },
+ "bin": [
+ "Resources/bin/yaml-lint"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Loads and dumps YAML files",
+ "homepage": "https://symfony.com",
+ "support": {
+ "source": "https://github.com/symfony/yaml/tree/v7.2.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2024-10-23T06:56:12+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
- "version": "v2.2.7",
+ "version": "v2.3.0",
"source": {
"type": "git",
"url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb"
+ "reference": "0d72ac1c00084279c1816675284073c5a337c20d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/83ee6f38df0a63106a9e4536e3060458b74ccedb",
- "reference": "83ee6f38df0a63106a9e4536e3060458b74ccedb",
+ "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/0d72ac1c00084279c1816675284073c5a337c20d",
+ "reference": "0d72ac1c00084279c1816675284073c5a337c20d",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
- "php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"
+ "php": "^7.4 || ^8.0",
+ "symfony/css-selector": "^5.4 || ^6.0 || ^7.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/phpunit": "^8.5.21 || ^9.5.10"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.2.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
@@ -5824,9 +6275,9 @@
"homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
"support": {
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.2.7"
+ "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.3.0"
},
- "time": "2023-12-08T13:03:43+00:00"
+ "time": "2024-12-21T16:25:41+00:00"
},
{
"name": "vlucas/phpdotenv",
@@ -5914,16 +6365,16 @@
},
{
"name": "voku/portable-ascii",
- "version": "2.0.1",
+ "version": "2.0.3",
"source": {
"type": "git",
"url": "https://github.com/voku/portable-ascii.git",
- "reference": "b56450eed252f6801410d810c8e1727224ae0743"
+ "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743",
- "reference": "b56450eed252f6801410d810c8e1727224ae0743",
+ "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
+ "reference": "b1d923f88091c6bf09699efcd7c8a1b1bfd7351d",
"shasum": ""
},
"require": {
@@ -5948,7 +6399,7 @@
"authors": [
{
"name": "Lars Moelleken",
- "homepage": "http://www.moelleken.org/"
+ "homepage": "https://www.moelleken.org/"
}
],
"description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
@@ -5960,7 +6411,7 @@
],
"support": {
"issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/2.0.1"
+ "source": "https://github.com/voku/portable-ascii/tree/2.0.3"
},
"funding": [
{
@@ -5984,7 +6435,7 @@
"type": "tidelift"
}
],
- "time": "2022-03-08T17:03:00+00:00"
+ "time": "2024-11-21T01:49:47+00:00"
},
{
"name": "webmozart/assert",
@@ -6043,25 +6494,106 @@
"source": "https://github.com/webmozarts/assert/tree/1.11.0"
},
"time": "2022-06-03T18:03:27+00:00"
- }
- ],
- "packages-dev": [
+ },
{
- "name": "blumilksoftware/codestyle",
- "version": "v4.0.0",
+ "name": "zircote/swagger-php",
+ "version": "4.11.1",
"source": {
"type": "git",
- "url": "https://github.com/blumilksoftware/codestyle.git",
- "reference": "7aecbafb443abdb2f9e0acc1e851236a4c7d00b1"
+ "url": "https://github.com/zircote/swagger-php.git",
+ "reference": "7df10e8ec47db07c031db317a25bef962b4e5de1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/blumilksoftware/codestyle/zipball/7aecbafb443abdb2f9e0acc1e851236a4c7d00b1",
- "reference": "7aecbafb443abdb2f9e0acc1e851236a4c7d00b1",
+ "url": "https://api.github.com/repos/zircote/swagger-php/zipball/7df10e8ec47db07c031db317a25bef962b4e5de1",
+ "reference": "7df10e8ec47db07c031db317a25bef962b4e5de1",
"shasum": ""
},
"require": {
- "friendsofphp/php-cs-fixer": "^3.59",
+ "ext-json": "*",
+ "php": ">=7.2",
+ "psr/log": "^1.1 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^2 || ^3",
+ "symfony/finder": ">=2.2",
+ "symfony/yaml": ">=3.3"
+ },
+ "require-dev": {
+ "composer/package-versions-deprecated": "^1.11",
+ "doctrine/annotations": "^1.7 || ^2.0",
+ "friendsofphp/php-cs-fixer": "^2.17 || 3.62.0",
+ "phpstan/phpstan": "^1.6",
+ "phpunit/phpunit": ">=8",
+ "vimeo/psalm": "^4.23"
+ },
+ "suggest": {
+ "doctrine/annotations": "^1.7 || ^2.0"
+ },
+ "bin": [
+ "bin/openapi"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "OpenApi\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Robert Allen",
+ "email": "zircote@gmail.com"
+ },
+ {
+ "name": "Bob Fanger",
+ "email": "bfanger@gmail.com",
+ "homepage": "https://bfanger.nl"
+ },
+ {
+ "name": "Martin Rademacher",
+ "email": "mano@radebatz.net",
+ "homepage": "https://radebatz.net"
+ }
+ ],
+ "description": "swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations",
+ "homepage": "https://github.com/zircote/swagger-php/",
+ "keywords": [
+ "api",
+ "json",
+ "rest",
+ "service discovery"
+ ],
+ "support": {
+ "issues": "https://github.com/zircote/swagger-php/issues",
+ "source": "https://github.com/zircote/swagger-php/tree/4.11.1"
+ },
+ "time": "2024-10-15T19:20:02+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "blumilksoftware/codestyle",
+ "version": "v4.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/blumilksoftware/codestyle.git",
+ "reference": "7aecbafb443abdb2f9e0acc1e851236a4c7d00b1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/blumilksoftware/codestyle/zipball/7aecbafb443abdb2f9e0acc1e851236a4c7d00b1",
+ "reference": "7aecbafb443abdb2f9e0acc1e851236a4c7d00b1",
+ "shasum": ""
+ },
+ "require": {
+ "friendsofphp/php-cs-fixer": "^3.59",
"kubawerlos/php-cs-fixer-custom-fixers": "^3.21",
"php": "^8.2"
},
@@ -6096,6 +6628,99 @@
},
"time": "2024-10-08T07:54:50+00:00"
},
+ {
+ "name": "brianium/paratest",
+ "version": "v7.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paratestphp/paratest.git",
+ "reference": "cf16fcbb9b8107a7df6b97e497fc91e819774d8b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paratestphp/paratest/zipball/cf16fcbb9b8107a7df6b97e497fc91e819774d8b",
+ "reference": "cf16fcbb9b8107a7df6b97e497fc91e819774d8b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-simplexml": "*",
+ "fidry/cpu-core-counter": "^1.2.0",
+ "jean85/pretty-package-versions": "^2.0.6",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0",
+ "phpunit/php-code-coverage": "^10.1.16",
+ "phpunit/php-file-iterator": "^4.1.0",
+ "phpunit/php-timer": "^6.0.0",
+ "phpunit/phpunit": "^10.5.36",
+ "sebastian/environment": "^6.1.0",
+ "symfony/console": "^6.4.7 || ^7.1.5",
+ "symfony/process": "^6.4.7 || ^7.1.5"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^12.0.0",
+ "ext-pcov": "*",
+ "ext-posix": "*",
+ "phpstan/phpstan": "^1.12.6",
+ "phpstan/phpstan-deprecation-rules": "^1.2.1",
+ "phpstan/phpstan-phpunit": "^1.4.0",
+ "phpstan/phpstan-strict-rules": "^1.6.1",
+ "squizlabs/php_codesniffer": "^3.10.3",
+ "symfony/filesystem": "^6.4.3 || ^7.1.5"
+ },
+ "bin": [
+ "bin/paratest",
+ "bin/paratest_for_phpstorm"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ParaTest\\": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brian Scaturro",
+ "email": "scaturrob@gmail.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Filippo Tessarotto",
+ "email": "zoeslam@gmail.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "Parallel testing for PHP",
+ "homepage": "https://github.com/paratestphp/paratest",
+ "keywords": [
+ "concurrent",
+ "parallel",
+ "phpunit",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/paratestphp/paratest/issues",
+ "source": "https://github.com/paratestphp/paratest/tree/v7.4.8"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sponsors/Slamdunk",
+ "type": "github"
+ },
+ {
+ "url": "https://paypal.me/filippotessarotto",
+ "type": "paypal"
+ }
+ ],
+ "time": "2024-10-15T12:45:19+00:00"
+ },
{
"name": "clue/ndjson-react",
"version": "v1.3.0",
@@ -6386,6 +7011,101 @@
],
"time": "2024-05-06T16:37:16+00:00"
},
+ {
+ "name": "doctrine/deprecations",
+ "version": "1.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "reference": "31610dbb31faa98e6b5447b62340826f54fbc4e9",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/coding-standard": "^9 || ^12",
+ "phpstan/phpstan": "1.4.10 || 2.0.3",
+ "phpstan/phpstan-phpunit": "^1.0 || ^2",
+ "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
+ "psr/log": "^1 || ^2 || ^3"
+ },
+ "suggest": {
+ "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Deprecations\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
+ "homepage": "https://www.doctrine-project.org/",
+ "support": {
+ "issues": "https://github.com/doctrine/deprecations/issues",
+ "source": "https://github.com/doctrine/deprecations/tree/1.1.4"
+ },
+ "time": "2024-12-07T21:18:45+00:00"
+ },
+ {
+ "name": "erusev/parsedown",
+ "version": "1.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/erusev/parsedown.git",
+ "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
+ "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "php": ">=5.3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.8.35"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-0": {
+ "Parsedown": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Emanuil Rusev",
+ "email": "hello@erusev.com",
+ "homepage": "http://erusev.com"
+ }
+ ],
+ "description": "Parser for Markdown.",
+ "homepage": "http://parsedown.org",
+ "keywords": [
+ "markdown",
+ "parser"
+ ],
+ "support": {
+ "issues": "https://github.com/erusev/parsedown/issues",
+ "source": "https://github.com/erusev/parsedown/tree/1.7.x"
+ },
+ "time": "2019-12-30T22:54:17+00:00"
+ },
{
"name": "evenement/evenement",
"version": "v3.0.2",
@@ -6435,16 +7155,16 @@
},
{
"name": "fakerphp/faker",
- "version": "v1.23.1",
+ "version": "v1.24.1",
"source": {
"type": "git",
"url": "https://github.com/FakerPHP/Faker.git",
- "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b"
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/bfb4fe148adbf78eff521199619b93a52ae3554b",
- "reference": "bfb4fe148adbf78eff521199619b93a52ae3554b",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
"shasum": ""
},
"require": {
@@ -6492,9 +7212,9 @@
],
"support": {
"issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.23.1"
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
},
- "time": "2024-01-02T13:46:09+00:00"
+ "time": "2024-11-21T13:46:39+00:00"
},
{
"name": "fidry/cpu-core-counter",
@@ -6783,32 +7503,39 @@
"time": "2020-07-09T08:09:16+00:00"
},
{
- "name": "kubawerlos/php-cs-fixer-custom-fixers",
- "version": "v3.22.0",
+ "name": "jean85/pretty-package-versions",
+ "version": "2.1.0",
"source": {
"type": "git",
- "url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git",
- "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e"
+ "url": "https://github.com/Jean85/pretty-package-versions.git",
+ "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/8701394f0c7cd450ac4fa577d24589122c1d5d5e",
- "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e",
+ "url": "https://api.github.com/repos/Jean85/pretty-package-versions/zipball/3c4e5f62ba8d7de1734312e4fff32f67a8daaf10",
+ "reference": "3c4e5f62ba8d7de1734312e4fff32f67a8daaf10",
"shasum": ""
},
"require": {
- "ext-filter": "*",
- "ext-tokenizer": "*",
- "friendsofphp/php-cs-fixer": "^3.61.1",
- "php": "^7.4 || ^8.0"
+ "composer-runtime-api": "^2.1.0",
+ "php": "^7.4|^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^9.6.4 || ^10.5.29"
+ "friendsofphp/php-cs-fixer": "^3.2",
+ "jean85/composer-provided-replaced-stub-package": "^1.0",
+ "phpstan/phpstan": "^1.4",
+ "phpunit/phpunit": "^7.5|^8.5|^9.6",
+ "vimeo/psalm": "^4.3 || ^5.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "PhpCsFixerCustomFixers\\": "src"
+ "Jean85\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6817,56 +7544,87 @@
],
"authors": [
{
- "name": "Kuba Werłos",
- "email": "werlos@gmail.com"
+ "name": "Alessandro Lai",
+ "email": "alessandro.lai85@gmail.com"
}
],
- "description": "A set of custom fixers for PHP CS Fixer",
+ "description": "A library to get pretty versions strings of installed dependencies",
+ "keywords": [
+ "composer",
+ "package",
+ "release",
+ "versions"
+ ],
"support": {
- "issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues",
- "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.22.0"
+ "issues": "https://github.com/Jean85/pretty-package-versions/issues",
+ "source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.0"
},
- "time": "2024-08-16T20:44:35+00:00"
+ "time": "2024-11-18T16:19:46+00:00"
},
{
- "name": "laravel/pint",
- "version": "v1.18.1",
+ "name": "knuckleswtf/scribe",
+ "version": "4.39.0",
"source": {
"type": "git",
- "url": "https://github.com/laravel/pint.git",
- "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9"
+ "url": "https://github.com/knuckleswtf/scribe.git",
+ "reference": "cb4c2e552fdae4fd2306e12bba60d5de38a9e4ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/pint/zipball/35c00c05ec43e6b46d295efc0f4386ceb30d50d9",
- "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9",
+ "url": "https://api.github.com/repos/knuckleswtf/scribe/zipball/cb4c2e552fdae4fd2306e12bba60d5de38a9e4ad",
+ "reference": "cb4c2e552fdae4fd2306e12bba60d5de38a9e4ad",
"shasum": ""
},
"require": {
+ "erusev/parsedown": "1.7.4",
+ "ext-fileinfo": "*",
"ext-json": "*",
- "ext-mbstring": "*",
- "ext-tokenizer": "*",
- "ext-xml": "*",
- "php": "^8.1.0"
+ "ext-pdo": "*",
+ "fakerphp/faker": "^1.9.1",
+ "illuminate/console": "^8.0|^9.0|^10.0|^11.0",
+ "illuminate/routing": "^8.0|^9.0|^10.0|^11.0",
+ "illuminate/support": "^8.0|^9.0|^10.0|^11.0",
+ "league/flysystem": "^1.1.4|^2.1.1|^3.0",
+ "mpociot/reflection-docblock": "^1.0.1",
+ "nikic/php-parser": "^5.0",
+ "nunomaduro/collision": "^5.10|^6.0|^7.0|^8.0",
+ "php": ">=8.0",
+ "ramsey/uuid": "^4.2.2",
+ "shalvah/clara": "^3.1.0",
+ "shalvah/upgrader": ">=0.6.0",
+ "spatie/data-transfer-object": "^2.6|^3.0",
+ "symfony/var-exporter": "^5.4|^6.0|^7.0",
+ "symfony/yaml": "^5.4|^6.0|^7.0"
+ },
+ "replace": {
+ "mpociot/laravel-apidoc-generator": "*"
},
"require-dev": {
- "friendsofphp/php-cs-fixer": "^3.64.0",
- "illuminate/view": "^10.48.20",
- "larastan/larastan": "^2.9.8",
- "laravel-zero/framework": "^10.4.0",
- "mockery/mockery": "^1.6.12",
- "nunomaduro/termwind": "^1.15.1",
- "pestphp/pest": "^2.35.1"
+ "brianium/paratest": "^6.0",
+ "dms/phpunit-arraysubset-asserts": "^0.4",
+ "laravel/legacy-factories": "^1.3.0",
+ "laravel/lumen-framework": "^8.0|^9.0|^10.0",
+ "league/fractal": "^0.20",
+ "nikic/fast-route": "^1.3",
+ "orchestra/testbench": "^6.0|^7.0|^8.0",
+ "pestphp/pest": "^1.21",
+ "phpstan/phpstan": "^1.0",
+ "phpunit/phpunit": "^9.0|^10.0",
+ "symfony/css-selector": "^5.4|^6.0",
+ "symfony/dom-crawler": "^5.4|^6.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Knuckles\\Scribe\\ScribeServiceProvider"
+ ]
+ }
},
- "bin": [
- "builds/pint"
- ],
- "type": "project",
"autoload": {
"psr-4": {
- "App\\": "app/",
- "Database\\Seeders\\": "database/seeders/",
- "Database\\Factories\\": "database/factories/"
+ "Knuckles\\Camel\\": "camel/",
+ "Knuckles\\Scribe\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -6875,24 +7633,140 @@
],
"authors": [
{
- "name": "Nuno Maduro",
- "email": "enunomaduro@gmail.com"
+ "name": "Shalvah"
}
],
- "description": "An opinionated code formatter for PHP.",
- "homepage": "https://laravel.com",
+ "description": "Generate API documentation for humans from your Laravel codebase.✍",
+ "homepage": "http://github.com/knuckleswtf/scribe",
"keywords": [
- "format",
- "formatter",
- "lint",
- "linter",
- "php"
+ "api",
+ "dingo",
+ "documentation",
+ "laravel"
],
"support": {
- "issues": "https://github.com/laravel/pint/issues",
- "source": "https://github.com/laravel/pint"
+ "issues": "https://github.com/knuckleswtf/scribe/issues",
+ "source": "https://github.com/knuckleswtf/scribe/tree/4.39.0"
},
- "time": "2024-09-24T17:22:50+00:00"
+ "funding": [
+ {
+ "url": "https://patreon.com/shalvah",
+ "type": "patreon"
+ }
+ ],
+ "time": "2024-12-31T14:13:50+00:00"
+ },
+ {
+ "name": "kubawerlos/php-cs-fixer-custom-fixers",
+ "version": "v3.22.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers.git",
+ "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/kubawerlos/php-cs-fixer-custom-fixers/zipball/8701394f0c7cd450ac4fa577d24589122c1d5d5e",
+ "reference": "8701394f0c7cd450ac4fa577d24589122c1d5d5e",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "ext-tokenizer": "*",
+ "friendsofphp/php-cs-fixer": "^3.61.1",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6.4 || ^10.5.29"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PhpCsFixerCustomFixers\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kuba Werłos",
+ "email": "werlos@gmail.com"
+ }
+ ],
+ "description": "A set of custom fixers for PHP CS Fixer",
+ "support": {
+ "issues": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/issues",
+ "source": "https://github.com/kubawerlos/php-cs-fixer-custom-fixers/tree/v3.22.0"
+ },
+ "time": "2024-08-16T20:44:35+00:00"
+ },
+ {
+ "name": "laravel/pint",
+ "version": "v1.18.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/pint.git",
+ "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/pint/zipball/35c00c05ec43e6b46d295efc0f4386ceb30d50d9",
+ "reference": "35c00c05ec43e6b46d295efc0f4386ceb30d50d9",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "ext-tokenizer": "*",
+ "ext-xml": "*",
+ "php": "^8.1.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^3.64.0",
+ "illuminate/view": "^10.48.20",
+ "larastan/larastan": "^2.9.8",
+ "laravel-zero/framework": "^10.4.0",
+ "mockery/mockery": "^1.6.12",
+ "nunomaduro/termwind": "^1.15.1",
+ "pestphp/pest": "^2.35.1"
+ },
+ "bin": [
+ "builds/pint"
+ ],
+ "type": "project",
+ "autoload": {
+ "psr-4": {
+ "App\\": "app/",
+ "Database\\Seeders\\": "database/seeders/",
+ "Database\\Factories\\": "database/factories/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "An opinionated code formatter for PHP.",
+ "homepage": "https://laravel.com",
+ "keywords": [
+ "format",
+ "formatter",
+ "lint",
+ "linter",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/pint/issues",
+ "source": "https://github.com/laravel/pint"
+ },
+ "time": "2024-09-24T17:22:50+00:00"
},
{
"name": "laravel/sail",
@@ -7040,18 +7914,71 @@
},
"time": "2024-05-16T03:13:13+00:00"
},
+ {
+ "name": "mpociot/reflection-docblock",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mpociot/reflection-docblock.git",
+ "reference": "c8b2e2b1f5cebbb06e2b5ccbf2958f2198867587"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mpociot/reflection-docblock/zipball/c8b2e2b1f5cebbb06e2b5ccbf2958f2198867587",
+ "reference": "c8b2e2b1f5cebbb06e2b5ccbf2958f2198867587",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "suggest": {
+ "dflydev/markdown": "~1.0",
+ "erusev/parsedown": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Mpociot": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "support": {
+ "issues": "https://github.com/mpociot/reflection-docblock/issues",
+ "source": "https://github.com/mpociot/reflection-docblock/tree/master"
+ },
+ "time": "2016-06-20T20:53:12+00:00"
+ },
{
"name": "myclabs/deep-copy",
- "version": "1.12.0",
+ "version": "1.12.1",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c"
+ "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
- "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845",
+ "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845",
"shasum": ""
},
"require": {
@@ -7090,7 +8017,7 @@
],
"support": {
"issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0"
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1"
},
"funding": [
{
@@ -7098,7 +8025,7 @@
"type": "tidelift"
}
],
- "time": "2024-06-12T14:39:25+00:00"
+ "time": "2024-11-08T17:47:46+00:00"
},
{
"name": "nunomaduro/collision",
@@ -7196,6 +8123,256 @@
],
"time": "2024-10-15T15:12:40+00:00"
},
+ {
+ "name": "pestphp/pest",
+ "version": "v2.36.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pestphp/pest.git",
+ "reference": "f8c88bd14dc1772bfaf02169afb601ecdf2724cd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/f8c88bd14dc1772bfaf02169afb601ecdf2724cd",
+ "reference": "f8c88bd14dc1772bfaf02169afb601ecdf2724cd",
+ "shasum": ""
+ },
+ "require": {
+ "brianium/paratest": "^7.3.1",
+ "nunomaduro/collision": "^7.11.0|^8.4.0",
+ "nunomaduro/termwind": "^1.16.0|^2.1.0",
+ "pestphp/pest-plugin": "^2.1.1",
+ "pestphp/pest-plugin-arch": "^2.7.0",
+ "php": "^8.1.0",
+ "phpunit/phpunit": "^10.5.36"
+ },
+ "conflict": {
+ "filp/whoops": "<2.16.0",
+ "phpunit/phpunit": ">10.5.36",
+ "sebastian/exporter": "<5.1.0",
+ "webmozart/assert": "<1.11.0"
+ },
+ "require-dev": {
+ "pestphp/pest-dev-tools": "^2.17.0",
+ "pestphp/pest-plugin-type-coverage": "^2.8.7",
+ "symfony/process": "^6.4.0|^7.1.5"
+ },
+ "bin": [
+ "bin/pest"
+ ],
+ "type": "library",
+ "extra": {
+ "pest": {
+ "plugins": [
+ "Pest\\Plugins\\Bail",
+ "Pest\\Plugins\\Cache",
+ "Pest\\Plugins\\Coverage",
+ "Pest\\Plugins\\Init",
+ "Pest\\Plugins\\Environment",
+ "Pest\\Plugins\\Help",
+ "Pest\\Plugins\\Memory",
+ "Pest\\Plugins\\Only",
+ "Pest\\Plugins\\Printer",
+ "Pest\\Plugins\\ProcessIsolation",
+ "Pest\\Plugins\\Profile",
+ "Pest\\Plugins\\Retry",
+ "Pest\\Plugins\\Snapshot",
+ "Pest\\Plugins\\Verbose",
+ "Pest\\Plugins\\Version",
+ "Pest\\Plugins\\Parallel"
+ ]
+ },
+ "phpstan": {
+ "includes": [
+ "extension.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Functions.php",
+ "src/Pest.php"
+ ],
+ "psr-4": {
+ "Pest\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "The elegant PHP Testing Framework.",
+ "keywords": [
+ "framework",
+ "pest",
+ "php",
+ "test",
+ "testing",
+ "unit"
+ ],
+ "support": {
+ "issues": "https://github.com/pestphp/pest/issues",
+ "source": "https://github.com/pestphp/pest/tree/v2.36.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ }
+ ],
+ "time": "2024-10-15T15:30:56+00:00"
+ },
+ {
+ "name": "pestphp/pest-plugin",
+ "version": "v2.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pestphp/pest-plugin.git",
+ "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pestphp/pest-plugin/zipball/e05d2859e08c2567ee38ce8b005d044e72648c0b",
+ "reference": "e05d2859e08c2567ee38ce8b005d044e72648c0b",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^2.0.0",
+ "composer-runtime-api": "^2.2.2",
+ "php": "^8.1"
+ },
+ "conflict": {
+ "pestphp/pest": "<2.2.3"
+ },
+ "require-dev": {
+ "composer/composer": "^2.5.8",
+ "pestphp/pest": "^2.16.0",
+ "pestphp/pest-dev-tools": "^2.16.0"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Pest\\Plugin\\Manager"
+ },
+ "autoload": {
+ "psr-4": {
+ "Pest\\Plugin\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "The Pest plugin manager",
+ "keywords": [
+ "framework",
+ "manager",
+ "pest",
+ "php",
+ "plugin",
+ "test",
+ "testing",
+ "unit"
+ ],
+ "support": {
+ "source": "https://github.com/pestphp/pest-plugin/tree/v2.1.1"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=66BYDWAT92N6L",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2023-08-22T08:40:06+00:00"
+ },
+ {
+ "name": "pestphp/pest-plugin-arch",
+ "version": "v2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/pestphp/pest-plugin-arch.git",
+ "reference": "d23b2d7498475354522c3818c42ef355dca3fcda"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/pestphp/pest-plugin-arch/zipball/d23b2d7498475354522c3818c42ef355dca3fcda",
+ "reference": "d23b2d7498475354522c3818c42ef355dca3fcda",
+ "shasum": ""
+ },
+ "require": {
+ "nunomaduro/collision": "^7.10.0|^8.1.0",
+ "pestphp/pest-plugin": "^2.1.1",
+ "php": "^8.1",
+ "ta-tikoma/phpunit-architecture-test": "^0.8.4"
+ },
+ "require-dev": {
+ "pestphp/pest": "^2.33.0",
+ "pestphp/pest-dev-tools": "^2.16.0"
+ },
+ "type": "library",
+ "extra": {
+ "pest": {
+ "plugins": [
+ "Pest\\Arch\\Plugin"
+ ]
+ }
+ },
+ "autoload": {
+ "files": [
+ "src/Autoload.php"
+ ],
+ "psr-4": {
+ "Pest\\Arch\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "The Arch plugin for Pest PHP.",
+ "keywords": [
+ "arch",
+ "architecture",
+ "framework",
+ "pest",
+ "php",
+ "plugin",
+ "test",
+ "testing",
+ "unit"
+ ],
+ "support": {
+ "source": "https://github.com/pestphp/pest-plugin-arch/tree/v2.7.0"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ }
+ ],
+ "time": "2024-01-26T09:46:42+00:00"
+ },
{
"name": "phar-io/manifest",
"version": "2.0.4",
@@ -7221,98 +8398,320 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "support": {
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/theseer",
+ "type": "github"
+ }
+ ],
+ "time": "2024-03-03T12:33:53+00:00"
+ },
+ {
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
+ ],
+ "description": "Library for handling version information and constraints",
+ "support": {
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
+ },
+ "time": "2022-02-21T01:04:05+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "http://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ },
+ "time": "2020-06-27T09:03:43+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "5.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
+ "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.1",
+ "ext-filter": "*",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^1.7",
+ "phpstan/phpdoc-parser": "^1.7|^2.0",
+ "webmozart/assert": "^1.9.1"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.5 || ~1.6.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-mockery": "^1.1",
+ "phpstan/phpstan-webmozart-assert": "^1.2",
+ "phpunit/phpunit": "^9.5",
+ "psalm/phar": "^5.26"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
+ },
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1"
+ },
+ "time": "2024-12-07T09:39:29+00:00"
+ },
+ {
+ "name": "phpdocumentor/type-resolver",
+ "version": "1.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/TypeResolver.git",
+ "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a",
+ "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.0",
+ "php": "^7.3 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.0",
+ "phpstan/phpdoc-parser": "^1.18|^2.0"
+ },
+ "require-dev": {
+ "ext-tokenizer": "*",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^9.5",
+ "rector/rector": "^0.13.9",
+ "vimeo/psalm": "^4.25"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-1.x": "1.x-dev"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
+ "name": "Mike van Riel",
+ "email": "me@mikevanriel.com"
}
],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
+ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
"support": {
- "issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.4"
+ "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
+ "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0"
},
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2024-03-03T12:33:53+00:00"
+ "time": "2024-11-09T15:12:26+00:00"
},
{
- "name": "phar-io/version",
- "version": "3.2.1",
+ "name": "phpstan/phpdoc-parser",
+ "version": "2.0.0",
"source": {
"type": "git",
- "url": "https://github.com/phar-io/version.git",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299",
+ "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^5.3.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^9.6",
+ "symfony/process": "^5.2"
},
"type": "library",
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
+ "MIT"
],
- "description": "Library for handling version information and constraints",
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
- "issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.2.1"
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0"
},
- "time": "2022-02-21T01:04:05+00:00"
+ "time": "2024-10-13T11:29:49+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -7637,16 +9036,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "10.5.37",
+ "version": "10.5.36",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "c7cffa0efa2b70c22366523e6d804c9419eb2400"
+ "reference": "aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c7cffa0efa2b70c22366523e6d804c9419eb2400",
- "reference": "c7cffa0efa2b70c22366523e6d804c9419eb2400",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870",
+ "reference": "aa0a8ce701ea7ee314b0dfaa8970dc94f3f8c870",
"shasum": ""
},
"require": {
@@ -7667,7 +9066,7 @@
"phpunit/php-timer": "^6.0.0",
"sebastian/cli-parser": "^2.0.1",
"sebastian/code-unit": "^2.0.0",
- "sebastian/comparator": "^5.0.3",
+ "sebastian/comparator": "^5.0.2",
"sebastian/diff": "^5.1.1",
"sebastian/environment": "^6.1.0",
"sebastian/exporter": "^5.1.2",
@@ -7718,7 +9117,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.37"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.36"
},
"funding": [
{
@@ -7734,7 +9133,7 @@
"type": "tidelift"
}
],
- "time": "2024-10-19T13:03:41+00:00"
+ "time": "2024-10-08T15:36:51+00:00"
},
{
"name": "react/cache",
@@ -9182,6 +10581,111 @@
],
"time": "2023-02-07T11:34:05+00:00"
},
+ {
+ "name": "shalvah/clara",
+ "version": "3.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/shalvah/clara.git",
+ "reference": "cdbb5737cbdd101756d97dd2279a979a1af7710b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/shalvah/clara/zipball/cdbb5737cbdd101756d97dd2279a979a1af7710b",
+ "reference": "cdbb5737cbdd101756d97dd2279a979a1af7710b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.4",
+ "symfony/console": "^4.0|^5.0|^6.0|^7.0"
+ },
+ "require-dev": {
+ "eloquent/phony-phpunit": "^7.0",
+ "phpunit/phpunit": "^9.1"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "helpers.php"
+ ],
+ "psr-4": {
+ "Shalvah\\Clara\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "🔊 Simple, pretty, testable console output for CLI apps.",
+ "keywords": [
+ "cli",
+ "log",
+ "logging"
+ ],
+ "support": {
+ "issues": "https://github.com/shalvah/clara/issues",
+ "source": "https://github.com/shalvah/clara/tree/3.2.0"
+ },
+ "time": "2024-02-27T20:30:59+00:00"
+ },
+ {
+ "name": "shalvah/upgrader",
+ "version": "0.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/shalvah/upgrader.git",
+ "reference": "d95ed17fe9f5e1ee7d47ad835595f1af080a867f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/shalvah/upgrader/zipball/d95ed17fe9f5e1ee7d47ad835595f1af080a867f",
+ "reference": "d95ed17fe9f5e1ee7d47ad835595f1af080a867f",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/support": ">=8.0",
+ "nikic/php-parser": "^5.0",
+ "php": ">=8.0"
+ },
+ "require-dev": {
+ "dms/phpunit-arraysubset-asserts": "^0.2.0",
+ "pestphp/pest": "^1.21",
+ "phpstan/phpstan": "^1.0",
+ "spatie/ray": "^1.33"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Shalvah\\Upgrader\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Shalvah",
+ "email": "hello@shalvah.me"
+ }
+ ],
+ "description": "Create automatic upgrades for your package.",
+ "homepage": "http://github.com/shalvah/upgrader",
+ "keywords": [
+ "upgrade"
+ ],
+ "support": {
+ "issues": "https://github.com/shalvah/upgrader/issues",
+ "source": "https://github.com/shalvah/upgrader/tree/0.6.0"
+ },
+ "funding": [
+ {
+ "url": "https://patreon.com/shalvah",
+ "type": "patreon"
+ }
+ ],
+ "time": "2024-02-20T11:51:46+00:00"
+ },
{
"name": "spatie/backtrace",
"version": "1.6.2",
@@ -9245,6 +10749,70 @@
],
"time": "2024-07-22T08:21:24+00:00"
},
+ {
+ "name": "spatie/data-transfer-object",
+ "version": "3.9.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/spatie/data-transfer-object.git",
+ "reference": "1df0906c4e9e3aebd6c0506fd82c8b7d5548c1c8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/spatie/data-transfer-object/zipball/1df0906c4e9e3aebd6c0506fd82c8b7d5548c1c8",
+ "reference": "1df0906c4e9e3aebd6c0506fd82c8b7d5548c1c8",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "illuminate/collections": "^8.36",
+ "jetbrains/phpstorm-attributes": "^1.0",
+ "larapack/dd": "^1.1",
+ "phpunit/phpunit": "^9.5.5"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Spatie\\DataTransferObject\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Brent Roose",
+ "email": "brent@spatie.be",
+ "homepage": "https://spatie.be",
+ "role": "Developer"
+ }
+ ],
+ "description": "Data transfer objects with batteries included",
+ "homepage": "https://github.com/spatie/data-transfer-object",
+ "keywords": [
+ "data-transfer-object",
+ "spatie"
+ ],
+ "support": {
+ "issues": "https://github.com/spatie/data-transfer-object/issues",
+ "source": "https://github.com/spatie/data-transfer-object/tree/3.9.1"
+ },
+ "funding": [
+ {
+ "url": "https://spatie.be/open-source/support-us",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/spatie",
+ "type": "github"
+ }
+ ],
+ "abandoned": "spatie/laravel-data",
+ "time": "2022-09-16T13:34:38+00:00"
+ },
{
"name": "spatie/error-solutions",
"version": "1.1.1",
@@ -9715,8 +11283,8 @@
"type": "library",
"extra": {
"thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
}
},
"autoload": {
@@ -9834,36 +11402,31 @@
"time": "2024-09-25T14:20:29+00:00"
},
{
- "name": "symfony/yaml",
- "version": "v7.1.6",
+ "name": "symfony/var-exporter",
+ "version": "v7.2.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/yaml.git",
- "reference": "3ced3f29e4f0d6bce2170ff26719f1fe9aacc671"
+ "url": "https://github.com/symfony/var-exporter.git",
+ "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/3ced3f29e4f0d6bce2170ff26719f1fe9aacc671",
- "reference": "3ced3f29e4f0d6bce2170ff26719f1fe9aacc671",
+ "url": "https://api.github.com/repos/symfony/var-exporter/zipball/1a6a89f95a46af0f142874c9d650a6358d13070d",
+ "reference": "1a6a89f95a46af0f142874c9d650a6358d13070d",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "symfony/console": "<6.4"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0"
+ "symfony/property-access": "^6.4|^7.0",
+ "symfony/serializer": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
- "bin": [
- "Resources/bin/yaml-lint"
- ],
"type": "library",
"autoload": {
"psr-4": {
- "Symfony\\Component\\Yaml\\": ""
+ "Symfony\\Component\\VarExporter\\": ""
},
"exclude-from-classmap": [
"/Tests/"
@@ -9875,18 +11438,28 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Loads and dumps YAML files",
+ "description": "Allows exporting any serializable PHP data structure to plain PHP code",
"homepage": "https://symfony.com",
+ "keywords": [
+ "clone",
+ "construct",
+ "export",
+ "hydrate",
+ "instantiate",
+ "lazy-loading",
+ "proxy",
+ "serialize"
+ ],
"support": {
- "source": "https://github.com/symfony/yaml/tree/v7.1.6"
+ "source": "https://github.com/symfony/var-exporter/tree/v7.2.0"
},
"funding": [
{
@@ -9902,7 +11475,66 @@
"type": "tidelift"
}
],
- "time": "2024-09-25T14:20:29+00:00"
+ "time": "2024-10-18T07:58:17+00:00"
+ },
+ {
+ "name": "ta-tikoma/phpunit-architecture-test",
+ "version": "0.8.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ta-tikoma/phpunit-architecture-test.git",
+ "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/ta-tikoma/phpunit-architecture-test/zipball/89f0dea1cb0f0d5744d3ec1764a286af5e006636",
+ "reference": "89f0dea1cb0f0d5744d3ec1764a286af5e006636",
+ "shasum": ""
+ },
+ "require": {
+ "nikic/php-parser": "^4.18.0 || ^5.0.0",
+ "php": "^8.1.0",
+ "phpdocumentor/reflection-docblock": "^5.3.0",
+ "phpunit/phpunit": "^10.5.5 || ^11.0.0",
+ "symfony/finder": "^6.4.0 || ^7.0.0"
+ },
+ "require-dev": {
+ "laravel/pint": "^1.13.7",
+ "phpstan/phpstan": "^1.10.52"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PHPUnit\\Architecture\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ni Shi",
+ "email": "futik0ma011@gmail.com"
+ },
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Methods for testing application architecture",
+ "keywords": [
+ "architecture",
+ "phpunit",
+ "stucture",
+ "test",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues",
+ "source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.4"
+ },
+ "time": "2024-01-05T14:10:56+00:00"
},
{
"name": "theseer/tokenizer",
@@ -9957,12 +11589,12 @@
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {},
+ "stability-flags": [],
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": "^8.1"
},
- "platform-dev": {},
+ "platform-dev": [],
"plugin-api-version": "2.6.0"
}
diff --git a/Backend/config/cors.php b/Backend/config/cors.php
index 603775e..239da4b 100644
--- a/Backend/config/cors.php
+++ b/Backend/config/cors.php
@@ -20,7 +20,7 @@
"allowed_methods" => ["*"],
- "allowed_origins" => ["*"],
+ "allowed_origins" => ["http://localhost:3000", "*"],
"allowed_origins_patterns" => [],
diff --git a/Backend/config/database.php b/Backend/config/database.php
index f99d036..65f8590 100644
--- a/Backend/config/database.php
+++ b/Backend/config/database.php
@@ -48,7 +48,7 @@
"url" => env("DATABASE_URL"),
"host" => env("DB_HOST", "localhost"),
"port" => env("DB_PORT", "3307"),
- "database" => env("DB_DATABASE", "kibolAppDB"),
+ "database" => env("DB_DATABASE", "KebabDB"),
"username" => env("DB_USERNAME", "root"),
"password" => env("DB_PASSWORD", "root"),
"unix_socket" => env("DB_SOCKET", ""),
diff --git a/Backend/config/scribe.php b/Backend/config/scribe.php
new file mode 100644
index 0000000..ecce95b
--- /dev/null
+++ b/Backend/config/scribe.php
@@ -0,0 +1,265 @@
+ for the generated documentation. If this is empty, Scribe will infer it from config('app.name').
+ "title" => "Kebab Api",
+
+ // A short description of your API. Will be included in the docs webpage, Postman collection and OpenAPI spec.
+ "description" => "",
+
+ // The base URL displayed in the docs. If this is empty, Scribe will use the value of config('app.url') at generation time.
+ // If you're using `laravel` type, you can set this to a dynamic string, like '{{ config("app.tenant_url") }}' to get a dynamic base URL.
+ "base_url" => "https://sponge-climbing-adder.ngrok-free.app/api/documentation",
+
+ "routes" => [
+ [
+ // Routes that match these conditions will be included in the docs
+ "match" => [
+ // Match only routes whose paths match this pattern (use * as a wildcard to match any characters). Example: 'users/*'.
+ "prefixes" => ["api/*"],
+
+ // Match only routes whose domains match this pattern (use * as a wildcard to match any characters). Example: 'api.*'.
+ "domains" => ["*"],
+
+ // [Dingo router only] Match only routes registered under this version. Wildcards are NOT supported.
+ "versions" => ["v1"],
+ ],
+
+ // Include these routes even if they did not match the rules above.
+ "include" => [],
+
+ // Exclude these routes even if they matched the rules above.
+ "exclude" => [],
+ ],
+ ],
+
+ // The type of documentation output to generate.
+ // - "static" will generate a static HTMl page in the /public/docs folder,
+ // - "laravel" will generate the documentation as a Blade view, so you can add routing and authentication.
+ // - "external_static" and "external_laravel" do the same as above, but generate a basic template,
+ // passing the OpenAPI spec as a URL, allowing you to easily use the docs with an external generator
+ "type" => "static",
+
+ // See https://scribe.knuckles.wtf/laravel/reference/config#theme for supported options
+ "theme" => "default",
+
+ "static" => [
+ // HTML documentation, assets and Postman collection will be generated to this folder.
+ // Source Markdown will still be in resources/docs.
+ "output_path" => "public/docs",
+ ],
+
+ "laravel" => [
+ // Whether to automatically create a docs endpoint for you to view your generated docs.
+ // If this is false, you can still set up routing manually.
+ "add_routes" => false,
+
+ // URL path to use for the docs endpoint (if `add_routes` is true).
+ // By default, `/docs` opens the HTML page, `/docs.postman` opens the Postman collection, and `/docs.openapi` the OpenAPI spec.
+ "docs_url" => "/documentation",
+
+ // Directory within `public` in which to store CSS and JS assets.
+ // By default, assets are stored in `public/vendor/scribe`.
+ // If set, assets will be stored in `public/{{assets_directory}}`
+ "assets_directory" => null,
+
+ // Middleware to attach to the docs endpoint (if `add_routes` is true).
+ "middleware" => [],
+ ],
+
+ "external" => [
+ "html_attributes" => [],
+ ],
+
+ "try_it_out" => [
+ // Add a Try It Out button to your endpoints so consumers can test endpoints right from their browser.
+ // Don't forget to enable CORS headers for your endpoints.
+ "enabled" => true,
+
+ // The base URL for the API tester to use (for example, you can set this to your staging URL).
+ // Leave as null to use the current app URL when generating (config("app.url")).
+ "base_url" => "https://legible-freely-wren.ngrok-free.app/",
+
+ // [Laravel Sanctum] Fetch a CSRF token before each request, and add it as an X-XSRF-TOKEN header.
+ "use_csrf" => false,
+
+ // The URL to fetch the CSRF token from (if `use_csrf` is true).
+ "csrf_url" => "/sanctum/csrf-cookie",
+ ],
+
+ // How is your API authenticated? This information will be used in the displayed docs, generated examples and response calls.
+ "auth" => [
+ // Set this to true if ANY endpoints in your API use authentication.
+ "enabled" => true,
+
+ // Set this to true if your API should be authenticated by default. If so, you must also set `enabled` (above) to true.
+ // You can then use @unauthenticated or @authenticated on individual endpoints to change their status from the default.
+ "default" => false,
+
+ // Where is the auth value meant to be sent in a request?
+ // Options: query, body, basic, bearer, header (for custom header)
+ "in" => "bearer",
+
+ // The name of the auth parameter (e.g. token, key, apiKey) or header (e.g. Authorization, Api-Key).
+ "name" => "Authorization",
+
+ // The value of the parameter to be used by Scribe to authenticate response calls.
+ // This will NOT be included in the generated documentation. If empty, Scribe will use a random value.
+ "use_value" => env("SCRIBE_AUTH_KEY"),
+
+ // Placeholder your users will see for the auth parameter in the example requests.
+ // Set this to null if you want Scribe to use a random value as placeholder instead.
+ "placeholder" => "{YOUR_AUTH_KEY}",
+
+ // Any extra authentication-related info for your users. Markdown and HTML are supported.
+ "extra_info" => "You can retrieve your token by visiting your dashboard and clicking Generate API token .",
+ ],
+
+ // Text to place in the "Introduction" section, right after the `description`. Markdown and HTML are supported.
+ "intro_text" => <<As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
+You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).
+INTRO
+ ,
+
+ // Example requests for each endpoint will be shown in each of these languages.
+ // Supported options are: bash, javascript, php, python
+ // To add a language of your own, see https://scribe.knuckles.wtf/laravel/advanced/example-requests
+ "example_languages" => [
+ "bash",
+ "javascript",
+ "php",
+ ],
+
+ // Generate a Postman collection (v2.1.0) in addition to HTML docs.
+ // For 'static' docs, the collection will be generated to public/docs/collection.json.
+ // For 'laravel' docs, it will be generated to storage/app/scribe/collection.json.
+ // Setting `laravel.add_routes` to true (above) will also add a route for the collection.
+ "postman" => [
+ "enabled" => true,
+
+ "overrides" => [],
+ ],
+
+ // Generate an OpenAPI spec (v3.0.1) in addition to docs webpage.
+ // For 'static' docs, the collection will be generated to public/docs/openapi.yaml.
+ // For 'laravel' docs, it will be generated to storage/app/scribe/openapi.yaml.
+ // Setting `laravel.add_routes` to true (above) will also add a route for the spec.
+ "openapi" => [
+ "enabled" => true,
+
+ "overrides" => [],
+ ],
+
+ "groups" => [
+ // Endpoints which don't have a @group will be placed in this default group.
+ "default" => "Endpoints",
+
+ // By default, Scribe will sort groups alphabetically, and endpoints in the order their routes are defined.
+ // You can override this by listing the groups, subgroups and endpoints here in the order you want them.
+ // See https://scribe.knuckles.wtf/blog/laravel-v4#easier-sorting and https://scribe.knuckles.wtf/laravel/reference/config#order for details
+ "order" => [],
+ ],
+
+ // Custom logo path. This will be used as the value of the src attribute for the tag,
+ // so make sure it points to an accessible URL or path. Set to false to not use a logo.
+ // For example, if your logo is in public/img:
+ // - 'logo' => '../img/logo.png' // for `static` type (output folder is public/docs)
+ // - 'logo' => 'img/logo.png' // for `laravel` type
+ "logo" => false,
+
+ // Customize the "Last updated" value displayed in the docs by specifying tokens and formats.
+ // - {date:F j Y} => March 28, 2022
+ // - {git:short} => Short hash of the last Git commit
+ // Available tokens are `{date:}` and `{git:}`.
+ // The format you pass to `date` will be passed to PHP's `date()` function.
+ // The format you pass to `git` can be either "short" or "long".
+ "last_updated" => "Last updated: {date:F j, Y}",
+
+ "examples" => [
+ // Set this to any number (e.g. 1234) to generate the same example values for parameters on each run,
+ "faker_seed" => null,
+
+ // With API resources and transformers, Scribe tries to generate example models to use in your API responses.
+ // By default, Scribe will try the model's factory, and if that fails, try fetching the first from the database.
+ // You can reorder or remove strategies here.
+ "models_source" => ["factoryCreate", "factoryMake", "databaseFirst"],
+ ],
+
+ // The strategies Scribe will use to extract information about your routes at each stage.
+ // If you create or install a custom strategy, add it here.
+ "strategies" => [
+ "metadata" => [
+ Strategies\Metadata\GetFromDocBlocks::class,
+ Strategies\Metadata\GetFromMetadataAttributes::class,
+ ],
+ "urlParameters" => [
+ Strategies\UrlParameters\GetFromLaravelAPI::class,
+ Strategies\UrlParameters\GetFromUrlParamAttribute::class,
+ Strategies\UrlParameters\GetFromUrlParamTag::class,
+ ],
+ "queryParameters" => [
+ Strategies\QueryParameters\GetFromFormRequest::class,
+ Strategies\QueryParameters\GetFromInlineValidator::class,
+ Strategies\QueryParameters\GetFromQueryParamAttribute::class,
+ Strategies\QueryParameters\GetFromQueryParamTag::class,
+ ],
+ "headers" => [
+ Strategies\Headers\GetFromHeaderAttribute::class,
+ Strategies\Headers\GetFromHeaderTag::class,
+ [
+ "override",
+ [
+ "Content-Type" => "application/json",
+ "Accept" => "application/json",
+ ],
+ ],
+ ],
+ "bodyParameters" => [
+ Strategies\BodyParameters\GetFromFormRequest::class,
+ Strategies\BodyParameters\GetFromInlineValidator::class,
+ Strategies\BodyParameters\GetFromBodyParamAttribute::class,
+ Strategies\BodyParameters\GetFromBodyParamTag::class,
+ ],
+ "responses" => [
+ Strategies\Responses\UseResponseAttributes::class,
+ Strategies\Responses\UseTransformerTags::class,
+ Strategies\Responses\UseApiResourceTags::class,
+ Strategies\Responses\UseResponseTag::class,
+ Strategies\Responses\UseResponseFileTag::class,
+ [
+ Strategies\Responses\ResponseCalls::class,
+ [
+ "only" => ["GET *"],
+ // Disable debug mode when generating response calls to avoid error stack traces in responses
+ "config" => [
+ "app.debug" => false,
+ ],
+ ],
+ ],
+ ],
+ "responseFields" => [
+ Strategies\ResponseFields\GetFromResponseFieldAttribute::class,
+ Strategies\ResponseFields\GetFromResponseFieldTag::class,
+ ],
+ ],
+
+ // For response calls, API resource responses and transformer responses,
+ // Scribe will try to start database transactions, so no changes are persisted to your database.
+ // Tell Scribe which connections should be transacted here. If you only use one db connection, you can leave this as is.
+ "database_connections_to_transact" => [config("database.default")],
+
+ "fractal" => [
+ // If you are using a custom serializer with league/fractal, you can specify it here.
+ "serializer" => null,
+ ],
+
+ "routeMatcher" => RouteMatcher::class,
+];
diff --git a/Backend/database/migrations/2024_10_16_105416_create_kebabs_table.php b/Backend/database/migrations/2024_10_16_105416_create_kebabs_table.php
index 9021e15..b87f30a 100644
--- a/Backend/database/migrations/2024_10_16_105416_create_kebabs_table.php
+++ b/Backend/database/migrations/2024_10_16_105416_create_kebabs_table.php
@@ -15,19 +15,18 @@ public function up(): void
$table->string("name");
$table->string("address");
$table->json("coordinates");
- $table->json("sauces");
- $table->json("meats");
+ $table->json("sauces")->nullable();
+ $table->json("meats")->nullable();
$table->enum("status", ["exists", "closed", "planned"]);
- $table->json("opening_hours");
+ $table->json("opening_hours")->nullable();
$table->year("opening_year")->nullable();
$table->year("closing_year")->nullable();
$table->boolean("is_crafted");
$table->boolean("is_premises");
$table->boolean("is_chainstore");
- $table->json("ordering_options");
+ $table->json("ordering_options")->nullable();
$table->json("comments")->nullable();
- $table->float("google_reviews", 2, 1)->nullable();
- $table->float("pysznepl_reviews", 2, 1)->nullable();
+ $table->json("pages");
$table->timestamps();
});
}
diff --git a/Backend/database/seeders/KebabSeeder.php b/Backend/database/seeders/KebabSeeder.php
new file mode 100644
index 0000000..59c286d
--- /dev/null
+++ b/Backend/database/seeders/KebabSeeder.php
@@ -0,0 +1,569 @@
+insert([
+ [
+ "logo" => file_get_contents(public_path("Logo/Stambuł.png")),
+ "name" => "Stambuł Kebab",
+ "address" => "Chojnowska 21A",
+ "coordinates" => json_encode(["lat" => 51.207187, "lng" => 16.156937]),
+ "sauces" => json_encode(["łagodny", "ostry", "mieszany", "czosnek", "ziołowy"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "11:00-23:00",
+ "tuesday" => "11:00-23:00",
+ "wednesday" => "11:00-23:00",
+ "thursday" => "11:00-23:00",
+ "friday" => "11:00-01:00",
+ "saturday" => "11:00-01:00",
+ "sunday" => "12:00-23:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["pyszne.pl" => "https://www.pyszne.pl/menu/kebab-stambul-legnica-gwarna"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Rulo.png")),
+ "name" => "Rulo Kebab",
+ "address" => "Nowy Świat",
+ "coordinates" => json_encode(["lat" => 51.205062, "lng" => 16.154562]),
+ "sauces" => json_encode(["łagodny", "arabski", "ostry", "mieszany"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane"]),
+ "status" => "closed",
+ "opening_hours" => json_encode([]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => false,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode([]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Bafra.png")),
+ "name" => "Bafra Kebab Złotoryjska",
+ "address" => "Złotoryjska 170 ",
+ "coordinates" => json_encode(["lat" => 51.192937, "lng" => 16.128937]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "11:00-23:00",
+ "tuesday" => "11:00-23:00",
+ "wednesday" => "11:00-23:00",
+ "thursday" => "11:00-23:00",
+ "friday" => "11:00-01:00",
+ "saturday" => "11:00-01:00",
+ "sunday" => "12:00-23:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => false,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/bafra-kebab-zlotoryjska/", "pyszne.pl" => "https://www.pyszne.pl/menu/bafra-kebab-zlotoryjska"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Cyrus.png")),
+ "name" => "Cyrus Kebab",
+ "address" => "Rynek 20 ",
+ "coordinates" => json_encode(["lat" => 51.207937, "lng" => 16.161062]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-22:00",
+ "tuesday" => "10:00-22:00",
+ "wednesday" => "10:00-22:00",
+ "thursday" => "10:00-22:00",
+ "friday" => "10:00-00:00",
+ "saturday" => "10:00-00:00",
+ "sunday" => "10:00-22:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["self" => "https://www.cyrus.pl"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Leo.png")),
+ "name" => "Leo Kebab",
+ "address" => "Jaworzyńska 4",
+ "coordinates" => json_encode(["lat" => 51.204437, "lng" => 16.159937]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel", "kapsalon"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-00:00",
+ "tuesday" => "10:00-00:00",
+ "wednesday" => "10:00-00:00",
+ "thursday" => "10:00-00:00",
+ "friday" => "10:00-00:00",
+ "saturday" => "10:00-00:00",
+ "sunday" => "10:00-00:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/leo-kebab-legnica-lga/", "pyszne.pl" => "https://www.pyszne.pl/menu/leo-kebab-and-grill"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Zahir.png")),
+ "name" => "Zahir Kebab",
+ "address" => "Jaworzyńska 8",
+ "coordinates" => json_encode(["lat" => 51.204187, "lng" => 16.160187]),
+ "sauces" => json_encode(["łagodny", "ostry", "mieszany", "czosnkowy", "ketchup", "bbq", "koperkowy"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-23:00",
+ "tuesday" => "10:00-23:00",
+ "wednesday" => "10:00-23:00",
+ "thursday" => "10:00-23:00",
+ "friday" => "10:00-23:00",
+ "saturday" => "10:00-23:00",
+ "sunday" => "10:00-23:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/zahir-kebab-lga/", "pyszne.pl" => "https://www.pyszne.pl/menu/zahir-kebab-jaworzynska"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Piri.png")),
+ "name" => "Piri Piri Kebab",
+ "address" => "Szkolna 1",
+ "coordinates" => json_encode(["lat" => 51.204187, "lng" => 16.160688]),
+ "sauces" => json_encode([
+ "łagodny",
+ "ostry",
+ "mieszany",
+ "miodowo-musztardowy",
+ "sriracha mayo",
+ "czosnkowy",
+ "ziołowy",
+ "salsa verde",
+ ]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel", "kapsalon"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "11:00-22:00",
+ "tuesday" => "11:00-22:00",
+ "wednesday" => "11:00-22:00",
+ "thursday" => "11:00-22:00",
+ "friday" => "11:00-23:00",
+ "saturday" => "11:00-23:00",
+ "sunday" => "12:00-22:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/piri-piri-kebab-legnica-lga/", "pyszne.pl" => "https://www.pyszne.pl/menu/kebab-piri-piri-szkolna"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Dino.png")),
+ "name" => "Dino Kebab",
+ "address" => "Jaworzyńska 41",
+ "coordinates" => json_encode(["lat" => 51.200688, "lng" => 16.159438]),
+ "sauces" => json_encode(["łagodny", "ostry", "mieszany"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel", "kapsalon"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "tuesday" => "11:00-22:00",
+ "wednesday" => "11:00-22:00",
+ "thursday" => "11:00-22:00",
+ "friday" => "11:00-22:00",
+ "saturday" => "12:00-22:00",
+ "sunday" => "12:00-22:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/dino-kebab1-lga/", "pyszne.pl" => "https://www.pyszne.pl/menu/kebab-dino"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Zahir.png")),
+ "name" => "Zahir Kebab",
+ "address" => "Kolejowa 3 ",
+ "coordinates" => json_encode(["lat" => 51.212312, "lng" => 16.168687]),
+ "sauces" => json_encode(["łagodny", "ostry", "mieszany", "czosnkowy", "ketchup", "bbq", "koperkowy"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-00:00",
+ "tuesday" => "10:00-00:00",
+ "wednesday" => "10:00-00:00",
+ "thursday" => "10:00-00:00",
+ "friday" => "10:00-02:00",
+ "saturday" => "10:00-02:00",
+ "sunday" => "11:00-00:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/zahir-kebab-lga/", "pyszne.pl" => "https://www.pyszne.pl/menu/zahir-kebab-legnica-kolejowa"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Lara.png")),
+ "name" => "Lara Doner Kebab",
+ "address" => "Wrocławska 13 ",
+ "coordinates" => json_encode(["lat" => 51.209563, "lng" => 16.167813]),
+ "sauces" => json_encode(["łagodny", "ostry", "mieszany", "czosnkowy", "ziołowy"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-22:00",
+ "tuesday" => "10:00-22:00",
+ "wednesday" => "10:00-22:00",
+ "thursday" => "10:00-22:00",
+ "friday" => "10:00-22:00",
+ "saturday" => "10:00-22:00",
+ "sunday" => "10:00-22:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/pl/legnica/lara-doner-kebab-lga/"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Karmnik.png")),
+ "name" => "Karmnik Kebab",
+ "address" => "Wrocławska 1",
+ "coordinates" => json_encode(["lat" => 51.209688, "lng" => 16.168563]),
+ "sauces" => json_encode(["łagodny", "ostry", "mieszany"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane"]),
+ "status" => "closed",
+ "opening_hours" => json_encode([]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode([]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Mix.png")),
+ "name" => "MIX Kebab",
+ "address" => "Wrocławska 23a",
+ "coordinates" => json_encode(["lat" => 51.209187, "lng" => 16.169313]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "11:00-21:00",
+ "tuesday" => "11:00-21:00",
+ "wednesday" => "11:00-21:00",
+ "thursday" => "11:00-21:00",
+ "friday" => "11:00-21:00",
+ "saturday" => "12:00-21:00",
+ "sunday" => "12:00-21:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["pyszne.pl" => "https://www.pyszne.pl/menu/mix-kebab-legnica"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Hallo.png")),
+ "name" => "Hallo Kebap",
+ "address" => "Stefana Czarnieckiego 19c",
+ "coordinates" => json_encode(["lat" => 51.211687, "lng" => 16.175187]),
+ "sauces" => json_encode(["ostry", "czosnkowy", "jogurtowy", "ketchup"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "wednesday" => "12:00-20:00",
+ "thursday" => "12:00-20:00",
+ "friday" => "12:00-21:00",
+ "saturday" => "12:00-21:00",
+ "sunday" => "12:00-21:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["pyszne.pl" => "https://www.pyszne.pl/menu/hallo-kebap-legnica"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/HadFood.png")),
+ "name" => "Had Food",
+ "address" => "Fabryczna 13 ",
+ "coordinates" => json_encode(["lat" => 51.206812, "lng" => 16.178688]),
+ "sauces" => json_encode(["ketchup", "czosnkowy", "łagodny", "pikantny"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "12:00-22:00",
+ "tuesday" => "12:00-22:00",
+ "wednesday" => "12:00-22:00",
+ "thursday" => "12:00-22:00",
+ "friday" => "12:00-23:00",
+ "saturday" => "12:00-23:00",
+ "sunday" => "12:00-21:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["pyszne.pl" => "https://www.pyszne.pl/menu/had-food"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/AmAm.png")),
+ "name" => "Am Am Kebab",
+ "address" => "Wrocławska 155",
+ "coordinates" => json_encode(["lat" => 51.209563, "lng" => 16.187063]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-20:00",
+ "tuesday" => "10:00-20:00",
+ "wednesday" => "10:00-20:00",
+ "thursday" => "10:00-20:00",
+ "friday" => "10:00-20:00",
+ "saturday" => "10:00-20:00",
+ "sunday" => "11:00-20:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => false,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode([
+ "pyszne.pl" => "https://www.pyszne.pl/menu/am-am-kebab-legnica-wroclawska",
+ ]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Bejrut.png")),
+ "name" => "Bejrut Restauracja Libańska",
+ "address" => "aleja Piłsudskiego 18",
+ "coordinates" => json_encode(["lat" => 51.205188, "lng" => 16.185313]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry", "czosnkowy"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-00:00",
+ "tuesday" => "10:00-00:00",
+ "wednesday" => "10:00-00:00",
+ "thursday" => "10:00-00:00",
+ "friday" => "10:00-02:00",
+ "saturday" => "10:00-02:00",
+ "sunday" => "10:00-00:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => true,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://www.pyszne.pl/menu/bejrut-restauracja-libanska-legnica", "pyszne.pl" => "https://glovoapp.com/pl/pl/legnica/bejrut-restauracja-libanska-lga/"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/King.png")),
+ "name" => "King House Kebab",
+ "address" => "aleja Piłsudskiego 38",
+ "coordinates" => json_encode(["lat" => 51.204563, "lng" => 16.188562]),
+ "sauces" => json_encode(["łagodny", "mieszany", "ostry", "czosnkowy", "ketchup", "bbq"]),
+ "meats" => json_encode(["kurczak", "wołowina", "mieszane", "falafel"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "tuesday" => "12:00-21:30",
+ "wednesday" => "12:00-21:30",
+ "thursday" => "12:00-21:30",
+ "friday" => "12:00-22:00",
+ "saturday" => "12:00-22:00",
+ "sunday" => "12:00-21:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => true,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode([
+ "pyszne.pl" => "https://www.pyszne.pl/menu/king-house-kebab-legnica",
+ "glovo" => "https://glovoapp.com/pl/pl/legnica/king-house-kebab-lga/",
+ ]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => null,
+ "name" => "Kavovarka Kebab Kraft",
+ "address" => "Górnicza 10B ",
+ "coordinates" => json_encode(["lat" => 51.205562, "lng" => 16.186563]),
+ "sauces" => json_encode(["łagodny", "ostry", "czosnkowy"]),
+ "meats" => json_encode(["kurczak", "wieprzowina", "kraftowy"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "12:00-21:00",
+ "tuesday" => "12:00-21:00",
+ "wednesday" => "12:00-21:00",
+ "thursday" => "12:00-21:00",
+ "friday" => "12:00-21:00",
+ "saturday" => "12:00-21:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => false,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos", "dostawa"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode(["glovo" => "https://glovoapp.com/pl/en/legnica/kavovarka-lga/"]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => null,
+ "name" => "Kebab Truck",
+ "address" => "Iwaszkiewicza 1",
+ "coordinates" => json_encode(["lat" => 51.207937, "lng" => 16.213437]),
+ "sauces" => json_encode(["czosnkowy", "ziołowy", "ostry", "turecki"]),
+ "meats" => json_encode(["kurczak", "mieszane"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "10:00-19:00",
+ "tuesday" => "10:00-19:00",
+ "wednesday" => "10:00-19:00",
+ "thursday" => "10:00-19:00",
+ "friday" => "10:00-19:00",
+ "saturday" => "10:00-19:00",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => false,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode([]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ [
+ "logo" => file_get_contents(public_path("Logo/Maxi.png")),
+ "name" => "Maxi Kebab",
+ "address" => "Carrefour, aleja Piłsudskiego 84",
+ "coordinates" => json_encode(["lat" => 51.201062, "lng" => 16.214813]),
+ "sauces" => json_encode(["łagodny", "czosnkowy", "miętowy", "ostry", "mieszany", "musztardowy"]),
+ "meats" => json_encode(["kurczak", "baran", "mieszane"]),
+ "status" => "exists",
+ "opening_hours" => json_encode([
+ "monday" => "11:30-20:00",
+ "tuesday" => "11:30-20:00",
+ "wednesday" => "11:30-20:00",
+ "thursday" => "11:30-20:00",
+ "friday" => "11:30-20:00",
+ "saturday" => "11:30-20:00",
+ "sunday" => "zamknięte",
+ ]),
+ "opening_year" => null,
+ "closing_year" => null,
+ "is_crafted" => true,
+ "is_premises" => false,
+ "is_chainstore" => false,
+ "ordering_options" => json_encode(["na miejscu", "na wynos"]),
+ "comments" => json_encode([]),
+ "pages" => json_encode([]),
+ "created_at" => now(),
+ "updated_at" => now(),
+ ],
+ ]);
+ }
+}
diff --git a/Backend/phpunit.xml b/Backend/phpunit.xml
index e82d960..a33e25d 100644
--- a/Backend/phpunit.xml
+++ b/Backend/phpunit.xml
@@ -11,6 +11,9 @@
tests/Feature
+
+ tests/Arch
+
diff --git a/Backend/public/Logo/AmAm.png b/Backend/public/Logo/AmAm.png
new file mode 100644
index 0000000..7c7c640
Binary files /dev/null and b/Backend/public/Logo/AmAm.png differ
diff --git a/Backend/public/Logo/Bafra.png b/Backend/public/Logo/Bafra.png
new file mode 100644
index 0000000..bbb2e1b
Binary files /dev/null and b/Backend/public/Logo/Bafra.png differ
diff --git a/Backend/public/Logo/Bejrut.png b/Backend/public/Logo/Bejrut.png
new file mode 100644
index 0000000..02b5ff7
Binary files /dev/null and b/Backend/public/Logo/Bejrut.png differ
diff --git a/Backend/public/Logo/Cyrus.png b/Backend/public/Logo/Cyrus.png
new file mode 100644
index 0000000..57336d8
Binary files /dev/null and b/Backend/public/Logo/Cyrus.png differ
diff --git a/Backend/public/Logo/Dino.png b/Backend/public/Logo/Dino.png
new file mode 100644
index 0000000..1dd847a
Binary files /dev/null and b/Backend/public/Logo/Dino.png differ
diff --git a/Backend/public/Logo/HadFood.png b/Backend/public/Logo/HadFood.png
new file mode 100644
index 0000000..6db7b3d
Binary files /dev/null and b/Backend/public/Logo/HadFood.png differ
diff --git a/Backend/public/Logo/Hallo.png b/Backend/public/Logo/Hallo.png
new file mode 100644
index 0000000..0aa11d0
Binary files /dev/null and b/Backend/public/Logo/Hallo.png differ
diff --git a/Backend/public/Logo/Karmnik.png b/Backend/public/Logo/Karmnik.png
new file mode 100644
index 0000000..5f1bcc7
Binary files /dev/null and b/Backend/public/Logo/Karmnik.png differ
diff --git a/Backend/public/Logo/King.png b/Backend/public/Logo/King.png
new file mode 100644
index 0000000..ff3f071
Binary files /dev/null and b/Backend/public/Logo/King.png differ
diff --git a/Backend/public/Logo/Lara.png b/Backend/public/Logo/Lara.png
new file mode 100644
index 0000000..42e98b7
Binary files /dev/null and b/Backend/public/Logo/Lara.png differ
diff --git a/Backend/public/Logo/Leo.png b/Backend/public/Logo/Leo.png
new file mode 100644
index 0000000..7265581
Binary files /dev/null and b/Backend/public/Logo/Leo.png differ
diff --git a/Backend/public/Logo/Maxi.png b/Backend/public/Logo/Maxi.png
new file mode 100644
index 0000000..c79b90b
Binary files /dev/null and b/Backend/public/Logo/Maxi.png differ
diff --git a/Backend/public/Logo/Mix.png b/Backend/public/Logo/Mix.png
new file mode 100644
index 0000000..0755a38
Binary files /dev/null and b/Backend/public/Logo/Mix.png differ
diff --git a/Backend/public/Logo/Piri.png b/Backend/public/Logo/Piri.png
new file mode 100644
index 0000000..f9ca21d
Binary files /dev/null and b/Backend/public/Logo/Piri.png differ
diff --git a/Backend/public/Logo/Rulo.png b/Backend/public/Logo/Rulo.png
new file mode 100644
index 0000000..beb7b0b
Binary files /dev/null and b/Backend/public/Logo/Rulo.png differ
diff --git "a/Backend/public/Logo/Stambu\305\202.png" "b/Backend/public/Logo/Stambu\305\202.png"
new file mode 100644
index 0000000..eb78dc8
Binary files /dev/null and "b/Backend/public/Logo/Stambu\305\202.png" differ
diff --git a/Backend/public/Logo/Zahir.png b/Backend/public/Logo/Zahir.png
new file mode 100644
index 0000000..0041db0
Binary files /dev/null and b/Backend/public/Logo/Zahir.png differ
diff --git a/Backend/public/docs/collection.json b/Backend/public/docs/collection.json
new file mode 100644
index 0000000..a8be117
--- /dev/null
+++ b/Backend/public/docs/collection.json
@@ -0,0 +1,1811 @@
+{
+ "variable": [
+ {
+ "id": "baseUrl",
+ "key": "baseUrl",
+ "type": "string",
+ "name": "string",
+ "value": "https:\/\/sponge-climbing-adder.ngrok-free.app\/api\/documentation"
+ }
+ ],
+ "info": {
+ "name": "Kebab Api",
+ "_postman_id": "4177ef49-775d-4e41-998b-cd8601493769",
+ "description": "",
+ "schema": "https:\/\/schema.getpostman.com\/json\/collection\/v2.1.0\/collection.json"
+ },
+ "item": [
+ {
+ "name": "Auth",
+ "description": "*",
+ "item": [
+ {
+ "name": "POST api\/register",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/register",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/register"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"name\":\"aspernatur\",\"email\":\"jamison69@example.org\",\"password\":\"ut\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/login",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/login",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/login"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"email\":\"kamryn22@example.com\",\"password\":\"at\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/logout",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/logout",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/logout"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ }
+ ]
+ },
+ {
+ "name": "Endpoints",
+ "description": "",
+ "item": [
+ {
+ "name": "GET api\/documentation",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/documentation",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/documentation"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/documentation could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Kebab",
+ "description": "*",
+ "item": [
+ {
+ "name": "GET api\/kebabs",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/kebabs could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/comments",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/comments",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/comments",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "unde",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"id_user\":7,\"comment\":\"itaque\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/comments",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/comments",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/comments",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "voluptatem",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"id_user\":18,\"comment\":\"deserunt\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/addKebab",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/addKebab",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/addKebab"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"logo\":\"ut\",\"name\":\"perferendis\",\"address\":\"vel\",\"coordinates\":\"nisi\",\"sauces\":\"at\",\"meats\":\"ullam\",\"status\":\"perferendis\",\"opening_hours\":\"perspiciatis\",\"opening_year\":\"deleniti\",\"closing_year\":\"accusantium\",\"is_crafted\":\"placeat\",\"is_premises\":\"minus\",\"is_chainstore\":\"aut\",\"ordering_options\":\"voluptas\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "adipisci",
+ "description": "The ID of the kebab."
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/logo",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/logo",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/logo",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "quia",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/name",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/name",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/name",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "consequuntur",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"name\":\"quidem\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/address",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/address",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/address",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "ab",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"address\":\"huxswcermiukedcsywurinn\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/coordinates",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/coordinates",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/coordinates",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "eaque",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"coordinates\":[]}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/sauce",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/sauce",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/sauce",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "laboriosam",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"sauce\":\"nostrum\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/sauce",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/sauce",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/sauce",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "necessitatibus",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"sauce\":\"dolore\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/meat",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/meat",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/meat",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "facere",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"meat\":\"voluptatibus\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/meat",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/meat",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/meat",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "ratione",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"meat\":\"eos\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/status",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/status",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/status",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "quas",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"status\":\"exists\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/opening-hours",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-hours",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-hours",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "est",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"day\":\"saturday\",\"hours\":\"quis\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/opening-hours",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-hours",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-hours",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "omnis",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"day\":\"monday\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/opening-hours",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-hours",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-hours",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "qui",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"day\":\"sunday\",\"hours\":\"explicabo\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/opening-year",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/opening-year",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/opening-year",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "recusandae",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"opening_year\":\"6167\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/closing-year",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/closing-year",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/closing-year",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "voluptatem",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"closing_year\":\"2621\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/is-crafted",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/is-crafted",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/is-crafted",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "vel",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"is_crafted\":true}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/is-premises",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/is-premises",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/is-premises",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "laudantium",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"is_premises\":false}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/kebabs\/{kebabId}\/is-chainstore",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/is-chainstore",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/is-chainstore",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "ea",
+ "description": ""
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"is_chainstore\":false}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/ordering-options",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/ordering-options",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/ordering-options",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "reprehenderit",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"new_option\":\"nesciunt\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/ordering-options",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/ordering-options",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/ordering-options",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "assumenda",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"option_to_remove\":\"est\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/kebabs\/{kebabId}\/pages",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/pages",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/pages",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "consectetur",
+ "description": ""
+ }
+ ]
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"new_page\":\"explicabo\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/kebabs\/{kebabId}\/pages",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/kebabs\/:kebabId\/pages",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/kebabs\/:kebabId\/pages",
+ "variable": [
+ {
+ "id": "kebabId",
+ "key": "kebabId",
+ "value": "ad",
+ "description": ""
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"page_to_remove\":\"corporis\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ }
+ ]
+ },
+ {
+ "name": "KebabScraper",
+ "description": "*",
+ "item": [
+ {
+ "name": "GET api\/scrape-reviews",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/scrape-reviews",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/scrape-reviews"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/scrape-reviews could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Suggestions",
+ "description": "*",
+ "item": [
+ {
+ "name": "POST api\/suggestions",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/suggestions",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/suggestions"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"user\":\"yhyrnmamtgxprtslmownvg\",\"contents\":\"vmtnljhahaj\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "GET api\/suggestions",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/suggestions",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/suggestions"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/suggestions could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "DELETE api\/suggestions\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/suggestions\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/suggestions\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "magni",
+ "description": "The ID of the suggestion."
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ }
+ ]
+ },
+ {
+ "name": "Users",
+ "description": "*",
+ "item": [
+ {
+ "name": "GET api\/getCurrentUser",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/getCurrentUser",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/getCurrentUser"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/getCurrentUser could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "GET api\/fav\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/fav\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/fav\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "veritatis",
+ "description": "The ID of the fav."
+ }
+ ]
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/fav\/veritatis could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "POST api\/addfav",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/addfav",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/addfav"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"user_id\":\"eum\",\"kebab_id\":\"quia\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "POST api\/remfav",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/remfav",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/remfav"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"user_id\":\"quas\",\"kebab_id\":\"quia\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changeName\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changeName\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changeName\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "facilis",
+ "description": "The ID of the changeName."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"newName\":\"nobis\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changePassword\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changePassword\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changePassword\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "laborum",
+ "description": "The ID of the changePassword."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"newPassword\":\"quas\",\"confirmPassword\":\"rerum\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changeEmail\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changeEmail\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changeEmail\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "commodi",
+ "description": "The ID of the changeEmail."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"newEmail\":\"shanie84@example.org\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "PUT api\/changeUserRole\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/changeUserRole\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/changeUserRole\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "atque",
+ "description": "The ID of the changeUserRole."
+ }
+ ]
+ },
+ "method": "PUT",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"isAdmin\":false}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "DELETE api\/deleteUser\/{id}",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/deleteUser\/:id",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/deleteUser\/:id",
+ "variable": [
+ {
+ "id": "id",
+ "key": "id",
+ "value": "ut",
+ "description": "The ID of the deleteUser."
+ }
+ ]
+ },
+ "method": "DELETE",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ },
+ {
+ "name": "GET api\/getAllUsers",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/getAllUsers",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/getAllUsers"
+ },
+ "method": "GET",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": null,
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": [
+ {
+ "header": [
+ {
+ "key": "cache-control",
+ "value": "no-cache, private"
+ },
+ {
+ "key": "content-type",
+ "value": "application\/json"
+ },
+ {
+ "key": "vary",
+ "value": "Origin"
+ }
+ ],
+ "code": 404,
+ "body": "{\n \"message\": \"The route api\/getAllUsers could not be found.\"\n}",
+ "name": ""
+ }
+ ]
+ },
+ {
+ "name": "POST api\/addNewUser",
+ "request": {
+ "url": {
+ "host": "{{baseUrl}}",
+ "path": "api\/addNewUser",
+ "query": [],
+ "raw": "{{baseUrl}}\/api\/addNewUser"
+ },
+ "method": "POST",
+ "header": [
+ {
+ "key": "Content-Type",
+ "value": "application\/json"
+ },
+ {
+ "key": "Accept",
+ "value": "application\/json"
+ }
+ ],
+ "body": {
+ "mode": "raw",
+ "raw": "{\"name\":\"ut\",\"email\":\"moconnell@example.com\",\"password\":\"est\"}"
+ },
+ "description": "",
+ "auth": {
+ "type": "noauth"
+ }
+ },
+ "response": []
+ }
+ ]
+ }
+ ],
+ "auth": {
+ "type": "bearer",
+ "bearer": [
+ {
+ "key": "Authorization",
+ "type": "string"
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/Backend/public/docs/css/theme-default.print.css b/Backend/public/docs/css/theme-default.print.css
new file mode 100644
index 0000000..18ab760
--- /dev/null
+++ b/Backend/public/docs/css/theme-default.print.css
@@ -0,0 +1,393 @@
+/* Copied from https://github.com/slatedocs/slate/blob/c4b4c0b8f83e891ca9fab6bbe9a1a88d5fe41292/stylesheets/print.css and unminified */
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%
+}
+
+body {
+ margin: 0
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0
+}
+
+[hidden],
+template {
+ display: none
+}
+
+a {
+ background-color: transparent
+}
+
+a:active,
+a:hover {
+ outline: 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b,
+strong {
+ font-weight: bold
+}
+
+dfn {
+ font-style: italic
+}
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0
+}
+
+mark {
+ background: #ff0;
+ color: #000
+}
+
+small {
+ font-size: 80%
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+}
+
+sup {
+ top: -0.5em
+}
+
+sub {
+ bottom: -0.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+figure {
+ margin: 1em 40px
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0
+}
+
+pre {
+ overflow: auto
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+}
+
+button {
+ overflow: visible
+}
+
+button,
+select {
+ text-transform: none
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+input {
+ line-height: normal
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto
+}
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto
+}
+
+optgroup {
+ font-weight: bold
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+td,
+th {
+ padding: 0
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+body {
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
+ font-size: 14px
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4 {
+ font-weight: bold
+}
+
+.content pre,
+.content code {
+ font-family: Consolas, Menlo, Monaco, "Lucida Console", "Liberation Mono", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Courier New", monospace, serif;
+ font-size: 12px;
+ line-height: 1.5
+}
+
+.content pre,
+.content code {
+ word-break: break-all;
+ -webkit-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto
+}
+
+@font-face {
+ font-family: 'slate';
+ src: url(../fonts/slate.eot?-syv14m);
+ src: url(../fonts/slate.eot?#iefix-syv14m) format("embedded-opentype"), url(../fonts/slate.woff2?-syv14m) format("woff2"), url(../fonts/slate.woff?-syv14m) format("woff"), url(../fonts/slate.ttf?-syv14m) format("truetype"), url(../fonts/slate.svg?-syv14m#slate) format("svg");
+ font-weight: normal;
+ font-style: normal
+}
+
+.content aside.warning:before,
+.content aside.notice:before,
+.content aside.success:before {
+ font-family: 'slate';
+ speak: none;
+ font-style: normal;
+ font-weight: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1
+}
+
+.content aside.warning:before {
+ content: "\e600"
+}
+
+.content aside.notice:before {
+ content: "\e602"
+}
+
+.content aside.success:before {
+ content: "\e606"
+}
+
+.tocify,
+.toc-footer,
+.lang-selector,
+.search,
+#nav-button {
+ display: none
+}
+
+.tocify-wrapper>img {
+ margin: 0 auto;
+ display: block
+}
+
+.content {
+ font-size: 12px
+}
+
+.content pre,
+.content code {
+ border: 1px solid #999;
+ border-radius: 5px;
+ font-size: 0.8em
+}
+
+.content pre code {
+ border: 0
+}
+
+.content pre {
+ padding: 1.3em
+}
+
+.content code {
+ padding: 0.2em
+}
+
+.content table {
+ border: 1px solid #999
+}
+
+.content table tr {
+ border-bottom: 1px solid #999
+}
+
+.content table td,
+.content table th {
+ padding: 0.7em
+}
+
+.content p {
+ line-height: 1.5
+}
+
+.content a {
+ text-decoration: none;
+ color: #000
+}
+
+.content h1 {
+ font-size: 2.5em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ margin-top: 1em;
+ margin-bottom: 21px;
+ border: 2px solid #ccc;
+ border-width: 2px 0;
+ text-align: center
+}
+
+.content h2 {
+ font-size: 1.8em;
+ margin-top: 2em;
+ border-top: 2px solid #ccc;
+ padding-top: 0.8em
+}
+
+.content h1+h2,
+.content h1+div+h2 {
+ border-top: none;
+ padding-top: 0;
+ margin-top: 0
+}
+
+.content h3,
+.content h4 {
+ font-size: 0.8em;
+ margin-top: 1.5em;
+ margin-bottom: 0.8em;
+ text-transform: uppercase
+}
+
+.content h5,
+.content h6 {
+ text-transform: uppercase
+}
+
+.content aside {
+ padding: 1em;
+ border: 1px solid #ccc;
+ border-radius: 5px;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ line-height: 1.6
+}
+
+.content aside:before {
+ vertical-align: middle;
+ padding-right: 0.5em;
+ font-size: 14px
+}
diff --git a/Backend/public/docs/css/theme-default.style.css b/Backend/public/docs/css/theme-default.style.css
new file mode 100644
index 0000000..9a4741c
--- /dev/null
+++ b/Backend/public/docs/css/theme-default.style.css
@@ -0,0 +1,1090 @@
+/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+
+html {
+ font-family: 'Open Sans', sans-serif;
+ font-size: 1.2em;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%
+}
+
+body {
+ margin: 0
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section {
+ display: block
+}
+
+summary {
+ cursor: pointer;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0
+}
+
+[hidden],
+template {
+ display: none
+}
+
+a {
+ background-color: transparent
+}
+
+a:active,
+a:hover {
+ outline: 0
+}
+
+abbr[title] {
+ border-bottom: 1px dotted
+}
+
+b,
+strong {
+ font-weight: 700
+}
+
+dfn {
+ font-style: italic
+}
+
+h1 {
+ font-size: 2em;
+ margin: .67em 0
+}
+
+mark {
+ background: #ff0;
+ color: #000
+}
+
+small {
+ font-size: 80%
+}
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline
+}
+
+sup {
+ top: -.5em
+}
+
+sub {
+ bottom: -.25em
+}
+
+img {
+ border: 0
+}
+
+svg:not(:root) {
+ overflow: hidden
+}
+
+figure {
+ margin: 1em 40px
+}
+
+hr {
+ box-sizing: content-box;
+ height: 0
+}
+
+pre {
+ overflow: auto
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0
+}
+
+button {
+ overflow: visible
+}
+
+button,
+select {
+ text-transform: none
+}
+
+button,
+html input[type=button],
+input[type=reset],
+input[type=submit] {
+ -webkit-appearance: button;
+ cursor: pointer
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default
+}
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0
+}
+
+input {
+ line-height: normal
+}
+
+input[type=checkbox],
+input[type=radio] {
+ box-sizing: border-box;
+ padding: 0
+}
+
+input[type=number]::-webkit-inner-spin-button,
+input[type=number]::-webkit-outer-spin-button {
+ height: auto
+}
+
+input[type=search] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box
+}
+
+input[type=search]::-webkit-search-cancel-button,
+input[type=search]::-webkit-search-decoration {
+ -webkit-appearance: none
+}
+
+fieldset {
+ border: 1px solid silver;
+ margin: 0 2px;
+ padding: .35em .625em .75em
+}
+
+legend {
+ border: 0;
+ padding: 0
+}
+
+textarea {
+ overflow: auto
+}
+
+optgroup {
+ font-weight: 700
+}
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0
+}
+
+td,
+th {
+ padding: 0
+}
+
+body,
+html {
+ font-family: 'Open Sans', Helvetica Neue, Helvetica, Arial, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif;
+ font-size: 16px;
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ font-family: 'Open Sans', Helvetica Neue, Helvetica, Arial, Microsoft Yahei, 微软雅黑, STXihei, 华文细黑, sans-serif;
+}
+
+.content h1,
+.content h2,
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ font-weight: 700
+}
+
+.content code,
+.content pre {
+ font-family: Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif;
+ font-size: 14px;
+ line-height: 1.5
+}
+
+.content code {
+ word-break: break-all;
+ word-break: break-word;
+ -webkit-hyphens: auto;
+ -ms-hyphens: auto;
+ hyphens: auto
+}
+
+.content aside.notice:before,
+.content aside.success:before,
+.content aside.warning:before,
+.tocify-wrapper>.search:before {
+ font-family: 'Open Sans', sans-serif;
+ speak: none;
+ font-style: normal;
+ font-variant: normal;
+ text-transform: none;
+ line-height: 1
+}
+
+.content aside.warning:before {
+ content: "✋"
+}
+
+.content aside.notice:before {
+ content: "ℹ"
+}
+
+.content aside.success:before {
+ content: "✅"
+}
+
+.tocify-wrapper>.search:before {
+ content: "🔎"
+}
+
+.highlight .c,
+.highlight .c1,
+.highlight .cm,
+.highlight .cs {
+ color: #909090
+}
+
+.highlight,
+.highlight .w {
+ background-color: #292929
+}
+
+.hljs {
+ display: block;
+ overflow-x: auto;
+ padding: .5em;
+ background: #23241f
+}
+
+.hljs,
+.hljs-subst,
+.hljs-tag {
+ color: #f8f8f2
+}
+
+.hljs-emphasis,
+.hljs-strong {
+ color: #a8a8a2
+}
+
+.hljs-bullet,
+.hljs-link,
+.hljs-literal,
+.hljs-number,
+.hljs-quote,
+.hljs-regexp {
+ color: #ae81ff
+}
+
+.hljs-code,
+.hljs-section,
+.hljs-selector-class,
+.hljs-title {
+ color: #a6e22e
+}
+
+.hljs-strong {
+ font-weight: 700
+}
+
+.hljs-emphasis {
+ font-style: italic
+}
+
+.hljs-attr,
+.hljs-keyword,
+.hljs-name,
+.hljs-selector-tag {
+ color: #f92672
+}
+
+.hljs-attribute,
+.hljs-symbol {
+ color: #66d9ef
+}
+
+.hljs-class .hljs-title,
+.hljs-params {
+ color: #f8f8f2
+}
+
+.hljs-addition,
+.hljs-built_in,
+.hljs-builtin-name,
+.hljs-selector-attr,
+.hljs-selector-id,
+.hljs-selector-pseudo,
+.hljs-string,
+.hljs-template-variable,
+.hljs-type,
+.hljs-variable {
+ color: #e6db74
+}
+
+.hljs-comment,
+.hljs-deletion,
+.hljs-meta {
+ color: #75715e
+}
+
+body,
+html {
+ color: #333;
+ padding: 0;
+ margin: 0;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ background-color: whitesmoke;
+ height: 100%;
+ -webkit-text-size-adjust: none
+}
+
+#toc>ul>li>a>span {
+ float: right;
+ background-color: #2484ff;
+ border-radius: 40px;
+ width: 20px
+}
+
+.tocify-wrapper {
+ transition: left .3s ease-in-out;
+ overflow-y: auto;
+ overflow-x: hidden;
+ position: fixed;
+ z-index: 30;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 230px;
+ background-color: #393939;
+ font-size: 13px;
+ font-weight: 700
+}
+
+.tocify-wrapper .lang-selector {
+ display: none
+}
+
+.tocify-wrapper .lang-selector a {
+ padding-top: .5em;
+ padding-bottom: .5em
+}
+
+.tocify-wrapper>img {
+ display: block
+}
+
+.tocify-wrapper>.search {
+ position: relative
+}
+
+.tocify-wrapper>.search input {
+ background: #393939;
+ border-width: 0 0 1px;
+ border-color: #666;
+ padding: 6px 0 6px 20px;
+ box-sizing: border-box;
+ margin: 10px 15px;
+ width: 200px;
+ outline: none;
+ color: #fff;
+ border-radius: 0
+}
+
+.tocify-wrapper>.search:before {
+ position: absolute;
+ top: 17px;
+ left: 15px;
+ color: #fff
+}
+
+.tocify-wrapper img+.tocify {
+ margin-top: 20px
+}
+
+.tocify-wrapper .search-results {
+ margin-top: 0;
+ box-sizing: border-box;
+ height: 0;
+ overflow-y: auto;
+ overflow-x: hidden;
+ transition-property: height, margin;
+ transition-duration: .18s;
+ transition-timing-function: ease-in-out;
+ background: linear-gradient(180deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(180deg, #000, transparent 1.5px), linear-gradient(0deg, #939393, hsla(0, 0%, 58%, 0) 1.5px), #262626
+}
+
+.tocify-wrapper .search-results.visible {
+ height: 30%;
+ margin-bottom: 1em
+}
+
+.tocify-wrapper .search-results li {
+ margin: 1em 15px;
+ line-height: 1
+}
+
+.tocify-wrapper a {
+ color: #fff;
+ text-decoration: none
+}
+
+.tocify-wrapper .search-results a:hover {
+ text-decoration: underline
+}
+
+.tocify-wrapper .toc-footer li,
+.tocify-wrapper .tocify-item>a {
+ padding: 0 15px;
+ display: block;
+ overflow-x: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis
+}
+.tocify-wrapper .tocify-item.level-3>a {
+ padding: 0 25px;
+}
+
+.tocify-wrapper li,
+.tocify-wrapper ul {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ line-height: 28px
+}
+
+.tocify-wrapper li {
+ color: #fff;
+ transition-property: background;
+ transition-timing-function: linear;
+ transition-duration: .23s
+}
+
+.tocify-wrapper .tocify-focus {
+ box-shadow: 0 1px 0 #000;
+ background-color: #2467af;
+ color: #fff;
+ font-weight: bold;
+}
+
+.tocify-wrapper .tocify-subheader {
+ display: none;
+ background-color: #262626;
+ font-weight: 500;
+ background: linear-gradient(180deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(0deg, rgba(0, 0, 0, .2), transparent 8px), linear-gradient(180deg, #000, transparent 1.5px), linear-gradient(0deg, #939393, hsla(0, 0%, 58%, 0) 1.5px), #262626
+}
+
+.tocify-wrapper .jets-searching .tocify-subheader,
+.tocify-wrapper .tocify-subheader.visible {
+ display: block;
+}
+
+.tocify-wrapper .tocify-subheader .tocify-item>a {
+ padding-left: 25px;
+ font-size: 12px
+}
+
+.tocify-wrapper .tocify-subheader .tocify-item.level-3>a {
+ padding-left: 35px;
+}
+
+.tocify-wrapper .tocify-subheader>li:last-child {
+ box-shadow: none
+}
+
+.tocify-wrapper .toc-footer {
+ padding: 1em 0;
+ margin-top: 1em;
+ border-top: 1px dashed #666
+}
+
+.tocify-wrapper .toc-footer a,
+.tocify-wrapper .toc-footer li {
+ color: #fff;
+ text-decoration: none
+}
+
+.tocify-wrapper .toc-footer a:hover {
+ text-decoration: underline
+}
+
+.tocify-wrapper .toc-footer li {
+ font-size: .8em;
+ line-height: 1.7;
+ text-decoration: none
+}
+
+#nav-button {
+ padding: 0 1.5em 5em 0;
+ display: none;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 100;
+ color: #000;
+ text-decoration: none;
+ font-weight: 700;
+ opacity: .7;
+ line-height: 16px;
+ transition: left .3s ease-in-out
+}
+
+#nav-button span {
+ display: block;
+ padding: 6px;
+ background-color: rgba(234, 242, 246, .7);
+ -webkit-transform-origin: 0 0;
+ transform-origin: 0 0;
+ -webkit-transform: rotate(-90deg) translate(-100%);
+ transform: rotate(-90deg) translate(-100%);
+ border-radius: 0 0 0 5px
+}
+
+#nav-button img {
+ height: 16px;
+ vertical-align: bottom
+}
+
+#nav-button:hover {
+ opacity: 1
+}
+
+#nav-button.open {
+ left: 230px
+}
+
+.page-wrapper {
+ margin-left: 230px;
+ position: relative;
+ z-index: 10;
+ background-color: #eaf2f6;
+ min-height: 100%;
+ padding-bottom: 1px
+}
+
+.page-wrapper .dark-box {
+ width: 50%;
+ background-color: #393939;
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0
+}
+
+.page-wrapper .lang-selector {
+ position: fixed;
+ z-index: 50;
+ border-bottom: 5px solid #393939
+}
+
+.lang-selector {
+ background-color: #222;
+ width: 100%;
+ font-weight: 700
+}
+
+.lang-selector button {
+ display: block;
+ float: left;
+ color: #fff;
+ text-decoration: none;
+ padding: 0 10px;
+ line-height: 30px;
+ outline: 0;
+ background: transparent;
+ border: none;
+}
+
+.lang-selector button:active,
+.lang-selector button:hover,
+.lang-selector button:focus {
+ background-color: #111;
+ color: #fff
+}
+
+.lang-selector button.active {
+ background-color: #393939;
+ color: #fff
+}
+
+.lang-selector:after {
+ content: '';
+ clear: both;
+ display: block
+}
+
+.content {
+ position: relative;
+ z-index: 30
+}
+
+.content:after {
+ content: '';
+ display: block;
+ clear: both
+}
+
+.content>aside,
+.content>details,
+.content>dl,
+.content>h1,
+.content>h2,
+.content>h3,
+.content>h4,
+.content>h5,
+.content>h6,
+.content>ol,
+.content>p,
+.content>table,
+.content>ul,
+.content>div,
+.content>form>aside,
+.content>form>details,
+.content>form>h1,
+.content>form>h2,
+.content>form>h3,
+.content>form>h4,
+.content>form>h5,
+.content>form>h6,
+.content>form>p,
+.content>form>table,
+.content>form>ul,
+.content>form>div {
+ margin-right: 50%;
+ padding: 0 28px;
+ box-sizing: border-box;
+ display: block;
+ text-shadow: 0 1px 0 #fff
+}
+
+.content>ol,
+.content>ul {
+ padding-left: 43px
+}
+
+.content>div,
+.content>h1,
+.content>h2 {
+ clear: both
+}
+
+.content h1 {
+ font-size: 30px;
+ padding-top: .5em;
+ padding-bottom: .5em;
+ border-bottom: 1px solid #ccc;
+ margin-bottom: 21px;
+ margin-top: 2em;
+ border-top: 1px solid #ddd;
+ background-image: linear-gradient(180deg, #fff, #f9f9f9)
+}
+
+.content div:first-child+h1,
+.content h1:first-child {
+ border-top-width: 0;
+ margin-top: 0
+}
+
+.content h2 {
+ font-size: 20px;
+ margin-top: 4em;
+ margin-bottom: 0;
+ border-top: 1px solid #ccc;
+ padding-top: 1.2em;
+ padding-bottom: 1.2em;
+ background-image: linear-gradient(180deg, hsla(0, 0%, 100%, .4), hsla(0, 0%, 100%, 0))
+}
+
+.content h1+div+h2,
+.content h1+h2 {
+ margin-top: -21px;
+ border-top: none
+}
+
+.content h3,
+.content h4,
+.content h5,
+.content h6 {
+ font-size: 15px;
+ margin-top: 2.5em;
+ margin-bottom: .8em
+}
+
+.content h4,
+.content h5,
+.content h6 {
+ font-size: 10px
+}
+
+.content hr {
+ margin: 2em 0;
+ border-top: 2px solid #393939;
+ border-bottom: 2px solid #eaf2f6
+}
+
+.content table {
+ margin-bottom: 1em;
+ overflow: auto
+}
+
+.content table td,
+.content table th {
+ text-align: left;
+ vertical-align: top;
+ line-height: 1.6
+}
+
+.content table th {
+ padding: 5px 10px;
+ border-bottom: 1px solid #ccc;
+ vertical-align: bottom
+}
+
+.content table td {
+ padding: 10px
+}
+
+.content table tr:last-child {
+ border-bottom: 1px solid #ccc
+}
+
+.content table tr:nth-child(odd)>td {
+ background-color: #ebf3f6
+}
+
+.content table tr:nth-child(even)>td {
+ background-color: #ebf2f6
+}
+
+.content dt {
+ font-weight: 700
+}
+
+.content dd {
+ margin-left: 15px
+}
+
+.content dd,
+.content dt,
+.content li,
+.content p {
+ line-height: 1.6;
+ margin-top: 0
+}
+
+.content img {
+ max-width: 100%
+}
+
+.content code {
+ padding: 3px;
+ border-radius: 3px
+}
+
+.content pre>code {
+ background-color: transparent;
+ padding: 0
+}
+
+.content aside {
+ padding-top: 1em;
+ padding-bottom: 1em;
+ margin-top: 1.5em;
+ margin-bottom: 1.5em;
+ background: #292929;
+ line-height: 1.6;
+ color: #c8c8c8;
+ text-shadow: none;
+}
+
+.content aside.info {
+ background: #8fbcd4;
+ text-shadow: 0 1px 0 #a0c6da;
+ color: initial;
+}
+
+.content aside.warning {
+ background-color: #c97a7e;
+ text-shadow: 0 1px 0 #d18e91;
+ color: initial;
+}
+
+.content aside.success {
+ background-color: #6ac174;
+ text-shadow: 0 1px 0 #80ca89;
+ color: initial;
+}
+
+.content aside:before {
+ vertical-align: middle;
+ padding-right: .5em;
+ font-size: 14px
+}
+
+.content .search-highlight {
+ padding: 2px;
+ margin: -2px;
+ border-radius: 4px;
+ border: 1px solid #f7e633;
+ text-shadow: 1px 1px 0 #666;
+ background: linear-gradient(to top left, #f7e633, #f1d32f)
+}
+
+.content blockquote,
+.content pre {
+ background-color: #292929;
+ color: #fff;
+ padding: 1.5em 28px;
+ margin: 0;
+ width: 50%;
+ float: right;
+ clear: right;
+ box-sizing: border-box;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .4)
+}
+
+.content blockquote pre.sf-dump,
+.content pre pre.sf-dump {
+ width: 100%;
+}
+
+.content .annotation {
+ background-color: #292929;
+ color: #fff;
+ padding: 0 28px;
+ margin: 0;
+ width: 50%;
+ float: right;
+ clear: right;
+ box-sizing: border-box;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, .4)
+}
+
+.content .annotation pre {
+ padding: 0 0;
+ width: 100%;
+ float: none;
+}
+
+.content blockquote>p,
+.content pre>p {
+ margin: 0
+}
+
+.content blockquote a,
+.content pre a {
+ color: #fff;
+ text-decoration: none;
+ border-bottom: 1px dashed #ccc
+}
+
+.content blockquote>p {
+ background-color: #1c1c1c;
+ border-radius: 5px;
+ padding: 13px;
+ color: #ccc;
+ border-top: 1px solid #000;
+ border-bottom: 1px solid #404040
+}
+
+@media (max-width:930px) {
+ .tocify-wrapper {
+ left: -230px
+ }
+ .tocify-wrapper.open {
+ left: 0
+ }
+ .page-wrapper {
+ margin-left: 0
+ }
+ #nav-button {
+ display: block
+ }
+ .tocify-wrapper .tocify-item>a {
+ padding-top: .3em;
+ padding-bottom: .3em
+ }
+}
+
+@media (max-width:700px) {
+ .dark-box {
+ display: none
+ }
+ .tocify-wrapper .lang-selector {
+ display: block
+ }
+ .page-wrapper .lang-selector {
+ display: none
+ }
+ .content>aside,
+ .content>details,
+ .content>dl,
+ .content>h1,
+ .content>h2,
+ .content>h3,
+ .content>h4,
+ .content>h5,
+ .content>h6,
+ .content>ol,
+ .content>p,
+ .content>table,
+ .content>ul,
+ .content>div,
+ .content>form>aside,
+ .content>form>details,
+ .content>form>h1,
+ .content>form>h2,
+ .content>form>h3,
+ .content>form>h4,
+ .content>form>h5,
+ .content>form>h6,
+ .content>form>p,
+ .content>form>table,
+ .content>form>ul,
+ .content>form>div {
+ margin-right: 0;
+ }
+ .content blockquote,
+ .content pre {
+ float: none;
+ width: auto
+ }
+ .content .annotation {
+ float: none;
+ width: auto
+ }
+}
+
+.badge {
+ padding: 1px 9px 2px;
+ white-space: nowrap;
+ -webkit-border-radius: 9px;
+ -moz-border-radius: 9px;
+ border-radius: 9px;
+ color: #ffffff;
+ text-shadow: none !important;
+ font-weight: bold;
+}
+
+.badge.badge-darkred {
+ background-color: darkred;
+}
+
+.badge.badge-red {
+ background-color: red;
+}
+
+.badge.badge-blue {
+ background-color: blue;
+}
+
+.badge.badge-darkblue {
+ background-color: darkblue;
+}
+
+.badge.badge-green {
+ background-color: green;
+}
+
+.badge.badge-darkgreen {
+ background-color: darkgreen;
+}
+
+.badge.badge-purple {
+ background-color: purple;
+}
+
+.badge.badge-black {
+ background-color: black;
+}
+
+.badge.badge-grey {
+ background-color: grey;
+}
+
+.fancy-heading-panel {
+ background-color: lightgrey;
+ border-radius: 5px;
+ padding-left: 5px !important;
+ padding-top: 5px !important;
+ padding-bottom: 5px !important;
+ margin-left: 25px;
+ margin-right: 10px;
+ width: 47%;
+}
+
+@media screen and (max-width: 700px) {
+ .fancy-heading-panel {
+ width: 95%;
+ }
+
+}
+
+button {
+ border: none;
+}
+
+* {
+ /* Foreground, Background */
+ scrollbar-color: #3c4c67 transparent;
+}
+*::-webkit-scrollbar { /* Background */
+ width: 10px;
+ height: 10px;
+ background: transparent;
+}
+
+*::-webkit-scrollbar-thumb { /* Foreground */
+ background: #626161;
+}
diff --git a/Backend/public/docs/images/navbar.png b/Backend/public/docs/images/navbar.png
new file mode 100644
index 0000000..df38e90
Binary files /dev/null and b/Backend/public/docs/images/navbar.png differ
diff --git a/Backend/public/docs/index.html b/Backend/public/docs/index.html
new file mode 100644
index 0000000..3a6f038
--- /dev/null
+++ b/Backend/public/docs/index.html
@@ -0,0 +1,7582 @@
+
+
+
+
+
+
+ Kebab Api
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MENU
+
+
+
+
+
+
+ bash
+ javascript
+ php
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Introduction
+
+ Base URL : https://sponge-climbing-adder.ngrok-free.app/api/documentation
+
+
This documentation aims to provide all the information you need to work with our API.
+
As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
+You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).
+
+
Authenticating requests
+
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}" .
+
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
+
You can retrieve your token by visiting your dashboard and clicking Generate API token .
+
+
Auth
+
+
*
+
+
POST api/register
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/register" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"name\": \"aspernatur\",
+ \"email\": \"jamison69@example.org\",
+ \"password\": \"ut\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/register"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "name": "aspernatur",
+ "email": "jamison69@example.org",
+ "password": "ut"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/register';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'name' => 'aspernatur',
+ 'email' => 'jamison69@example.org',
+ 'password' => 'ut',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/login
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/login" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"email\": \"kamryn22@example.com\",
+ \"password\": \"at\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/login"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "email": "kamryn22@example.com",
+ "password": "at"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/login';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'email' => 'kamryn22@example.com',
+ 'password' => 'at',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/logout
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/logout" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/logout"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/logout';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
Endpoints
+
+
+
+
GET api/documentation
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/documentation" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/documentation"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/documentation';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/documentation could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
Kebab
+
+
*
+
+
GET api/kebabs
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/kebabs could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
POST api/addKebab
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addKebab" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"logo\": \"ut\",
+ \"name\": \"perferendis\",
+ \"address\": \"vel\",
+ \"coordinates\": \"nisi\",
+ \"sauces\": \"at\",
+ \"meats\": \"ullam\",
+ \"status\": \"perferendis\",
+ \"opening_hours\": \"perspiciatis\",
+ \"opening_year\": \"deleniti\",
+ \"closing_year\": \"accusantium\",
+ \"is_crafted\": \"placeat\",
+ \"is_premises\": \"minus\",
+ \"is_chainstore\": \"aut\",
+ \"ordering_options\": \"voluptas\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addKebab"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "logo": "ut",
+ "name": "perferendis",
+ "address": "vel",
+ "coordinates": "nisi",
+ "sauces": "at",
+ "meats": "ullam",
+ "status": "perferendis",
+ "opening_hours": "perspiciatis",
+ "opening_year": "deleniti",
+ "closing_year": "accusantium",
+ "is_crafted": "placeat",
+ "is_premises": "minus",
+ "is_chainstore": "aut",
+ "ordering_options": "voluptas"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addKebab';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'logo' => 'ut',
+ 'name' => 'perferendis',
+ 'address' => 'vel',
+ 'coordinates' => 'nisi',
+ 'sauces' => 'at',
+ 'meats' => 'ullam',
+ 'status' => 'perferendis',
+ 'opening_hours' => 'perspiciatis',
+ 'opening_year' => 'deleniti',
+ 'closing_year' => 'accusantium',
+ 'is_crafted' => 'placeat',
+ 'is_premises' => 'minus',
+ 'is_chainstore' => 'aut',
+ 'ordering_options' => 'voluptas',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/adipisci" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/adipisci"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/adipisci';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/logo
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/quia/logo" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/quia/logo"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/quia/logo';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/name
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/consequuntur/name" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"name\": \"quidem\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/consequuntur/name"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "name": "quidem"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/consequuntur/name';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'name' => 'quidem',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/address
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ab/address" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"address\": \"huxswcermiukedcsywurinn\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ab/address"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "address": "huxswcermiukedcsywurinn"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ab/address';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'address' => 'huxswcermiukedcsywurinn',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/coordinates
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/eaque/coordinates" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"coordinates\": []
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/eaque/coordinates"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "coordinates": []
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/eaque/coordinates';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'coordinates' => [],
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/sauce
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/laboriosam/sauce" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"sauce\": \"nostrum\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/laboriosam/sauce"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "sauce": "nostrum"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/laboriosam/sauce';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'sauce' => 'nostrum',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/sauce
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/necessitatibus/sauce" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"sauce\": \"dolore\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/necessitatibus/sauce"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "sauce": "dolore"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/necessitatibus/sauce';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'sauce' => 'dolore',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/meat
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/facere/meat" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"meat\": \"voluptatibus\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/facere/meat"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "meat": "voluptatibus"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/facere/meat';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'meat' => 'voluptatibus',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/meat
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ratione/meat" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"meat\": \"eos\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ratione/meat"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "meat": "eos"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ratione/meat';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'meat' => 'eos',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/status
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/quas/status" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"status\": \"exists\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/quas/status"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "status": "exists"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/quas/status';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'status' => 'exists',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/opening-hours
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/est/opening-hours" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"day\": \"saturday\",
+ \"hours\": \"quis\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/est/opening-hours"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "day": "saturday",
+ "hours": "quis"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/est/opening-hours';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'day' => 'saturday',
+ 'hours' => 'quis',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/opening-hours
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/omnis/opening-hours" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"day\": \"monday\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/omnis/opening-hours"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "day": "monday"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/omnis/opening-hours';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'day' => 'monday',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/opening-hours
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/qui/opening-hours" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"day\": \"sunday\",
+ \"hours\": \"explicabo\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/qui/opening-hours"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "day": "sunday",
+ "hours": "explicabo"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/qui/opening-hours';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'day' => 'sunday',
+ 'hours' => 'explicabo',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/opening-year
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/recusandae/opening-year" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"opening_year\": \"6167\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/recusandae/opening-year"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "opening_year": "6167"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/recusandae/opening-year';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'opening_year' => '6167',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/closing-year
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/voluptatem/closing-year" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"closing_year\": \"2621\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/voluptatem/closing-year"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "closing_year": "2621"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/voluptatem/closing-year';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'closing_year' => '2621',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/is-crafted
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/vel/is-crafted" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"is_crafted\": true
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/vel/is-crafted"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "is_crafted": true
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/vel/is-crafted';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'is_crafted' => true,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/is-premises
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/laudantium/is-premises" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"is_premises\": false
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/laudantium/is-premises"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "is_premises": false
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/laudantium/is-premises';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'is_premises' => false,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/kebabs/{kebabId}/is-chainstore
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ea/is-chainstore" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"is_chainstore\": false
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ea/is-chainstore"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "is_chainstore": false
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ea/is-chainstore';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'is_chainstore' => false,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/ordering-options
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/reprehenderit/ordering-options" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"new_option\": \"nesciunt\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/reprehenderit/ordering-options"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "new_option": "nesciunt"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/reprehenderit/ordering-options';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'new_option' => 'nesciunt',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/ordering-options
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/assumenda/ordering-options" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"option_to_remove\": \"est\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/assumenda/ordering-options"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "option_to_remove": "est"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/assumenda/ordering-options';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'option_to_remove' => 'est',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/kebabs/{kebabId}/pages
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/consectetur/pages" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"new_page\": \"explicabo\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/consectetur/pages"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "new_page": "explicabo"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/consectetur/pages';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'new_page' => 'explicabo',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/kebabs/{kebabId}/pages
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ad/pages" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"page_to_remove\": \"corporis\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ad/pages"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "page_to_remove": "corporis"
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/kebabs/ad/pages';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'page_to_remove' => 'corporis',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
KebabScraper
+
+
*
+
+
GET api/scrape-reviews
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/scrape-reviews" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/scrape-reviews"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/scrape-reviews';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/scrape-reviews could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
Suggestions
+
+
*
+
+
POST api/suggestions
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"user\": \"yhyrnmamtgxprtslmownvg\",
+ \"contents\": \"vmtnljhahaj\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "user": "yhyrnmamtgxprtslmownvg",
+ "contents": "vmtnljhahaj"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'user' => 'yhyrnmamtgxprtslmownvg',
+ 'contents' => 'vmtnljhahaj',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/suggestions
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/suggestions could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/suggestions/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions/magni" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions/magni"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/suggestions/magni';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
Users
+
+
*
+
+
GET api/getCurrentUser
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/getCurrentUser" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/getCurrentUser"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/getCurrentUser';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/getCurrentUser could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/fav/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/fav/veritatis" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/fav/veritatis"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/fav/veritatis';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/fav/veritatis could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/addfav
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addfav" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"user_id\": \"eum\",
+ \"kebab_id\": \"quia\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addfav"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "user_id": "eum",
+ "kebab_id": "quia"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addfav';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'user_id' => 'eum',
+ 'kebab_id' => 'quia',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/remfav
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/remfav" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"user_id\": \"quas\",
+ \"kebab_id\": \"quia\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/remfav"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "user_id": "quas",
+ "kebab_id": "quia"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/remfav';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'user_id' => 'quas',
+ 'kebab_id' => 'quia',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changeName/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeName/facilis" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"newName\": \"nobis\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeName/facilis"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "newName": "nobis"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeName/facilis';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'newName' => 'nobis',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changePassword/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changePassword/laborum" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"newPassword\": \"quas\",
+ \"confirmPassword\": \"rerum\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changePassword/laborum"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "newPassword": "quas",
+ "confirmPassword": "rerum"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changePassword/laborum';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'newPassword' => 'quas',
+ 'confirmPassword' => 'rerum',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changeEmail/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeEmail/commodi" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"newEmail\": \"shanie84@example.org\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeEmail/commodi"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "newEmail": "shanie84@example.org"
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeEmail/commodi';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'newEmail' => 'shanie84@example.org',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
PUT api/changeUserRole/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request PUT \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeUserRole/atque" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"isAdmin\": false
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeUserRole/atque"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "isAdmin": false
+};
+
+fetch(url, {
+ method: "PUT",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/changeUserRole/atque';
+$response = $client->put(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'isAdmin' => false,
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
DELETE api/deleteUser/{id}
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request DELETE \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/deleteUser/ut" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/deleteUser/ut"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "DELETE",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/deleteUser/ut';
+$response = $client->delete(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
GET api/getAllUsers
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request GET \
+ --get "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/getAllUsers" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json"
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/getAllUsers"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+fetch(url, {
+ method: "GET",
+ headers,
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/getAllUsers';
+$response = $client->get(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+ Example response (404):
+
+
+
+ Show headers
+
+ cache-control: no-cache, private
+content-type: application/json
+vary: Origin
+
+
+{
+ "message": "The route api/getAllUsers could not be found."
+}
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
POST api/addNewUser
+
+
+
+
+
+
+
+Example request:
+
+
+
+
curl --request POST \
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addNewUser" \
+ --header "Content-Type: application/json" \
+ --header "Accept: application/json" \
+ --data "{
+ \"name\": \"ut\",
+ \"email\": \"moconnell@example.com\",
+ \"password\": \"est\"
+}"
+
+
+
+
+
const url = new URL(
+ "https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addNewUser"
+);
+
+const headers = {
+ "Content-Type": "application/json",
+ "Accept": "application/json",
+};
+
+let body = {
+ "name": "ut",
+ "email": "moconnell@example.com",
+ "password": "est"
+};
+
+fetch(url, {
+ method: "POST",
+ headers,
+ body: JSON.stringify(body),
+}).then(response => response.json());
+
+
+
+
$client = new \GuzzleHttp\Client();
+$url = 'https://sponge-climbing-adder.ngrok-free.app/api/documentation/api/addNewUser';
+$response = $client->post(
+ $url,
+ [
+ 'headers' => [
+ 'Content-Type' => 'application/json',
+ 'Accept' => 'application/json',
+ ],
+ 'json' => [
+ 'name' => 'ut',
+ 'email' => 'moconnell@example.com',
+ 'password' => 'est',
+ ],
+ ]
+);
+$body = $response->getBody();
+print_r(json_decode((string) $body));
+
+
+
+
+
+
+ Received response :
+
+
+
+
+ Request failed with error:
+
+
+Tip: Check that you're properly connected to the network.
+If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
+You can check the Dev Tools console for debugging information.
+
+
+
+
+
+
+
+
+
+ bash
+ javascript
+ php
+
+
+
+
+
diff --git a/Backend/public/docs/js/theme-default-4.39.0.js b/Backend/public/docs/js/theme-default-4.39.0.js
new file mode 100644
index 0000000..31c8451
--- /dev/null
+++ b/Backend/public/docs/js/theme-default-4.39.0.js
@@ -0,0 +1,149 @@
+document.addEventListener('DOMContentLoaded', function() {
+ const updateHash = function (id) {
+ window.location.hash = `#${id}`;
+ };
+
+ const navButton = document.getElementById('nav-button');
+ const menuWrapper = document.querySelector('.tocify-wrapper');
+ function toggleSidebar(event) {
+ event.preventDefault();
+ if (menuWrapper) {
+ menuWrapper.classList.toggle('open');
+ navButton.classList.toggle('open');
+ }
+ }
+ function closeSidebar() {
+ if (menuWrapper) {
+ menuWrapper.classList.remove('open');
+ navButton.classList.remove('open');
+ }
+ }
+ navButton.addEventListener('click', toggleSidebar);
+
+ window.hljs.highlightAll();
+
+ const wrapper = document.getElementById('toc');
+ // https://jets.js.org/
+ window.jets = new window.Jets({
+ // *OR - Selects elements whose values contains at least one part of search substring
+ searchSelector: '*OR',
+ searchTag: '#input-search',
+ contentTag: '#toc li',
+ didSearch: function(term) {
+ wrapper.classList.toggle('jets-searching', String(term).length > 0)
+ },
+ // map these accent keys to plain values
+ diacriticsMap: {
+ a: 'ÀÁÂÃÄÅàáâãäåĀāąĄ',
+ c: 'ÇçćĆčČ',
+ d: 'đĐďĎ',
+ e: 'ÈÉÊËèéêëěĚĒēęĘ',
+ i: 'ÌÍÎÏìíîïĪī',
+ l: 'łŁ',
+ n: 'ÑñňŇńŃ',
+ o: 'ÒÓÔÕÕÖØòóôõöøŌō',
+ r: 'řŘ',
+ s: 'ŠšśŚ',
+ t: 'ťŤ',
+ u: 'ÙÚÛÜùúûüůŮŪū',
+ y: 'ŸÿýÝ',
+ z: 'ŽžżŻźŹ'
+ }
+ });
+
+ function hashChange() {
+ const currentItems = document.querySelectorAll('.tocify-subheader.visible, .tocify-item.tocify-focus');
+ Array.from(currentItems).forEach((elem) => {
+ elem.classList.remove('visible', 'tocify-focus');
+ });
+
+ const currentTag = document.querySelector(`a[href="${window.location.hash}"]`);
+ if (currentTag) {
+ const parent = currentTag.closest('.tocify-subheader');
+ if (parent) {
+ parent.classList.add('visible');
+ }
+
+ const siblings = currentTag.closest('.tocify-header');
+ if (siblings) {
+ Array.from(siblings.querySelectorAll('.tocify-subheader')).forEach((elem) => {
+ elem.classList.add('visible');
+ });
+ }
+
+ currentTag.parentElement.classList.add('tocify-focus');
+
+ // wait for dom changes to be done
+ setTimeout(() => {
+ currentTag.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });
+ // only close the sidebar on level-2 events
+ if (currentTag.parentElement.classList.contains('level-2')) {
+ closeSidebar();
+ }
+ }, 1500);
+ }
+ }
+
+ let languages = JSON.parse(document.body.getAttribute('data-languages'));
+ // Support a key => value object where the key is the name, or an array of strings where the value is the name
+ if (!Array.isArray(languages)) {
+ languages = Object.values(languages);
+ }
+ // if there is no language use the first one
+ const currentLanguage = window.localStorage.getItem('language') || languages[0];
+ const languageStyle = document.getElementById('language-style');
+ const langSelector = document.querySelectorAll('.lang-selector button.lang-button');
+
+ function setActiveLanguage(newLanguage) {
+ window.localStorage.setItem('language', newLanguage);
+ if (!languageStyle) {
+ return;
+ }
+
+ const newStyle = languages.map((language) => {
+ return language === newLanguage
+ // the current one should be visible
+ ? `body .content .${language}-example pre { display: block; }`
+ // the inactive one should be hidden
+ : `body .content .${language}-example pre { display: none; }`;
+ }).join(`\n`);
+
+ Array.from(langSelector).forEach((elem) => {
+ elem.classList.toggle('active', elem.getAttribute('data-language-name') === newLanguage);
+ });
+
+ const activeHash = window.location.hash.slice(1);
+
+ languageStyle.innerHTML = newStyle;
+
+ setTimeout(() => {
+ updateHash(activeHash);
+ }, 200);
+ }
+
+ setActiveLanguage(currentLanguage);
+
+ Array.from(langSelector).forEach((elem) => {
+ elem.addEventListener('click', () => {
+ const newLanguage = elem.getAttribute('data-language-name');
+ setActiveLanguage(newLanguage);
+ });
+ });
+
+ window.addEventListener('hashchange', hashChange, false);
+
+ const divs = document.querySelectorAll('.content h1[id], .content h2[id]');
+
+ document.addEventListener('scroll', () => {
+ divs.forEach(item => {
+ const rect = item.getBoundingClientRect();
+ if (rect.top > 0 && rect.top < 150) {
+ const location = window.location.toString().split('#')[0];
+ history.replaceState(null, null, location + '#' + item.id);
+ hashChange();
+ }
+ });
+ });
+
+ hashChange();
+});
diff --git a/Backend/public/docs/js/tryitout-4.39.0.js b/Backend/public/docs/js/tryitout-4.39.0.js
new file mode 100644
index 0000000..2a1d2b8
--- /dev/null
+++ b/Backend/public/docs/js/tryitout-4.39.0.js
@@ -0,0 +1,289 @@
+window.abortControllers = {};
+
+function cacheAuthValue() {
+ // Whenever the auth header is set for one endpoint, cache it for the others
+ window.lastAuthValue = '';
+ let authInputs = document.querySelectorAll(`.auth-value`)
+ authInputs.forEach(el => {
+ el.addEventListener('input', (event) => {
+ window.lastAuthValue = event.target.value;
+ authInputs.forEach(otherInput => {
+ if (otherInput === el) return;
+ // Don't block the main thread
+ setTimeout(() => {
+ otherInput.value = window.lastAuthValue;
+ }, 0);
+ });
+ });
+ });
+}
+
+window.addEventListener('DOMContentLoaded', cacheAuthValue);
+
+function getCookie(name) {
+ if (!document.cookie) {
+ return null;
+ }
+
+ const cookies = document.cookie.split(';')
+ .map(c => c.trim())
+ .filter(c => c.startsWith(name + '='));
+
+ if (cookies.length === 0) {
+ return null;
+ }
+
+ return decodeURIComponent(cookies[0].split('=')[1]);
+}
+
+function tryItOut(endpointId) {
+ document.querySelector(`#btn-tryout-${endpointId}`).hidden = true;
+ document.querySelector(`#btn-canceltryout-${endpointId}`).hidden = false;
+ const executeBtn = document.querySelector(`#btn-executetryout-${endpointId}`).hidden = false;
+ executeBtn.disabled = false;
+
+ // Show all input fields
+ document.querySelectorAll(`input[data-endpoint=${endpointId}],label[data-endpoint=${endpointId}]`)
+ .forEach(el => el.style.display = 'block');
+
+ if (document.querySelector(`#form-${endpointId}`).dataset.authed === "1") {
+ const authElement = document.querySelector(`#auth-${endpointId}`);
+ authElement && (authElement.hidden = false);
+ }
+ // Expand all nested fields
+ document.querySelectorAll(`#form-${endpointId} details`)
+ .forEach(el => el.open = true);
+}
+
+function cancelTryOut(endpointId) {
+ if (window.abortControllers[endpointId]) {
+ window.abortControllers[endpointId].abort();
+ delete window.abortControllers[endpointId];
+ }
+
+ document.querySelector(`#btn-tryout-${endpointId}`).hidden = false;
+ const executeBtn = document.querySelector(`#btn-executetryout-${endpointId}`);
+ executeBtn.hidden = true;
+ executeBtn.textContent = executeBtn.dataset.initialText;
+ document.querySelector(`#btn-canceltryout-${endpointId}`).hidden = true;
+ // Hide inputs
+ document.querySelectorAll(`input[data-endpoint=${endpointId}],label[data-endpoint=${endpointId}]`)
+ .forEach(el => el.style.display = 'none');
+ document.querySelectorAll(`#form-${endpointId} details`)
+ .forEach(el => el.open = false);
+ const authElement = document.querySelector(`#auth-${endpointId}`);
+ authElement && (authElement.hidden = true);
+
+ document.querySelector('#execution-results-' + endpointId).hidden = true;
+ document.querySelector('#execution-error-' + endpointId).hidden = true;
+
+ // Revert to sample code blocks
+ document.querySelector('#example-requests-' + endpointId).hidden = false;
+ document.querySelector('#example-responses-' + endpointId).hidden = false;
+}
+
+function makeAPICall(method, path, body = {}, query = {}, headers = {}, endpointId = null) {
+ console.log({endpointId, path, body, query, headers});
+
+ if (!(body instanceof FormData) && typeof body !== "string") {
+ body = JSON.stringify(body)
+ }
+
+ const url = new URL(window.tryItOutBaseUrl + '/' + path.replace(/^\//, ''));
+
+ // We need this function because if you try to set an array or object directly to a URLSearchParams object,
+ // you'll get [object Object] or the array.toString()
+ function addItemToSearchParamsObject(key, value, searchParams) {
+ if (Array.isArray(value)) {
+ value.forEach((v, i) => {
+ // Append {filters: [first, second]} as filters[0]=first&filters[1]second
+ addItemToSearchParamsObject(key + '[' + i + ']', v, searchParams);
+ })
+ } else if (typeof value === 'object' && value !== null) {
+ Object.keys(value).forEach((i) => {
+ // Append {filters: {name: first}} as filters[name]=first
+ addItemToSearchParamsObject(key + '[' + i + ']', value[i], searchParams);
+ });
+ } else {
+ searchParams.append(key, value);
+ }
+ }
+
+ Object.keys(query)
+ .forEach(key => addItemToSearchParamsObject(key, query[key], url.searchParams));
+
+ window.abortControllers[endpointId] = new AbortController();
+
+ return fetch(url, {
+ method,
+ headers,
+ body: method === 'GET' ? undefined : body,
+ signal: window.abortControllers[endpointId].signal,
+ referrer: window.tryItOutBaseUrl,
+ mode: 'cors',
+ credentials: 'same-origin',
+ })
+ .then(response => Promise.all([response.status, response.statusText, response.text(), response.headers]));
+}
+
+function hideCodeSamples(endpointId) {
+ document.querySelector('#example-requests-' + endpointId).hidden = true;
+ document.querySelector('#example-responses-' + endpointId).hidden = true;
+}
+
+function handleResponse(endpointId, response, status, headers) {
+ hideCodeSamples(endpointId);
+
+ // Hide error views
+ document.querySelector('#execution-error-' + endpointId).hidden = true;
+
+ const responseContentEl = document.querySelector('#execution-response-content-' + endpointId);
+
+ // Check if the response contains Laravel's dd() default dump output
+ const isLaravelDump = response.includes('Sfdump');
+
+ // If it's a Laravel dd() dump, use innerHTML to render it safely
+ if (isLaravelDump) {
+ responseContentEl.innerHTML = response === '' ? responseContentEl.dataset.emptyResponseText : response;
+ } else {
+ // Otherwise, stick to textContent for regular responses
+ responseContentEl.textContent = response === '' ? responseContentEl.dataset.emptyResponseText : response;
+ }
+
+ // Prettify it if it's JSON
+ let isJson = false;
+ try {
+ const jsonParsed = JSON.parse(response);
+ if (jsonParsed !== null) {
+ isJson = true;
+ response = JSON.stringify(jsonParsed, null, 4);
+ responseContentEl.textContent = response;
+ }
+ } catch (e) {
+
+ }
+
+ isJson && window.hljs.highlightElement(responseContentEl);
+ const statusEl = document.querySelector('#execution-response-status-' + endpointId);
+ statusEl.textContent = ` (${status})`;
+ document.querySelector('#execution-results-' + endpointId).hidden = false;
+ statusEl.scrollIntoView({behavior: "smooth", block: "center"});
+}
+
+function handleError(endpointId, err) {
+ hideCodeSamples(endpointId);
+ // Hide response views
+ document.querySelector('#execution-results-' + endpointId).hidden = true;
+
+ // Show error views
+ let errorMessage = err.message || err;
+ const $errorMessageEl = document.querySelector('#execution-error-message-' + endpointId);
+ $errorMessageEl.textContent = errorMessage + $errorMessageEl.textContent;
+ const errorEl = document.querySelector('#execution-error-' + endpointId);
+ errorEl.hidden = false;
+ errorEl.scrollIntoView({behavior: "smooth", block: "center"});
+
+}
+
+async function executeTryOut(endpointId, form) {
+ const executeBtn = document.querySelector(`#btn-executetryout-${endpointId}`);
+ executeBtn.textContent = executeBtn.dataset.loadingText;
+ executeBtn.disabled = true;
+ executeBtn.scrollIntoView({behavior: "smooth", block: "center"});
+
+ let body;
+ let setter;
+ if (form.dataset.hasfiles === "1") {
+ body = new FormData();
+ setter = (name, value) => body.append(name, value);
+ } else if (form.dataset.isarraybody === "1") {
+ body = [];
+ setter = (name, value) => _.set(body, name, value);
+ } else {
+ body = {};
+ setter = (name, value) => _.set(body, name, value);
+ }
+ const bodyParameters = form.querySelectorAll('input[data-component=body]');
+ bodyParameters.forEach(el => {
+ let value = el.value;
+
+ if (el.type === 'number' && typeof value === 'string') {
+ value = parseFloat(value);
+ }
+
+ if (el.type === 'file' && el.files[0]) {
+ setter(el.name, el.files[0]);
+ return;
+ }
+
+ if (el.type !== 'radio') {
+ if (value === "" && el.required === false) {
+ // Don't include empty optional values in the request
+ return;
+ }
+ setter(el.name, value);
+ return;
+ }
+
+ if (el.checked) {
+ value = (value === 'false') ? false : true;
+ setter(el.name, value);
+ }
+ });
+
+ const query = {};
+ const queryParameters = form.querySelectorAll('input[data-component=query]');
+ queryParameters.forEach(el => {
+ if (el.type !== 'radio' || (el.type === 'radio' && el.checked)) {
+ if (el.value === '') {
+ // Don't include empty values in the request
+ return;
+ }
+
+ _.set(query, el.name, el.value);
+ }
+ });
+
+ let path = form.dataset.path;
+ const urlParameters = form.querySelectorAll('input[data-component=url]');
+ urlParameters.forEach(el => (path = path.replace(new RegExp(`\\{${el.name}\\??}`), el.value)));
+
+ const headers = Object.fromEntries(Array.from(form.querySelectorAll('input[data-component=header]'))
+ .map(el => [el.name, el.value]));
+
+ // When using FormData, the browser sets the correct content-type + boundary
+ let method = form.dataset.method;
+ if (body instanceof FormData) {
+ delete headers['Content-Type'];
+
+ // When using FormData with PUT or PATCH, use method spoofing so PHP can access the post body
+ if (['PUT', 'PATCH'].includes(form.dataset.method)) {
+ method = 'POST';
+ setter('_method', form.dataset.method);
+ }
+ }
+
+ let preflightPromise = Promise.resolve();
+ if (window.useCsrf && window.csrfUrl) {
+ preflightPromise = makeAPICall('GET', window.csrfUrl).then(() => {
+ headers['X-XSRF-TOKEN'] = getCookie('XSRF-TOKEN');
+ });
+ }
+
+ return preflightPromise.then(() => makeAPICall(method, path, body, query, headers, endpointId))
+ .then(([responseStatus, statusText, responseContent, responseHeaders]) => {
+ handleResponse(endpointId, responseContent, responseStatus, responseHeaders)
+ })
+ .catch(err => {
+ if (err.name === "AbortError") {
+ console.log("Request cancelled");
+ return;
+ }
+ console.log("Error while making request: ", err);
+ handleError(endpointId, err);
+ })
+ .finally(() => {
+ executeBtn.disabled = false;
+ executeBtn.textContent = executeBtn.dataset.initialText;
+ });
+}
diff --git a/Backend/public/docs/openapi.yaml b/Backend/public/docs/openapi.yaml
new file mode 100644
index 0000000..d62ca3d
--- /dev/null
+++ b/Backend/public/docs/openapi.yaml
@@ -0,0 +1,1416 @@
+openapi: 3.0.3
+info:
+ title: 'Kebab Api'
+ description: ''
+ version: 1.0.0
+servers:
+ -
+ url: 'https://sponge-climbing-adder.ngrok-free.app/api/documentation'
+paths:
+ /api/register:
+ post:
+ summary: ''
+ operationId: postApiRegister
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Auth
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: ''
+ example: aspernatur
+ nullable: false
+ email:
+ type: string
+ description: 'Must be a valid email address.'
+ example: jamison69@example.org
+ nullable: false
+ password:
+ type: string
+ description: ''
+ example: ut
+ nullable: false
+ required:
+ - name
+ - email
+ - password
+ security: []
+ /api/login:
+ post:
+ summary: ''
+ operationId: postApiLogin
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Auth
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ email:
+ type: string
+ description: 'Must be a valid email address. The email of an existing record in the users table.'
+ example: kamryn22@example.com
+ nullable: false
+ password:
+ type: string
+ description: ''
+ example: at
+ nullable: false
+ required:
+ - email
+ - password
+ security: []
+ /api/logout:
+ post:
+ summary: ''
+ operationId: postApiLogout
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Auth
+ security: []
+ /api/documentation:
+ get:
+ summary: ''
+ operationId: getApiDocumentation
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/documentation could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/documentation could not be found.'
+ tags:
+ - Endpoints
+ security: []
+ /api/kebabs:
+ get:
+ summary: ''
+ operationId: getApiKebabs
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/kebabs could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/kebabs could not be found.'
+ tags:
+ - Kebab
+ security: []
+ '/api/kebabs/{kebabId}/comments':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdComments
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id_user:
+ type: integer
+ description: ''
+ example: 7
+ nullable: false
+ comment:
+ type: string
+ description: ''
+ example: itaque
+ nullable: false
+ required:
+ - id_user
+ - comment
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdComments
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ id_user:
+ type: integer
+ description: ''
+ example: 18
+ nullable: false
+ comment:
+ type: string
+ description: ''
+ example: deserunt
+ nullable: false
+ required:
+ - id_user
+ - comment
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: unde
+ required: true
+ schema:
+ type: string
+ /api/addKebab:
+ post:
+ summary: ''
+ operationId: postApiAddKebab
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ logo:
+ type: string
+ description: ''
+ example: ut
+ nullable: false
+ name:
+ type: string
+ description: ''
+ example: perferendis
+ nullable: false
+ address:
+ type: string
+ description: ''
+ example: vel
+ nullable: false
+ coordinates:
+ type: string
+ description: ''
+ example: nisi
+ nullable: false
+ sauces:
+ type: string
+ description: ''
+ example: at
+ nullable: false
+ meats:
+ type: string
+ description: ''
+ example: ullam
+ nullable: false
+ status:
+ type: string
+ description: ''
+ example: perferendis
+ nullable: false
+ opening_hours:
+ type: string
+ description: ''
+ example: perspiciatis
+ nullable: false
+ opening_year:
+ type: string
+ description: ''
+ example: deleniti
+ nullable: false
+ closing_year:
+ type: string
+ description: ''
+ example: accusantium
+ nullable: false
+ is_crafted:
+ type: string
+ description: ''
+ example: placeat
+ nullable: false
+ is_premises:
+ type: string
+ description: ''
+ example: minus
+ nullable: false
+ is_chainstore:
+ type: string
+ description: ''
+ example: aut
+ nullable: false
+ ordering_options:
+ type: string
+ description: ''
+ example: voluptas
+ nullable: false
+ required:
+ - logo
+ - name
+ - address
+ - coordinates
+ - sauces
+ - meats
+ - status
+ - opening_hours
+ - opening_year
+ - closing_year
+ - is_crafted
+ - is_premises
+ - is_chainstore
+ - ordering_options
+ security: []
+ '/api/kebabs/{id}':
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the kebab.'
+ example: adipisci
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/logo':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdLogo
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: quia
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/name':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdName
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: ''
+ example: quidem
+ nullable: false
+ required:
+ - name
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: consequuntur
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/address':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdAddress
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ address:
+ type: string
+ description: 'Must not be greater than 255 characters.'
+ example: huxswcermiukedcsywurinn
+ nullable: false
+ required:
+ - address
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: ab
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/coordinates':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdCoordinates
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ coordinates:
+ type: object
+ description: ''
+ example: []
+ nullable: false
+ properties: { }
+ required:
+ - coordinates
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: eaque
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/sauce':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdSauce
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ sauce:
+ type: string
+ description: ''
+ example: nostrum
+ nullable: false
+ required:
+ - sauce
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdSauce
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ sauce:
+ type: string
+ description: ''
+ example: dolore
+ nullable: false
+ required:
+ - sauce
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: laboriosam
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/meat':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdMeat
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ meat:
+ type: string
+ description: ''
+ example: voluptatibus
+ nullable: false
+ required:
+ - meat
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdMeat
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ meat:
+ type: string
+ description: ''
+ example: eos
+ nullable: false
+ required:
+ - meat
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: facere
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/status':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdStatus
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ status:
+ type: string
+ description: ''
+ example: exists
+ nullable: false
+ enum:
+ - exists
+ - closed
+ - planned
+ required:
+ - status
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: quas
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/opening-hours':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdOpeningHours
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ day:
+ type: string
+ description: ''
+ example: saturday
+ nullable: false
+ enum:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ hours:
+ type: string
+ description: ''
+ example: quis
+ nullable: false
+ required:
+ - day
+ - hours
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdOpeningHours
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ day:
+ type: string
+ description: ''
+ example: monday
+ nullable: false
+ enum:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ required:
+ - day
+ security: []
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdOpeningHours
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ day:
+ type: string
+ description: ''
+ example: sunday
+ nullable: false
+ enum:
+ - monday
+ - tuesday
+ - wednesday
+ - thursday
+ - friday
+ - saturday
+ - sunday
+ hours:
+ type: string
+ description: ''
+ example: explicabo
+ nullable: false
+ required:
+ - day
+ - hours
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: est
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/opening-year':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdOpeningYear
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ opening_year:
+ type: string
+ description: 'Must be 4 digits.'
+ example: '6167'
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: recusandae
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/closing-year':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdClosingYear
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ closing_year:
+ type: string
+ description: 'Must be 4 digits.'
+ example: '2621'
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: voluptatem
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/is-crafted':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdIsCrafted
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ is_crafted:
+ type: boolean
+ description: ''
+ example: true
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: vel
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/is-premises':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdIsPremises
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ is_premises:
+ type: boolean
+ description: ''
+ example: false
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: laudantium
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/is-chainstore':
+ put:
+ summary: ''
+ operationId: putApiKebabsKebabIdIsChainstore
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: false
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ is_chainstore:
+ type: boolean
+ description: ''
+ example: false
+ nullable: true
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: ea
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/ordering-options':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdOrderingOptions
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ new_option:
+ type: string
+ description: ''
+ example: nesciunt
+ nullable: false
+ required:
+ - new_option
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdOrderingOptions
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ option_to_remove:
+ type: string
+ description: ''
+ example: est
+ nullable: false
+ required:
+ - option_to_remove
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: reprehenderit
+ required: true
+ schema:
+ type: string
+ '/api/kebabs/{kebabId}/pages':
+ post:
+ summary: ''
+ operationId: postApiKebabsKebabIdPages
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ new_page:
+ type: string
+ description: ''
+ example: explicabo
+ nullable: false
+ required:
+ - new_page
+ security: []
+ delete:
+ summary: ''
+ operationId: deleteApiKebabsKebabIdPages
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Kebab
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ page_to_remove:
+ type: string
+ description: ''
+ example: corporis
+ nullable: false
+ required:
+ - page_to_remove
+ security: []
+ parameters:
+ -
+ in: path
+ name: kebabId
+ description: ''
+ example: consectetur
+ required: true
+ schema:
+ type: string
+ /api/scrape-reviews:
+ get:
+ summary: ''
+ operationId: getApiScrapeReviews
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/scrape-reviews could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/scrape-reviews could not be found.'
+ tags:
+ - KebabScraper
+ security: []
+ /api/suggestions:
+ post:
+ summary: ''
+ operationId: postApiSuggestions
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Suggestions
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user:
+ type: string
+ description: 'Must not be greater than 255 characters.'
+ example: yhyrnmamtgxprtslmownvg
+ nullable: false
+ contents:
+ type: string
+ description: 'Must not be greater than 255 characters.'
+ example: vmtnljhahaj
+ nullable: false
+ required:
+ - user
+ - contents
+ security: []
+ get:
+ summary: ''
+ operationId: getApiSuggestions
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/suggestions could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/suggestions could not be found.'
+ tags:
+ - Suggestions
+ security: []
+ '/api/suggestions/{id}':
+ delete:
+ summary: ''
+ operationId: deleteApiSuggestionsId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Suggestions
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the suggestion.'
+ example: magni
+ required: true
+ schema:
+ type: string
+ /api/getCurrentUser:
+ get:
+ summary: ''
+ operationId: getApiGetCurrentUser
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/getCurrentUser could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/getCurrentUser could not be found.'
+ tags:
+ - Users
+ security: []
+ '/api/fav/{id}':
+ get:
+ summary: ''
+ operationId: getApiFavId
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/fav/veritatis could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/fav/veritatis could not be found.'
+ tags:
+ - Users
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the fav.'
+ example: veritatis
+ required: true
+ schema:
+ type: string
+ /api/addfav:
+ post:
+ summary: ''
+ operationId: postApiAddfav
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: string
+ description: ''
+ example: eum
+ nullable: false
+ kebab_id:
+ type: string
+ description: ''
+ example: quia
+ nullable: false
+ required:
+ - user_id
+ - kebab_id
+ security: []
+ /api/remfav:
+ post:
+ summary: ''
+ operationId: postApiRemfav
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ user_id:
+ type: string
+ description: ''
+ example: quas
+ nullable: false
+ kebab_id:
+ type: string
+ description: ''
+ example: quia
+ nullable: false
+ required:
+ - user_id
+ - kebab_id
+ security: []
+ '/api/changeName/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangeNameId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ newName:
+ type: string
+ description: ''
+ example: nobis
+ nullable: false
+ required:
+ - newName
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changeName.'
+ example: facilis
+ required: true
+ schema:
+ type: string
+ '/api/changePassword/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangePasswordId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ newPassword:
+ type: string
+ description: ''
+ example: quas
+ nullable: false
+ confirmPassword:
+ type: string
+ description: ''
+ example: rerum
+ nullable: false
+ required:
+ - newPassword
+ - confirmPassword
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changePassword.'
+ example: laborum
+ required: true
+ schema:
+ type: string
+ '/api/changeEmail/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangeEmailId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ newEmail:
+ type: string
+ description: 'Must be a valid email address.'
+ example: shanie84@example.org
+ nullable: false
+ required:
+ - newEmail
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changeEmail.'
+ example: commodi
+ required: true
+ schema:
+ type: string
+ '/api/changeUserRole/{id}':
+ put:
+ summary: ''
+ operationId: putApiChangeUserRoleId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ isAdmin:
+ type: boolean
+ description: ''
+ example: false
+ nullable: false
+ required:
+ - isAdmin
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the changeUserRole.'
+ example: atque
+ required: true
+ schema:
+ type: string
+ '/api/deleteUser/{id}':
+ delete:
+ summary: ''
+ operationId: deleteApiDeleteUserId
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ security: []
+ parameters:
+ -
+ in: path
+ name: id
+ description: 'The ID of the deleteUser.'
+ example: ut
+ required: true
+ schema:
+ type: string
+ /api/getAllUsers:
+ get:
+ summary: ''
+ operationId: getApiGetAllUsers
+ description: ''
+ parameters: []
+ responses:
+ 404:
+ description: ''
+ content:
+ application/json:
+ schema:
+ type: object
+ example:
+ message: 'The route api/getAllUsers could not be found.'
+ properties:
+ message:
+ type: string
+ example: 'The route api/getAllUsers could not be found.'
+ tags:
+ - Users
+ security: []
+ /api/addNewUser:
+ post:
+ summary: ''
+ operationId: postApiAddNewUser
+ description: ''
+ parameters: []
+ responses: { }
+ tags:
+ - Users
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ name:
+ type: string
+ description: ''
+ example: ut
+ nullable: false
+ email:
+ type: string
+ description: 'Must be a valid email address.'
+ example: moconnell@example.com
+ nullable: false
+ password:
+ type: string
+ description: ''
+ example: est
+ nullable: false
+ required:
+ - name
+ - email
+ - password
+ security: []
+tags:
+ -
+ name: Auth
+ description: '*'
+ -
+ name: Endpoints
+ description: ''
+ -
+ name: Kebab
+ description: '*'
+ -
+ name: KebabScraper
+ description: '*'
+ -
+ name: Suggestions
+ description: '*'
+ -
+ name: Users
+ description: '*'
+components:
+ securitySchemes:
+ default:
+ type: http
+ scheme: bearer
+ description: 'You can retrieve your token by visiting your dashboard and clicking Generate API token .'
+security:
+ -
+ default: []
diff --git a/Backend/resources/views/vendor/l5-swagger/.gitkeep b/Backend/resources/views/vendor/l5-swagger/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/Backend/resources/views/vendor/l5-swagger/index.blade.php b/Backend/resources/views/vendor/l5-swagger/index.blade.php
new file mode 100644
index 0000000..cc9cc7c
--- /dev/null
+++ b/Backend/resources/views/vendor/l5-swagger/index.blade.php
@@ -0,0 +1,164 @@
+
+
+
+
+ {{config('l5-swagger.documentations.'.$documentation.'.api.title')}}
+
+
+
+
+ @if(config('l5-swagger.defaults.ui.display.dark_mode'))
+
+ @endif
+
+
+
+
+
+
+
+
+
+
diff --git a/Backend/routes/api.php b/Backend/routes/api.php
index 7931032..c3f7806 100644
--- a/Backend/routes/api.php
+++ b/Backend/routes/api.php
@@ -3,8 +3,10 @@
declare(strict_types=1);
use App\Http\Controllers\AuthController;
+use App\Http\Controllers\KebabController;
+use App\Http\Controllers\KebabScraperController;
+use App\Http\Controllers\SuggestionsController;
use App\Http\Controllers\UserController;
-use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
/*
@@ -18,12 +20,58 @@
|
*/
-Route::middleware("auth:sanctum")->get("/user", fn(Request $request) => $request->user());
-
Route::post("/register", [AuthController::class, "register"]);
Route::post("/login", [AuthController::class, "login"]);
+Route::get("/kebabs", [KebabController::class, "getAllKebabs"]);
+Route::get("/comments/{id}", [KebabController::class, "GetComments"]);
+Route::get("/scrape-reviews", [KebabScraperController::class, "scrapeAllReviews"]);
Route::middleware("auth:sanctum")->group(function (): void {
Route::post("/logout", [AuthController::class, "logout"]);
Route::get("/getCurrentUser", [UserController::class, "getCurrentUser"]);
+ Route::get("/fav/{id}", [UserController::class, "getUserFavorites"]);
+ Route::post("/addfav", [UserController::class, "addToFavorites"]);
+ Route::post("/remfav", [UserController::class, "removeFromFavorites"]);
+ Route::put("/changeName/{id}", [UserController::class, "changeName"]);
+ Route::put("/changePassword/{id}", [UserController::class, "changePassword"]);
+ Route::put("/changeEmail/{id}", [UserController::class, "changeEmail"]);
+ Route::post("/suggestions", [SuggestionsController::class, "createSuggestion"]);
+ Route::post("/kebabs/{kebabId}/comments", [KebabController::class, "addComment"]);
+ Route::delete("/kebabs/{kebabId}/comments", [KebabController::class, "removeComment"]);
+});
+
+Route::get("/documentation", fn() => view("vendor.scribe.index"));
+
+Route::middleware(["auth:sanctum", "admin"])->group(function (): void {
+ Route::put("/changeUserRole/{id}", [UserController::class, "changeUserRole"]);
+ Route::delete("/deleteUser/{id}", [UserController::class, "deleteUser"]);
+ Route::get("/getAllUsers", [UserController::class, "getAllUsers"]);
+ Route::post("/addNewUser", [UserController::class, "addNewUser"]);
+ Route::post("/addKebab", [KebabController::class, "addKebab"]);
+ Route::delete("/kebabs/{id}", [KebabController::class, "deleteKebab"]);
+ Route::put("/kebabs/{kebabId}/logo", [KebabController::class, "changeKebabLogo"]);
+ Route::put("/kebabs/{kebabId}/name", [KebabController::class, "changeKebabName"]);
+ Route::put("/kebabs/{kebabId}/address", [KebabController::class, "changeKebabAddress"]);
+ Route::put("/kebabs/{kebabId}/coordinates", [KebabController::class, "changeKebabCoordinates"]);
+ Route::post("/kebabs/{kebabId}/sauce", [KebabController::class, "addSauceToKebab"]);
+ Route::delete("/kebabs/{kebabId}/sauce", [KebabController::class, "removeSauceFromKebab"]);
+ Route::post("/kebabs/{kebabId}/meat", [KebabController::class, "addMeatToKebab"]);
+ Route::delete("/kebabs/{kebabId}/meat", [KebabController::class, "removeMeatFromKebab"]);
+ Route::put("/kebabs/{kebabId}/status", [KebabController::class, "changeKebabStatus"]);
+ Route::post("/kebabs/{kebabId}/opening-hours", [KebabController::class, "addOpeningHour"]);
+ Route::delete("/kebabs/{kebabId}/opening-hours", [KebabController::class, "removeOpeningHour"]);
+ Route::put("/kebabs/{kebabId}/opening-hours", [KebabController::class, "changeOpeningHour"]);
+ Route::put("/kebabs/{kebabId}/opening-year", [KebabController::class, "updateOpeningYear"]);
+ Route::put("/kebabs/{kebabId}/closing-year", [KebabController::class, "updateClosingYear"]);
+ Route::put("/kebabs/{kebabId}/is-crafted", [KebabController::class, "updateIsCrafted"]);
+ Route::put("/kebabs/{kebabId}/is-premises", [KebabController::class, "updateIsPremises"]);
+ Route::put("/kebabs/{kebabId}/is-chainstore", [KebabController::class, "updateIsChainstore"]);
+ Route::post("/kebabs/{kebabId}/ordering-options", [KebabController::class, "addOrderingOption"]);
+ Route::delete("/kebabs/{kebabId}/ordering-options", [KebabController::class, "removeOrderingOption"]);
+ Route::put("/kebabs/{kebabId}/google-reviews", [KebabController::class, "updateGoogleReviews"]);
+ Route::put("/kebabs/{kebabId}/pysznepl-reviews", [KebabController::class, "updatePyszneplReviews"]);
+ Route::post("/kebabs/{kebabId}/pages", [KebabController::class, "addPage"]);
+ Route::delete("/kebabs/{kebabId}/pages", [KebabController::class, "removePage"]);
+ Route::get("/suggestions", [SuggestionsController::class, "showAllSuggestions"]);
+ Route::delete("/suggestions/{id}", [SuggestionsController::class, "destroySuggestion"]);
});
diff --git a/Backend/routes/web.php b/Backend/routes/web.php
index 21a2f90..43500f1 100644
--- a/Backend/routes/web.php
+++ b/Backend/routes/web.php
@@ -14,5 +14,5 @@
| be assigned to the "web" middleware group. Make something great!
|
*/
-
Route::get("/", fn() => view("welcome"));
+Route::get("/api/documentation", fn() => file_get_contents(public_path("docs/index.html")));
diff --git a/Backend/storage/api-docs/api-docs.json b/Backend/storage/api-docs/api-docs.json
new file mode 100644
index 0000000..668dd93
--- /dev/null
+++ b/Backend/storage/api-docs/api-docs.json
@@ -0,0 +1,274 @@
+{
+ "openapi": "3.0.0",
+ "info": {
+ "title": "KebabApp API",
+ "description": "API for managing kebab stores",
+ "termsOfService": "http://example.com/terms",
+ "contact": {
+ "email": "support@example.com"
+ },
+ "license": {
+ "name": "MIT",
+ "url": "https://opensource.org/licenses/MIT"
+ },
+ "version": "1.0.0"
+ },
+ "servers": [
+ {
+ "url": "http://localhost/api",
+ "description": "Local Development Server"
+ }
+ ],
+ "paths": {
+ "/api/register": {
+ "post": {
+ "tags": [
+ "Auth"
+ ],
+ "summary": "Register a new user",
+ "operationId": "8a56853624e025573120a09a4c75d468",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "required": [
+ "name",
+ "email",
+ "password"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "example": "John Doe"
+ },
+ "email": {
+ "type": "string",
+ "example": "johndoe@example.com"
+ },
+ "password": {
+ "type": "string",
+ "format": "password",
+ "example": "password123"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "User registered successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "user": {
+ "$ref": "#/components/schemas/User"
+ },
+ "token": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid input"
+ }
+ }
+ }
+ },
+ "/api/login": {
+ "post": {
+ "tags": [
+ "Auth"
+ ],
+ "summary": "Login an existing user",
+ "operationId": "a3b306d14572d1f4bd6c064b3233e7b8",
+ "requestBody": {
+ "required": true,
+ "content": {
+ "application/json": {
+ "schema": {
+ "required": [
+ "email",
+ "password"
+ ],
+ "properties": {
+ "email": {
+ "type": "string",
+ "example": "johndoe@example.com"
+ },
+ "password": {
+ "type": "string",
+ "format": "password",
+ "example": "password123"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ "responses": {
+ "200": {
+ "description": "User logged in successfully",
+ "content": {
+ "application/json": {
+ "schema": {
+ "properties": {
+ "user": {
+ "$ref": "#/components/schemas/User"
+ },
+ "token": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ }
+ }
+ }
+ },
+ "400": {
+ "description": "Invalid credentials"
+ }
+ }
+ }
+ },
+ "/api/logout": {
+ "post": {
+ "tags": [
+ "Auth"
+ ],
+ "summary": "Logout the current user",
+ "operationId": "fe8f3429cd6979b3b4517e186505f9f9",
+ "responses": {
+ "204": {
+ "description": "Successfully logged out"
+ },
+ "401": {
+ "description": "Unauthorized"
+ }
+ }
+ }
+ }
+ },
+ "components": {
+ "schemas": {
+ "KebabRequest": {
+ "required": [
+ "logo",
+ "name",
+ "address",
+ "coordinates",
+ "sauces",
+ "meats",
+ "status",
+ "opening_hours",
+ "opening_year",
+ "closing_year",
+ "is_crafted",
+ "is_premises",
+ "is_chainstore",
+ "ordering_options"
+ ],
+ "properties": {
+ "logo": {
+ "description": "Logo of the kebab store",
+ "type": "string"
+ },
+ "name": {
+ "description": "Name of the kebab store",
+ "type": "string"
+ },
+ "address": {
+ "description": "Address of the kebab store",
+ "type": "string"
+ },
+ "coordinates": {
+ "description": "Coordinates of the kebab store",
+ "type": "string"
+ },
+ "sauces": {
+ "description": "List of sauces available",
+ "type": "string"
+ },
+ "meats": {
+ "description": "List of meats available",
+ "type": "string"
+ },
+ "status": {
+ "description": "Status of the store",
+ "type": "string"
+ },
+ "opening_hours": {
+ "description": "Opening hours of the store",
+ "type": "string"
+ },
+ "opening_year": {
+ "description": "Year the store opened",
+ "type": "integer"
+ },
+ "closing_year": {
+ "description": "Year the store closed",
+ "type": "integer"
+ },
+ "is_crafted": {
+ "description": "Whether the store is crafted",
+ "type": "boolean"
+ },
+ "is_premises": {
+ "description": "Whether the store is a premises",
+ "type": "boolean"
+ },
+ "is_chainstore": {
+ "description": "Whether the store is part of a chain",
+ "type": "boolean"
+ },
+ "ordering_options": {
+ "description": "Ordering options available",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "User": {
+ "required": [
+ "id",
+ "name",
+ "email",
+ "isAdmin"
+ ],
+ "properties": {
+ "id": {
+ "description": "User ID",
+ "type": "integer"
+ },
+ "name": {
+ "description": "User's name",
+ "type": "string"
+ },
+ "email": {
+ "description": "User's email",
+ "type": "string"
+ },
+ "isAdmin": {
+ "description": "User's admin status",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ }
+ }
+ },
+ "tags": [
+ {
+ "name": "Auth",
+ "description": "Authentication related endpoints"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/Backend/tests/Arch/ModelArchTest.php b/Backend/tests/Arch/ModelArchTest.php
new file mode 100644
index 0000000..3607b5f
--- /dev/null
+++ b/Backend/tests/Arch/ModelArchTest.php
@@ -0,0 +1,11 @@
+expect('App\Models')
+ ->toBeClasses()
+ ->toHaveSuffix('')
+ ->toExtend(\Illuminate\Database\Eloquent\Model::class);
+
+arch('Kebab model should follow conventions')
+ ->expect('App\Models\Kebab')
+ ->toBeClasses();
diff --git a/Backend/tests/Arch/RequestsArchTest.php b/Backend/tests/Arch/RequestsArchTest.php
new file mode 100644
index 0000000..cd30911
--- /dev/null
+++ b/Backend/tests/Arch/RequestsArchTest.php
@@ -0,0 +1,17 @@
+expect('App\Http\Requests')
+ ->toBeClasses()
+ ->toHaveSuffix('Request');
+
+arch('Kebab requests should be in thier folder')
+ ->expect('App\Http\Requests\KebabRequests')
+ ->toBeClasses()
+ ->toHaveSuffix('Request');
+
+arch('UserRequests should have proper architecture')
+ ->expect('App\Http\Requests\UserRequests')
+ ->toBeClasses()
+ ->toHaveSuffix('Request')
+ ->toExtend(\Illuminate\Foundation\Http\FormRequest::class);
\ No newline at end of file
diff --git a/Backend/tests/Feature/AdminRoutesTest.php b/Backend/tests/Feature/AdminRoutesTest.php
new file mode 100644
index 0000000..7577168
--- /dev/null
+++ b/Backend/tests/Feature/AdminRoutesTest.php
@@ -0,0 +1,101 @@
+create([
+ "isAdmin" => 1,
+ "password" => Hash::make("password"),
+ ]);
+
+ $this->actingAs($admin);
+
+ $response = $this->getJson("/api/getAllUsers");
+
+ $response->assertStatus(200);
+
+ $responseData = $response->json();
+ $this->assertIsArray($responseData);
+ $this->assertNotEmpty($responseData);
+ }
+
+ public function testNonAdminCannotAccessAdminRoutes(): void
+ {
+ $response = $this->postJson("/api/register", [
+ "name" => "NonAdmin",
+ "email" => "nonadmin@example.com",
+ "password" => "password",
+ "password_confirmation" => "password",
+ ]);
+
+ $response->assertStatus(200);
+
+ $user = User::where("email", "nonadmin@example.com")->first();
+ $this->actingAs($user);
+
+ $response = $this->getJson("/api/getAllUsers");
+
+ $response->assertStatus(403);
+ }
+
+ public function testGuestCannotAccessAdminRoutes(): void
+ {
+ $response = $this->getJson("/api/getAllUsers");
+
+ $response->assertStatus(401);
+ }
+
+ public function testAdminCanDeleteUser(): void
+ {
+ $admin = User::factory()->create([
+ "isAdmin" => 1,
+ "password" => Hash::make("password"),
+ ]);
+
+ $userToDelete = User::factory()->create([
+ "isAdmin" => 0,
+ "password" => Hash::make("password"),
+ ]);
+
+ $this->actingAs($admin);
+
+ $response = $this->deleteJson("/api/deleteUser/{$userToDelete->id}");
+
+ $response->assertStatus(200);
+
+ $this->assertDatabaseMissing("users", ["id" => $userToDelete->id]);
+ }
+
+ public function testNonAdminCannotDeleteUser(): void
+ {
+ $user = User::factory()->create([
+ "isAdmin" => 0,
+ "password" => Hash::make("password"),
+ ]);
+
+ $userToDelete = User::factory()->create([
+ "isAdmin" => 0,
+ "password" => Hash::make("password"),
+ ]);
+
+ $this->actingAs($user);
+
+ $response = $this->deleteJson("/api/deleteUser/{$userToDelete->id}");
+
+ $response->assertStatus(403);
+
+ $this->assertDatabaseHas("users", ["id" => $userToDelete->id]);
+ }
+}
diff --git a/Backend/tests/Feature/AuthControllerTest.php b/Backend/tests/Feature/AuthControllerTest.php
new file mode 100644
index 0000000..9f7348d
--- /dev/null
+++ b/Backend/tests/Feature/AuthControllerTest.php
@@ -0,0 +1,96 @@
+postJson("/api/register", [
+ "name" => "Jasio",
+ "email" => "Jasio@example.com",
+ "password" => "password",
+ "password_confirmation" => "password",
+ ]);
+
+ $response->assertStatus(200);
+ $this->assertDatabaseHas("users", ["email" => "Jasio@example.com"]);
+ }
+
+ public function testUserCantRegisterWithMissingPasswordConfirmation(): void
+ {
+ $response = $this->postJson("/api/register", [
+ "name" => "Jasio",
+ "email" => "Jasio@example.com",
+ "password" => "password",
+ "password_confirmation" => "",
+ ]);
+
+ $response->assertStatus(422);
+ $response->assertJsonValidationErrors(["password"]);
+ $this->assertDatabaseMissing("users", ["email" => "Jasio@example.com"]);
+ }
+
+ public function testUserCantRegisterWithMissingName(): void
+ {
+ $response = $this->postJson("/api/register", [
+ "name" => "",
+ "email" => "Jasio@example.com",
+ "password" => "password",
+ "password_confirmation" => "password",
+ ]);
+
+ $response->assertStatus(422);
+ $response->assertJsonValidationErrors(["name"]);
+ $this->assertDatabaseMissing("users", ["email" => "Jasio@example.com"]);
+ }
+
+ public function testUserCannotLoginWithInvalidCredentials(): void
+ {
+ $response = $this->postJson("/api/login", [
+ "email" => "wronguser@example.com",
+ "password" => "wrongpassword",
+ ]);
+
+ $response->assertStatus(422);
+ $response->assertJson(["message" => "The selected email is invalid."]);
+ }
+
+ public function testUserMaxNameTest(): void
+ {
+ $response = $this->post("/api/register", [
+ "name" => Str::random(256),
+ "email" => "Jasio@example.com",
+ "password" => "password",
+ "password_confirmation" => "password",
+ ]);
+
+ $response->assertStatus(200);
+ }
+
+ public function testUserCanLogin(): void
+ {
+ User::factory()->create([
+ "email" => "Jasio@example.com",
+ "password" => bcrypt("password"),
+ "isAdmin" => false,
+ ]);
+
+ $response = $this->post("/api/login", [
+ "email" => "Jasio@example.com",
+ "password" => "password",
+ ]);
+
+ $response->assertStatus(200);
+ $response->assertJsonStructure(["user", "token"]);
+ }
+}
diff --git a/Backend/tests/Feature/StresTest.php b/Backend/tests/Feature/StresTest.php
new file mode 100644
index 0000000..d79a110
--- /dev/null
+++ b/Backend/tests/Feature/StresTest.php
@@ -0,0 +1,35 @@
+getJson('/api/kebabs');
+
+ expect(in_array($response->status(), [200, 429]))
+ ->toBeTrue("Unexpected status: {$response->status()}");
+ }
+});
+ test('API rate limits requests correctly', function () {
+ $iterations = 100;
+ $successfulResponses = 0;
+ $rateLimitResponses = 0;
+
+ for ($i = 0; $i < $iterations; $i++) {
+ $response = $this->getJson('/api/kebabs');
+
+ if ($response->status() === 200) {
+ $successfulResponses++;
+ } elseif ($response->status() === 429) {
+ $rateLimitResponses++;
+ }
+ }
+
+ expect($successfulResponses)->toBeGreaterThan(0);
+ expect($rateLimitResponses)->toBeGreaterThan(0);
+});
diff --git a/Backend/tests/Feature/SuggestionsRoutesTest.php b/Backend/tests/Feature/SuggestionsRoutesTest.php
new file mode 100644
index 0000000..588f6ac
--- /dev/null
+++ b/Backend/tests/Feature/SuggestionsRoutesTest.php
@@ -0,0 +1,32 @@
+create([
+ "isAdmin" => 1,
+ "password" => Hash::make("password"),
+ ]);
+
+ $this->actingAs($admin);
+
+ $response = $this->getJson("/api/suggestions");
+
+ $response->assertStatus(200);
+
+ $responseData = $response->json();
+ $this->assertIsArray($responseData);
+ }
+}
diff --git a/Backend/tests/Pest.php b/Backend/tests/Pest.php
new file mode 100644
index 0000000..50ab1e4
--- /dev/null
+++ b/Backend/tests/Pest.php
@@ -0,0 +1,48 @@
+in('Feature');
+
+/*
+|--------------------------------------------------------------------------
+| Expectations
+|--------------------------------------------------------------------------
+|
+| When you're writing tests, you often need to check that values meet certain conditions. The
+| "expect()" function gives you access to a set of "expectations" methods that you can use
+| to assert different things. Of course, you may extend the Expectation API at any time.
+|
+*/
+
+expect()->extend('toBeOne', function () {
+ return $this->toBe(1);
+});
+
+/*
+|--------------------------------------------------------------------------
+| Functions
+|--------------------------------------------------------------------------
+|
+| While Pest is very powerful out-of-the-box, you may have some testing code specific to your
+| project that you don't want to repeat in every file. Here you can also expose helpers as
+| global functions to help you to reduce the number of lines of code in your test files.
+|
+*/
+
+function something()
+{
+ // ..
+}
diff --git a/Backend/tests/Unit/KebabModelTest.php b/Backend/tests/Unit/KebabModelTest.php
new file mode 100644
index 0000000..e8ca0b9
--- /dev/null
+++ b/Backend/tests/Unit/KebabModelTest.php
@@ -0,0 +1,33 @@
+ 'Delicious Kebab',
+ 'address' => 'Main Street 42',
+ 'status' => 'open',
+ ]);
+
+ expect($kebab->name)->toBe('Delicious Kebab');
+ expect($kebab->address)->toBe('Main Street 42');
+ expect($kebab->status)->toBe('open');
+});
+
+test('casts work correctly', function () {
+ $kebab = new Kebab([
+ 'coordinates' => ['lat' => 50.06, 'lng' => 19.94],
+ 'sauces' => ['mayo', 'ketchup'],
+ 'meats' => ['chicken', 'beef'],
+ ]);
+
+ expect($kebab->coordinates)->toBe(['lat' => 50.06, 'lng' => 19.94]);
+ expect($kebab->sauces)->toBe(['mayo', 'ketchup']);
+ expect($kebab->meats)->toBe(['chicken', 'beef']);
+});
+
+test('guarded fields cannot be mass assigned', function () {
+ $kebab = new Kebab(['id' => 1]);
+
+ expect($kebab->id)->not->toBe(1);
+});
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 55eb194..1b252d8 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -8,9 +8,14 @@
"name": "kebab_city_tour",
"version": "0.1.0",
"dependencies": {
+ "@fortawesome/fontawesome-svg-core": "^6.7.1",
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
+ "@fortawesome/free-solid-svg-icons": "^6.7.1",
+ "@fortawesome/react-fontawesome": "^0.2.2",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
+ "axios": "^1.7.9",
"leaflet": "^1.9.4",
"prop-types": "^15.8.1",
"react": "^18.3.1",
@@ -22,7 +27,9 @@
},
"devDependencies": {
"@eslint/js": "^9.14.0",
- "eslint": "^9.14.0",
+ "cypress": "^13.8.0",
+ "eslint": "^9.18.0",
+ "eslint-plugin-cypress": "^4.1.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"globals": "^15.12.0",
@@ -33,9 +40,9 @@
}
},
"node_modules/@adobe/css-tools": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.0.tgz",
- "integrity": "sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ=="
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.1.tgz",
+ "integrity": "sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ=="
},
"node_modules/@alloc/quick-lru": {
"version": "5.2.0",
@@ -61,11 +68,12 @@
}
},
"node_modules/@babel/code-frame": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz",
- "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==",
+ "version": "7.26.2",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz",
+ "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==",
"dependencies": {
- "@babel/highlight": "^7.25.7",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "js-tokens": "^4.0.0",
"picocolors": "^1.0.0"
},
"engines": {
@@ -73,28 +81,28 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.8.tgz",
- "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz",
+ "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.8.tgz",
- "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz",
+ "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==",
"dependencies": {
"@ampproject/remapping": "^2.2.0",
- "@babel/code-frame": "^7.25.7",
- "@babel/generator": "^7.25.7",
- "@babel/helper-compilation-targets": "^7.25.7",
- "@babel/helper-module-transforms": "^7.25.7",
- "@babel/helpers": "^7.25.7",
- "@babel/parser": "^7.25.8",
- "@babel/template": "^7.25.7",
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.8",
+ "@babel/code-frame": "^7.26.0",
+ "@babel/generator": "^7.26.0",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helpers": "^7.26.0",
+ "@babel/parser": "^7.26.0",
+ "@babel/template": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.26.0",
"convert-source-map": "^2.0.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
@@ -118,9 +126,9 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.25.8.tgz",
- "integrity": "sha512-Po3VLMN7fJtv0nsOjBDSbO1J71UhzShE9MuOSkWEV9IZQXzhZklYtzKZ8ZD/Ij3a0JBv1AG3Ny2L3jvAHQVOGg==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.26.5.tgz",
+ "integrity": "sha512-Kkm8C8uxI842AwQADxl0GbcG1rupELYLShazYEZO/2DYjhyWXJIOUVOE3tBYm6JXzUCNJOZEzqc4rCW/jsEQYQ==",
"dependencies": {
"@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1",
"eslint-visitor-keys": "^2.1.0",
@@ -151,11 +159,12 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz",
- "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz",
+ "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==",
"dependencies": {
- "@babel/types": "^7.25.7",
+ "@babel/parser": "^7.26.5",
+ "@babel/types": "^7.26.5",
"@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^3.0.2"
@@ -165,35 +174,23 @@
}
},
"node_modules/@babel/helper-annotate-as-pure": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz",
- "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==",
- "dependencies": {
- "@babel/types": "^7.25.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz",
- "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz",
+ "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==",
"dependencies": {
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz",
- "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz",
+ "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==",
"dependencies": {
- "@babel/compat-data": "^7.25.7",
- "@babel/helper-validator-option": "^7.25.7",
+ "@babel/compat-data": "^7.26.5",
+ "@babel/helper-validator-option": "^7.25.9",
"browserslist": "^4.24.0",
"lru-cache": "^5.1.1",
"semver": "^6.3.1"
@@ -211,16 +208,16 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz",
- "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-member-expression-to-functions": "^7.25.7",
- "@babel/helper-optimise-call-expression": "^7.25.7",
- "@babel/helper-replace-supers": "^7.25.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
- "@babel/traverse": "^7.25.7",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz",
+ "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
"semver": "^6.3.1"
},
"engines": {
@@ -239,12 +236,12 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz",
- "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz",
+ "integrity": "sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "regexpu-core": "^6.1.1",
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "regexpu-core": "^6.2.0",
"semver": "^6.3.1"
},
"engines": {
@@ -263,9 +260,9 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz",
- "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.3.tgz",
+ "integrity": "sha512-HK7Bi+Hj6H+VTHA3ZvBis7V/6hu9QuTrnMXNybfUf2iiuU/N97I8VjB+KbhFF8Rld/Lx5MzoCwPCpPjfK+n8Cg==",
"dependencies": {
"@babel/helper-compilation-targets": "^7.22.6",
"@babel/helper-plugin-utils": "^7.22.5",
@@ -277,39 +274,57 @@
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
}
},
+ "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz",
- "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz",
+ "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==",
"dependencies": {
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz",
- "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz",
+ "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==",
"dependencies": {
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz",
- "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz",
+ "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==",
"dependencies": {
- "@babel/helper-module-imports": "^7.25.7",
- "@babel/helper-simple-access": "^7.25.7",
- "@babel/helper-validator-identifier": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -319,32 +334,32 @@
}
},
"node_modules/@babel/helper-optimise-call-expression": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz",
- "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz",
+ "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==",
"dependencies": {
- "@babel/types": "^7.25.7"
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz",
- "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz",
+ "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz",
- "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz",
+ "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-wrap-function": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-wrap-function": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -354,13 +369,13 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz",
- "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz",
+ "integrity": "sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==",
"dependencies": {
- "@babel/helper-member-expression-to-functions": "^7.25.7",
- "@babel/helper-optimise-call-expression": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-member-expression-to-functions": "^7.25.9",
+ "@babel/helper-optimise-call-expression": "^7.25.9",
+ "@babel/traverse": "^7.26.5"
},
"engines": {
"node": ">=6.9.0"
@@ -369,163 +384,73 @@
"@babel/core": "^7.0.0"
}
},
- "node_modules/@babel/helper-simple-access": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz",
- "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==",
- "dependencies": {
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz",
- "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz",
+ "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==",
"dependencies": {
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-string-parser": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz",
- "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz",
+ "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz",
- "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz",
+ "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz",
- "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz",
+ "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz",
- "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz",
+ "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==",
"dependencies": {
- "@babel/template": "^7.25.7",
- "@babel/traverse": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/template": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helpers": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz",
- "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==",
- "dependencies": {
- "@babel/template": "^7.25.7",
- "@babel/types": "^7.25.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz",
- "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz",
+ "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.25.7",
- "chalk": "^2.4.2",
- "js-tokens": "^4.0.0",
- "picocolors": "^1.0.0"
+ "@babel/template": "^7.25.9",
+ "@babel/types": "^7.26.0"
},
"engines": {
"node": ">=6.9.0"
}
},
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
- },
- "node_modules/@babel/highlight/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/@babel/parser": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz",
- "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz",
+ "integrity": "sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==",
"dependencies": {
- "@babel/types": "^7.25.8"
+ "@babel/types": "^7.26.5"
},
"bin": {
"parser": "bin/babel-parser.js"
@@ -535,12 +460,12 @@
}
},
"node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz",
- "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz",
+ "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -550,11 +475,11 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz",
- "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz",
+ "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -564,11 +489,11 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz",
- "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz",
+ "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -578,13 +503,13 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz",
- "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz",
+ "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
- "@babel/plugin-transform-optional-chaining": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/plugin-transform-optional-chaining": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -594,12 +519,12 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz",
- "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz",
+ "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -625,13 +550,13 @@
}
},
"node_modules/@babel/plugin-proposal-decorators": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.7.tgz",
- "integrity": "sha512-q1mqqqH0e1lhmsEQHV5U8OmdueBC2y0RFr2oUzZoFRtN3MvPmt2fsFRcNQAoGLTSNdHBFUYGnlgcRFhkBbKjPw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.25.9.tgz",
+ "integrity": "sha512-smkNLL/O1ezy9Nhy4CNosc4Va+1wo5w4gzSZeLe6y6dM4mmHfYOCPolXQPHQxonZCF+ZyebxN9vqOolkYrSn5g==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/plugin-syntax-decorators": "^7.25.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-syntax-decorators": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -764,11 +689,11 @@
}
},
"node_modules/@babel/plugin-syntax-decorators": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.7.tgz",
- "integrity": "sha512-oXduHo642ZhstLVYTe2z2GSJIruU0c/W3/Ghr6A5yGMsVrvdnxO1z+3pbTcT7f3/Clnt+1z8D/w1r1f1SHaCHw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.25.9.tgz",
+ "integrity": "sha512-ryzI0McXUPJnRCvMo4lumIKZUzhYUO/ScI+Mz4YVaTLt04DHNSjEUjKVvbzQjZFLuod/cYEc07mJWhzl6v4DPg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -778,11 +703,11 @@
}
},
"node_modules/@babel/plugin-syntax-flow": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.25.7.tgz",
- "integrity": "sha512-fyoj6/YdVtlv2ROig/J0fP7hh/wNO1MJGm1NR70Pg7jbkF+jOUL9joorqaCOQh06Y+LfgTagHzC8KqZ3MF782w==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.26.0.tgz",
+ "integrity": "sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -792,11 +717,11 @@
}
},
"node_modules/@babel/plugin-syntax-import-assertions": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz",
- "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz",
+ "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -806,11 +731,11 @@
}
},
"node_modules/@babel/plugin-syntax-import-attributes": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz",
- "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz",
+ "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -842,11 +767,11 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz",
- "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.9.tgz",
+ "integrity": "sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -950,11 +875,11 @@
}
},
"node_modules/@babel/plugin-syntax-typescript": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.7.tgz",
- "integrity": "sha512-rR+5FDjpCHqqZN2bzZm18bVYGaejGq5ZkpVCJLXor/+zlSrSoc4KWcHI0URVWjl/68Dyr1uwZUz/1njycEAv9g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.9.tgz",
+ "integrity": "sha512-hjMgRy5hb8uJJjUcdWunWVcoi9bGpJp8p5Ol1229PoN6aytsLwNMgmdftO23wnCLMfVmTwZDWMPNq/D1SY60JQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -979,11 +904,11 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz",
- "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz",
+ "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -993,13 +918,13 @@
}
},
"node_modules/@babel/plugin-transform-async-generator-functions": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz",
- "integrity": "sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz",
+ "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-remap-async-to-generator": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-remap-async-to-generator": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1009,13 +934,13 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz",
- "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz",
+ "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==",
"dependencies": {
- "@babel/helper-module-imports": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-remap-async-to-generator": "^7.25.7"
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-remap-async-to-generator": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1025,11 +950,11 @@
}
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz",
- "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz",
+ "integrity": "sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.26.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1039,11 +964,11 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz",
- "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz",
+ "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1053,12 +978,12 @@
}
},
"node_modules/@babel/plugin-transform-class-properties": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz",
- "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz",
+ "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1068,12 +993,12 @@
}
},
"node_modules/@babel/plugin-transform-class-static-block": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz",
- "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz",
+ "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1083,15 +1008,15 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz",
- "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==",
- "dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-compilation-targets": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-replace-supers": "^7.25.7",
- "@babel/traverse": "^7.25.7",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz",
+ "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==",
+ "dependencies": {
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9",
+ "@babel/traverse": "^7.25.9",
"globals": "^11.1.0"
},
"engines": {
@@ -1110,12 +1035,12 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz",
- "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz",
+ "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/template": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/template": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1125,11 +1050,11 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz",
- "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz",
+ "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1139,12 +1064,12 @@
}
},
"node_modules/@babel/plugin-transform-dotall-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz",
- "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz",
+ "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1154,11 +1079,11 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz",
- "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz",
+ "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1168,12 +1093,12 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz",
- "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz",
+ "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1183,11 +1108,11 @@
}
},
"node_modules/@babel/plugin-transform-dynamic-import": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz",
- "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz",
+ "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1197,12 +1122,11 @@
}
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz",
- "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz",
+ "integrity": "sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ==",
"dependencies": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1212,11 +1136,11 @@
}
},
"node_modules/@babel/plugin-transform-export-namespace-from": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz",
- "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz",
+ "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1226,12 +1150,12 @@
}
},
"node_modules/@babel/plugin-transform-flow-strip-types": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.25.7.tgz",
- "integrity": "sha512-q8Td2PPc6/6I73g96SreSUCKEcwMXCwcXSIAVTyTTN6CpJe0dMj8coxu1fg1T9vfBLi6Rsi6a4ECcFBbKabS5w==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.26.5.tgz",
+ "integrity": "sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/plugin-syntax-flow": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/plugin-syntax-flow": "^7.26.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1241,12 +1165,12 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz",
- "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz",
+ "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1256,13 +1180,13 @@
}
},
"node_modules/@babel/plugin-transform-function-name": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz",
- "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz",
+ "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1272,11 +1196,11 @@
}
},
"node_modules/@babel/plugin-transform-json-strings": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz",
- "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz",
+ "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1286,11 +1210,11 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz",
- "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz",
+ "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1300,11 +1224,11 @@
}
},
"node_modules/@babel/plugin-transform-logical-assignment-operators": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz",
- "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz",
+ "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1314,11 +1238,11 @@
}
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz",
- "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz",
+ "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1328,12 +1252,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz",
- "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz",
+ "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1343,13 +1267,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz",
- "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz",
+ "integrity": "sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-simple-access": "^7.25.7"
+ "@babel/helper-module-transforms": "^7.26.0",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1359,14 +1282,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz",
- "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz",
+ "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-validator-identifier": "^7.25.7",
- "@babel/traverse": "^7.25.7"
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9",
+ "@babel/traverse": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1376,12 +1299,12 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz",
- "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz",
+ "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==",
"dependencies": {
- "@babel/helper-module-transforms": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-module-transforms": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1391,12 +1314,12 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz",
- "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz",
+ "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1406,11 +1329,11 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz",
- "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz",
+ "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1420,11 +1343,11 @@
}
},
"node_modules/@babel/plugin-transform-nullish-coalescing-operator": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz",
- "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.5.tgz",
+ "integrity": "sha512-OHqczNm4NTQlW1ghrVY43FPoiRzbmzNVbcgVnMKZN/RQYezHUSdjACjaX50CD3B7UIAjv39+MlsrVDb3v741FA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.26.5"
},
"engines": {
"node": ">=6.9.0"
@@ -1434,11 +1357,11 @@
}
},
"node_modules/@babel/plugin-transform-numeric-separator": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz",
- "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz",
+ "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1448,13 +1371,13 @@
}
},
"node_modules/@babel/plugin-transform-object-rest-spread": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz",
- "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz",
+ "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==",
"dependencies": {
- "@babel/helper-compilation-targets": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/plugin-transform-parameters": "^7.25.7"
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-transform-parameters": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1464,12 +1387,12 @@
}
},
"node_modules/@babel/plugin-transform-object-super": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz",
- "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz",
+ "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-replace-supers": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-replace-supers": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1479,11 +1402,11 @@
}
},
"node_modules/@babel/plugin-transform-optional-catch-binding": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz",
- "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz",
+ "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1493,12 +1416,12 @@
}
},
"node_modules/@babel/plugin-transform-optional-chaining": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz",
- "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz",
+ "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1508,11 +1431,11 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz",
- "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz",
+ "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1522,12 +1445,12 @@
}
},
"node_modules/@babel/plugin-transform-private-methods": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz",
- "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz",
+ "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1537,13 +1460,13 @@
}
},
"node_modules/@babel/plugin-transform-private-property-in-object": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz",
- "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz",
+ "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-create-class-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1553,11 +1476,11 @@
}
},
"node_modules/@babel/plugin-transform-property-literals": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz",
- "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz",
+ "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1567,11 +1490,11 @@
}
},
"node_modules/@babel/plugin-transform-react-constant-elements": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.7.tgz",
- "integrity": "sha512-/qXt69Em8HgsjCLu7G3zdIQn7A2QwmYND7Wa0LTp09Na+Zn8L5d0A7wSXrKi18TJRc/Q5S1i1De/SU1LzVkSvA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.25.9.tgz",
+ "integrity": "sha512-Ncw2JFsJVuvfRsa2lSHiC55kETQVLSnsYGQ1JDDwkUeWGTL/8Tom8aLTnlqgoeuopWrbbGndrc9AlLYrIosrow==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1581,11 +1504,11 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz",
- "integrity": "sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.9.tgz",
+ "integrity": "sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1595,15 +1518,15 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz",
- "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.9.tgz",
+ "integrity": "sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-module-imports": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/plugin-syntax-jsx": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/plugin-syntax-jsx": "^7.25.9",
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1613,11 +1536,11 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.7.tgz",
- "integrity": "sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.9.tgz",
+ "integrity": "sha512-9mj6rm7XVYs4mdLIpbZnHOYdpW42uoiBCTVowg7sP1thUOiANgMb4UtpRivR0pp5iL+ocvUv7X4mZgFRpJEzGw==",
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.25.7"
+ "@babel/plugin-transform-react-jsx": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1627,12 +1550,12 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.7.tgz",
- "integrity": "sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.9.tgz",
+ "integrity": "sha512-KQ/Takk3T8Qzj5TppkS1be588lkbTp5uj7w6a0LeQaTMSckU/wK0oJ/pih+T690tkgI5jfmg2TqDJvd41Sj1Cg==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1642,11 +1565,11 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz",
- "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz",
+ "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-plugin-utils": "^7.25.9",
"regenerator-transform": "^0.15.2"
},
"engines": {
@@ -1656,12 +1579,27 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-transform-regexp-modifiers": {
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz",
+ "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==",
+ "dependencies": {
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz",
- "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz",
+ "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1671,12 +1609,12 @@
}
},
"node_modules/@babel/plugin-transform-runtime": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.7.tgz",
- "integrity": "sha512-Y9p487tyTzB0yDYQOtWnC+9HGOuogtP3/wNpun1xJXEEvI6vip59BSBTsHnekZLqxmPcgsrAKt46HAAb//xGhg==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz",
+ "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==",
"dependencies": {
- "@babel/helper-module-imports": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
+ "@babel/helper-module-imports": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
"babel-plugin-polyfill-corejs2": "^0.4.10",
"babel-plugin-polyfill-corejs3": "^0.10.6",
"babel-plugin-polyfill-regenerator": "^0.6.1",
@@ -1698,11 +1636,11 @@
}
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz",
- "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz",
+ "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1712,12 +1650,12 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz",
- "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz",
+ "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1727,11 +1665,11 @@
}
},
"node_modules/@babel/plugin-transform-sticky-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz",
- "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz",
+ "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1741,11 +1679,11 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz",
- "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz",
+ "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1755,11 +1693,11 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz",
- "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz",
+ "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1769,15 +1707,15 @@
}
},
"node_modules/@babel/plugin-transform-typescript": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.7.tgz",
- "integrity": "sha512-VKlgy2vBzj8AmEzunocMun2fF06bsSWV+FvVXohtL6FGve/+L217qhHxRTVGHEDO/YR8IANcjzgJsd04J8ge5Q==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.26.5.tgz",
+ "integrity": "sha512-GJhPO0y8SD5EYVCy2Zr+9dSZcEgaSmq5BLR0Oc25TOEhC+ba49vUAGZFjy8v79z9E1mdldq4x9d1xgh4L1d5dQ==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.25.7",
- "@babel/helper-create-class-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7",
- "@babel/plugin-syntax-typescript": "^7.25.7"
+ "@babel/helper-annotate-as-pure": "^7.25.9",
+ "@babel/helper-create-class-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.26.5",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9",
+ "@babel/plugin-syntax-typescript": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1787,11 +1725,11 @@
}
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz",
- "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz",
+ "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1801,12 +1739,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-property-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz",
- "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz",
+ "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1816,12 +1754,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz",
- "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz",
+ "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1831,12 +1769,12 @@
}
},
"node_modules/@babel/plugin-transform-unicode-sets-regex": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz",
- "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz",
+ "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1846,72 +1784,73 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.25.8.tgz",
- "integrity": "sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg==",
- "dependencies": {
- "@babel/compat-data": "^7.25.8",
- "@babel/helper-compilation-targets": "^7.25.7",
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-validator-option": "^7.25.7",
- "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7",
- "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7",
- "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz",
+ "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==",
+ "dependencies": {
+ "@babel/compat-data": "^7.26.0",
+ "@babel/helper-compilation-targets": "^7.25.9",
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9",
+ "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9",
+ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9",
"@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2",
- "@babel/plugin-syntax-import-assertions": "^7.25.7",
- "@babel/plugin-syntax-import-attributes": "^7.25.7",
+ "@babel/plugin-syntax-import-assertions": "^7.26.0",
+ "@babel/plugin-syntax-import-attributes": "^7.26.0",
"@babel/plugin-syntax-unicode-sets-regex": "^7.18.6",
- "@babel/plugin-transform-arrow-functions": "^7.25.7",
- "@babel/plugin-transform-async-generator-functions": "^7.25.8",
- "@babel/plugin-transform-async-to-generator": "^7.25.7",
- "@babel/plugin-transform-block-scoped-functions": "^7.25.7",
- "@babel/plugin-transform-block-scoping": "^7.25.7",
- "@babel/plugin-transform-class-properties": "^7.25.7",
- "@babel/plugin-transform-class-static-block": "^7.25.8",
- "@babel/plugin-transform-classes": "^7.25.7",
- "@babel/plugin-transform-computed-properties": "^7.25.7",
- "@babel/plugin-transform-destructuring": "^7.25.7",
- "@babel/plugin-transform-dotall-regex": "^7.25.7",
- "@babel/plugin-transform-duplicate-keys": "^7.25.7",
- "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7",
- "@babel/plugin-transform-dynamic-import": "^7.25.8",
- "@babel/plugin-transform-exponentiation-operator": "^7.25.7",
- "@babel/plugin-transform-export-namespace-from": "^7.25.8",
- "@babel/plugin-transform-for-of": "^7.25.7",
- "@babel/plugin-transform-function-name": "^7.25.7",
- "@babel/plugin-transform-json-strings": "^7.25.8",
- "@babel/plugin-transform-literals": "^7.25.7",
- "@babel/plugin-transform-logical-assignment-operators": "^7.25.8",
- "@babel/plugin-transform-member-expression-literals": "^7.25.7",
- "@babel/plugin-transform-modules-amd": "^7.25.7",
- "@babel/plugin-transform-modules-commonjs": "^7.25.7",
- "@babel/plugin-transform-modules-systemjs": "^7.25.7",
- "@babel/plugin-transform-modules-umd": "^7.25.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7",
- "@babel/plugin-transform-new-target": "^7.25.7",
- "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.8",
- "@babel/plugin-transform-numeric-separator": "^7.25.8",
- "@babel/plugin-transform-object-rest-spread": "^7.25.8",
- "@babel/plugin-transform-object-super": "^7.25.7",
- "@babel/plugin-transform-optional-catch-binding": "^7.25.8",
- "@babel/plugin-transform-optional-chaining": "^7.25.8",
- "@babel/plugin-transform-parameters": "^7.25.7",
- "@babel/plugin-transform-private-methods": "^7.25.7",
- "@babel/plugin-transform-private-property-in-object": "^7.25.8",
- "@babel/plugin-transform-property-literals": "^7.25.7",
- "@babel/plugin-transform-regenerator": "^7.25.7",
- "@babel/plugin-transform-reserved-words": "^7.25.7",
- "@babel/plugin-transform-shorthand-properties": "^7.25.7",
- "@babel/plugin-transform-spread": "^7.25.7",
- "@babel/plugin-transform-sticky-regex": "^7.25.7",
- "@babel/plugin-transform-template-literals": "^7.25.7",
- "@babel/plugin-transform-typeof-symbol": "^7.25.7",
- "@babel/plugin-transform-unicode-escapes": "^7.25.7",
- "@babel/plugin-transform-unicode-property-regex": "^7.25.7",
- "@babel/plugin-transform-unicode-regex": "^7.25.7",
- "@babel/plugin-transform-unicode-sets-regex": "^7.25.7",
+ "@babel/plugin-transform-arrow-functions": "^7.25.9",
+ "@babel/plugin-transform-async-generator-functions": "^7.25.9",
+ "@babel/plugin-transform-async-to-generator": "^7.25.9",
+ "@babel/plugin-transform-block-scoped-functions": "^7.25.9",
+ "@babel/plugin-transform-block-scoping": "^7.25.9",
+ "@babel/plugin-transform-class-properties": "^7.25.9",
+ "@babel/plugin-transform-class-static-block": "^7.26.0",
+ "@babel/plugin-transform-classes": "^7.25.9",
+ "@babel/plugin-transform-computed-properties": "^7.25.9",
+ "@babel/plugin-transform-destructuring": "^7.25.9",
+ "@babel/plugin-transform-dotall-regex": "^7.25.9",
+ "@babel/plugin-transform-duplicate-keys": "^7.25.9",
+ "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9",
+ "@babel/plugin-transform-dynamic-import": "^7.25.9",
+ "@babel/plugin-transform-exponentiation-operator": "^7.25.9",
+ "@babel/plugin-transform-export-namespace-from": "^7.25.9",
+ "@babel/plugin-transform-for-of": "^7.25.9",
+ "@babel/plugin-transform-function-name": "^7.25.9",
+ "@babel/plugin-transform-json-strings": "^7.25.9",
+ "@babel/plugin-transform-literals": "^7.25.9",
+ "@babel/plugin-transform-logical-assignment-operators": "^7.25.9",
+ "@babel/plugin-transform-member-expression-literals": "^7.25.9",
+ "@babel/plugin-transform-modules-amd": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+ "@babel/plugin-transform-modules-systemjs": "^7.25.9",
+ "@babel/plugin-transform-modules-umd": "^7.25.9",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9",
+ "@babel/plugin-transform-new-target": "^7.25.9",
+ "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9",
+ "@babel/plugin-transform-numeric-separator": "^7.25.9",
+ "@babel/plugin-transform-object-rest-spread": "^7.25.9",
+ "@babel/plugin-transform-object-super": "^7.25.9",
+ "@babel/plugin-transform-optional-catch-binding": "^7.25.9",
+ "@babel/plugin-transform-optional-chaining": "^7.25.9",
+ "@babel/plugin-transform-parameters": "^7.25.9",
+ "@babel/plugin-transform-private-methods": "^7.25.9",
+ "@babel/plugin-transform-private-property-in-object": "^7.25.9",
+ "@babel/plugin-transform-property-literals": "^7.25.9",
+ "@babel/plugin-transform-regenerator": "^7.25.9",
+ "@babel/plugin-transform-regexp-modifiers": "^7.26.0",
+ "@babel/plugin-transform-reserved-words": "^7.25.9",
+ "@babel/plugin-transform-shorthand-properties": "^7.25.9",
+ "@babel/plugin-transform-spread": "^7.25.9",
+ "@babel/plugin-transform-sticky-regex": "^7.25.9",
+ "@babel/plugin-transform-template-literals": "^7.25.9",
+ "@babel/plugin-transform-typeof-symbol": "^7.25.9",
+ "@babel/plugin-transform-unicode-escapes": "^7.25.9",
+ "@babel/plugin-transform-unicode-property-regex": "^7.25.9",
+ "@babel/plugin-transform-unicode-regex": "^7.25.9",
+ "@babel/plugin-transform-unicode-sets-regex": "^7.25.9",
"@babel/preset-modules": "0.1.6-no-external-plugins",
"babel-plugin-polyfill-corejs2": "^0.4.10",
"babel-plugin-polyfill-corejs3": "^0.10.6",
@@ -1948,16 +1887,16 @@
}
},
"node_modules/@babel/preset-react": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.25.7.tgz",
- "integrity": "sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==",
+ "version": "7.26.3",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.26.3.tgz",
+ "integrity": "sha512-Nl03d6T9ky516DGK2YMxrTqvnpUW63TnJMOMonj+Zae0JiPC5BC9xPMSL6L8fiSpA5vP88qfygavVQvnLp+6Cw==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-validator-option": "^7.25.7",
- "@babel/plugin-transform-react-display-name": "^7.25.7",
- "@babel/plugin-transform-react-jsx": "^7.25.7",
- "@babel/plugin-transform-react-jsx-development": "^7.25.7",
- "@babel/plugin-transform-react-pure-annotations": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-transform-react-display-name": "^7.25.9",
+ "@babel/plugin-transform-react-jsx": "^7.25.9",
+ "@babel/plugin-transform-react-jsx-development": "^7.25.9",
+ "@babel/plugin-transform-react-pure-annotations": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1967,15 +1906,15 @@
}
},
"node_modules/@babel/preset-typescript": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.25.7.tgz",
- "integrity": "sha512-rkkpaXJZOFN45Fb+Gki0c+KMIglk4+zZXOoMJuyEK8y8Kkc8Jd3BDmP7qPsz0zQMJj+UD7EprF+AqAXcILnexw==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.26.0.tgz",
+ "integrity": "sha512-NMk1IGZ5I/oHhoXEElcm+xUnL/szL6xflkFZmoEU9xj1qSJXpiS7rsspYo92B4DRCDvZn2erT5LdsCeXAKNCkg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.25.7",
- "@babel/helper-validator-option": "^7.25.7",
- "@babel/plugin-syntax-jsx": "^7.25.7",
- "@babel/plugin-transform-modules-commonjs": "^7.25.7",
- "@babel/plugin-transform-typescript": "^7.25.7"
+ "@babel/helper-plugin-utils": "^7.25.9",
+ "@babel/helper-validator-option": "^7.25.9",
+ "@babel/plugin-syntax-jsx": "^7.25.9",
+ "@babel/plugin-transform-modules-commonjs": "^7.25.9",
+ "@babel/plugin-transform-typescript": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -1985,9 +1924,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz",
- "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==",
+ "version": "7.26.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz",
+ "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==",
"dependencies": {
"regenerator-runtime": "^0.14.0"
},
@@ -1996,28 +1935,28 @@
}
},
"node_modules/@babel/template": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz",
- "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==",
+ "version": "7.25.9",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz",
+ "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==",
"dependencies": {
- "@babel/code-frame": "^7.25.7",
- "@babel/parser": "^7.25.7",
- "@babel/types": "^7.25.7"
+ "@babel/code-frame": "^7.25.9",
+ "@babel/parser": "^7.25.9",
+ "@babel/types": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/traverse": {
- "version": "7.25.7",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz",
- "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==",
- "dependencies": {
- "@babel/code-frame": "^7.25.7",
- "@babel/generator": "^7.25.7",
- "@babel/parser": "^7.25.7",
- "@babel/template": "^7.25.7",
- "@babel/types": "^7.25.7",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.5.tgz",
+ "integrity": "sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==",
+ "dependencies": {
+ "@babel/code-frame": "^7.26.2",
+ "@babel/generator": "^7.26.5",
+ "@babel/parser": "^7.26.5",
+ "@babel/template": "^7.25.9",
+ "@babel/types": "^7.26.5",
"debug": "^4.3.1",
"globals": "^11.1.0"
},
@@ -2034,13 +1973,12 @@
}
},
"node_modules/@babel/types": {
- "version": "7.25.8",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz",
- "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==",
+ "version": "7.26.5",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz",
+ "integrity": "sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==",
"dependencies": {
- "@babel/helper-string-parser": "^7.25.7",
- "@babel/helper-validator-identifier": "^7.25.7",
- "to-fast-properties": "^2.0.0"
+ "@babel/helper-string-parser": "^7.25.9",
+ "@babel/helper-validator-identifier": "^7.25.9"
},
"engines": {
"node": ">=6.9.0"
@@ -2051,6 +1989,16 @@
"resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw=="
},
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
"node_modules/@csstools/normalize.css": {
"version": "12.1.1",
"resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz",
@@ -2321,20 +2269,82 @@
"postcss-selector-parser": "^6.0.10"
}
},
+ "node_modules/@cypress/request": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@cypress/request/-/request-3.0.7.tgz",
+ "integrity": "sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==",
+ "dev": true,
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~4.0.0",
+ "http-signature": "~1.4.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "performance-now": "^2.1.0",
+ "qs": "6.13.1",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "^5.0.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^8.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@cypress/xvfb": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz",
+ "integrity": "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^3.1.0",
+ "lodash.once": "^4.1.1"
+ }
+ },
+ "node_modules/@cypress/xvfb/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
"node_modules/@eslint-community/eslint-utils": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz",
- "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
+ "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
"dependencies": {
- "eslint-visitor-keys": "^3.3.0"
+ "eslint-visitor-keys": "^3.4.3"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
"peerDependencies": {
"eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
}
},
+ "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/@eslint-community/regexpp": {
"version": "4.12.1",
"resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
@@ -2344,11 +2354,11 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz",
- "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==",
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz",
+ "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==",
"dependencies": {
- "@eslint/object-schema": "^2.1.4",
+ "@eslint/object-schema": "^2.1.5",
"debug": "^4.3.1",
"minimatch": "^3.1.2"
},
@@ -2357,17 +2367,20 @@
}
},
"node_modules/@eslint/core": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz",
- "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==",
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz",
+ "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
+ },
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/eslintrc": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz",
- "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz",
+ "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
@@ -2386,11 +2399,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/@eslint/eslintrc/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
"node_modules/@eslint/eslintrc/node_modules/globals": {
"version": "14.0.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
@@ -2402,44 +2410,87 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
"node_modules/@eslint/js": {
- "version": "9.14.0",
- "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz",
- "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==",
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.18.0.tgz",
+ "integrity": "sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/object-schema": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz",
- "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==",
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz",
+ "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@eslint/plugin-kit": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz",
- "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==",
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz",
+ "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==",
"dependencies": {
+ "@eslint/core": "^0.10.0",
"levn": "^0.4.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
+ "node_modules/@fortawesome/fontawesome-common-types": {
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.7.2.tgz",
+ "integrity": "sha512-Zs+YeHUC5fkt7Mg1l6XTniei3k4bwG/yo3iFUtZWd/pMx9g3fdvkSK9E0FOC+++phXOka78uJcYb8JaFkW52Xg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/fontawesome-svg-core": {
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.7.2.tgz",
+ "integrity": "sha512-yxtOBWDrdi5DD5o1pmVdq3WMCvnobT0LU6R8RyyVXPvFRd2o79/0NCuQoCjNTeZz9EzA9xS3JxNWfv54RIHFEA==",
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": "6.7.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/free-regular-svg-icons": {
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.7.2.tgz",
+ "integrity": "sha512-7Z/ur0gvCMW8G93dXIQOkQqHo2M5HLhYrRVC0//fakJXxcF1VmMPsxnG6Ee8qEylA8b8Q3peQXWMNZ62lYF28g==",
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": "6.7.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/free-solid-svg-icons": {
+ "version": "6.7.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.7.2.tgz",
+ "integrity": "sha512-GsBrnOzU8uj0LECDfD5zomZJIjrPhIlWU82AHwa2s40FKH+kcxQaBvBo3Z4TxyZHIyX8XTDxsyA33/Vx9eFuQA==",
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": "6.7.2"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/react-fontawesome": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.2.tgz",
+ "integrity": "sha512-EnkrprPNqI6SXJl//m29hpaNzOp1bruISWaOiRtkMi/xSvHJlzc2j2JAYS7egxt/EbjSNV/k6Xy0AQI6vB2+1g==",
+ "dependencies": {
+ "prop-types": "^15.8.1"
+ },
+ "peerDependencies": {
+ "@fortawesome/fontawesome-svg-core": "~1 || ~6",
+ "react": ">=16.3"
+ }
+ },
"node_modules/@humanfs/core": {
"version": "0.19.1",
"resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
@@ -2554,6 +2605,11 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ },
"node_modules/@isaacs/cliui/node_modules/string-width": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
@@ -2615,6 +2671,14 @@
"node": ">=8"
}
},
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
"node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": {
"version": "5.3.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
@@ -2623,46 +2687,114 @@
"node": ">=6"
}
},
- "node_modules/@istanbuljs/schema": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
- "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
"engines": {
"node": ">=8"
}
},
- "node_modules/@jest/console": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
- "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dependencies": {
- "@jest/types": "^27.5.1",
- "@types/node": "*",
- "chalk": "^4.0.0",
- "jest-message-util": "^27.5.1",
- "jest-util": "^27.5.1",
- "slash": "^3.0.0"
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
},
- "engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/@jest/console/node_modules/@jest/types": {
- "version": "27.5.1",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
- "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dependencies": {
- "@types/istanbul-lib-coverage": "^2.0.0",
- "@types/istanbul-reports": "^3.0.0",
- "@types/node": "*",
- "@types/yargs": "^16.0.0",
- "chalk": "^4.0.0"
+ "p-locate": "^4.1.0"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": ">=8"
}
},
- "node_modules/@jest/console/node_modules/@types/yargs": {
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
+ "dependencies": {
+ "@jest/types": "^27.5.1",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/console/node_modules/@jest/types": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^16.0.0",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/@jest/console/node_modules/@types/yargs": {
"version": "16.0.9",
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz",
"integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==",
@@ -2670,6 +2802,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/@jest/console/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@jest/console/node_modules/jest-message-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
@@ -2774,6 +2920,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/@jest/core/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@jest/core/node_modules/jest-message-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
@@ -2896,6 +3056,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/@jest/fake-timers/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@jest/fake-timers/node_modules/jest-message-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
@@ -3110,6 +3284,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/@jest/reporters/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@jest/reporters/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -3265,6 +3453,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/@jest/transform/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/@jest/transform/node_modules/convert-source-map": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
@@ -3311,9 +3513,9 @@
}
},
"node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
- "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "version": "0.3.8",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz",
+ "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==",
"dependencies": {
"@jridgewell/set-array": "^1.2.1",
"@jridgewell/sourcemap-codec": "^1.4.10",
@@ -3494,9 +3696,9 @@
}
},
"node_modules/@remix-run/router": {
- "version": "1.19.2",
- "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.19.2.tgz",
- "integrity": "sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==",
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.21.0.tgz",
+ "integrity": "sha512-xfSkCAchbdG5PnbrKqFWwia4Bi61nH+wm8wLEqfHDyp7Y3dZzgqS2itV8i4gAq9pC2HsTpwyBC6Ds8VHZ96JlA==",
"dev": true,
"engines": {
"node": ">=14.0.0"
@@ -3543,6 +3745,25 @@
"rollup": "^1.20.0||^2.0.0"
}
},
+ "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/@rollup/plugin-replace": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz",
@@ -3582,9 +3803,9 @@
"integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g=="
},
"node_modules/@rushstack/eslint-patch": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.4.tgz",
- "integrity": "sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA=="
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.10.5.tgz",
+ "integrity": "sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A=="
},
"node_modules/@sinclair/typebox": {
"version": "0.27.8",
@@ -4028,14 +4249,23 @@
}
},
"node_modules/@types/eslint": {
- "version": "8.56.12",
- "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz",
- "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==",
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz",
+ "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==",
"dependencies": {
"@types/estree": "*",
"@types/json-schema": "*"
}
},
+ "node_modules/@types/eslint-scope": {
+ "version": "3.7.7",
+ "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz",
+ "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==",
+ "dependencies": {
+ "@types/eslint": "*",
+ "@types/estree": "*"
+ }
+ },
"node_modules/@types/estree": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz",
@@ -4053,9 +4283,9 @@
}
},
"node_modules/@types/express-serve-static-core": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.0.tgz",
- "integrity": "sha512-AbXMTZGt40T+KON9/Fdxx0B2WK5hsgxcfXJLr5bFpZ7b4JCex2WyQPTEKdXqfHiY5nKKBScZ7yCoO6Pvgxfvnw==",
+ "version": "5.0.4",
+ "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-5.0.4.tgz",
+ "integrity": "sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==",
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -4122,9 +4352,9 @@
}
},
"node_modules/@types/jest": {
- "version": "29.5.13",
- "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.13.tgz",
- "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==",
+ "version": "29.5.14",
+ "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz",
+ "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==",
"dependencies": {
"expect": "^29.0.0",
"pretty-format": "^29.0.0"
@@ -4175,11 +4405,11 @@
"integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w=="
},
"node_modules/@types/node": {
- "version": "22.7.5",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz",
- "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==",
+ "version": "22.10.5",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.5.tgz",
+ "integrity": "sha512-F8Q+SeGimwOo86fiovQh8qiXfFEh2/ocYv7tU5pJ3EXMSSxk1Joj5wefpFK2fHTf/N6HKGSxIDBT9f3gCxXPkQ==",
"dependencies": {
- "undici-types": "~6.19.2"
+ "undici-types": "~6.20.0"
}
},
"node_modules/@types/node-forge": {
@@ -4201,9 +4431,10 @@
"integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA=="
},
"node_modules/@types/prop-types": {
- "version": "15.7.13",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz",
- "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA=="
+ "version": "15.7.14",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz",
+ "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==",
+ "peer": true
},
"node_modules/@types/q": {
"version": "1.5.8",
@@ -4211,9 +4442,9 @@
"integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw=="
},
"node_modules/@types/qs": {
- "version": "6.9.16",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz",
- "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A=="
+ "version": "6.9.17",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.17.tgz",
+ "integrity": "sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ=="
},
"node_modules/@types/range-parser": {
"version": "1.2.7",
@@ -4221,20 +4452,21 @@
"integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ=="
},
"node_modules/@types/react": {
- "version": "18.3.11",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz",
- "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==",
+ "version": "18.3.18",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz",
+ "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==",
+ "peer": true,
"dependencies": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
- "version": "18.3.0",
- "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz",
- "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==",
- "dependencies": {
- "@types/react": "*"
+ "version": "18.3.5",
+ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz",
+ "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==",
+ "peerDependencies": {
+ "@types/react": "^18.0.0"
}
},
"node_modules/@types/resolve": {
@@ -4282,6 +4514,18 @@
"@types/send": "*"
}
},
+ "node_modules/@types/sinonjs__fake-timers": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz",
+ "integrity": "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g==",
+ "dev": true
+ },
+ "node_modules/@types/sizzle": {
+ "version": "2.3.9",
+ "resolved": "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.9.tgz",
+ "integrity": "sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==",
+ "dev": true
+ },
"node_modules/@types/sockjs": {
"version": "0.3.36",
"resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz",
@@ -4309,9 +4553,9 @@
"integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="
},
"node_modules/@types/ws": {
- "version": "8.5.12",
- "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz",
- "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==",
+ "version": "8.5.13",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.13.tgz",
+ "integrity": "sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==",
"dependencies": {
"@types/node": "*"
}
@@ -4329,21 +4573,31 @@
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
"integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ=="
},
+ "node_modules/@types/yauzl": {
+ "version": "2.10.3",
+ "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz",
+ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
+ "dev": true,
+ "optional": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz",
- "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz",
+ "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==",
"dev": true,
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
- "@typescript-eslint/scope-manager": "8.13.0",
- "@typescript-eslint/type-utils": "8.13.0",
- "@typescript-eslint/utils": "8.13.0",
- "@typescript-eslint/visitor-keys": "8.13.0",
+ "@typescript-eslint/scope-manager": "8.19.1",
+ "@typescript-eslint/type-utils": "8.19.1",
+ "@typescript-eslint/utils": "8.19.1",
+ "@typescript-eslint/visitor-keys": "8.19.1",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
- "ts-api-utils": "^1.3.0"
+ "ts-api-utils": "^2.0.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4354,24 +4608,20 @@
},
"peerDependencies": {
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz",
- "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz",
+ "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "8.13.0",
- "@typescript-eslint/types": "8.13.0",
- "@typescript-eslint/typescript-estree": "8.13.0",
- "@typescript-eslint/visitor-keys": "8.13.0",
+ "@typescript-eslint/scope-manager": "8.19.1",
+ "@typescript-eslint/types": "8.19.1",
+ "@typescript-eslint/typescript-estree": "8.19.1",
+ "@typescript-eslint/visitor-keys": "8.19.1",
"debug": "^4.3.4"
},
"engines": {
@@ -4382,22 +4632,18 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz",
- "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz",
+ "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.13.0",
- "@typescript-eslint/visitor-keys": "8.13.0"
+ "@typescript-eslint/types": "8.19.1",
+ "@typescript-eslint/visitor-keys": "8.19.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4408,15 +4654,15 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz",
- "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz",
+ "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "8.13.0",
- "@typescript-eslint/utils": "8.13.0",
+ "@typescript-eslint/typescript-estree": "8.19.1",
+ "@typescript-eslint/utils": "8.19.1",
"debug": "^4.3.4",
- "ts-api-utils": "^1.3.0"
+ "ts-api-utils": "^2.0.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4425,16 +4671,15 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
}
},
"node_modules/@typescript-eslint/types": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz",
- "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz",
+ "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==",
"dev": true,
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4445,19 +4690,19 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz",
- "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz",
+ "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.13.0",
- "@typescript-eslint/visitor-keys": "8.13.0",
+ "@typescript-eslint/types": "8.19.1",
+ "@typescript-eslint/visitor-keys": "8.19.1",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
"minimatch": "^9.0.4",
"semver": "^7.6.0",
- "ts-api-utils": "^1.3.0"
+ "ts-api-utils": "^2.0.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4466,10 +4711,8 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <5.8.0"
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
@@ -4497,15 +4740,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz",
- "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz",
+ "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==",
"dev": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
- "@typescript-eslint/scope-manager": "8.13.0",
- "@typescript-eslint/types": "8.13.0",
- "@typescript-eslint/typescript-estree": "8.13.0"
+ "@typescript-eslint/scope-manager": "8.19.1",
+ "@typescript-eslint/types": "8.19.1",
+ "@typescript-eslint/typescript-estree": "8.19.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4515,17 +4758,18 @@
"url": "https://opencollective.com/typescript-eslint"
},
"peerDependencies": {
- "eslint": "^8.57.0 || ^9.0.0"
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz",
- "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz",
+ "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "8.13.0",
- "eslint-visitor-keys": "^3.4.3"
+ "@typescript-eslint/types": "8.19.1",
+ "eslint-visitor-keys": "^4.2.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4536,138 +4780,138 @@
}
},
"node_modules/@ungap/structured-clone": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
- "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz",
+ "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA=="
},
"node_modules/@webassemblyjs/ast": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz",
- "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz",
+ "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==",
"dependencies": {
- "@webassemblyjs/helper-numbers": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6"
+ "@webassemblyjs/helper-numbers": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2"
}
},
"node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz",
- "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw=="
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz",
+ "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA=="
},
"node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz",
- "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q=="
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz",
+ "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ=="
},
"node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz",
- "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw=="
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz",
+ "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA=="
},
"node_modules/@webassemblyjs/helper-numbers": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz",
- "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz",
+ "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==",
"dependencies": {
- "@webassemblyjs/floating-point-hex-parser": "1.11.6",
- "@webassemblyjs/helper-api-error": "1.11.6",
+ "@webassemblyjs/floating-point-hex-parser": "1.13.2",
+ "@webassemblyjs/helper-api-error": "1.13.2",
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz",
- "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA=="
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz",
+ "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA=="
},
"node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz",
- "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz",
+ "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/wasm-gen": "1.12.1"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/wasm-gen": "1.14.1"
}
},
"node_modules/@webassemblyjs/ieee754": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz",
- "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz",
+ "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==",
"dependencies": {
"@xtuc/ieee754": "^1.2.0"
}
},
"node_modules/@webassemblyjs/leb128": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz",
- "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==",
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz",
+ "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==",
"dependencies": {
"@xtuc/long": "4.2.2"
}
},
"node_modules/@webassemblyjs/utf8": {
- "version": "1.11.6",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz",
- "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA=="
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz",
+ "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ=="
},
"node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz",
- "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz",
+ "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/helper-wasm-section": "1.12.1",
- "@webassemblyjs/wasm-gen": "1.12.1",
- "@webassemblyjs/wasm-opt": "1.12.1",
- "@webassemblyjs/wasm-parser": "1.12.1",
- "@webassemblyjs/wast-printer": "1.12.1"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/helper-wasm-section": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-opt": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1",
+ "@webassemblyjs/wast-printer": "1.14.1"
}
},
"node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz",
- "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz",
+ "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
"node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz",
- "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz",
+ "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-buffer": "1.12.1",
- "@webassemblyjs/wasm-gen": "1.12.1",
- "@webassemblyjs/wasm-parser": "1.12.1"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-buffer": "1.14.1",
+ "@webassemblyjs/wasm-gen": "1.14.1",
+ "@webassemblyjs/wasm-parser": "1.14.1"
}
},
"node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz",
- "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz",
+ "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
- "@webassemblyjs/helper-api-error": "1.11.6",
- "@webassemblyjs/helper-wasm-bytecode": "1.11.6",
- "@webassemblyjs/ieee754": "1.11.6",
- "@webassemblyjs/leb128": "1.11.6",
- "@webassemblyjs/utf8": "1.11.6"
+ "@webassemblyjs/ast": "1.14.1",
+ "@webassemblyjs/helper-api-error": "1.13.2",
+ "@webassemblyjs/helper-wasm-bytecode": "1.13.2",
+ "@webassemblyjs/ieee754": "1.13.2",
+ "@webassemblyjs/leb128": "1.13.2",
+ "@webassemblyjs/utf8": "1.13.2"
}
},
"node_modules/@webassemblyjs/wast-printer": {
- "version": "1.12.1",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",
- "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz",
+ "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==",
"dependencies": {
- "@webassemblyjs/ast": "1.12.1",
+ "@webassemblyjs/ast": "1.14.1",
"@xtuc/long": "4.2.2"
}
},
@@ -4699,6 +4943,14 @@
"node": ">= 0.6"
}
},
+ "node_modules/accepts/node_modules/negotiator": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/acorn": {
"version": "8.14.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz",
@@ -4730,14 +4982,6 @@
"node": ">=0.4.0"
}
},
- "node_modules/acorn-import-attributes": {
- "version": "1.9.5",
- "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz",
- "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==",
- "peerDependencies": {
- "acorn": "^8"
- }
- },
"node_modules/acorn-jsx": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
@@ -4785,6 +5029,19 @@
"node": ">= 6.0.0"
}
},
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "dev": true,
+ "dependencies": {
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -4844,6 +5101,15 @@
"ajv": "^6.9.1"
}
},
+ "node_modules/ansi-colors": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/ansi-escapes": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
@@ -4919,21 +5185,38 @@
"node": ">= 8"
}
},
- "node_modules/arg": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
- "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/aria-query": {
- "version": "5.3.0",
+ "node_modules/arch": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz",
+ "integrity": "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/arg": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz",
+ "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/aria-query": {
+ "version": "5.3.0",
"resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz",
"integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==",
"dependencies": {
@@ -4941,12 +5224,12 @@
}
},
"node_modules/array-buffer-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
- "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
+ "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
"dependencies": {
- "call-bind": "^1.0.5",
- "is-array-buffer": "^3.0.4"
+ "call-bound": "^1.0.3",
+ "is-array-buffer": "^3.0.5"
},
"engines": {
"node": ">= 0.4"
@@ -5026,14 +5309,14 @@
}
},
"node_modules/array.prototype.flat": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz",
- "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz",
+ "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -5043,14 +5326,14 @@
}
},
"node_modules/array.prototype.flatmap": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz",
- "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==",
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz",
+ "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "es-shim-unscopables": "^1.0.0"
+ "call-bind": "^1.0.8",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.5",
+ "es-shim-unscopables": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -5095,18 +5378,17 @@
}
},
"node_modules/arraybuffer.prototype.slice": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz",
- "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
+ "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
"dependencies": {
"array-buffer-byte-length": "^1.0.1",
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
- "es-abstract": "^1.22.3",
- "es-errors": "^1.2.1",
- "get-intrinsic": "^1.2.3",
- "is-array-buffer": "^3.0.4",
- "is-shared-array-buffer": "^1.0.2"
+ "es-abstract": "^1.23.5",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
+ "is-array-buffer": "^3.0.4"
},
"engines": {
"node": ">= 0.4"
@@ -5120,11 +5402,38 @@
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
"integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
},
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dev": true,
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/ast-types-flow": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz",
"integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ=="
},
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/async": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
@@ -5193,14 +5502,39 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
+ "dev": true
+ },
"node_modules/axe-core": {
- "version": "4.10.0",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz",
- "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==",
+ "version": "4.10.2",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.2.tgz",
+ "integrity": "sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==",
"engines": {
"node": ">=4"
}
},
+ "node_modules/axios": {
+ "version": "1.7.9",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz",
+ "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==",
+ "dependencies": {
+ "follow-redirects": "^1.15.6",
+ "form-data": "^4.0.0",
+ "proxy-from-env": "^1.1.0"
+ }
+ },
"node_modules/axobject-query": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz",
@@ -5331,6 +5665,25 @@
"npm": ">=6"
}
},
+ "node_modules/babel-plugin-macros/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/babel-plugin-named-asset-import": {
"version": "0.3.8",
"resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz",
@@ -5340,12 +5693,12 @@
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.4.11",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz",
- "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==",
+ "version": "0.4.12",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.12.tgz",
+ "integrity": "sha512-CPWT6BwvhrTO2d8QVorhTCQw9Y43zOu7G9HigcfxvepOU6b8o3tcWad6oVgZIsZCTt42FFv97aA7ZJsbM4+8og==",
"dependencies": {
"@babel/compat-data": "^7.22.6",
- "@babel/helper-define-polyfill-provider": "^0.6.2",
+ "@babel/helper-define-polyfill-provider": "^0.6.3",
"semver": "^6.3.1"
},
"peerDependencies": {
@@ -5373,11 +5726,11 @@
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz",
- "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.3.tgz",
+ "integrity": "sha512-LiWSbl4CRSIa5x/JAU6jZiG9eit9w6mz+yVMFwDE83LAWvt0AfGBoZ7HS/mkhrKuh2ZlzfVZYKoLjXdqw6Yt7Q==",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.6.2"
+ "@babel/helper-define-polyfill-provider": "^0.6.3"
},
"peerDependencies": {
"@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0"
@@ -5456,11 +5809,40 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
"integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw=="
},
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
+ "dev": true,
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
"node_modules/bfj": {
"version": "7.1.0",
"resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz",
@@ -5495,6 +5877,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/blob-util": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz",
+ "integrity": "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==",
+ "dev": true
+ },
"node_modules/bluebird": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
@@ -5523,14 +5911,6 @@
"npm": "1.2.8000 || >= 1.4.16"
}
},
- "node_modules/body-parser/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/body-parser/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -5555,10 +5935,24 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
+ "node_modules/body-parser/node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/bonjour-service": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.1.tgz",
- "integrity": "sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.3.0.tgz",
+ "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==",
"dependencies": {
"fast-deep-equal": "^3.1.3",
"multicast-dns": "^7.2.5"
@@ -5595,9 +5989,9 @@
"integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow=="
},
"node_modules/browserslist": {
- "version": "4.24.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz",
- "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==",
+ "version": "4.24.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
+ "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
"funding": [
{
"type": "opencollective",
@@ -5613,10 +6007,10 @@
}
],
"dependencies": {
- "caniuse-lite": "^1.0.30001663",
- "electron-to-chromium": "^1.5.28",
- "node-releases": "^2.0.18",
- "update-browserslist-db": "^1.1.0"
+ "caniuse-lite": "^1.0.30001688",
+ "electron-to-chromium": "^1.5.73",
+ "node-releases": "^2.0.19",
+ "update-browserslist-db": "^1.1.1"
},
"bin": {
"browserslist": "cli.js"
@@ -5633,6 +6027,39 @@
"node-int64": "^0.4.0"
}
},
+ "node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -5650,23 +6077,58 @@
}
},
"node_modules/bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
},
+ "node_modules/cachedir": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz",
+ "integrity": "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz",
+ "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.0",
"es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
"get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
+ "set-function-length": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz",
+ "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/call-bound": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz",
+ "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -5723,9 +6185,9 @@
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001668",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001668.tgz",
- "integrity": "sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==",
+ "version": "1.0.30001692",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz",
+ "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==",
"funding": [
{
"type": "opencollective",
@@ -5749,6 +6211,12 @@
"node": ">=4"
}
},
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true
+ },
"node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
@@ -5772,6 +6240,15 @@
"node": ">=10"
}
},
+ "node_modules/check-more-types": {
+ "version": "2.24.0",
+ "resolved": "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz",
+ "integrity": "sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
"node_modules/check-types": {
"version": "11.2.3",
"resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz",
@@ -5820,9 +6297,10 @@
}
},
"node_modules/ci-info": {
- "version": "3.9.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
- "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.1.0.tgz",
+ "integrity": "sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==",
+ "dev": true,
"funding": [
{
"type": "github",
@@ -5857,6 +6335,58 @@
"node": ">=0.10.0"
}
},
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.5",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.5.tgz",
+ "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "@colors/colors": "1.5.0"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^3.0.0",
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
@@ -6004,11 +6534,12 @@
}
},
"node_modules/commander": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
- "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
"engines": {
- "node": ">= 12"
+ "node": ">= 6"
}
},
"node_modules/common-tags": {
@@ -6036,16 +6567,16 @@
}
},
"node_modules/compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.5.tgz",
+ "integrity": "sha512-bQJ0YRck5ak3LgtnpKkiabX5pNF7tMUh1BSy2ZBOTh0Dim0BUu6aPPwByIns6/A5Prh8PufSPerMDUklpzes2Q==",
"dependencies": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
+ "bytes": "3.1.2",
+ "compressible": "~2.0.18",
"debug": "2.6.9",
+ "negotiator": "~0.6.4",
"on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
+ "safe-buffer": "5.2.1",
"vary": "~1.1.2"
},
"engines": {
@@ -6065,11 +6596,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
- "node_modules/compression/node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -6126,9 +6652,9 @@
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/core-js": {
- "version": "3.38.1",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.38.1.tgz",
- "integrity": "sha512-OP35aUorbU3Zvlx7pjsFdu1rGNnD4pgw/CWoYzRY3t2EzoVT7shKHY1dlAy3f41cGIO7ZDPQimhGFTlEYkG/Hw==",
+ "version": "3.40.0",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.40.0.tgz",
+ "integrity": "sha512-7vsMc/Lty6AGnn7uFpYT56QesI5D2Y/UkgKounk87OP9Z2H9Z8kj6jzcSGAxFmUtDOS0ntK6lbQz+Nsa0Jj6mQ==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -6136,11 +6662,11 @@
}
},
"node_modules/core-js-compat": {
- "version": "3.38.1",
- "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.38.1.tgz",
- "integrity": "sha512-JRH6gfXxGmrzF3tZ57lFx97YARxCXPaMzPo6jELZhv88pBH5VXpQ+y0znKGlFnzuaihqhLbefxSJxWJMPtfDzw==",
+ "version": "3.40.0",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz",
+ "integrity": "sha512-0XEDpr5y5mijvw8Lbc6E5AkjrHfp7eEoPlu36SWeAbcL8fn1G1ANe8DBlo2XoNN89oVpxWwOjYIPVzR4ZvsKCQ==",
"dependencies": {
- "browserslist": "^4.23.3"
+ "browserslist": "^4.24.3"
},
"funding": {
"type": "opencollective",
@@ -6148,9 +6674,9 @@
}
},
"node_modules/core-js-pure": {
- "version": "3.38.1",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.38.1.tgz",
- "integrity": "sha512-BY8Etc1FZqdw1glX0XNOq2FDwfrg/VGqoZOZCdaL+UmdaqDwQwYXkMJT4t6In+zfEfOJDcM9T0KdbBeJg8KKCQ==",
+ "version": "3.40.0",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.40.0.tgz",
+ "integrity": "sha512-AtDzVIgRrmRKQai62yuSIN5vNiQjcJakJb4fbhVw3ehxx7Lohphvw9SGNWKhLFqSxC4ilD0g/L1huAYFQU3Q6A==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -6158,9 +6684,9 @@
}
},
"node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
},
"node_modules/cosmiconfig": {
"version": "7.1.0",
@@ -6178,9 +6704,9 @@
}
},
"node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -6551,13 +7077,105 @@
"node_modules/csstype": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
- "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
+ "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
+ "peer": true
},
- "node_modules/damerau-levenshtein": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
+ "node_modules/cypress": {
+ "version": "13.17.0",
+ "resolved": "https://registry.npmjs.org/cypress/-/cypress-13.17.0.tgz",
+ "integrity": "sha512-5xWkaPurwkIljojFidhw8lFScyxhtiFHl/i/3zov+1Z5CmY4t9tjIdvSXfu82Y3w7wt0uR9KkucbhkVvJZLQSA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@cypress/request": "^3.0.6",
+ "@cypress/xvfb": "^1.2.4",
+ "@types/sinonjs__fake-timers": "8.1.1",
+ "@types/sizzle": "^2.3.2",
+ "arch": "^2.2.0",
+ "blob-util": "^2.0.2",
+ "bluebird": "^3.7.2",
+ "buffer": "^5.7.1",
+ "cachedir": "^2.3.0",
+ "chalk": "^4.1.0",
+ "check-more-types": "^2.24.0",
+ "ci-info": "^4.0.0",
+ "cli-cursor": "^3.1.0",
+ "cli-table3": "~0.6.1",
+ "commander": "^6.2.1",
+ "common-tags": "^1.8.0",
+ "dayjs": "^1.10.4",
+ "debug": "^4.3.4",
+ "enquirer": "^2.3.6",
+ "eventemitter2": "6.4.7",
+ "execa": "4.1.0",
+ "executable": "^4.1.1",
+ "extract-zip": "2.0.1",
+ "figures": "^3.2.0",
+ "fs-extra": "^9.1.0",
+ "getos": "^3.2.1",
+ "is-installed-globally": "~0.4.0",
+ "lazy-ass": "^1.6.0",
+ "listr2": "^3.8.3",
+ "lodash": "^4.17.21",
+ "log-symbols": "^4.0.0",
+ "minimist": "^1.2.8",
+ "ospath": "^1.2.2",
+ "pretty-bytes": "^5.6.0",
+ "process": "^0.11.10",
+ "proxy-from-env": "1.0.0",
+ "request-progress": "^3.0.0",
+ "semver": "^7.5.3",
+ "supports-color": "^8.1.1",
+ "tmp": "~0.2.3",
+ "tree-kill": "1.2.2",
+ "untildify": "^4.0.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "cypress": "bin/cypress"
+ },
+ "engines": {
+ "node": "^16.0.0 || ^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/cypress/node_modules/proxy-from-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
+ "integrity": "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==",
+ "dev": true
+ },
+ "node_modules/cypress/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/damerau-levenshtein": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
"integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA=="
},
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/data-urls": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz",
@@ -6572,13 +7190,13 @@
}
},
"node_modules/data-view-buffer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz",
- "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
+ "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
+ "is-data-view": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -6588,27 +7206,27 @@
}
},
"node_modules/data-view-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz",
- "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
+ "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-data-view": "^1.0.1"
+ "is-data-view": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/inspect-js"
}
},
"node_modules/data-view-byte-offset": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz",
- "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
+ "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
"is-data-view": "^1.0.1"
},
@@ -6619,10 +7237,16 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/dayjs": {
+ "version": "1.11.13",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz",
+ "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
+ "dev": true
+ },
"node_modules/debug": {
- "version": "4.3.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
- "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz",
+ "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==",
"dependencies": {
"ms": "^2.1.3"
},
@@ -6700,6 +7324,47 @@
"node": ">= 10"
}
},
+ "node_modules/default-gateway/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/default-gateway/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/default-gateway/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -6856,14 +7521,14 @@
}
},
"node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dependencies": {
"esutils": "^2.0.2"
},
"engines": {
- "node": ">=6.0.0"
+ "node": ">=0.10.0"
}
},
"node_modules/dom-accessibility-api": {
@@ -6972,6 +7637,19 @@
"resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
"integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
},
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/duplexer": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
@@ -6982,6 +7660,16 @@
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
},
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "dev": true,
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
@@ -7002,9 +7690,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.36",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.36.tgz",
- "integrity": "sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw=="
+ "version": "1.5.80",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.80.tgz",
+ "integrity": "sha512-LTrKpW0AqIuHwmlVNV+cjFYTnXtM9K37OGhpe0ZI10ScPSxqVSryZHIY3WnCS5NSYbBODRTZyhRMS2h5FAEqAw=="
},
"node_modules/emittery": {
"version": "0.8.1",
@@ -7018,9 +7706,9 @@
}
},
"node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/emojis-list": {
"version": "3.0.0",
@@ -7038,10 +7726,19 @@
"node": ">= 0.8"
}
},
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
"node_modules/enhanced-resolve": {
- "version": "5.17.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz",
- "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==",
+ "version": "5.18.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz",
+ "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==",
"dependencies": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
@@ -7050,6 +7747,19 @@
"node": ">=10.13.0"
}
},
+ "node_modules/enquirer": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz",
+ "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-colors": "^4.1.1",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
"node_modules/entities": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
@@ -7075,56 +7785,61 @@
}
},
"node_modules/es-abstract": {
- "version": "1.23.3",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz",
- "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==",
+ "version": "1.23.9",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz",
+ "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
"dependencies": {
- "array-buffer-byte-length": "^1.0.1",
- "arraybuffer.prototype.slice": "^1.0.3",
+ "array-buffer-byte-length": "^1.0.2",
+ "arraybuffer.prototype.slice": "^1.0.4",
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
- "data-view-buffer": "^1.0.1",
- "data-view-byte-length": "^1.0.1",
- "data-view-byte-offset": "^1.0.0",
- "es-define-property": "^1.0.0",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "data-view-buffer": "^1.0.2",
+ "data-view-byte-length": "^1.0.2",
+ "data-view-byte-offset": "^1.0.1",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
- "es-set-tostringtag": "^2.0.3",
- "es-to-primitive": "^1.2.1",
- "function.prototype.name": "^1.1.6",
- "get-intrinsic": "^1.2.4",
- "get-symbol-description": "^1.0.2",
- "globalthis": "^1.0.3",
- "gopd": "^1.0.1",
+ "es-set-tostringtag": "^2.1.0",
+ "es-to-primitive": "^1.3.0",
+ "function.prototype.name": "^1.1.8",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.0",
+ "get-symbol-description": "^1.1.0",
+ "globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
"hasown": "^2.0.2",
- "internal-slot": "^1.0.7",
- "is-array-buffer": "^3.0.4",
+ "internal-slot": "^1.1.0",
+ "is-array-buffer": "^3.0.5",
"is-callable": "^1.2.7",
- "is-data-view": "^1.0.1",
- "is-negative-zero": "^2.0.3",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.3",
- "is-string": "^1.0.7",
- "is-typed-array": "^1.1.13",
- "is-weakref": "^1.0.2",
- "object-inspect": "^1.13.1",
+ "is-data-view": "^1.0.2",
+ "is-regex": "^1.2.1",
+ "is-shared-array-buffer": "^1.0.4",
+ "is-string": "^1.1.1",
+ "is-typed-array": "^1.1.15",
+ "is-weakref": "^1.1.0",
+ "math-intrinsics": "^1.1.0",
+ "object-inspect": "^1.13.3",
"object-keys": "^1.1.1",
- "object.assign": "^4.1.5",
- "regexp.prototype.flags": "^1.5.2",
- "safe-array-concat": "^1.1.2",
- "safe-regex-test": "^1.0.3",
- "string.prototype.trim": "^1.2.9",
- "string.prototype.trimend": "^1.0.8",
+ "object.assign": "^4.1.7",
+ "own-keys": "^1.0.1",
+ "regexp.prototype.flags": "^1.5.3",
+ "safe-array-concat": "^1.1.3",
+ "safe-push-apply": "^1.0.0",
+ "safe-regex-test": "^1.1.0",
+ "set-proto": "^1.0.0",
+ "string.prototype.trim": "^1.2.10",
+ "string.prototype.trimend": "^1.0.9",
"string.prototype.trimstart": "^1.0.8",
- "typed-array-buffer": "^1.0.2",
- "typed-array-byte-length": "^1.0.1",
- "typed-array-byte-offset": "^1.0.2",
- "typed-array-length": "^1.0.6",
- "unbox-primitive": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "typed-array-buffer": "^1.0.3",
+ "typed-array-byte-length": "^1.0.3",
+ "typed-array-byte-offset": "^1.0.4",
+ "typed-array-length": "^1.0.7",
+ "unbox-primitive": "^1.1.0",
+ "which-typed-array": "^1.1.18"
},
"engines": {
"node": ">= 0.4"
@@ -7139,12 +7854,9 @@
"integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA=="
},
"node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
"engines": {
"node": ">= 0.4"
}
@@ -7177,33 +7889,35 @@
}
},
"node_modules/es-iterator-helpers": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.1.0.tgz",
- "integrity": "sha512-/SurEfycdyssORP/E+bj4sEu1CWw4EmLDsHynHwSXQ7utgbrMRWW195pTrCjFgFCddf/UkYm3oqKPRq5i8bJbw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz",
+ "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.3",
+ "es-abstract": "^1.23.6",
"es-errors": "^1.3.0",
"es-set-tostringtag": "^2.0.3",
"function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
+ "get-intrinsic": "^1.2.6",
"globalthis": "^1.0.4",
+ "gopd": "^1.2.0",
"has-property-descriptors": "^1.0.2",
- "has-proto": "^1.0.3",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "iterator.prototype": "^1.1.3",
- "safe-array-concat": "^1.1.2"
+ "has-proto": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "iterator.prototype": "^1.1.4",
+ "safe-array-concat": "^1.1.3"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/es-module-lexer": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz",
- "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw=="
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz",
+ "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ=="
},
"node_modules/es-object-atoms": {
"version": "1.0.0",
@@ -7217,13 +7931,14 @@
}
},
"node_modules/es-set-tostringtag": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
- "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
"dependencies": {
- "get-intrinsic": "^1.2.4",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.6",
"has-tostringtag": "^1.0.2",
- "hasown": "^2.0.1"
+ "hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -7238,13 +7953,13 @@
}
},
"node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
+ "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
"dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "is-callable": "^1.2.7",
+ "is-date-object": "^1.0.5",
+ "is-symbol": "^1.0.4"
},
"engines": {
"node": ">= 0.4"
@@ -7307,25 +8022,25 @@
}
},
"node_modules/eslint": {
- "version": "9.14.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz",
- "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==",
+ "version": "9.18.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.18.0.tgz",
+ "integrity": "sha512-+waTfRWQlSbpt3KWE+CjrPPYnbq9kfZIYUqapc0uBXyjTp8aYXZDsUH16m39Ryq3NjAVP4tjuF7KaukeqoCoaA==",
"dependencies": {
"@eslint-community/eslint-utils": "^4.2.0",
"@eslint-community/regexpp": "^4.12.1",
- "@eslint/config-array": "^0.18.0",
- "@eslint/core": "^0.7.0",
- "@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "9.14.0",
- "@eslint/plugin-kit": "^0.2.0",
+ "@eslint/config-array": "^0.19.0",
+ "@eslint/core": "^0.10.0",
+ "@eslint/eslintrc": "^3.2.0",
+ "@eslint/js": "9.18.0",
+ "@eslint/plugin-kit": "^0.2.5",
"@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1",
- "@humanwhocodes/retry": "^0.4.0",
+ "@humanwhocodes/retry": "^0.4.1",
"@types/estree": "^1.0.6",
"@types/json-schema": "^7.0.15",
"ajv": "^6.12.4",
"chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
+ "cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
"eslint-scope": "^8.2.0",
@@ -7344,8 +8059,7 @@
"lodash.merge": "^4.6.2",
"minimatch": "^3.1.2",
"natural-compare": "^1.4.0",
- "optionator": "^0.9.3",
- "text-table": "^0.2.0"
+ "optionator": "^0.9.3"
},
"bin": {
"eslint": "bin/eslint.js"
@@ -7383,6 +8097,25 @@
"ms": "^2.1.1"
}
},
+ "node_modules/eslint-import-resolver-node/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/eslint-module-utils": {
"version": "2.12.0",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz",
@@ -7407,6 +8140,18 @@
"ms": "^2.1.1"
}
},
+ "node_modules/eslint-plugin-cypress": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-cypress/-/eslint-plugin-cypress-4.1.0.tgz",
+ "integrity": "sha512-JhqkMY02mw74USwK9OFhectx3YSj6Co1NgWBxlGdKvlqiAp9vdEuQqt33DKGQFvvGS/NWtduuhWXWNnU29xDSg==",
+ "dev": true,
+ "dependencies": {
+ "globals": "^15.11.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=9"
+ }
+ },
"node_modules/eslint-plugin-import": {
"version": "2.31.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
@@ -7447,17 +8192,6 @@
"ms": "^2.1.1"
}
},
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/eslint-plugin-import/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
@@ -7467,11 +8201,11 @@
}
},
"node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz",
- "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==",
+ "version": "6.10.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz",
+ "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==",
"dependencies": {
- "aria-query": "~5.1.3",
+ "aria-query": "^5.3.2",
"array-includes": "^3.1.8",
"array.prototype.flatmap": "^1.3.2",
"ast-types-flow": "^0.0.8",
@@ -7479,14 +8213,13 @@
"axobject-query": "^4.1.0",
"damerau-levenshtein": "^1.0.8",
"emoji-regex": "^9.2.2",
- "es-iterator-helpers": "^1.0.19",
"hasown": "^2.0.2",
"jsx-ast-utils": "^3.3.5",
"language-tags": "^1.0.9",
"minimatch": "^3.1.2",
"object.fromentries": "^2.0.8",
"safe-regex-test": "^1.0.3",
- "string.prototype.includes": "^2.0.0"
+ "string.prototype.includes": "^2.0.1"
},
"engines": {
"node": ">=4.0"
@@ -7496,35 +8229,40 @@
}
},
"node_modules/eslint-plugin-jsx-a11y/node_modules/aria-query": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz",
- "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==",
- "dependencies": {
- "deep-equal": "^2.0.5"
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz",
+ "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==",
+ "engines": {
+ "node": ">= 0.4"
}
},
+ "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
+ },
"node_modules/eslint-plugin-react": {
- "version": "7.37.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz",
- "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==",
+ "version": "7.37.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz",
+ "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==",
"dependencies": {
"array-includes": "^3.1.8",
"array.prototype.findlast": "^1.2.5",
- "array.prototype.flatmap": "^1.3.2",
+ "array.prototype.flatmap": "^1.3.3",
"array.prototype.tosorted": "^1.1.4",
"doctrine": "^2.1.0",
- "es-iterator-helpers": "^1.1.0",
+ "es-iterator-helpers": "^1.2.1",
"estraverse": "^5.3.0",
"hasown": "^2.0.2",
"jsx-ast-utils": "^2.4.1 || ^3.0.0",
"minimatch": "^3.1.2",
"object.entries": "^1.1.8",
"object.fromentries": "^2.0.8",
- "object.values": "^1.2.0",
+ "object.values": "^1.2.1",
"prop-types": "^15.8.1",
"resolve": "^2.0.0-next.5",
"semver": "^6.3.1",
- "string.prototype.matchall": "^4.0.11",
+ "string.prototype.matchall": "^4.0.12",
"string.prototype.repeat": "^1.0.0"
},
"engines": {
@@ -7535,9 +8273,9 @@
}
},
"node_modules/eslint-plugin-react-hooks": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0.tgz",
- "integrity": "sha512-hIOwI+5hYGpJEc4uPRmz2ulCjAGD/N13Lukkh8cLV0i2IRk/bdZDYjgLVHj+U9Z704kLIdIO6iueGvxNur0sgw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0.tgz",
+ "integrity": "sha512-mpJRtPgHN2tNAvZ35AMfqeB3Xqeo273QxrHJsbBEPWODRM4r0yB6jfoROqKEYrOn27UtRPpcpHc2UqyBSuUNTw==",
"dev": true,
"engines": {
"node": ">=10"
@@ -7546,33 +8284,6 @@
"eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0"
}
},
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.5",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
- "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
- "dependencies": {
- "is-core-module": "^2.13.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/eslint-plugin-react/node_modules/semver": {
"version": "6.3.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
@@ -7597,17 +8308,6 @@
}
},
"node_modules/eslint-visitor-keys": {
- "version": "3.4.3",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
- "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint/node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
@@ -7618,63 +8318,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/eslint/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/espree": {
"version": "10.3.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz",
@@ -7691,17 +8334,6 @@
"url": "https://opencollective.com/eslint"
}
},
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
- "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
- "engines": {
- "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
"node_modules/esprima": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
@@ -7765,6 +8397,12 @@
"node": ">= 0.6"
}
},
+ "node_modules/eventemitter2": {
+ "version": "6.4.7",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz",
+ "integrity": "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==",
+ "dev": true
+ },
"node_modules/eventemitter3": {
"version": "4.0.7",
"resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
@@ -7779,18 +8417,19 @@
}
},
"node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
"dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
"is-stream": "^2.0.0",
"merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
"strip-final-newline": "^2.0.0"
},
"engines": {
@@ -7800,6 +8439,18 @@
"url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
+ "node_modules/executable": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz",
+ "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==",
+ "dev": true,
+ "dependencies": {
+ "pify": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
@@ -7824,9 +8475,9 @@
}
},
"node_modules/express": {
- "version": "4.21.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
- "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
"dependencies": {
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
@@ -7847,7 +8498,7 @@
"methods": "~1.1.2",
"on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "path-to-regexp": "0.1.10",
+ "path-to-regexp": "0.1.12",
"proxy-addr": "~2.0.7",
"qs": "6.13.0",
"range-parser": "~1.2.1",
@@ -7862,6 +8513,10 @@
},
"engines": {
"node": ">= 0.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
}
},
"node_modules/express/node_modules/debug": {
@@ -7877,21 +8532,70 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
+ "node_modules/express/node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
+ },
+ "node_modules/extract-zip": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
+ "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "get-stream": "^5.1.0",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ },
+ "engines": {
+ "node": ">= 10.17.0"
+ },
+ "optionalDependencies": {
+ "@types/yauzl": "^2.9.1"
+ }
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ]
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-glob": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
- "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dependencies": {
"@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2",
"merge2": "^1.3.0",
- "micromatch": "^4.0.4"
+ "micromatch": "^4.0.8"
},
"engines": {
"node": ">=8.6.0"
@@ -7919,14 +8623,24 @@
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="
},
"node_modules/fast-uri": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz",
- "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row=="
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.5.tgz",
+ "integrity": "sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ]
},
"node_modules/fastq": {
- "version": "1.17.1",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
- "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz",
+ "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==",
"dependencies": {
"reusify": "^1.0.4"
}
@@ -7950,6 +8664,39 @@
"bser": "2.1.1"
}
},
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
+ "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==",
+ "dev": true,
+ "dependencies": {
+ "pend": "~1.2.0"
+ }
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
+ "dev": true,
+ "dependencies": {
+ "escape-string-regexp": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/file-entry-cache": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -8090,15 +8837,18 @@
}
},
"node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dependencies": {
- "locate-path": "^5.0.0",
+ "locate-path": "^6.0.0",
"path-exists": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/flat-cache": {
@@ -8114,9 +8864,9 @@
}
},
"node_modules/flatted": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz",
- "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw=="
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz",
+ "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA=="
},
"node_modules/follow-redirects": {
"version": "1.15.9",
@@ -8171,6 +8921,15 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/fork-ts-checker-webpack-plugin": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz",
@@ -8224,20 +8983,6 @@
"node": ">=8"
}
},
- "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dependencies": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
@@ -8264,9 +9009,9 @@
}
},
"node_modules/form-data": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz",
- "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==",
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz",
+ "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
@@ -8305,16 +9050,17 @@
}
},
"node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
+ "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
"dependencies": {
+ "at-least-node": "^1.0.0",
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=10"
}
},
"node_modules/fs-monkey": {
@@ -8349,14 +9095,16 @@
}
},
"node_modules/function.prototype.name": {
- "version": "1.1.6",
- "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz",
- "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
+ "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "es-abstract": "^1.22.1",
- "functions-have-names": "^1.2.3"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "define-properties": "^1.2.1",
+ "functions-have-names": "^1.2.3",
+ "hasown": "^2.0.2",
+ "is-callable": "^1.2.7"
},
"engines": {
"node": ">= 0.4"
@@ -8390,15 +9138,20 @@
}
},
"node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz",
+ "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==",
"dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-define-property": "^1.0.1",
"es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0",
"function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
+ "get-proto": "^1.0.0",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -8420,25 +9173,41 @@
"node": ">=8.0.0"
}
},
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=8"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/get-symbol-description": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
- "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
+ "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4"
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -8447,6 +9216,24 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/getos": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz",
+ "integrity": "sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q==",
+ "dev": true,
+ "dependencies": {
+ "async": "^3.2.0"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
"node_modules/glob": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
@@ -8483,6 +9270,21 @@
"resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz",
"integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="
},
+ "node_modules/global-dirs": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz",
+ "integrity": "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==",
+ "dev": true,
+ "dependencies": {
+ "ini": "2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/global-modules": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
@@ -8507,6 +9309,11 @@
"node": ">=6"
}
},
+ "node_modules/global-prefix/node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ },
"node_modules/global-prefix/node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
@@ -8519,9 +9326,9 @@
}
},
"node_modules/globals": {
- "version": "15.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-15.12.0.tgz",
- "integrity": "sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ==",
+ "version": "15.14.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz",
+ "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==",
"dev": true,
"engines": {
"node": ">=18"
@@ -8565,11 +9372,11 @@
}
},
"node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -8610,9 +9417,12 @@
"integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g=="
},
"node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz",
+ "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -8637,9 +9447,12 @@
}
},
"node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz",
+ "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+ "dependencies": {
+ "dunder-proto": "^1.0.0"
+ },
"engines": {
"node": ">= 0.4"
},
@@ -8648,9 +9461,9 @@
}
},
"node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
"engines": {
"node": ">= 0.4"
},
@@ -8793,10 +9606,18 @@
"node": ">=12"
}
},
+ "node_modules/html-minifier-terser/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
"node_modules/html-webpack-plugin": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz",
- "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz",
+ "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==",
"dependencies": {
"@types/html-minifier-terser": "^6.0.0",
"html-minifier-terser": "^6.0.2",
@@ -8863,9 +9684,9 @@
}
},
"node_modules/http-parser-js": {
- "version": "0.5.8",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
- "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
+ "version": "0.5.9",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz",
+ "integrity": "sha512-n1XsPy3rXVxlqxVioEWdC+0+M+SQw0DpJynwtOPo1X+ZlvdzTLtDBIJJlDQTnwZIFJrZSzSGmIOUdP8tu+SgLw=="
},
"node_modules/http-proxy": {
"version": "1.18.1",
@@ -8916,6 +9737,20 @@
}
}
},
+ "node_modules/http-signature": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz",
+ "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==",
+ "dev": true,
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^2.0.2",
+ "sshpk": "^1.18.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
"node_modules/https-proxy-agent": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
@@ -8929,11 +9764,12 @@
}
},
"node_modules/human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true,
"engines": {
- "node": ">=10.17.0"
+ "node": ">=8.12.0"
}
},
"node_modules/iconv-lite": {
@@ -8974,6 +9810,26 @@
"node": ">=4"
}
},
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/ignore": {
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
@@ -9006,14 +9862,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-fresh/node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/import-local": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
@@ -9064,18 +9912,22 @@
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
- "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+ "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/internal-slot": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
- "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz",
+ "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
"dependencies": {
"es-errors": "^1.3.0",
- "hasown": "^2.0.0",
- "side-channel": "^1.0.4"
+ "hasown": "^2.0.2",
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -9090,12 +9942,12 @@
}
},
"node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz",
+ "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9105,12 +9957,13 @@
}
},
"node_modules/is-array-buffer": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
- "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
+ "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.1"
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -9125,11 +9978,14 @@
"integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg=="
},
"node_modules/is-async-function": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz",
- "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.0.tgz",
+ "integrity": "sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.1",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -9139,11 +9995,14 @@
}
},
"node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz",
+ "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
"dependencies": {
- "has-bigints": "^1.0.1"
+ "has-bigints": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -9161,12 +10020,12 @@
}
},
"node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz",
+ "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9187,9 +10046,9 @@
}
},
"node_modules/is-core-module": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz",
- "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==",
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
"dependencies": {
"hasown": "^2.0.2"
},
@@ -9201,10 +10060,12 @@
}
},
"node_modules/is-data-view": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz",
- "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz",
+ "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
"dependencies": {
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
"is-typed-array": "^1.1.13"
},
"engines": {
@@ -9215,11 +10076,12 @@
}
},
"node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz",
+ "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9251,11 +10113,14 @@
}
},
"node_modules/is-finalizationregistry": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz",
- "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
+ "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bound": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -9278,11 +10143,14 @@
}
},
"node_modules/is-generator-function": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz",
- "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz",
+ "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.3",
+ "get-proto": "^1.0.0",
+ "has-tostringtag": "^1.0.2",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -9302,6 +10170,22 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-installed-globally": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
+ "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
+ "dev": true,
+ "dependencies": {
+ "global-dirs": "^3.0.0",
+ "is-path-inside": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-map": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz",
@@ -9318,17 +10202,6 @@
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g=="
},
- "node_modules/is-negative-zero": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
- "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@@ -9338,11 +10211,12 @@
}
},
"node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz",
+ "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9384,12 +10258,14 @@
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ=="
},
"node_modules/is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz",
+ "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.2",
+ "gopd": "^1.2.0",
+ "has-tostringtag": "^1.0.2",
+ "hasown": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9426,11 +10302,11 @@
}
},
"node_modules/is-shared-array-buffer": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
- "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
+ "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
"dependencies": {
- "call-bind": "^1.0.7"
+ "call-bound": "^1.0.3"
},
"engines": {
"node": ">= 0.4"
@@ -9451,11 +10327,12 @@
}
},
"node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz",
+ "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "call-bound": "^1.0.3",
+ "has-tostringtag": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9465,11 +10342,13 @@
}
},
"node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz",
+ "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
"dependencies": {
- "has-symbols": "^1.0.2"
+ "call-bound": "^1.0.2",
+ "has-symbols": "^1.1.0",
+ "safe-regex-test": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -9479,11 +10358,11 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz",
- "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==",
+ "version": "1.1.15",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz",
+ "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
"dependencies": {
- "which-typed-array": "^1.1.14"
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -9497,6 +10376,18 @@
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
},
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/is-weakmap": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
@@ -9509,23 +10400,26 @@
}
},
"node_modules/is-weakref": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
- "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz",
+ "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==",
"dependencies": {
- "call-bind": "^1.0.2"
+ "call-bound": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-weakset": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz",
- "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==",
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz",
+ "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
"dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4"
+ "call-bound": "^1.0.3",
+ "get-intrinsic": "^1.2.6"
},
"engines": {
"node": ">= 0.4"
@@ -9555,6 +10449,12 @@
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==",
+ "dev": true
+ },
"node_modules/istanbul-lib-coverage": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
@@ -9647,15 +10547,16 @@
}
},
"node_modules/iterator.prototype": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz",
- "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==",
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz",
+ "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==",
"dependencies": {
- "define-properties": "^1.2.1",
- "get-intrinsic": "^1.2.1",
- "has-symbols": "^1.0.3",
- "reflect.getprototypeof": "^1.0.4",
- "set-function-name": "^2.0.1"
+ "define-data-property": "^1.1.4",
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.6",
+ "get-proto": "^1.0.0",
+ "has-symbols": "^1.1.0",
+ "set-function-name": "^2.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -9752,6 +10653,47 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-changed-files/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-changed-files/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
"node_modules/jest-circus": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz",
@@ -9804,6 +10746,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-circus/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-circus/node_modules/diff-sequences": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
@@ -9953,6 +10909,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-cli/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-cli/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -10034,6 +11004,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-config/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-config/node_modules/jest-get-type": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
@@ -10150,6 +11134,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-each/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-each/node_modules/jest-get-type": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
@@ -10214,6 +11212,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-environment-jsdom/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-environment-jsdom/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -10269,6 +11281,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-environment-node/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-environment-node/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -10341,6 +11367,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-haste-map/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-haste-map/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -10407,6 +11447,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-jasmine2/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-jasmine2/node_modules/diff-sequences": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
@@ -10749,6 +11803,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-resolve/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-resolve/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -10762,7 +11830,26 @@
"picomatch": "^2.2.3"
},
"engines": {
- "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/jest-runner": {
@@ -10819,6 +11906,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-runner/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-runner/node_modules/jest-message-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
@@ -10909,6 +12010,61 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-runtime/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
"node_modules/jest-runtime/node_modules/jest-message-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
@@ -11011,6 +12167,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-snapshot/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-snapshot/node_modules/diff-sequences": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
@@ -11120,6 +12290,20 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
+ "node_modules/jest-util/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-validate": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
@@ -11268,6 +12452,20 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/jest-watch-typeahead/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-watch-typeahead/node_modules/emittery": {
"version": "0.10.2",
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz",
@@ -11417,9 +12615,9 @@
}
},
"node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz",
- "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.2.tgz",
+ "integrity": "sha512-cbGOjAptfM2LVmWhwRFHEKTPkLwNddVmuqYZQt895yXwAsWsXObCG+YN4DGQ/JBtT4GP1a1lPPdio2z413LmTg==",
"engines": {
"node": ">=12.20"
}
@@ -11489,6 +12687,20 @@
"@types/yargs-parser": "*"
}
},
+ "node_modules/jest-watcher/node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/jest-watcher/node_modules/jest-util": {
"version": "27.5.1",
"resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
@@ -11533,9 +12745,9 @@
}
},
"node_modules/jiti": {
- "version": "1.21.6",
- "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz",
- "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==",
+ "version": "1.21.7",
+ "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
+ "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
"bin": {
"jiti": "bin/jiti.js"
}
@@ -11546,17 +12758,22 @@
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
+ "argparse": "^2.0.1"
},
"bin": {
"js-yaml": "bin/js-yaml.js"
}
},
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
+ },
"node_modules/jsdom": {
"version": "16.7.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz",
@@ -11602,10 +12819,45 @@
}
}
},
- "node_modules/jsesc": {
+ "node_modules/jsdom/node_modules/form-data": {
"version": "3.0.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
- "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.2.tgz",
+ "integrity": "sha512-sJe+TQb2vIaIyO783qN6BlMYWMw3WBOHA1Ay2qxsnjuafEOQFJ2JakedOQirT6D5XPRxDvS7AHYyem9fTpb4LQ==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/jsdom/node_modules/tough-cookie": {
+ "version": "4.1.4",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
+ "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsdom/node_modules/universalify": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
+ "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
"bin": {
"jsesc": "bin/jsesc"
},
@@ -11638,6 +12890,12 @@
"resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
"integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="
},
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true
+ },
"node_modules/json5": {
"version": "2.2.3",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
@@ -11690,6 +12948,21 @@
"node": ">=0.10.0"
}
},
+ "node_modules/jsprim": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz",
+ "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ }
+ },
"node_modules/jsx-ast-utils": {
"version": "3.3.5",
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz",
@@ -11761,6 +13034,15 @@
"shell-quote": "^1.8.1"
}
},
+ "node_modules/lazy-ass": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz",
+ "integrity": "sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw==",
+ "dev": true,
+ "engines": {
+ "node": "> 0.8"
+ }
+ },
"node_modules/leaflet": {
"version": "1.9.4",
"resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.9.4.tgz",
@@ -11799,6 +13081,33 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
"integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg=="
},
+ "node_modules/listr2": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
+ "dev": true,
+ "dependencies": {
+ "cli-truncate": "^2.1.0",
+ "colorette": "^2.0.16",
+ "log-update": "^4.0.0",
+ "p-map": "^4.0.0",
+ "rfdc": "^1.3.0",
+ "rxjs": "^7.5.1",
+ "through": "^2.3.8",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "enquirer": ">= 2.3.0 < 3"
+ },
+ "peerDependenciesMeta": {
+ "enquirer": {
+ "optional": true
+ }
+ }
+ },
"node_modules/loader-runner": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz",
@@ -11821,14 +13130,17 @@
}
},
"node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dependencies": {
- "p-locate": "^4.1.0"
+ "p-locate": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/lodash": {
@@ -11851,6 +13163,12 @@
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==",
+ "dev": true
+ },
"node_modules/lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
@@ -11861,6 +13179,71 @@
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
},
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
+ "dev": true,
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-escapes": "^4.3.0",
+ "cli-cursor": "^3.1.0",
+ "slice-ansi": "^4.0.0",
+ "wrap-ansi": "^6.2.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/log-update/node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/log-update/node_modules/wrap-ansi": {
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -11934,6 +13317,14 @@
"tmpl": "1.0.5"
}
},
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/mdn-data": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz",
@@ -12046,9 +13437,9 @@
}
},
"node_modules/mini-css-extract-plugin": {
- "version": "2.9.1",
- "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.1.tgz",
- "integrity": "sha512-+Vyi+GCCOHnrJ2VPS+6aPoXN2k2jgUzDRhTFLjjTBn23qyXJXkjUWQgTL+mXpF5/A8ixLdCc6kWsoeOjKGejKQ==",
+ "version": "2.9.2",
+ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.2.tgz",
+ "integrity": "sha512-GJuACcS//jtq4kCtd5ii/M0SZf7OZRH+BxdqXZHaJfb8TJiVl+NgQRPwiYt2EuqeSkNydn/7vP+bcE27C5mb9w==",
"dependencies": {
"schema-utils": "^4.0.0",
"tapable": "^2.2.1"
@@ -12135,9 +13526,9 @@
}
},
"node_modules/nanoid": {
- "version": "3.3.7",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
- "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
+ "version": "3.3.8",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz",
+ "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==",
"funding": [
{
"type": "github",
@@ -12162,9 +13553,9 @@
"integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g=="
},
"node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
+ "version": "0.6.4",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz",
+ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==",
"engines": {
"node": ">= 0.6"
}
@@ -12197,9 +13588,9 @@
"integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw=="
},
"node_modules/node-releases": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz",
- "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g=="
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
+ "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="
},
"node_modules/normalize-path": {
"version": "3.0.0",
@@ -12251,9 +13642,9 @@
}
},
"node_modules/nwsapi": {
- "version": "2.2.13",
- "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz",
- "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ=="
+ "version": "2.2.16",
+ "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz",
+ "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ=="
},
"node_modules/object-assign": {
"version": "4.1.1",
@@ -12272,9 +13663,9 @@
}
},
"node_modules/object-inspect": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
- "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
+ "version": "1.13.3",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz",
+ "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==",
"engines": {
"node": ">= 0.4"
},
@@ -12306,13 +13697,15 @@
}
},
"node_modules/object.assign": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
- "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "version": "4.1.7",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz",
+ "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
"dependencies": {
- "call-bind": "^1.0.5",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
- "has-symbols": "^1.0.3",
+ "es-object-atoms": "^1.0.0",
+ "has-symbols": "^1.1.0",
"object-keys": "^1.1.1"
},
"engines": {
@@ -12386,11 +13779,12 @@
}
},
"node_modules/object.values": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz",
- "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz",
+ "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
},
@@ -12479,29 +13873,69 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/ospath": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz",
+ "integrity": "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==",
+ "dev": true
+ },
+ "node_modules/own-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz",
+ "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.6",
+ "object-keys": "^1.1.1",
+ "safe-push-apply": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dependencies": {
- "p-try": "^2.0.0"
+ "yocto-queue": "^0.1.0"
},
"engines": {
- "node": ">=6"
+ "node": ">=10"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dependencies": {
- "p-limit": "^2.2.0"
+ "p-limit": "^3.0.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-map": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
+ "dev": true,
+ "dependencies": {
+ "aggregate-error": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-retry": {
@@ -12638,9 +14072,9 @@
"integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="
},
"node_modules/path-to-regexp": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
- "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w=="
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ=="
},
"node_modules/path-type": {
"version": "4.0.0",
@@ -12650,15 +14084,21 @@
"node": ">=8"
}
},
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
+ "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==",
+ "dev": true
+ },
"node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
},
"node_modules/picocolors": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz",
- "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw=="
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="
},
"node_modules/picomatch": {
"version": "2.3.1",
@@ -12698,6 +14138,54 @@
"node": ">=8"
}
},
+ "node_modules/pkg-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/pkg-up": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
@@ -12732,6 +14220,20 @@
"node": ">=6"
}
},
+ "node_modules/pkg-up/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/pkg-up/node_modules/p-locate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
@@ -12760,9 +14262,9 @@
}
},
"node_modules/postcss": {
- "version": "8.4.47",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz",
- "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==",
+ "version": "8.4.49",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz",
+ "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==",
"funding": [
{
"type": "opencollective",
@@ -12779,7 +14281,7 @@
],
"dependencies": {
"nanoid": "^3.3.7",
- "picocolors": "^1.1.0",
+ "picocolors": "^1.1.1",
"source-map-js": "^1.2.1"
},
"engines": {
@@ -13170,6 +14672,25 @@
"postcss": "^8.0.0"
}
},
+ "node_modules/postcss-import/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/postcss-initial": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz",
@@ -13250,9 +14771,9 @@
}
},
"node_modules/postcss-load-config/node_modules/lilconfig": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
- "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
"engines": {
"node": ">=14"
},
@@ -13261,9 +14782,9 @@
}
},
"node_modules/postcss-load-config/node_modules/yaml": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz",
- "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==",
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz",
+ "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==",
"bin": {
"yaml": "bin.mjs"
},
@@ -13418,12 +14939,12 @@
}
},
"node_modules/postcss-modules-local-by-default": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.5.tgz",
- "integrity": "sha512-6MieY7sIfTK0hYfafw1OMEG+2bg8Q1ocHCpoWLqOKj3JXlKu4G7btkmM/B7lFubYkYWmRSPLZi5chid63ZaZYw==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz",
+ "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==",
"dependencies": {
"icss-utils": "^5.0.0",
- "postcss-selector-parser": "^6.0.2",
+ "postcss-selector-parser": "^7.0.0",
"postcss-value-parser": "^4.1.0"
},
"engines": {
@@ -13433,12 +14954,24 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/postcss-modules-scope": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.0.tgz",
- "integrity": "sha512-oq+g1ssrsZOsx9M96c5w8laRmvEu9C3adDSjI8oTcbfkrTE8hx/zfyobUoWIxaKPO8bt6S62kxpw5GqypEw1QQ==",
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz",
+ "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==",
"dependencies": {
- "postcss-selector-parser": "^6.0.4"
+ "postcss-selector-parser": "^7.0.0"
},
"engines": {
"node": "^10 || ^12 || >= 14"
@@ -13447,6 +14980,18 @@
"postcss": "^8.1.0"
}
},
+ "node_modules/postcss-modules-scope/node_modules/postcss-selector-parser": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.0.0.tgz",
+ "integrity": "sha512-9RbEr1Y7FFfptd/1eEdntyjMwLeghW1bHX9GWjXo19vx4ytPQhANltvVxDggzJl7mnWM+dX28kb6cyS/4iQjlQ==",
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/postcss-modules-values": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz",
@@ -14016,6 +15561,15 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/process": {
+ "version": "0.11.10",
+ "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
+ "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
@@ -14076,10 +15630,31 @@
"node": ">= 0.10"
}
},
+ "node_modules/proxy-from-env": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+ },
"node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/lupomontero"
+ }
+ },
+ "node_modules/pump": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz",
+ "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==",
+ "dev": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
},
"node_modules/punycode": {
"version": "2.3.1",
@@ -14100,9 +15675,10 @@
}
},
"node_modules/qs": {
- "version": "6.13.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
- "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "version": "6.13.1",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz",
+ "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==",
+ "dev": true,
"dependencies": {
"side-channel": "^1.0.6"
},
@@ -14175,14 +15751,6 @@
"node": ">= 0.8"
}
},
- "node_modules/raw-body/node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
"node_modules/raw-body/node_modules/iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
@@ -14243,86 +15811,29 @@
"fork-ts-checker-webpack-plugin": "^6.5.0",
"global-modules": "^2.0.0",
"globby": "^11.0.4",
- "gzip-size": "^6.0.0",
- "immer": "^9.0.7",
- "is-root": "^2.1.0",
- "loader-utils": "^3.2.0",
- "open": "^8.4.0",
- "pkg-up": "^3.1.0",
- "prompts": "^2.4.2",
- "react-error-overlay": "^6.0.11",
- "recursive-readdir": "^2.2.2",
- "shell-quote": "^1.7.3",
- "strip-ansi": "^6.0.1",
- "text-table": "^0.2.0"
- },
- "engines": {
- "node": ">=14"
- }
- },
- "node_modules/react-dev-utils/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dev-utils/node_modules/loader-utils": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
- "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
- "engines": {
- "node": ">= 12.13.0"
- }
- },
- "node_modules/react-dev-utils/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-dev-utils/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
+ "gzip-size": "^6.0.0",
+ "immer": "^9.0.7",
+ "is-root": "^2.1.0",
+ "loader-utils": "^3.2.0",
+ "open": "^8.4.0",
+ "pkg-up": "^3.1.0",
+ "prompts": "^2.4.2",
+ "react-error-overlay": "^6.0.11",
+ "recursive-readdir": "^2.2.2",
+ "shell-quote": "^1.7.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=14"
}
},
- "node_modules/react-dev-utils/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
+ "node_modules/react-dev-utils/node_modules/loader-utils": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.3.1.tgz",
+ "integrity": "sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 12.13.0"
}
},
"node_modules/react-dom": {
@@ -14369,12 +15880,12 @@
}
},
"node_modules/react-router": {
- "version": "6.26.2",
- "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.26.2.tgz",
- "integrity": "sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==",
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.1.tgz",
+ "integrity": "sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==",
"dev": true,
"dependencies": {
- "@remix-run/router": "1.19.2"
+ "@remix-run/router": "1.21.0"
},
"engines": {
"node": ">=14.0.0"
@@ -14384,13 +15895,13 @@
}
},
"node_modules/react-router-dom": {
- "version": "6.26.2",
- "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.26.2.tgz",
- "integrity": "sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==",
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.1.tgz",
+ "integrity": "sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==",
"dev": true,
"dependencies": {
- "@remix-run/router": "1.19.2",
- "react-router": "6.26.2"
+ "@remix-run/router": "1.21.0",
+ "react-router": "6.28.1"
},
"engines": {
"node": ">=14.0.0"
@@ -14502,6 +16013,15 @@
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
}
},
+ "node_modules/react-scripts/node_modules/@types/eslint": {
+ "version": "8.56.12",
+ "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.12.tgz",
+ "integrity": "sha512-03ruubjWyOHlmljCVoxSuNDdmfZDzsrrz0P2LeJsOXr+ZwFQ+0yQIwNCwt/GYhV7Z31fgtXJTAEs+FYlEL851g==",
+ "dependencies": {
+ "@types/estree": "*",
+ "@types/json-schema": "*"
+ }
+ },
"node_modules/react-scripts/node_modules/@typescript-eslint/eslint-plugin": {
"version": "5.62.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz",
@@ -14720,10 +16240,16 @@
"url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/react-scripts/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ "node_modules/react-scripts/node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
},
"node_modules/react-scripts/node_modules/eslint": {
"version": "8.57.1",
@@ -14888,6 +16414,17 @@
"url": "https://opencollective.com/eslint"
}
},
+ "node_modules/react-scripts/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/react-scripts/node_modules/eslint-webpack-plugin": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz",
@@ -14938,21 +16475,6 @@
"node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/react-scripts/node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/react-scripts/node_modules/flat-cache": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz",
@@ -14966,6 +16488,19 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/react-scripts/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "dependencies": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/react-scripts/node_modules/globals": {
"version": "13.24.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz",
@@ -14993,57 +16528,23 @@
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
- "node_modules/react-scripts/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "node_modules/react-scripts/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
"dependencies": {
- "argparse": "^2.0.1"
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
},
"bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/react-scripts/node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-scripts/node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/react-scripts/node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
+ "resolve": "bin/resolve"
},
"engines": {
- "node": ">=10"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/react-scripts/node_modules/supports-color": {
@@ -15139,17 +16640,18 @@
}
},
"node_modules/reflect.getprototypeof": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz",
- "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==",
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
+ "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.1",
+ "es-abstract": "^1.23.9",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "globalthis": "^1.0.3",
- "which-builtin-type": "^1.1.3"
+ "es-object-atoms": "^1.0.0",
+ "get-intrinsic": "^1.2.7",
+ "get-proto": "^1.0.1",
+ "which-builtin-type": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -15193,13 +16695,15 @@
"integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg=="
},
"node_modules/regexp.prototype.flags": {
- "version": "1.5.3",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz",
- "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==",
+ "version": "1.5.4",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
+ "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"define-properties": "^1.2.1",
"es-errors": "^1.3.0",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
"set-function-name": "^2.0.2"
},
"engines": {
@@ -15210,14 +16714,14 @@
}
},
"node_modules/regexpu-core": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz",
- "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==",
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.2.0.tgz",
+ "integrity": "sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==",
"dependencies": {
"regenerate": "^1.4.2",
"regenerate-unicode-properties": "^10.2.0",
"regjsgen": "^0.8.0",
- "regjsparser": "^0.11.0",
+ "regjsparser": "^0.12.0",
"unicode-match-property-ecmascript": "^2.0.0",
"unicode-match-property-value-ecmascript": "^2.1.0"
},
@@ -15231,9 +16735,9 @@
"integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q=="
},
"node_modules/regjsparser": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.1.tgz",
- "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==",
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.12.0.tgz",
+ "integrity": "sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==",
"dependencies": {
"jsesc": "~3.0.2"
},
@@ -15241,6 +16745,17 @@
"regjsparser": "bin/parser"
}
},
+ "node_modules/regjsparser/node_modules/jsesc": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz",
+ "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/relateurl": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
@@ -15261,6 +16776,15 @@
"strip-ansi": "^6.0.1"
}
},
+ "node_modules/request-progress": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz",
+ "integrity": "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg==",
+ "dev": true,
+ "dependencies": {
+ "throttleit": "^1.0.0"
+ }
+ },
"node_modules/require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -15283,9 +16807,9 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ=="
},
"node_modules/resolve": {
- "version": "1.22.8",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
- "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "version": "2.0.0-next.5",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz",
+ "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==",
"dependencies": {
"is-core-module": "^2.13.0",
"path-parse": "^1.0.7",
@@ -15309,7 +16833,7 @@
"node": ">=8"
}
},
- "node_modules/resolve-from": {
+ "node_modules/resolve-cwd/node_modules/resolve-from": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
"integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
@@ -15317,6 +16841,14 @@
"node": ">=8"
}
},
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/resolve-url-loader": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz",
@@ -15386,6 +16918,19 @@
"node": ">=10"
}
},
+ "node_modules/restore-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
+ "dev": true,
+ "dependencies": {
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/retry": {
"version": "0.13.1",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz",
@@ -15403,6 +16948,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/rfdc": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
+ "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
+ "dev": true
+ },
"node_modules/rimraf": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
@@ -15490,14 +17041,24 @@
"queue-microtask": "^1.2.2"
}
},
+ "node_modules/rxjs": {
+ "version": "7.8.1",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz",
+ "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
+ },
"node_modules/safe-array-concat": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz",
- "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
+ "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
"dependencies": {
- "call-bind": "^1.0.7",
- "get-intrinsic": "^1.2.4",
- "has-symbols": "^1.0.3",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "get-intrinsic": "^1.2.6",
+ "has-symbols": "^1.1.0",
"isarray": "^2.0.5"
},
"engines": {
@@ -15526,14 +17087,29 @@
}
]
},
+ "node_modules/safe-push-apply": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
+ "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "isarray": "^2.0.5"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/safe-regex-test": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz",
- "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
+ "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
"dependencies": {
- "call-bind": "^1.0.6",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "is-regex": "^1.1.4"
+ "is-regex": "^1.2.1"
},
"engines": {
"node": ">= 0.4"
@@ -15614,9 +17190,9 @@
}
},
"node_modules/schema-utils": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz",
- "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.0.tgz",
+ "integrity": "sha512-Gf9qqc58SpCA/xdziiHz35F4GNIWYWZrEshUc/G/r5BnLph6xpKuLeoJoQuj5WfBIx/eQLf+hmVPYHaxJu7V2g==",
"dependencies": {
"@types/json-schema": "^7.0.9",
"ajv": "^8.9.0",
@@ -15624,7 +17200,7 @@
"ajv-keywords": "^5.1.0"
},
"engines": {
- "node": ">= 12.13.0"
+ "node": ">= 10.13.0"
},
"funding": {
"type": "opencollective",
@@ -15856,6 +17432,19 @@
"node": ">= 0.4"
}
},
+ "node_modules/set-proto": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz",
+ "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
@@ -15881,22 +17470,76 @@
}
},
"node_modules/shell-quote": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz",
- "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==",
+ "version": "1.8.2",
+ "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.2.tgz",
+ "integrity": "sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==",
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.2",
"es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -15923,6 +17566,20 @@
"node": ">=8"
}
},
+ "node_modules/slice-ansi": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/sockjs": {
"version": "0.3.24",
"resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz",
@@ -16030,6 +17687,31 @@
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
},
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dev": true,
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/stable": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz",
@@ -16162,11 +17844,12 @@
}
},
"node_modules/stop-iteration-iterator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz",
+ "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==",
"dependencies": {
- "internal-slot": "^1.0.4"
+ "es-errors": "^1.3.0",
+ "internal-slot": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -16224,42 +17907,37 @@
"node": ">=8"
}
},
- "node_modules/string-width-cjs/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/string-width/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
"node_modules/string.prototype.includes": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz",
- "integrity": "sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz",
+ "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==",
"dependencies": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5"
+ "call-bind": "^1.0.7",
+ "define-properties": "^1.2.1",
+ "es-abstract": "^1.23.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
"node_modules/string.prototype.matchall": {
- "version": "4.0.11",
- "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz",
- "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==",
+ "version": "4.0.12",
+ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz",
+ "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.2",
+ "es-abstract": "^1.23.6",
"es-errors": "^1.3.0",
"es-object-atoms": "^1.0.0",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-symbols": "^1.0.3",
- "internal-slot": "^1.0.7",
- "regexp.prototype.flags": "^1.5.2",
+ "get-intrinsic": "^1.2.6",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "internal-slot": "^1.1.0",
+ "regexp.prototype.flags": "^1.5.3",
"set-function-name": "^2.0.2",
- "side-channel": "^1.0.6"
+ "side-channel": "^1.1.0"
},
"engines": {
"node": ">= 0.4"
@@ -16278,14 +17956,17 @@
}
},
"node_modules/string.prototype.trim": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz",
- "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==",
+ "version": "1.2.10",
+ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
+ "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
+ "define-data-property": "^1.1.4",
"define-properties": "^1.2.1",
- "es-abstract": "^1.23.0",
- "es-object-atoms": "^1.0.0"
+ "es-abstract": "^1.23.5",
+ "es-object-atoms": "^1.0.0",
+ "has-property-descriptors": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -16295,14 +17976,18 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz",
- "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
+ "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.2",
"define-properties": "^1.2.1",
"es-object-atoms": "^1.0.0"
},
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -16582,6 +18267,14 @@
"node": ">=4"
}
},
+ "node_modules/svgo/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
"node_modules/svgo/node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -16669,6 +18362,18 @@
"node": ">=4"
}
},
+ "node_modules/svgo/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/svgo/node_modules/nth-check": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
@@ -16694,32 +18399,32 @@
"integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="
},
"node_modules/tailwindcss": {
- "version": "3.4.13",
- "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz",
- "integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==",
+ "version": "3.4.17",
+ "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
+ "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
"dependencies": {
"@alloc/quick-lru": "^5.2.0",
"arg": "^5.0.2",
- "chokidar": "^3.5.3",
+ "chokidar": "^3.6.0",
"didyoumean": "^1.2.2",
"dlv": "^1.1.3",
- "fast-glob": "^3.3.0",
+ "fast-glob": "^3.3.2",
"glob-parent": "^6.0.2",
"is-glob": "^4.0.3",
- "jiti": "^1.21.0",
- "lilconfig": "^2.1.0",
- "micromatch": "^4.0.5",
+ "jiti": "^1.21.6",
+ "lilconfig": "^3.1.3",
+ "micromatch": "^4.0.8",
"normalize-path": "^3.0.0",
"object-hash": "^3.0.0",
- "picocolors": "^1.0.0",
- "postcss": "^8.4.23",
+ "picocolors": "^1.1.1",
+ "postcss": "^8.4.47",
"postcss-import": "^15.1.0",
"postcss-js": "^4.0.1",
- "postcss-load-config": "^4.0.1",
- "postcss-nested": "^6.0.1",
- "postcss-selector-parser": "^6.0.11",
- "resolve": "^1.22.2",
- "sucrase": "^3.32.0"
+ "postcss-load-config": "^4.0.2",
+ "postcss-nested": "^6.2.0",
+ "postcss-selector-parser": "^6.1.2",
+ "resolve": "^1.22.8",
+ "sucrase": "^3.35.0"
},
"bin": {
"tailwind": "lib/cli.js",
@@ -16729,6 +18434,36 @@
"node": ">=14.0.0"
}
},
+ "node_modules/tailwindcss/node_modules/lilconfig": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
+ "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antonk52"
+ }
+ },
+ "node_modules/tailwindcss/node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/tapable": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
@@ -16789,9 +18524,9 @@
}
},
"node_modules/terser": {
- "version": "5.34.1",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz",
- "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==",
+ "version": "5.37.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.37.0.tgz",
+ "integrity": "sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==",
"dependencies": {
"@jridgewell/source-map": "^0.3.3",
"acorn": "^8.8.2",
@@ -16806,15 +18541,15 @@
}
},
"node_modules/terser-webpack-plugin": {
- "version": "5.3.10",
- "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz",
- "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==",
+ "version": "5.3.11",
+ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.11.tgz",
+ "integrity": "sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==",
"dependencies": {
- "@jridgewell/trace-mapping": "^0.3.20",
+ "@jridgewell/trace-mapping": "^0.3.25",
"jest-worker": "^27.4.5",
- "schema-utils": "^3.1.1",
- "serialize-javascript": "^6.0.1",
- "terser": "^5.26.0"
+ "schema-utils": "^4.3.0",
+ "serialize-javascript": "^6.0.2",
+ "terser": "^5.31.1"
},
"engines": {
"node": ">= 10.13.0"
@@ -16838,23 +18573,6 @@
}
}
},
- "node_modules/terser-webpack-plugin/node_modules/schema-utils": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz",
- "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
- "dependencies": {
- "@types/json-schema": "^7.0.8",
- "ajv": "^6.12.5",
- "ajv-keywords": "^3.5.2"
- },
- "engines": {
- "node": ">= 10.13.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/webpack"
- }
- },
"node_modules/terser/node_modules/commander": {
"version": "2.20.3",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
@@ -16902,24 +18620,58 @@
"resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz",
"integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ=="
},
+ "node_modules/throttleit": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz",
+ "integrity": "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/through": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
+ "dev": true
+ },
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
"integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA=="
},
+ "node_modules/tldts": {
+ "version": "6.1.71",
+ "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.71.tgz",
+ "integrity": "sha512-LQIHmHnuzfZgZWAf2HzL83TIIrD8NhhI0DVxqo9/FdOd4ilec+NTNZOlDZf7EwrTNoutccbsHjvWHYXLAtvxjw==",
+ "dev": true,
+ "dependencies": {
+ "tldts-core": "^6.1.71"
+ },
+ "bin": {
+ "tldts": "bin/cli.js"
+ }
+ },
+ "node_modules/tldts-core": {
+ "version": "6.1.71",
+ "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.71.tgz",
+ "integrity": "sha512-LRbChn2YRpic1KxY+ldL1pGXN/oVvKfCVufwfVzEQdFYNo39uF7AJa/WXdo+gYO7PTvdfkCPCed6Hkvz/kR7jg==",
+ "dev": true
+ },
+ "node_modules/tmp": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz",
+ "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
"node_modules/tmpl": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
"integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw=="
},
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/to-regex-range": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@@ -16940,25 +18692,15 @@
}
},
"node_modules/tough-cookie": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz",
- "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.0.tgz",
+ "integrity": "sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==",
+ "dev": true,
"dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
+ "tldts": "^6.1.32"
},
"engines": {
- "node": ">=6"
- }
- },
- "node_modules/tough-cookie/node_modules/universalify": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz",
- "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==",
- "engines": {
- "node": ">= 4.0.0"
+ "node": ">=16"
}
},
"node_modules/tr46": {
@@ -16972,21 +18714,30 @@
"node": ">=8"
}
},
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "dev": true,
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
"node_modules/tryer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz",
"integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA=="
},
"node_modules/ts-api-utils": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz",
- "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz",
+ "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==",
"dev": true,
"engines": {
- "node": ">=16"
+ "node": ">=18.12"
},
"peerDependencies": {
- "typescript": ">=4.2.0"
+ "typescript": ">=4.8.4"
}
},
"node_modules/ts-interface-checker": {
@@ -17025,9 +18776,9 @@
}
},
"node_modules/tslib": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz",
- "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA=="
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="
},
"node_modules/tsutils": {
"version": "3.21.0",
@@ -17048,6 +18799,24 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
},
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/tweetnacl": {
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -17091,28 +18860,28 @@
}
},
"node_modules/typed-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
- "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bound": "^1.0.3",
"es-errors": "^1.3.0",
- "is-typed-array": "^1.1.13"
+ "is-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
}
},
"node_modules/typed-array-byte-length": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
- "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
+ "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
"dependencies": {
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.14"
},
"engines": {
"node": ">= 0.4"
@@ -17122,16 +18891,17 @@
}
},
"node_modules/typed-array-byte-offset": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
- "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
+ "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
"dependencies": {
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
"for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-proto": "^1.0.3",
- "is-typed-array": "^1.1.13"
+ "gopd": "^1.2.0",
+ "has-proto": "^1.2.0",
+ "is-typed-array": "^1.1.15",
+ "reflect.getprototypeof": "^1.0.9"
},
"engines": {
"node": ">= 0.4"
@@ -17141,16 +18911,16 @@
}
},
"node_modules/typed-array-length": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz",
- "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz",
+ "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
"dependencies": {
"call-bind": "^1.0.7",
"for-each": "^0.3.3",
"gopd": "^1.0.1",
- "has-proto": "^1.0.3",
"is-typed-array": "^1.1.13",
- "possible-typed-array-names": "^1.0.0"
+ "possible-typed-array-names": "^1.0.0",
+ "reflect.getprototypeof": "^1.0.6"
},
"engines": {
"node": ">= 0.4"
@@ -17180,14 +18950,14 @@
}
},
"node_modules/typescript-eslint": {
- "version": "8.13.0",
- "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.13.0.tgz",
- "integrity": "sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw==",
+ "version": "8.19.1",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.19.1.tgz",
+ "integrity": "sha512-LKPUQpdEMVOeKluHi8md7rwLcoXHhwvWp3x+sJkMuq3gGm9yaYJtPo8sRZSblMFJ5pcOGCAak/scKf1mvZDlQw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/eslint-plugin": "8.13.0",
- "@typescript-eslint/parser": "8.13.0",
- "@typescript-eslint/utils": "8.13.0"
+ "@typescript-eslint/eslint-plugin": "8.19.1",
+ "@typescript-eslint/parser": "8.19.1",
+ "@typescript-eslint/utils": "8.19.1"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -17196,21 +18966,23 @@
"type": "opencollective",
"url": "https://opencollective.com/typescript-eslint"
},
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <5.8.0"
}
},
"node_modules/unbox-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
- "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
+ "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
"dependencies": {
- "call-bind": "^1.0.2",
+ "call-bound": "^1.0.3",
"has-bigints": "^1.0.2",
- "has-symbols": "^1.0.3",
- "which-boxed-primitive": "^1.0.2"
+ "has-symbols": "^1.1.0",
+ "which-boxed-primitive": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -17222,9 +18994,9 @@
"integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw=="
},
"node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw=="
+ "version": "6.20.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.20.0.tgz",
+ "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg=="
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.1",
@@ -17294,6 +19066,15 @@
"resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz",
"integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg=="
},
+ "node_modules/untildify": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz",
+ "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/upath": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
@@ -17304,9 +19085,9 @@
}
},
"node_modules/update-browserslist-db": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz",
- "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz",
+ "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==",
"funding": [
{
"type": "opencollective",
@@ -17323,7 +19104,7 @@
],
"dependencies": {
"escalade": "^3.2.0",
- "picocolors": "^1.1.0"
+ "picocolors": "^1.1.1"
},
"bin": {
"update-browserslist-db": "cli.js"
@@ -17415,6 +19196,20 @@
"node": ">= 0.8"
}
},
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "dev": true,
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
+ },
"node_modules/w3c-hr-time": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz",
@@ -17477,17 +19272,17 @@
}
},
"node_modules/webpack": {
- "version": "5.95.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz",
- "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==",
- "dependencies": {
- "@types/estree": "^1.0.5",
- "@webassemblyjs/ast": "^1.12.1",
- "@webassemblyjs/wasm-edit": "^1.12.1",
- "@webassemblyjs/wasm-parser": "^1.12.1",
- "acorn": "^8.7.1",
- "acorn-import-attributes": "^1.9.5",
- "browserslist": "^4.21.10",
+ "version": "5.97.1",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz",
+ "integrity": "sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg==",
+ "dependencies": {
+ "@types/eslint-scope": "^3.7.7",
+ "@types/estree": "^1.0.6",
+ "@webassemblyjs/ast": "^1.14.1",
+ "@webassemblyjs/wasm-edit": "^1.14.1",
+ "@webassemblyjs/wasm-parser": "^1.14.1",
+ "acorn": "^8.14.0",
+ "browserslist": "^4.24.0",
"chrome-trace-event": "^1.0.2",
"enhanced-resolve": "^5.17.1",
"es-module-lexer": "^1.2.1",
@@ -17779,37 +19574,41 @@
}
},
"node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
+ "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
"dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
+ "is-bigint": "^1.1.0",
+ "is-boolean-object": "^1.2.1",
+ "is-number-object": "^1.1.1",
+ "is-string": "^1.1.1",
+ "is-symbol": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/which-builtin-type": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz",
- "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
+ "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
"dependencies": {
+ "call-bound": "^1.0.2",
"function.prototype.name": "^1.1.6",
"has-tostringtag": "^1.0.2",
"is-async-function": "^2.0.0",
- "is-date-object": "^1.0.5",
- "is-finalizationregistry": "^1.0.2",
+ "is-date-object": "^1.1.0",
+ "is-finalizationregistry": "^1.1.0",
"is-generator-function": "^1.0.10",
- "is-regex": "^1.1.4",
+ "is-regex": "^1.2.1",
"is-weakref": "^1.0.2",
"isarray": "^2.0.5",
- "which-boxed-primitive": "^1.0.2",
+ "which-boxed-primitive": "^1.1.0",
"which-collection": "^1.0.2",
- "which-typed-array": "^1.1.15"
+ "which-typed-array": "^1.1.16"
},
"engines": {
"node": ">= 0.4"
@@ -17836,14 +19635,15 @@
}
},
"node_modules/which-typed-array": {
- "version": "1.1.15",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz",
- "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==",
+ "version": "1.1.18",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz",
+ "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==",
"dependencies": {
"available-typed-arrays": "^1.0.7",
- "call-bind": "^1.0.7",
+ "call-bind": "^1.0.8",
+ "call-bound": "^1.0.3",
"for-each": "^0.3.3",
- "gopd": "^1.0.1",
+ "gopd": "^1.2.0",
"has-tostringtag": "^1.0.2"
},
"engines": {
@@ -17956,20 +19756,6 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/workbox-build/node_modules/fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
- "dependencies": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/workbox-build/node_modules/json-schema-traverse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
@@ -18282,6 +20068,16 @@
"node": ">=10"
}
},
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
+ "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==",
+ "dev": true,
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/frontend/package.json b/frontend/package.json
index 9e1db10..9da1c0e 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -4,9 +4,14 @@
"private": true,
"type": "module",
"dependencies": {
+ "@fortawesome/fontawesome-svg-core": "^6.7.1",
+ "@fortawesome/free-regular-svg-icons": "^6.7.2",
+ "@fortawesome/free-solid-svg-icons": "^6.7.1",
+ "@fortawesome/react-fontawesome": "^0.2.2",
"@testing-library/jest-dom": "^5.17.0",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
+ "axios": "^1.7.9",
"leaflet": "^1.9.4",
"prop-types": "^15.8.1",
"react": "^18.3.1",
@@ -41,7 +46,9 @@
},
"devDependencies": {
"@eslint/js": "^9.14.0",
- "eslint": "^9.14.0",
+ "cypress": "^13.8.0",
+ "eslint": "^9.18.0",
+ "eslint-plugin-cypress": "^4.1.0",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"globals": "^15.12.0",