diff --git a/Frameworks/M2Kit.xcframework/Info.plist b/Frameworks/M2Kit.xcframework/Info.plist index 72c6da7..4125c63 100644 --- a/Frameworks/M2Kit.xcframework/Info.plist +++ b/Frameworks/M2Kit.xcframework/Info.plist @@ -4,20 +4,6 @@ AvailableLibraries - - BinaryPath - M2Kit.framework/M2Kit - LibraryIdentifier - ios-arm64 - LibraryPath - M2Kit.framework - SupportedArchitectures - - arm64 - - SupportedPlatform - ios - BinaryPath M2Kit.framework/Versions/A/M2Kit @@ -52,6 +38,20 @@ SupportedPlatformVariant simulator + + BinaryPath + M2Kit.framework/M2Kit + LibraryIdentifier + ios-arm64 + LibraryPath + M2Kit.framework + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + CFBundlePackageType XFWK diff --git a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Info.plist b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Info.plist index 0751939..adea7f4 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Info.plist and b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Info.plist differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/M2Kit b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/M2Kit index 0a5fe05..c4ba755 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/M2Kit and b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/M2Kit differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.abi.json b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.abi.json index e6328be..3bc0ef7 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.abi.json +++ b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.abi.json @@ -7930,6 +7930,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8032,6 +8033,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8134,6 +8136,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8236,6 +8239,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8338,6 +8342,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8405,6 +8410,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8466,6 +8472,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8527,6 +8534,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8588,6 +8596,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8649,6 +8658,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8710,6 +8720,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8777,6 +8788,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8831,6 +8843,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8879,6 +8892,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8927,6 +8941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8994,6 +9009,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -9916,6 +9932,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -9932,6 +9949,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -9972,6 +9996,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10065,6 +10090,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10119,6 +10145,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10173,6 +10200,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10249,6 +10277,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10322,6 +10351,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10376,6 +10406,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10388,6 +10419,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10404,6 +10436,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10427,6 +10466,7 @@ "HasInitialValue", "HasStorage", "AccessControl", + "Custom", "RawDocComment" ], "isLet": true, @@ -10562,6 +10602,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10573,7 +10614,8 @@ "mangledName": "$s5M2Kit0A8FeedbackV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -10589,6 +10631,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10653,6 +10702,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10690,6 +10740,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10744,6 +10795,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10781,6 +10833,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10793,6 +10846,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10809,6 +10863,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10880,6 +10941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10917,6 +10979,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10929,6 +10992,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10945,6 +11009,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11015,6 +11086,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11027,6 +11099,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -11043,6 +11116,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11106,6 +11186,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11141,6 +11222,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11181,6 +11263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11192,7 +11275,8 @@ "mangledName": "$s5M2Kit0A3LogV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11208,6 +11292,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11299,6 +11390,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11310,7 +11402,8 @@ "mangledName": "$s5M2Kit0A4MusiV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11326,6 +11419,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11663,6 +11763,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV5start14monitorHandleryySbc_tF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11684,6 +11785,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV11isConnectedSbvp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11724,6 +11826,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV14connectionTypeAA0ac11ConnecttionF0Ovp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11763,6 +11866,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV4stopyyF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11773,7 +11877,8 @@ "mangledName": "$s5M2Kit0A10NetMonitorV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11789,6 +11894,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11860,6 +11972,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11897,6 +12010,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11925,6 +12039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11948,6 +12063,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12050,6 +12166,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12146,6 +12263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12207,6 +12325,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12322,6 +12441,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12389,6 +12509,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12491,6 +12612,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12606,6 +12728,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12702,6 +12825,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12763,6 +12887,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12878,6 +13003,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12945,6 +13071,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13012,6 +13139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13079,6 +13207,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13091,6 +13220,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -13107,6 +13237,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -17864,6 +18001,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17889,6 +18027,7 @@ "declAttributes": [ "HasInitialValue", "HasStorage", + "Custom", "AccessControl", "RawDocComment" ], @@ -17941,6 +18080,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17969,6 +18109,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17998,6 +18139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -18021,6 +18163,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18065,6 +18208,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18077,6 +18221,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -18093,6 +18238,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -18135,7 +18287,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override", "AccessControl" @@ -18192,7 +18343,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override" ], @@ -18234,7 +18384,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Required" ], @@ -18246,9 +18395,8 @@ "mangledName": "$s5M2Kit0A5WebVCC", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", "AccessControl", + "Custom", "ObjC" ], "superclassUsr": "c:objc(cs)UIViewController", @@ -18360,7 +18508,6 @@ "mangledName": "$s5M2Kit0A7WebViewVACycfc", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", "Custom", "AccessControl" ], @@ -18451,9 +18598,8 @@ "mangledName": "$s5M2Kit0A7WebViewV", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18805,6 +18951,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18892,6 +19039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18902,7 +19050,8 @@ "mangledName": "$s5M2Kit0A2YTV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18918,6 +19067,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -22267,56 +22423,56 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Define.swift", "kind": "StringLiteral", - "offset": 131, + "offset": 142, "length": 6, - "value": "\"5.13\"" + "value": "\"5.14\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 568, + "offset": 579, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 584, + "offset": 595, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "IntegerLiteral", - "offset": 597, + "offset": 608, "length": 1, "value": "0" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "StringLiteral", - "offset": 150, + "offset": 161, "length": 22, "value": "\"M2LogEventDictionary\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "Dictionary", - "offset": 300, + "offset": 311, "length": 3, "value": "[]" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 393, + "offset": 404, "length": 1, "value": "1" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 679, + "offset": 690, "length": 1, "value": "1" }, @@ -22953,7 +23109,7 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Utils.swift", "kind": "StringLiteral", - "offset": 693, + "offset": 704, "length": 16, "value": "\"workForChanged\"" }, diff --git a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.private.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.private.swiftinterface index 418031c..0b64f6e 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.private.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.private.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target arm64-apple-ios15.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target arm64-apple-ios16.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftdoc b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftdoc index 2f39e76..261d523 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftdoc and b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftinterface index 418031c..0b64f6e 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target arm64-apple-ios15.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target arm64-apple-ios16.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/M2Kit b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/M2Kit index 8cd76f6..9e2e7ec 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/M2Kit and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/M2Kit differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.abi.json b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.abi.json index e6328be..3bc0ef7 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.abi.json +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.abi.json @@ -7930,6 +7930,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8032,6 +8033,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8134,6 +8136,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8236,6 +8239,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8338,6 +8342,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8405,6 +8410,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8466,6 +8472,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8527,6 +8534,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8588,6 +8596,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8649,6 +8658,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8710,6 +8720,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8777,6 +8788,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8831,6 +8843,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8879,6 +8892,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8927,6 +8941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8994,6 +9009,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -9916,6 +9932,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -9932,6 +9949,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -9972,6 +9996,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10065,6 +10090,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10119,6 +10145,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10173,6 +10200,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10249,6 +10277,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10322,6 +10351,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10376,6 +10406,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10388,6 +10419,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10404,6 +10436,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10427,6 +10466,7 @@ "HasInitialValue", "HasStorage", "AccessControl", + "Custom", "RawDocComment" ], "isLet": true, @@ -10562,6 +10602,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10573,7 +10614,8 @@ "mangledName": "$s5M2Kit0A8FeedbackV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -10589,6 +10631,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10653,6 +10702,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10690,6 +10740,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10744,6 +10795,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10781,6 +10833,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10793,6 +10846,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10809,6 +10863,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10880,6 +10941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10917,6 +10979,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10929,6 +10992,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10945,6 +11009,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11015,6 +11086,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11027,6 +11099,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -11043,6 +11116,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11106,6 +11186,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11141,6 +11222,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11181,6 +11263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11192,7 +11275,8 @@ "mangledName": "$s5M2Kit0A3LogV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11208,6 +11292,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11299,6 +11390,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11310,7 +11402,8 @@ "mangledName": "$s5M2Kit0A4MusiV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11326,6 +11419,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11663,6 +11763,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV5start14monitorHandleryySbc_tF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11684,6 +11785,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV11isConnectedSbvp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11724,6 +11826,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV14connectionTypeAA0ac11ConnecttionF0Ovp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11763,6 +11866,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV4stopyyF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11773,7 +11877,8 @@ "mangledName": "$s5M2Kit0A10NetMonitorV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11789,6 +11894,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11860,6 +11972,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11897,6 +12010,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11925,6 +12039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11948,6 +12063,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12050,6 +12166,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12146,6 +12263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12207,6 +12325,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12322,6 +12441,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12389,6 +12509,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12491,6 +12612,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12606,6 +12728,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12702,6 +12825,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12763,6 +12887,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12878,6 +13003,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12945,6 +13071,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13012,6 +13139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13079,6 +13207,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13091,6 +13220,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -13107,6 +13237,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -17864,6 +18001,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17889,6 +18027,7 @@ "declAttributes": [ "HasInitialValue", "HasStorage", + "Custom", "AccessControl", "RawDocComment" ], @@ -17941,6 +18080,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17969,6 +18109,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17998,6 +18139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -18021,6 +18163,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18065,6 +18208,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18077,6 +18221,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -18093,6 +18238,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -18135,7 +18287,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override", "AccessControl" @@ -18192,7 +18343,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override" ], @@ -18234,7 +18384,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Required" ], @@ -18246,9 +18395,8 @@ "mangledName": "$s5M2Kit0A5WebVCC", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", "AccessControl", + "Custom", "ObjC" ], "superclassUsr": "c:objc(cs)UIViewController", @@ -18360,7 +18508,6 @@ "mangledName": "$s5M2Kit0A7WebViewVACycfc", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", "Custom", "AccessControl" ], @@ -18451,9 +18598,8 @@ "mangledName": "$s5M2Kit0A7WebViewV", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18805,6 +18951,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18892,6 +19039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18902,7 +19050,8 @@ "mangledName": "$s5M2Kit0A2YTV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18918,6 +19067,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -22267,56 +22423,56 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Define.swift", "kind": "StringLiteral", - "offset": 131, + "offset": 142, "length": 6, - "value": "\"5.13\"" + "value": "\"5.14\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 568, + "offset": 579, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 584, + "offset": 595, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "IntegerLiteral", - "offset": 597, + "offset": 608, "length": 1, "value": "0" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "StringLiteral", - "offset": 150, + "offset": 161, "length": 22, "value": "\"M2LogEventDictionary\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "Dictionary", - "offset": 300, + "offset": 311, "length": 3, "value": "[]" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 393, + "offset": 404, "length": 1, "value": "1" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 679, + "offset": 690, "length": 1, "value": "1" }, @@ -22953,7 +23109,7 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Utils.swift", "kind": "StringLiteral", - "offset": 693, + "offset": 704, "length": 16, "value": "\"workForChanged\"" }, diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.private.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.private.swiftinterface index fff9772..215f3ef 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.private.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.private.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target arm64-apple-ios15.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target arm64-apple-ios16.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftdoc b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftdoc index 1eb272a..dcb3f61 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftdoc and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftdoc differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftinterface index fff9772..215f3ef 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/arm64-apple-ios-macabi.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target arm64-apple-ios15.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target arm64-apple-ios16.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.abi.json b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.abi.json index e6328be..3bc0ef7 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.abi.json +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.abi.json @@ -7930,6 +7930,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8032,6 +8033,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8134,6 +8136,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8236,6 +8239,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8338,6 +8342,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8405,6 +8410,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8466,6 +8472,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8527,6 +8534,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8588,6 +8596,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8649,6 +8658,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8710,6 +8720,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8777,6 +8788,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8831,6 +8843,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8879,6 +8892,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8927,6 +8941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8994,6 +9009,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -9916,6 +9932,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -9932,6 +9949,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -9972,6 +9996,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10065,6 +10090,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10119,6 +10145,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10173,6 +10200,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10249,6 +10277,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10322,6 +10351,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10376,6 +10406,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10388,6 +10419,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10404,6 +10436,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10427,6 +10466,7 @@ "HasInitialValue", "HasStorage", "AccessControl", + "Custom", "RawDocComment" ], "isLet": true, @@ -10562,6 +10602,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10573,7 +10614,8 @@ "mangledName": "$s5M2Kit0A8FeedbackV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -10589,6 +10631,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10653,6 +10702,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10690,6 +10740,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10744,6 +10795,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10781,6 +10833,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10793,6 +10846,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10809,6 +10863,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10880,6 +10941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10917,6 +10979,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10929,6 +10992,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10945,6 +11009,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11015,6 +11086,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11027,6 +11099,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -11043,6 +11116,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11106,6 +11186,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11141,6 +11222,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11181,6 +11263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11192,7 +11275,8 @@ "mangledName": "$s5M2Kit0A3LogV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11208,6 +11292,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11299,6 +11390,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11310,7 +11402,8 @@ "mangledName": "$s5M2Kit0A4MusiV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11326,6 +11419,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11663,6 +11763,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV5start14monitorHandleryySbc_tF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11684,6 +11785,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV11isConnectedSbvp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11724,6 +11826,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV14connectionTypeAA0ac11ConnecttionF0Ovp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11763,6 +11866,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV4stopyyF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11773,7 +11877,8 @@ "mangledName": "$s5M2Kit0A10NetMonitorV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11789,6 +11894,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11860,6 +11972,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11897,6 +12010,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11925,6 +12039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11948,6 +12063,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12050,6 +12166,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12146,6 +12263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12207,6 +12325,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12322,6 +12441,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12389,6 +12509,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12491,6 +12612,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12606,6 +12728,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12702,6 +12825,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12763,6 +12887,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12878,6 +13003,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12945,6 +13071,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13012,6 +13139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13079,6 +13207,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13091,6 +13220,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -13107,6 +13237,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -17864,6 +18001,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17889,6 +18027,7 @@ "declAttributes": [ "HasInitialValue", "HasStorage", + "Custom", "AccessControl", "RawDocComment" ], @@ -17941,6 +18080,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17969,6 +18109,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17998,6 +18139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -18021,6 +18163,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18065,6 +18208,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18077,6 +18221,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -18093,6 +18238,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -18135,7 +18287,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override", "AccessControl" @@ -18192,7 +18343,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override" ], @@ -18234,7 +18384,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Required" ], @@ -18246,9 +18395,8 @@ "mangledName": "$s5M2Kit0A5WebVCC", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", "AccessControl", + "Custom", "ObjC" ], "superclassUsr": "c:objc(cs)UIViewController", @@ -18360,7 +18508,6 @@ "mangledName": "$s5M2Kit0A7WebViewVACycfc", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", "Custom", "AccessControl" ], @@ -18451,9 +18598,8 @@ "mangledName": "$s5M2Kit0A7WebViewV", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18805,6 +18951,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18892,6 +19039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18902,7 +19050,8 @@ "mangledName": "$s5M2Kit0A2YTV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18918,6 +19067,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -22267,56 +22423,56 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Define.swift", "kind": "StringLiteral", - "offset": 131, + "offset": 142, "length": 6, - "value": "\"5.13\"" + "value": "\"5.14\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 568, + "offset": 579, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 584, + "offset": 595, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "IntegerLiteral", - "offset": 597, + "offset": 608, "length": 1, "value": "0" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "StringLiteral", - "offset": 150, + "offset": 161, "length": 22, "value": "\"M2LogEventDictionary\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "Dictionary", - "offset": 300, + "offset": 311, "length": 3, "value": "[]" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 393, + "offset": 404, "length": 1, "value": "1" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 679, + "offset": 690, "length": 1, "value": "1" }, @@ -22953,7 +23109,7 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Utils.swift", "kind": "StringLiteral", - "offset": 693, + "offset": 704, "length": 16, "value": "\"workForChanged\"" }, diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.private.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.private.swiftinterface index 2d1126c..814c608 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.private.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.private.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target x86_64-apple-ios15.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target x86_64-apple-ios16.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftdoc b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftdoc index d0404cb..0d198f8 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftdoc and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftdoc differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftinterface index 2d1126c..814c608 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Modules/M2Kit.swiftmodule/x86_64-apple-ios-macabi.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target x86_64-apple-ios15.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target x86_64-apple-ios16.0-macabi -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Resources/Info.plist b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Resources/Info.plist index 8c4a6cb..12ead07 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Resources/Info.plist +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-maccatalyst/M2Kit.framework/Versions/A/Resources/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 5.13 + 5.14 CFBundleSupportedPlatforms MacOSX @@ -41,7 +41,7 @@ DTXcodeBuild 17C52 LSMinimumSystemVersion - 12.0 + 13.0 UIDeviceFamily 2 diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Info.plist b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Info.plist index eef6676..8177726 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Info.plist and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Info.plist differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/M2Kit b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/M2Kit index 9b45d80..91f65ea 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/M2Kit and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/M2Kit differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json index e6328be..3bc0ef7 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json @@ -7930,6 +7930,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8032,6 +8033,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8134,6 +8136,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8236,6 +8239,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8338,6 +8342,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8405,6 +8410,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8466,6 +8472,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8527,6 +8534,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8588,6 +8596,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8649,6 +8658,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8710,6 +8720,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8777,6 +8788,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8831,6 +8843,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8879,6 +8892,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8927,6 +8941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8994,6 +9009,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -9916,6 +9932,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -9932,6 +9949,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -9972,6 +9996,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10065,6 +10090,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10119,6 +10145,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10173,6 +10200,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10249,6 +10277,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10322,6 +10351,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10376,6 +10406,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10388,6 +10419,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10404,6 +10436,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10427,6 +10466,7 @@ "HasInitialValue", "HasStorage", "AccessControl", + "Custom", "RawDocComment" ], "isLet": true, @@ -10562,6 +10602,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10573,7 +10614,8 @@ "mangledName": "$s5M2Kit0A8FeedbackV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -10589,6 +10631,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10653,6 +10702,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10690,6 +10740,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10744,6 +10795,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10781,6 +10833,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10793,6 +10846,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10809,6 +10863,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10880,6 +10941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10917,6 +10979,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10929,6 +10992,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10945,6 +11009,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11015,6 +11086,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11027,6 +11099,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -11043,6 +11116,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11106,6 +11186,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11141,6 +11222,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11181,6 +11263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11192,7 +11275,8 @@ "mangledName": "$s5M2Kit0A3LogV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11208,6 +11292,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11299,6 +11390,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11310,7 +11402,8 @@ "mangledName": "$s5M2Kit0A4MusiV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11326,6 +11419,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11663,6 +11763,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV5start14monitorHandleryySbc_tF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11684,6 +11785,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV11isConnectedSbvp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11724,6 +11826,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV14connectionTypeAA0ac11ConnecttionF0Ovp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11763,6 +11866,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV4stopyyF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11773,7 +11877,8 @@ "mangledName": "$s5M2Kit0A10NetMonitorV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11789,6 +11894,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11860,6 +11972,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11897,6 +12010,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11925,6 +12039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11948,6 +12063,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12050,6 +12166,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12146,6 +12263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12207,6 +12325,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12322,6 +12441,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12389,6 +12509,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12491,6 +12612,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12606,6 +12728,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12702,6 +12825,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12763,6 +12887,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12878,6 +13003,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12945,6 +13071,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13012,6 +13139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13079,6 +13207,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13091,6 +13220,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -13107,6 +13237,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -17864,6 +18001,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17889,6 +18027,7 @@ "declAttributes": [ "HasInitialValue", "HasStorage", + "Custom", "AccessControl", "RawDocComment" ], @@ -17941,6 +18080,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17969,6 +18109,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17998,6 +18139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -18021,6 +18163,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18065,6 +18208,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18077,6 +18221,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -18093,6 +18238,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -18135,7 +18287,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override", "AccessControl" @@ -18192,7 +18343,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override" ], @@ -18234,7 +18384,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Required" ], @@ -18246,9 +18395,8 @@ "mangledName": "$s5M2Kit0A5WebVCC", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", "AccessControl", + "Custom", "ObjC" ], "superclassUsr": "c:objc(cs)UIViewController", @@ -18360,7 +18508,6 @@ "mangledName": "$s5M2Kit0A7WebViewVACycfc", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", "Custom", "AccessControl" ], @@ -18451,9 +18598,8 @@ "mangledName": "$s5M2Kit0A7WebViewV", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18805,6 +18951,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18892,6 +19039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18902,7 +19050,8 @@ "mangledName": "$s5M2Kit0A2YTV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18918,6 +19067,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -22267,56 +22423,56 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Define.swift", "kind": "StringLiteral", - "offset": 131, + "offset": 142, "length": 6, - "value": "\"5.13\"" + "value": "\"5.14\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 568, + "offset": 579, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 584, + "offset": 595, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "IntegerLiteral", - "offset": 597, + "offset": 608, "length": 1, "value": "0" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "StringLiteral", - "offset": 150, + "offset": 161, "length": 22, "value": "\"M2LogEventDictionary\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "Dictionary", - "offset": 300, + "offset": 311, "length": 3, "value": "[]" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 393, + "offset": 404, "length": 1, "value": "1" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 679, + "offset": 690, "length": 1, "value": "1" }, @@ -22953,7 +23109,7 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Utils.swift", "kind": "StringLiteral", - "offset": 693, + "offset": 704, "length": 16, "value": "\"workForChanged\"" }, diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface index 9f50512..3b52286 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target arm64-apple-ios15.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target arm64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc index c69ea0e..9418b23 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface index 9f50512..3b52286 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target arm64-apple-ios15.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target arm64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json index e6328be..3bc0ef7 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json @@ -7930,6 +7930,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8032,6 +8033,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8134,6 +8136,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8236,6 +8239,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8338,6 +8342,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8405,6 +8410,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8466,6 +8472,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8527,6 +8534,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8588,6 +8596,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8649,6 +8658,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8710,6 +8720,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8777,6 +8788,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8831,6 +8843,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8879,6 +8892,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8927,6 +8941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -8994,6 +9009,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -9916,6 +9932,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -9932,6 +9949,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -9972,6 +9996,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10065,6 +10090,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10119,6 +10145,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10173,6 +10200,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10249,6 +10277,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10322,6 +10351,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10376,6 +10406,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10388,6 +10419,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10404,6 +10436,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10427,6 +10466,7 @@ "HasInitialValue", "HasStorage", "AccessControl", + "Custom", "RawDocComment" ], "isLet": true, @@ -10562,6 +10602,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10573,7 +10614,8 @@ "mangledName": "$s5M2Kit0A8FeedbackV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -10589,6 +10631,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10653,6 +10702,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10690,6 +10740,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10744,6 +10795,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10781,6 +10833,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10793,6 +10846,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10809,6 +10863,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -10880,6 +10941,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10917,6 +10979,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -10929,6 +10992,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -10945,6 +11009,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11015,6 +11086,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11027,6 +11099,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -11043,6 +11116,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11106,6 +11186,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11141,6 +11222,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11181,6 +11263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11192,7 +11275,8 @@ "mangledName": "$s5M2Kit0A3LogV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11208,6 +11292,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11299,6 +11390,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -11310,7 +11402,8 @@ "mangledName": "$s5M2Kit0A4MusiV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11326,6 +11419,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11663,6 +11763,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV5start14monitorHandleryySbc_tF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11684,6 +11785,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV11isConnectedSbvp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11724,6 +11826,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV14connectionTypeAA0ac11ConnecttionF0Ovp", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "accessors": [ @@ -11763,6 +11866,7 @@ "mangledName": "$s5M2Kit0A10NetMonitorV4stopyyF", "moduleName": "M2Kit", "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -11773,7 +11877,8 @@ "mangledName": "$s5M2Kit0A10NetMonitorV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -11789,6 +11894,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -11860,6 +11972,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11897,6 +12010,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11925,6 +12039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -11948,6 +12063,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12050,6 +12166,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12146,6 +12263,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12207,6 +12325,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12322,6 +12441,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12389,6 +12509,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12491,6 +12612,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12606,6 +12728,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12702,6 +12825,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12763,6 +12887,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12878,6 +13003,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -12945,6 +13071,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13012,6 +13139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13079,6 +13207,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -13091,6 +13220,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -13107,6 +13237,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -17864,6 +18001,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17889,6 +18027,7 @@ "declAttributes": [ "HasInitialValue", "HasStorage", + "Custom", "AccessControl", "RawDocComment" ], @@ -17941,6 +18080,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17969,6 +18109,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -17998,6 +18139,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl", "RawDocComment" ], @@ -18021,6 +18163,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18065,6 +18208,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "RawDocComment" ], "isFromExtension": true, @@ -18077,6 +18221,7 @@ "moduleName": "M2Kit", "declAttributes": [ "AccessControl", + "Custom", "RawDocComment" ], "conformances": [ @@ -18093,6 +18238,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -18135,7 +18287,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override", "AccessControl" @@ -18192,7 +18343,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Override" ], @@ -18234,7 +18384,6 @@ "declAttributes": [ "Dynamic", "ObjC", - "Preconcurrency", "Custom", "Required" ], @@ -18246,9 +18395,8 @@ "mangledName": "$s5M2Kit0A5WebVCC", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", "AccessControl", + "Custom", "ObjC" ], "superclassUsr": "c:objc(cs)UIViewController", @@ -18360,7 +18508,6 @@ "mangledName": "$s5M2Kit0A7WebViewVACycfc", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", "Custom", "AccessControl" ], @@ -18451,9 +18598,8 @@ "mangledName": "$s5M2Kit0A7WebViewV", "moduleName": "M2Kit", "declAttributes": [ - "Preconcurrency", - "Custom", - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18805,6 +18951,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18892,6 +19039,7 @@ "moduleName": "M2Kit", "static": true, "declAttributes": [ + "Custom", "AccessControl" ], "funcSelfKind": "NonMutating" @@ -18902,7 +19050,8 @@ "mangledName": "$s5M2Kit0A2YTV", "moduleName": "M2Kit", "declAttributes": [ - "AccessControl" + "AccessControl", + "Custom" ], "conformances": [ { @@ -18918,6 +19067,13 @@ "printedName": "Escapable", "usr": "s:s9EscapableP", "mangledName": "$ss9EscapableP" + }, + { + "kind": "Conformance", + "name": "Sendable", + "printedName": "Sendable", + "usr": "s:s8SendableP", + "mangledName": "$ss8SendableP" } ] }, @@ -22267,56 +22423,56 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Define.swift", "kind": "StringLiteral", - "offset": 131, + "offset": 142, "length": 6, - "value": "\"5.13\"" + "value": "\"5.14\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 568, + "offset": 579, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "StringLiteral", - "offset": 584, + "offset": 595, "length": 2, "value": "\"\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2K.swift", "kind": "IntegerLiteral", - "offset": 597, + "offset": 608, "length": 1, "value": "0" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "StringLiteral", - "offset": 150, + "offset": 161, "length": 22, "value": "\"M2LogEventDictionary\"" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "Dictionary", - "offset": 300, + "offset": 311, "length": 3, "value": "[]" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 393, + "offset": 404, "length": 1, "value": "1" }, { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Log.swift", "kind": "IntegerLiteral", - "offset": 679, + "offset": 690, "length": 1, "value": "1" }, @@ -22953,7 +23109,7 @@ { "filePath": "\/Users\/cuongkc\/Projects\/M2Kit\/M2Kit\/Public\/M2Utils.swift", "kind": "StringLiteral", - "offset": 693, + "offset": 704, "length": 16, "value": "\"workForChanged\"" }, diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface index 8f86d46..0cc4c74 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target x86_64-apple-ios15.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target x86_64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc index c77d7c5..69ba21b 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 8f86d46..0cc4c74 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -1,6 +1,6 @@ // swift-interface-format-version: 1.0 // swift-compiler-version: Apple Swift version 6.2.3 effective-5.10 (swiftlang-6.2.3.3.21 clang-1700.6.3.2) -// swift-module-flags: -target x86_64-apple-ios15.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit +// swift-module-flags: -target x86_64-apple-ios16.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -enable-experimental-feature DebugDescriptionMacro -enable-bare-slash-regex -module-name M2Kit // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3 import Combine import CommonCrypto @@ -416,46 +416,46 @@ extension M2Kit.JSON : Swift.Codable { public init(from decoder: any Swift.Decoder) throws public func encode(to encoder: any Swift.Encoder) throws } -public struct M2API { +@_Concurrency.MainActor public struct M2API { } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchVideosEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPlaylistsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ playlists: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistEx(playlistId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchChannelsEx(title: Swift.String, nextToken: Swift.String?, result: @escaping (_ channels: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) - public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) } extension M2Kit.M2API { - public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func autocompleteSearchEx(_ text: Swift.String, result: @escaping (_ listSuggestion: [Swift.String]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLocationEx(result: @escaping (_ countryCode: Swift.String?) -> Swift.Void) #endif - public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) + @_Concurrency.MainActor public static func getTrendingSearchEx(result: @escaping (_ titles: [Swift.String]) -> Swift.Void) } extension M2Kit.M2API { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(videoId: Swift.String, result: @escaping (_ videoUrl: Foundation.URL?, _ videoId: Swift.String) -> Swift.Void) #endif } extension M2Kit.M2API { @@ -498,68 +498,68 @@ extension M2Kit.M2API { @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) #endif } -public struct M2Backup { - public static var backupCode: Swift.String { +@_Concurrency.MainActor public struct M2Backup { + @_Concurrency.MainActor public static var backupCode: Swift.String { get } #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackup(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackup(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersion(code: Swift.String, result: @escaping (_ num: Swift.Int?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupVersions(codes: [Swift.String], result: @escaping (_ results: [Swift.String : Swift.Int?]) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) + @_Concurrency.MainActor public static func uploadBackupPlaylist(code: Swift.String, data: Foundation.Data, result: @escaping (_ url: Swift.String?, _ version: Swift.Int) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getBackupPlaylist(code: Swift.String, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif } -public let m2Version: Swift.String +@_Concurrency.MainActor public let m2Version: Swift.String @_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) -public struct M2Feedback { - public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Feedback { + @_Concurrency.MainActor public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2HTTP { +@_Concurrency.MainActor public struct M2HTTP { #if compiler(>=5.3) && $NonescapableTypes - public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getData(url: Foundation.URL) async -> Foundation.Data? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) + @_Concurrency.MainActor public static func getImageDataEx(url: Foundation.URL, result: @escaping (_ data: Foundation.Data?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getImageData(url: Foundation.URL) async -> Foundation.Data? + @_Concurrency.MainActor public static func getImageData(url: Foundation.URL) async -> Foundation.Data? #endif } -public struct M2Image { +@_Concurrency.MainActor public struct M2Image { #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage, result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? + @_Concurrency.MainActor public static func uploadImage(_ image: UIKit.UIImage) async -> Swift.String? #endif } -public struct M2K { - public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) +@_Concurrency.MainActor public struct M2K { + @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) } -public struct M2Log { - public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) - public static func lazyLog(event: Swift.String, count: Swift.Int = 1) - public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) +@_Concurrency.MainActor public struct M2Log { + @_Concurrency.MainActor public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public static func lazyLog(event: Swift.String, count: Swift.Int = 1) + @_Concurrency.MainActor public static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) } -public struct M2Musi { +@_Concurrency.MainActor public struct M2Musi { #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistWithCode(_ code: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } public enum M2NetConnecttionType { @@ -573,63 +573,63 @@ public enum M2NetConnecttionType { get } } -public struct M2NetMonitor { - public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) - public var isConnected: Swift.Bool { +@_Concurrency.MainActor public struct M2NetMonitor { + @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) + @_Concurrency.MainActor public var isConnected: Swift.Bool { get } - public var connectionType: M2Kit.M2NetConnecttionType { + @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType { get } - public func stop() + @_Concurrency.MainActor public func stop() } -public struct M2Radio { +@_Concurrency.MainActor public struct M2Radio { } extension M2Kit.M2Radio { - public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) - public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] - public static func changeRadioCountryCode(_ code: Swift.String) - public static func getCurrentRadioCountryCode() -> Swift.String + @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] + @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String) + @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchStationsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topStationsEx(token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForRadioEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listStationsByGenresEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ stations: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func stationInfoEx(station: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func searchPodcastsEx(title: Swift.String, token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listEpisodesOfPodcastEx(podcast: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ episodes: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func topPodcastsEx(token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif - public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func listGenresForPodcastEx(result: @escaping (_ genres: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes - public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func listPodcastsByGenreEx(genre: [Swift.AnyHashable : Any], token: Swift.String?, result: @escaping (_ podcasts: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func podcastInfoEx(podcast: [Swift.AnyHashable : Any], result: @escaping (_ info: Swift.String?) -> Swift.Void) #endif } extension M2Kit.M2Radio { #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(station: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) + @_Concurrency.MainActor public static func getLinkPlayEx(episode: [Swift.AnyHashable : Any], result: @escaping (_ url: Swift.String?) -> Swift.Void) #endif } @_hasMissingDesignatedInitializers public class M2Setting { @@ -905,33 +905,33 @@ extension M2Kit.M2Radio { } @objc deinit } -public struct M2Utils { - public static func workFor(trackID: Swift.String) - public static let workForChangedNotification: Foundation.Notification.Name - public static func checkExisted(trackID: Swift.String) -> Swift.Bool - public static func deleteDataOf(trackID: Swift.String) - public static func filePathOf(trackID: Swift.String) -> Swift.String +@_Concurrency.MainActor public struct M2Utils { + @_Concurrency.MainActor public static func workFor(trackID: Swift.String) + @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name + @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool + @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String) + @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String } extension M2Kit.M2Utils { - public static var countryCode: Swift.String { + @_Concurrency.MainActor public static var countryCode: Swift.String { get } } extension M2Kit.M2Utils { - public static func randomCode() -> Swift.String + @_Concurrency.MainActor public static func randomCode() -> Swift.String } -@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { - @_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() +@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController { + @_Concurrency.MainActor @objc override dynamic public func viewDidLoad() #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) + @_Concurrency.MainActor @objc override dynamic public init(nibName nibNameOrNil: Swift.String?, bundle nibBundleOrNil: Foundation.Bundle?) #endif #if compiler(>=5.3) && $NonescapableTypes - @_Concurrency.MainActor @preconcurrency @objc required dynamic public init?(coder: Foundation.NSCoder) + @_Concurrency.MainActor @objc required dynamic public init?(coder: Foundation.NSCoder) #endif @objc deinit } -@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { - @_Concurrency.MainActor @preconcurrency public init() +@_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable { + @_Concurrency.MainActor public init() @_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context) public typealias Body = Swift.Never @@ -949,12 +949,12 @@ public enum M2YTIDType : Swift.String { get } } -public struct M2YT { +@_Concurrency.MainActor public struct M2YT { #if compiler(>=5.3) && $NonescapableTypes - public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? + @_Concurrency.MainActor public static func extractId(fromUrl: Swift.String) -> (id: Swift.String, type: M2Kit.M2YTIDType)? #endif #if compiler(>=5.3) && $NonescapableTypes - public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) + @_Concurrency.MainActor public static func getVideosOfPlaylistId(_ playlistId: Swift.String, result: @escaping (_ title: Swift.String?, _ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #endif } extension M2Kit.SwiftyJSONError : Swift.Equatable {} @@ -965,9 +965,21 @@ extension M2Kit.`Type` : Swift.Hashable {} extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Hashable {} +extension M2Kit.M2API : Swift.Sendable {} +extension M2Kit.M2Backup : Swift.Sendable {} +extension M2Kit.M2Feedback : Swift.Sendable {} +extension M2Kit.M2HTTP : Swift.Sendable {} +extension M2Kit.M2Image : Swift.Sendable {} +extension M2Kit.M2K : Swift.Sendable {} +extension M2Kit.M2Log : Swift.Sendable {} +extension M2Kit.M2Musi : Swift.Sendable {} extension M2Kit.M2NetConnecttionType : Swift.Equatable {} extension M2Kit.M2NetConnecttionType : Swift.Hashable {} +extension M2Kit.M2NetMonitor : Swift.Sendable {} +extension M2Kit.M2Radio : Swift.Sendable {} +extension M2Kit.M2Utils : Swift.Sendable {} extension M2Kit.M2WebView : Swift.Sendable {} extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {} +extension M2Kit.M2YT : Swift.Sendable {} diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeDirectory b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeDirectory index 64d40fb..f25659b 100644 Binary files a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeDirectory and b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeDirectory differ diff --git a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeResources b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeResources index f53b331..2d79b8b 100644 --- a/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeResources +++ b/Frameworks/M2Kit.xcframework/ios-arm64_x86_64-simulator/M2Kit.framework/_CodeSignature/CodeResources @@ -10,47 +10,47 @@ Info.plist - jheJoUGO4iqde2E3il+GAeTR7SE= + cYWdZ5xID5gqNewmxEcDp00e/Y8= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json - ZWjWd9Ddd8a++8MjenTD5v+oEVQ= + t0C4+zrKeurclpDenOTjEsWFGtM= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface - 5sxhWnS8papnp5y6r5xs1uwNYoQ= + sveGrR2tA6lPQQv5See7ZQZsNa0= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc - OOZmR9BumBD3ntGGxE8kprctaQk= + dqf+V4ZiffAhVhqEd2haPLj1PL4= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface - 5sxhWnS8papnp5y6r5xs1uwNYoQ= + sveGrR2tA6lPQQv5See7ZQZsNa0= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule - lTbWQ4WRBlLJTHXjySQJtrUhKHc= + oDHDqzkNPZZiSGVUtakYNGxHj0Y= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json - ZWjWd9Ddd8a++8MjenTD5v+oEVQ= + t0C4+zrKeurclpDenOTjEsWFGtM= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface - GzKPuZKvv0h/IobM+/GLKD8Hcqc= + fWVjarZsbVy5BEDTIS1xnM9tZn4= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc - 0MZ45LpAJAoX653u3M48qdUcqTw= + UO0OET+lZZ8S1pcIO2rAZQCwNeo= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface - GzKPuZKvv0h/IobM+/GLKD8Hcqc= + fWVjarZsbVy5BEDTIS1xnM9tZn4= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule - pGC40GZAAJjUCwlmI5ydzlBrdNk= + Zmmnk+t4j30FYEoKWvb2DmS7d6I= Modules/module.modulemap @@ -70,70 +70,70 @@ hash2 - J6QRRf0twY0aA3Sl8fNXDen/u5i5YDL6jHmXE651MbI= + MoKUdRC3mXoQCBs2M873i/jUFAu2u2XI2SGSw3UxIUQ= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface hash2 - PhxWLBRJpdJdb5+yaudxdG3QWY3v6nin6IRgwCDrqi0= + vxBAWVnHNnggTc/OZZ8GsDLUCdNugmyf3MXUv/wn1dg= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc hash2 - JWytsc6a5e2DLv+8sHV3qqJ+iSfhru1DvtCpuCURMgk= + 0EiosBh5cjE7W3egNSCLcz9xFyRHSC6ri78HCI5obZo= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface hash2 - PhxWLBRJpdJdb5+yaudxdG3QWY3v6nin6IRgwCDrqi0= + vxBAWVnHNnggTc/OZZ8GsDLUCdNugmyf3MXUv/wn1dg= Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule hash2 - NSIBXS425b7L8tlghOlGlz2kMPf58QIsosnziztVH2w= + EjwNTyWtHNHTCQYQNBax0LtjZ6tL/3247OUGSC0Ri1M= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json hash2 - J6QRRf0twY0aA3Sl8fNXDen/u5i5YDL6jHmXE651MbI= + MoKUdRC3mXoQCBs2M873i/jUFAu2u2XI2SGSw3UxIUQ= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface hash2 - kxYTcFx/gWvznH2oAtSKJUOYXXcP6hdqjw/lmlKAxBk= + RiiljDB4CDPi5pa2a9hXHt3upWweqtUXZScfnFAu7ic= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc hash2 - 03zWpLNKuxnWEvlhvPNu6Xg+OmgR9ikhwbr0pXRLWe4= + Cf7H5FR45uvUAr43UrGNGplZHTkBE0Ic5rQGafBsB80= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface hash2 - kxYTcFx/gWvznH2oAtSKJUOYXXcP6hdqjw/lmlKAxBk= + RiiljDB4CDPi5pa2a9hXHt3upWweqtUXZScfnFAu7ic= Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule hash2 - M3ytx1r9QYnAW2/WKOuz0sW6XcX1kkgfd8hbF1VbsKk= + wf4mX0amgI3/P1D62M098/6o7NKMNGbF2VNYAAsbQ6E= Modules/module.modulemap diff --git a/README.md b/README.md index cb96992..1f35180 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ M2Kit ===== -5.13 \ No newline at end of file +5.14 \ No newline at end of file