From ff1c5003331211918bd471cd156378c77f046fde Mon Sep 17 00:00:00 2001 From: hiddify-com <114227601+hiddify-com@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:35:25 +0200 Subject: [PATCH] release: version 2.0.0 --- ios/Runner.xcodeproj/project.pbxproj | 36 +++++++++---------- lib/utils/validators.dart | 2 +- .../profile/data/profile_parser_test.dart | 5 +-- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2a7ce934..8c776fb9 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -775,7 +775,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2000020000; + CURRENT_PROJECT_VERSION = 200002000020000; ENABLE_USER_SCRIPT_SANDBOXING = YES; EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -794,7 +794,7 @@ "@executable_path/libcore/", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 2.0.02.0.0; + MARKETING_VERSION = 2.0.02.0.02.0.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_LDFLAGS = "-lresolv"; @@ -826,7 +826,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2000020000; + CURRENT_PROJECT_VERSION = 200002000020000; ENABLE_USER_SCRIPT_SANDBOXING = YES; EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -845,7 +845,7 @@ "@executable_path/libcore/", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 2.0.02.0.0; + MARKETING_VERSION = 2.0.02.0.02.0.0; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = NO; OTHER_LDFLAGS = "-lresolv"; @@ -875,7 +875,7 @@ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_ENTITLEMENTS = SingBoxPacketTunnel/SingBoxPacketTunnel.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 2000020000; + CURRENT_PROJECT_VERSION = 200002000020000; ENABLE_USER_SCRIPT_SANDBOXING = YES; EXCLUDED_ARCHS = armv7; GCC_C_LANGUAGE_STANDARD = gnu17; @@ -894,7 +894,7 @@ "@executable_path/libcore/", ); LOCALIZATION_PREFERS_STRING_CATALOGS = YES; - MARKETING_VERSION = 2.0.02.0.0; + MARKETING_VERSION = 2.0.02.0.02.0.0; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = NO; OTHER_LDFLAGS = "-lresolv"; @@ -943,7 +943,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 20000"$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 2000020000"$(FLUTTER_BUILD_NUMBER)"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -978,7 +978,7 @@ BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 20000"$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 2000020000"$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 3JFTY5BP58; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; @@ -1023,9 +1023,9 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 200001; + CURRENT_PROJECT_VERSION = 20000200001; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 2.0.01.0; + MARKETING_VERSION = 2.0.02.0.01.0; PRODUCT_BUNDLE_IDENTIFIER = com.hiddify.ios.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; @@ -1041,9 +1041,9 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 200001; + CURRENT_PROJECT_VERSION = 20000200001; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 2.0.01.0; + MARKETING_VERSION = 2.0.02.0.01.0; PRODUCT_BUNDLE_IDENTIFIER = com.hiddify.ios.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -1057,9 +1057,9 @@ buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 200001; + CURRENT_PROJECT_VERSION = 20000200001; GENERATE_INFOPLIST_FILE = YES; - MARKETING_VERSION = 2.0.01.0; + MARKETING_VERSION = 2.0.02.0.01.0; PRODUCT_BUNDLE_IDENTIFIER = com.hiddify.ios.RunnerTests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; @@ -1099,7 +1099,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 20000"$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 2000020000"$(FLUTTER_BUILD_NUMBER)"; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -1161,7 +1161,7 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 20000"$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 2000020000"$(FLUTTER_BUILD_NUMBER)"; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -1198,7 +1198,7 @@ BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 20000"$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 2000020000"$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 3JFTY5BP58; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; @@ -1247,7 +1247,7 @@ BUILD_LIBRARY_FOR_DISTRIBUTION = NO; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 20000"$(FLUTTER_BUILD_NUMBER)"; + CURRENT_PROJECT_VERSION = 2000020000"$(FLUTTER_BUILD_NUMBER)"; DEVELOPMENT_TEAM = 3JFTY5BP58; ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = armv7; diff --git a/lib/utils/validators.dart b/lib/utils/validators.dart index bc8fd613..3cbdaa97 100644 --- a/lib/utils/validators.dart +++ b/lib/utils/validators.dart @@ -1,7 +1,7 @@ /// https://gist.github.com/dperini/729294 final _urlRegex = RegExp( // r"^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$", - r'^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?#.*$', + r'^(?:(?:https?|ftp):\/\/)(?:\S+(?::\S*)?@)?(?:(?:[0-9]{1,3}\.){3}[0-9]{1,3}|(?:(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-?)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?#?.*$', ); /// https://stackoverflow.com/a/12968117 diff --git a/test/features/profile/data/profile_parser_test.dart b/test/features/profile/data/profile_parser_test.dart index c173cc74..b55c1e6f 100644 --- a/test/features/profile/data/profile_parser_test.dart +++ b/test/features/profile/data/profile_parser_test.dart @@ -4,8 +4,7 @@ import 'package:hiddify/features/profile/model/profile_entity.dart'; void main() { const validBaseUrl = "https://example.com/configurations/user1/filename.yaml"; - const validExtendedUrl = - "https://example.com/configurations/user1/filename.yaml?test#b"; + const validExtendedUrl = "https://example.com/configurations/user1/filename.yaml?test#b"; const validSupportUrl = "https://example.com/support"; group( @@ -41,6 +40,7 @@ void main() { final headers = >{ "profile-title": ["base64:ZXhhbXBsZVRpdGxl"], "profile-update-interval": ["1"], + "test-url": [validBaseUrl], "subscription-userinfo": [ "upload=0;download=1024;total=10240.5;expire=1704054600.55", ], @@ -51,6 +51,7 @@ void main() { expect(profile.name, equals("exampleTitle")); expect(profile.url, equals(validExtendedUrl)); + expect(profile.testUrl, equals(validBaseUrl)); expect( profile.options, equals(const ProfileOptions(updateInterval: Duration(hours: 1))),