8 Commits

Author SHA1 Message Date
23a9ea0820 5.20 2026-02-26 14:58:55 +07:00
28534ab6aa 5.19 2026-02-18 08:00:12 +07:00
11c95a7569 5.18 2026-02-10 10:23:05 +07:00
7a2ba658eb 5.17 2026-02-08 14:22:56 +07:00
199a5be7c5 5.16 2026-02-02 16:29:23 +07:00
582f58294b 5.15 2026-01-27 10:45:08 +07:00
f04a3e5eec 5.14 2026-01-24 10:06:38 +07:00
c29efe1e30 5.13 2026-01-03 07:59:52 +07:00
29 changed files with 14300 additions and 3090 deletions

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -3,7 +3,7 @@
<plist version="1.0"> <plist version="1.0">
<dict> <dict>
<key>BuildMachineOSBuild</key> <key>BuildMachineOSBuild</key>
<string>25C56</string> <string>25D125</string>
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>en</string> <string>en</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
@ -17,7 +17,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>FMWK</string> <string>FMWK</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>5.12</string> <string>5.20</string>
<key>CFBundleSupportedPlatforms</key> <key>CFBundleSupportedPlatforms</key>
<array> <array>
<string>MacOSX</string> <string>MacOSX</string>
@ -41,7 +41,7 @@
<key>DTXcodeBuild</key> <key>DTXcodeBuild</key>
<string>17C52</string> <string>17C52</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>12.0</string> <string>13.0</string>
<key>UIDeviceFamily</key> <key>UIDeviceFamily</key>
<array> <array>
<integer>2</integer> <integer>2</integer>

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -1,11 +1,12 @@
// swift-interface-format-version: 1.0 // 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-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 // swift-module-flags-ignorable: -no-verify-emitted-module-interface -formal-cxx-interoperability-mode=off -interface-compiler-version 6.2.3
import Combine import Combine
import CommonCrypto import CommonCrypto
import Foundation import Foundation
import JavaScriptCore import JavaScriptCore
import M2KitMacros
import Network import Network
import StoreKit import StoreKit
import Swift import Swift
@ -416,48 +417,75 @@ extension M2Kit.JSON : Swift.Codable {
public init(from decoder: any Swift.Decoder) throws public init(from decoder: any Swift.Decoder) throws
public func encode(to encoder: any Swift.Encoder) throws public func encode(to encoder: any Swift.Encoder) throws
} }
public struct M2API { @_Concurrency.MainActor public struct M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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) @available(*, deprecated, message: "Use getVideosOfChannelEx(channelId:nextToken:result:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelName: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif #endif
public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannelEx(channelId: Swift.String, nextToken: Swift.String?, result: @escaping (_ videos: [[Swift.AnyHashable : Any]], _ nextToken: Swift.String?) -> Swift.Void)
#endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylistEx(playlistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytSongsEx(countrycode:result:) instead.")
public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topSongsEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void) @available(*, deprecated, message: "Use ytMusicVideosEx(countrycode:result:) instead.")
public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func topVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytTrendingEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func trendingVideosEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@available(*, deprecated, message: "Use ytArtistsEx(countrycode:result:) instead.")
@_Concurrency.MainActor public static func topChannelsEx(result: @escaping (_ channels: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { extension M2Kit.M2API {
public static func listCategoryEx(result: @escaping (_ categories: [(category_id: Swift.String, title: Swift.String)]) -> Swift.Void) @available(*, deprecated, message: "Old API, not used.")
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)
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategoryEx(categoryId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
} }
extension M2Kit.M2API { 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 #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 #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 { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #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, _ metadata: [Swift.AnyHashable : Any]?) -> Swift.Void)
#endif #endif
} }
extension M2Kit.M2API {
@_Concurrency.MainActor public static func kworbMusicVideoWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbMusicCategoryWWEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbGlobalTrendingEx(result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbTopArtistsEx(result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func kworbLocalTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountriesEx(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytTrendingEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytMusicVideosEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytSongsEx(countryCode: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistsEx(countryCode: Swift.String, result: @escaping (_ artists: [[Swift.AnyHashable : Any]]) -> Swift.Void)
@_Concurrency.MainActor public static func ytArtistDetailEx(artistId: Swift.String, result: @escaping (_ videos: [[Swift.AnyHashable : Any]]) -> Swift.Void)
}
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchVideos(title: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
@ -472,18 +500,28 @@ extension M2Kit.M2API {
@_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @_Concurrency.MainActor public static func searchChannels(title: Swift.String, nextToken: Swift.String?) async -> (channels: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(_ channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?) @available(*, deprecated, message: "Use getVideosOfChannel(channelId:nextToken:) instead.")
@_Concurrency.MainActor public static func getVideosOfChannel(channelName: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif
#if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getVideosOfChannel(channelId: Swift.String, nextToken: Swift.String?) async -> (videos: [[Swift.AnyHashable : Any]], nextToken: Swift.String?)
#endif #endif
@_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getAllVideosOfPlaylist(_ playlistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Use ytSongs(countrycode) instead.")
@_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topSongs() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytMusicVideosEx(countrycode) instead.")
@_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytTrendingEx(countrycode) instead.")
@_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func trendingVideos() async -> [[Swift.AnyHashable : Any]]
@available(*, deprecated, message: "Use ytArtistsEx(countrycode) instead.")
@_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func topChannels() async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)] @_Concurrency.MainActor public static func listCategory() async -> [(category_id: Swift.String, title: Swift.String)]
@available(*, deprecated, message: "Old API, not used.")
@_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]] @_Concurrency.MainActor public static func getVideosOfCategory(categoryId: Swift.String) async -> [[Swift.AnyHashable : Any]]
} }
extension M2Kit.M2API { extension M2Kit.M2API {
@ -495,71 +533,88 @@ extension M2Kit.M2API {
} }
extension M2Kit.M2API { extension M2Kit.M2API {
#if compiler(>=5.3) && $NonescapableTypes #if compiler(>=5.3) && $NonescapableTypes
@_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String) @_Concurrency.MainActor public static func getLinkPlay(videoId: Swift.String) async -> (videoUrl: Foundation.URL?, videoId: Swift.String, metadata: [Swift.AnyHashable : Any]?)
#endif #endif
} }
public struct M2Backup { extension M2Kit.M2API {
public static var backupCode: Swift.String { @_Concurrency.MainActor public static func kworbMusicVideoWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbMusicCategoryWW() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbGlobalTrending() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbTopArtists() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func kworbLocalTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
extension M2Kit.M2API {
@_Concurrency.MainActor public static func ytListCountries() async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytTrending(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytMusicVideos(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytSongs(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtists(countryCode: Swift.String) async -> [[Swift.AnyHashable : Any]]
@_Concurrency.MainActor public static func ytArtistDetail(artistId: Swift.String) async -> [[Swift.AnyHashable : Any]]
}
@_Concurrency.MainActor public struct M2Backup {
@_Concurrency.MainActor public static var backupCode: Swift.String {
get get
} }
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public let m2Version: Swift.String public let m2Version: Swift.String
@_Concurrency.MainActor public func setServiceType(_ type: Swift.String) @_Concurrency.MainActor public func setServiceType(_ type: Swift.String)
@_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int) @_Concurrency.MainActor public func setLogLevel(_ value: Swift.Int)
public struct M2Feedback { @_Concurrency.MainActor public struct M2Feedback {
public static func sendFeedback(content: Swift.String, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2Image { @_Concurrency.MainActor public struct M2Image {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public struct M2K { @_Concurrency.MainActor public struct M2K {
public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void) @_Concurrency.MainActor public static func start(c: Swift.String = "", t: Swift.String = "", d: Swift.Int = 0, result: @escaping () -> Swift.Void)
} }
public struct M2Log { @_Concurrency.MainActor public struct M2Log {
public static func send(event: Swift.String, count: Swift.Int = 1, result: @escaping (_ isOK: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor 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) @_Concurrency.MainActor 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 static func sendAllEvents(result: @escaping (_ isOK: Swift.Bool) -> Swift.Void)
} }
public struct M2Musi { @_Concurrency.MainActor public struct M2Musi {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
public enum M2NetConnecttionType { public enum M2NetConnecttionType {
@ -573,63 +628,63 @@ public enum M2NetConnecttionType {
get get
} }
} }
public struct M2NetMonitor { @_Concurrency.MainActor public struct M2NetMonitor {
public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void) @_Concurrency.MainActor public func start(monitorHandler: @escaping (_ isConnected: Swift.Bool) -> Swift.Void)
public var isConnected: Swift.Bool { @_Concurrency.MainActor public var isConnected: Swift.Bool {
get get
} }
public var connectionType: M2Kit.M2NetConnecttionType { @_Concurrency.MainActor public var connectionType: M2Kit.M2NetConnecttionType {
get get
} }
public func stop() @_Concurrency.MainActor public func stop()
} }
public struct M2Radio { @_Concurrency.MainActor public struct M2Radio {
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void) @_Concurrency.MainActor public static func countriesSupported(result: @escaping (_ countries: [[Swift.AnyHashable : Any]]) -> Swift.Void)
public static func getHTTPHeaderMT() -> [Swift.String : Swift.String] @_Concurrency.MainActor public static func getHTTPHeaderMT() -> [Swift.String : Swift.String]
public static func changeRadioCountryCode(_ code: Swift.String) @_Concurrency.MainActor public static func changeRadioCountryCode(_ code: Swift.String)
public static func getCurrentRadioCountryCode() -> Swift.String @_Concurrency.MainActor public static func getCurrentRadioCountryCode() -> Swift.String
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #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 #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.M2Radio { extension M2Kit.M2Radio {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
@_hasMissingDesignatedInitializers public class M2Setting { @_hasMissingDesignatedInitializers public class M2Setting {
@ -905,33 +960,34 @@ extension M2Kit.M2Radio {
} }
@objc deinit @objc deinit
} }
public struct M2Utils { @_Concurrency.MainActor public struct M2Utils {
public static func workFor(trackID: Swift.String) @_Concurrency.MainActor public static func workFor(trackID: Swift.String)
public static let workForChangedNotification: Foundation.Notification.Name @_Concurrency.MainActor public static let workForChangedNotification: Foundation.Notification.Name
public static func checkExisted(trackID: Swift.String) -> Swift.Bool @_Concurrency.MainActor public static func checkExisted(trackID: Swift.String) -> Swift.Bool
public static func deleteDataOf(trackID: Swift.String) @_Concurrency.MainActor public static func deleteDataOf(trackID: Swift.String)
public static func filePathOf(trackID: Swift.String) -> Swift.String @_Concurrency.MainActor public static func filePathOf(trackID: Swift.String) -> Swift.String
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static var countryCode: Swift.String { @_Concurrency.MainActor public static var countryCode: Swift.String {
get get
} }
} }
extension M2Kit.M2Utils { extension M2Kit.M2Utils {
public static func randomCode() -> Swift.String @_Concurrency.MainActor public static func randomCode7() -> Swift.String
@_Concurrency.MainActor public static func randomCode11() -> Swift.String
} }
@objc @_inheritsConvenienceInitializers @_Concurrency.MainActor @preconcurrency public class M2WebVC : UIKit.UIViewController { @objc @_inheritsConvenienceInitializers @_Concurrency.MainActor public class M2WebVC : UIKit.UIViewController {
@_Concurrency.MainActor @preconcurrency @objc override dynamic public func viewDidLoad() @_Concurrency.MainActor @objc override dynamic public func viewDidLoad()
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
@objc deinit @objc deinit
} }
@_Concurrency.MainActor @preconcurrency public struct M2WebView : SwiftUI.UIViewControllerRepresentable { @_Concurrency.MainActor public struct M2WebView : SwiftUI.UIViewControllerRepresentable {
@_Concurrency.MainActor @preconcurrency public init() @_Concurrency.MainActor public init()
@_Concurrency.MainActor @preconcurrency public func makeUIViewController(context: M2Kit.M2WebView.Context) -> M2Kit.M2WebVC @_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) @_Concurrency.MainActor @preconcurrency public func updateUIViewController(_ uiViewController: M2Kit.M2WebVC, context: M2Kit.M2WebView.Context)
public typealias Body = Swift.Never public typealias Body = Swift.Never
@ -949,12 +1005,12 @@ public enum M2YTIDType : Swift.String {
get get
} }
} }
public struct M2YT { @_Concurrency.MainActor public struct M2YT {
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
#if compiler(>=5.3) && $NonescapableTypes #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 #endif
} }
extension M2Kit.SwiftyJSONError : Swift.Equatable {} extension M2Kit.SwiftyJSONError : Swift.Equatable {}
@ -965,9 +1021,21 @@ extension M2Kit.`Type` : Swift.Hashable {}
extension M2Kit.`Type` : Swift.RawRepresentable {} extension M2Kit.`Type` : Swift.RawRepresentable {}
extension M2Kit.writingOptionsKeys : Swift.Equatable {} extension M2Kit.writingOptionsKeys : Swift.Equatable {}
extension M2Kit.writingOptionsKeys : Swift.Hashable {} 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.Equatable {}
extension M2Kit.M2NetConnecttionType : Swift.Hashable {} 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.M2WebView : Swift.Sendable {}
extension M2Kit.M2YTIDType : Swift.Equatable {} extension M2Kit.M2YTIDType : Swift.Equatable {}
extension M2Kit.M2YTIDType : Swift.Hashable {} extension M2Kit.M2YTIDType : Swift.Hashable {}
extension M2Kit.M2YTIDType : Swift.RawRepresentable {} extension M2Kit.M2YTIDType : Swift.RawRepresentable {}
extension M2Kit.M2YT : Swift.Sendable {}

View File

@ -10,47 +10,47 @@
</data> </data>
<key>Info.plist</key> <key>Info.plist</key>
<data> <data>
1tY54sGPfbPwR6/sbi3Nn79+iDU= MjsOxQSZCeLXzj5+0YEA+fqXxh4=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
<data> <data>
9puw2bFWGRhHcqWEIcDQFO7nr6k= GVUgp6LWYpHWoQE/bKWB1rRGOYY=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<data> <data>
5sxhWnS8papnp5y6r5xs1uwNYoQ= ZNnL2sIUmJOqPgBhQbE6NTkaP2Y=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<data> <data>
OOZmR9BumBD3ntGGxE8kprctaQk= L1ZE0uPSnnbndRLRBhX27frrO1o=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<data> <data>
5sxhWnS8papnp5y6r5xs1uwNYoQ= ZNnL2sIUmJOqPgBhQbE6NTkaP2Y=
</data> </data>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<data> <data>
vYxQNAxNtZGGSVWzq3xLDlUN1YI= N9XLG2pMR3rs+SVvgHERx7Ny2Jw=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<data> <data>
9puw2bFWGRhHcqWEIcDQFO7nr6k= GVUgp6LWYpHWoQE/bKWB1rRGOYY=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<data> <data>
GzKPuZKvv0h/IobM+/GLKD8Hcqc= XHVDZHBijtnz9qSt5ZU+wpNNpsI=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<data> <data>
0MZ45LpAJAoX653u3M48qdUcqTw= HK2TtOyJP2OIxypINN+SN8Y+Cvg=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<data> <data>
GzKPuZKvv0h/IobM+/GLKD8Hcqc= XHVDZHBijtnz9qSt5ZU+wpNNpsI=
</data> </data>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<data> <data>
UiD2c75THaO6LsumBTRs/VgceaU= Gwm1idriaOsToib5q3RASGDB4bI=
</data> </data>
<key>Modules/module.modulemap</key> <key>Modules/module.modulemap</key>
<data> <data>
@ -70,70 +70,70 @@
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
CeGC34udW8HXZ3G71NLN4w/EuGk3vl0yAjaXXJfnZJU= be66hsoMVOqrprx2PvbitKKpcR7I27OBAHsRcEfrE54=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
PhxWLBRJpdJdb5+yaudxdG3QWY3v6nin6IRgwCDrqi0= d3iNWU0sljx2dtRpvXfvRekNgrvPo0NyXOyVgjEBhWg=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftdoc</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
JWytsc6a5e2DLv+8sHV3qqJ+iSfhru1DvtCpuCURMgk= Hj6cXoyFvKFEZFb+nynmECAto2DJHn/6OQE34s9Upmw=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftinterface</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
PhxWLBRJpdJdb5+yaudxdG3QWY3v6nin6IRgwCDrqi0= d3iNWU0sljx2dtRpvXfvRekNgrvPo0NyXOyVgjEBhWg=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
JfrB6N0/fSU2/v+zUV5uK1LheMRVPzGLAjWA2RVXDCI= the1RDODWLwpGlZU6hM1oEQGNKtV1LAk1zUX3vOQKmA=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
CeGC34udW8HXZ3G71NLN4w/EuGk3vl0yAjaXXJfnZJU= be66hsoMVOqrprx2PvbitKKpcR7I27OBAHsRcEfrE54=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
kxYTcFx/gWvznH2oAtSKJUOYXXcP6hdqjw/lmlKAxBk= xOw7fMNaRORUv3s7HbNx/ZlZSWICl3p+IvlHUwZDhkI=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftdoc</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
03zWpLNKuxnWEvlhvPNu6Xg+OmgR9ikhwbr0pXRLWe4= 90gsLAcPijC4sB5B5DyX1RGcthuvJ/JvWLpEF23dE20=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftinterface</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
kxYTcFx/gWvznH2oAtSKJUOYXXcP6hdqjw/lmlKAxBk= xOw7fMNaRORUv3s7HbNx/ZlZSWICl3p+IvlHUwZDhkI=
</data> </data>
</dict> </dict>
<key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key> <key>Modules/M2Kit.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
<dict> <dict>
<key>hash2</key> <key>hash2</key>
<data> <data>
N5hJb2pPBqTbm6xNtbL8xll2HCjv/ZTUzVk+ZCBNzHU= BWTqxs7MRtUYNqgLi3gQy2bw/JW4bQ332wrCKvNc7h8=
</data> </data>
</dict> </dict>
<key>Modules/module.modulemap</key> <key>Modules/module.modulemap</key>

View File

@ -1,3 +1,3 @@
M2Kit M2Kit
===== =====
v5.12 5.20