diff --git a/Account/Package.swift b/Account/Package.swift index cfed8db07..1cc214e81 100644 --- a/Account/Package.swift +++ b/Account/Package.swift @@ -12,6 +12,7 @@ let package = Package( ], dependencies: [ .package(path: "../Parser"), + .package(path: "../ParserObjC"), .package(path: "../Articles"), .package(path: "../ArticlesDatabase"), .package(path: "../Web"), @@ -33,6 +34,7 @@ let package = Package( name: "Account", dependencies: [ "Parser", + "ParserObjC", "Web", "Articles", "ArticlesDatabase", diff --git a/Account/Sources/Account/Account.swift b/Account/Sources/Account/Account.swift index 51fb33e68..2510e6cba 100644 --- a/Account/Sources/Account/Account.swift +++ b/Account/Sources/Account/Account.swift @@ -13,6 +13,7 @@ import UIKit import Foundation import Articles import Parser +import ParserObjC import Database import ArticlesDatabase import Web diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift b/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift index 67baad592..f10fd3127 100644 --- a/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift +++ b/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift @@ -12,6 +12,7 @@ import SystemConfiguration import os.log import SyncDatabase import Parser +import ParserObjC import Articles import ArticlesDatabase import Web diff --git a/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift b/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift index 282979bbb..72251437b 100644 --- a/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift +++ b/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift @@ -6,6 +6,7 @@ // Copyright © 2019 Ranchero Software, LLC. All rights reserved. // +import Foundation import Articles import Database import Parser diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift b/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift index 9f0f2b2be..c2278c405 100644 --- a/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift +++ b/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift @@ -6,6 +6,7 @@ // Copyright © 2019 Ranchero Software, LLC. All rights reserved. // +import Foundation import Articles import Parser import Web diff --git a/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift b/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift index 2e5f29386..8cd314ba0 100644 --- a/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift +++ b/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift @@ -9,6 +9,7 @@ import Foundation import os.log import Parser +import ParserObjC import Articles import ArticlesDatabase import Web diff --git a/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift b/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift index a3785a6f6..9063aa01f 100644 --- a/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift +++ b/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift @@ -8,6 +8,7 @@ import Foundation import Parser +import ParserObjC import Web import Articles import ArticlesDatabase diff --git a/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate+Internal.swift b/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate+Internal.swift index 4e780cfeb..57a06971c 100644 --- a/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate+Internal.swift +++ b/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate+Internal.swift @@ -7,6 +7,7 @@ // Copyright (c) 2020 Ranchero Software, LLC. All rights reserved. // +import Foundation import Articles import Database import Parser diff --git a/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift b/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift index 0e98b637a..1048bdf62 100644 --- a/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift +++ b/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift @@ -6,6 +6,7 @@ // Copyright (c) 2020 Ranchero Software, LLC. All rights reserved. // +import Foundation import Articles import Database import Parser diff --git a/Account/Sources/Account/OPMLFile.swift b/Account/Sources/Account/OPMLFile.swift index a3f774d06..e33fd0bb2 100644 --- a/Account/Sources/Account/OPMLFile.swift +++ b/Account/Sources/Account/OPMLFile.swift @@ -9,6 +9,7 @@ import Foundation import os.log import Parser +import ParserObjC import Core @MainActor final class OPMLFile { diff --git a/Account/Sources/Account/OPMLNormalizer.swift b/Account/Sources/Account/OPMLNormalizer.swift index ab6111f89..bfad43687 100644 --- a/Account/Sources/Account/OPMLNormalizer.swift +++ b/Account/Sources/Account/OPMLNormalizer.swift @@ -8,6 +8,7 @@ import Foundation import Parser +import ParserObjC final class OPMLNormalizer { diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift b/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift index 884c63624..bfe985b2c 100644 --- a/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift +++ b/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift @@ -6,6 +6,7 @@ // Copyright © 2019 Ranchero Software, LLC. All rights reserved. // +import Foundation import Articles import Parser import Web diff --git a/FeedFinder/Sources/FeedFinder/FeedFinder.swift b/FeedFinder/Sources/FeedFinder/FeedFinder.swift index 74e33d7c4..e3aa74475 100644 --- a/FeedFinder/Sources/FeedFinder/FeedFinder.swift +++ b/FeedFinder/Sources/FeedFinder/FeedFinder.swift @@ -8,6 +8,7 @@ import Foundation import Parser +import ParserObjC import Web import CommonErrors diff --git a/FeedFinder/Sources/FeedFinder/HTMLFeedFinder.swift b/FeedFinder/Sources/FeedFinder/HTMLFeedFinder.swift index 805bc047b..f755dbc20 100644 --- a/FeedFinder/Sources/FeedFinder/HTMLFeedFinder.swift +++ b/FeedFinder/Sources/FeedFinder/HTMLFeedFinder.swift @@ -9,6 +9,7 @@ import Foundation import FoundationExtras import Parser +import ParserObjC private let feedURLWordsToMatch = ["feed", "xml", "rss", "atom", "json"] diff --git a/Feedbin/Sources/Feedbin/FeedbinEntry.swift b/Feedbin/Sources/Feedbin/FeedbinEntry.swift index 03e90215a..809ea799c 100644 --- a/Feedbin/Sources/Feedbin/FeedbinEntry.swift +++ b/Feedbin/Sources/Feedbin/FeedbinEntry.swift @@ -8,6 +8,7 @@ import Foundation import Parser +import ParserObjC public final class FeedbinEntry: Decodable, @unchecked Sendable { diff --git a/Images/Sources/Images/Favicons/FaviconURLFinder.swift b/Images/Sources/Images/Favicons/FaviconURLFinder.swift index 5e704fe8a..355c2d8a1 100644 --- a/Images/Sources/Images/Favicons/FaviconURLFinder.swift +++ b/Images/Sources/Images/Favicons/FaviconURLFinder.swift @@ -9,6 +9,7 @@ import Foundation import CoreServices import Parser +import ParserObjC import UniformTypeIdentifiers // The favicon URLs may be specified in the head section of the home page. diff --git a/Images/Sources/Images/FeedIconDownloader.swift b/Images/Sources/Images/FeedIconDownloader.swift index a57608f6e..d677deaa4 100644 --- a/Images/Sources/Images/FeedIconDownloader.swift +++ b/Images/Sources/Images/FeedIconDownloader.swift @@ -11,6 +11,7 @@ import Articles import Account import Web import Parser +import ParserObjC import Core public extension Notification.Name { diff --git a/Images/Sources/Images/RSHTMLMetadata+Extension.swift b/Images/Sources/Images/RSHTMLMetadata+Extension.swift index fd5da45d7..d421d7f33 100644 --- a/Images/Sources/Images/RSHTMLMetadata+Extension.swift +++ b/Images/Sources/Images/RSHTMLMetadata+Extension.swift @@ -8,6 +8,7 @@ import Foundation import Parser +import ParserObjC extension RSHTMLMetadata { diff --git a/LocalAccount/Sources/LocalAccount/InitialFeedDownloader.swift b/LocalAccount/Sources/LocalAccount/InitialFeedDownloader.swift index 8c1a92ef8..02496055a 100644 --- a/LocalAccount/Sources/LocalAccount/InitialFeedDownloader.swift +++ b/LocalAccount/Sources/LocalAccount/InitialFeedDownloader.swift @@ -8,6 +8,7 @@ import Foundation import Parser +import ParserObjC import Web public struct InitialFeedDownloader { diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index f74639e45..8f1d271f8 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -1023,6 +1023,7 @@ 845EE7B01FC2366500854A1F /* StarredFeedDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StarredFeedDelegate.swift; sourceTree = ""; }; 845EE7C01FC2488C00854A1F /* SmartFeed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmartFeed.swift; sourceTree = ""; }; 845F3D2B2BC268FE00AEBB68 /* CloudKitSync */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = CloudKitSync; sourceTree = ""; }; + 846133952BFDA8BC00EE2D05 /* ParserObjC */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = ParserObjC; sourceTree = ""; }; 846799F42BBD120A000854CB /* Parser */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Parser; sourceTree = ""; }; 84702AA31FA27AC0006B8943 /* MarkStatusCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MarkStatusCommand.swift; sourceTree = ""; }; 847120D62B8AE6AF00BBFC34 /* UTType+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UTType+Extensions.swift"; sourceTree = ""; }; @@ -2005,6 +2006,7 @@ 841550F52B9E4D6800D4B345 /* FMDB */, 849FEDC32BBB225E0053FB21 /* Web */, 846799F42BBD120A000854CB /* Parser */, + 846133952BFDA8BC00EE2D05 /* ParserObjC */, 84DCA5232BABBA8100792720 /* Core */, 841CECD62BAD03C60001EE72 /* Tree */, 84DCA5102BABB6A100792720 /* UIKitExtras */, diff --git a/Parser/Package.swift b/Parser/Package.swift index b2c74a154..3d831e4d8 100644 --- a/Parser/Package.swift +++ b/Parser/Package.swift @@ -12,12 +12,9 @@ let package = Package( name: "Parser", type: .dynamic, targets: ["Parser"]), - .library( - name: "ParserObjC", - type: .dynamic, - targets: ["ParserObjC"]), ], dependencies: [ + .package(path: "../ParserObjC"), ], targets: [ // Targets are the basic building blocks of a package. A target can define a module or a test suite. @@ -25,20 +22,12 @@ let package = Package( .target( name: "Parser", dependencies: ["ParserObjC"], - path: "Sources/Swift", swiftSettings: [ .enableExperimentalFeature("StrictConcurrency") ]), - .target( - name: "ParserObjC", - dependencies: [], - path: "Sources/ObjC", - cSettings: [ - .headerSearchPath("include") - ]), .testTarget( name: "ParserTests", - dependencies: ["Parser"], + dependencies: ["Parser", "ParserObjC"], exclude: ["Info.plist"], resources: [.copy("Resources")]), ] diff --git a/Parser/Sources/Swift/Feeds/FeedParser.swift b/Parser/Sources/Parser/Feeds/FeedParser.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/FeedParser.swift rename to Parser/Sources/Parser/Feeds/FeedParser.swift diff --git a/Parser/Sources/Swift/Feeds/FeedParserError.swift b/Parser/Sources/Parser/Feeds/FeedParserError.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/FeedParserError.swift rename to Parser/Sources/Parser/Feeds/FeedParserError.swift diff --git a/Parser/Sources/Swift/Feeds/FeedType.swift b/Parser/Sources/Parser/Feeds/FeedType.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/FeedType.swift rename to Parser/Sources/Parser/Feeds/FeedType.swift diff --git a/Parser/Sources/Swift/Feeds/JSON/JSONFeedParser.swift b/Parser/Sources/Parser/Feeds/JSON/JSONFeedParser.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/JSON/JSONFeedParser.swift rename to Parser/Sources/Parser/Feeds/JSON/JSONFeedParser.swift diff --git a/Parser/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift b/Parser/Sources/Parser/Feeds/JSON/RSSInJSONParser.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift rename to Parser/Sources/Parser/Feeds/JSON/RSSInJSONParser.swift diff --git a/Parser/Sources/Swift/Feeds/ParsedAttachment.swift b/Parser/Sources/Parser/Feeds/ParsedAttachment.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/ParsedAttachment.swift rename to Parser/Sources/Parser/Feeds/ParsedAttachment.swift diff --git a/Parser/Sources/Swift/Feeds/ParsedAuthor.swift b/Parser/Sources/Parser/Feeds/ParsedAuthor.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/ParsedAuthor.swift rename to Parser/Sources/Parser/Feeds/ParsedAuthor.swift diff --git a/Parser/Sources/Swift/Feeds/ParsedFeed.swift b/Parser/Sources/Parser/Feeds/ParsedFeed.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/ParsedFeed.swift rename to Parser/Sources/Parser/Feeds/ParsedFeed.swift diff --git a/Parser/Sources/Swift/Feeds/ParsedHub.swift b/Parser/Sources/Parser/Feeds/ParsedHub.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/ParsedHub.swift rename to Parser/Sources/Parser/Feeds/ParsedHub.swift diff --git a/Parser/Sources/Swift/Feeds/ParsedItem.swift b/Parser/Sources/Parser/Feeds/ParsedItem.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/ParsedItem.swift rename to Parser/Sources/Parser/Feeds/ParsedItem.swift diff --git a/Parser/Sources/Swift/Feeds/XML/AtomParser.swift b/Parser/Sources/Parser/Feeds/XML/AtomParser.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/XML/AtomParser.swift rename to Parser/Sources/Parser/Feeds/XML/AtomParser.swift diff --git a/Parser/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift b/Parser/Sources/Parser/Feeds/XML/RSParsedFeedTransformer.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift rename to Parser/Sources/Parser/Feeds/XML/RSParsedFeedTransformer.swift diff --git a/Parser/Sources/Swift/Feeds/XML/RSSParser.swift b/Parser/Sources/Parser/Feeds/XML/RSSParser.swift similarity index 100% rename from Parser/Sources/Swift/Feeds/XML/RSSParser.swift rename to Parser/Sources/Parser/Feeds/XML/RSSParser.swift diff --git a/Parser/Sources/Swift/JSON/JSONTypes.swift b/Parser/Sources/Parser/JSON/JSONTypes.swift similarity index 100% rename from Parser/Sources/Swift/JSON/JSONTypes.swift rename to Parser/Sources/Parser/JSON/JSONTypes.swift diff --git a/Parser/Sources/Swift/JSON/JSONUtilities.swift b/Parser/Sources/Parser/JSON/JSONUtilities.swift similarity index 100% rename from Parser/Sources/Swift/JSON/JSONUtilities.swift rename to Parser/Sources/Parser/JSON/JSONUtilities.swift diff --git a/Parser/Sources/Swift/ParserData+Parser.swift b/Parser/Sources/Parser/ParserData+Parser.swift similarity index 88% rename from Parser/Sources/Swift/ParserData+Parser.swift rename to Parser/Sources/Parser/ParserData+Parser.swift index f9e9ca9ea..1563bafd9 100644 --- a/Parser/Sources/Swift/ParserData+Parser.swift +++ b/Parser/Sources/Parser/ParserData+Parser.swift @@ -6,5 +6,6 @@ // import Foundation +import ParserObjC extension ParserData: @unchecked Sendable {} diff --git a/Parser/Sources/Swift/RSHTMLMetadata+Parser.swift b/Parser/Sources/Parser/RSHTMLMetadata+Parser.swift similarity index 88% rename from Parser/Sources/Swift/RSHTMLMetadata+Parser.swift rename to Parser/Sources/Parser/RSHTMLMetadata+Parser.swift index 391380b22..de80eb2ce 100644 --- a/Parser/Sources/Swift/RSHTMLMetadata+Parser.swift +++ b/Parser/Sources/Parser/RSHTMLMetadata+Parser.swift @@ -6,5 +6,6 @@ // import Foundation +import ParserObjC extension RSHTMLMetadataParser: @unchecked Sendable {} diff --git a/Parser/Sources/Swift/Utilities/String+RSParser.swift b/Parser/Sources/Parser/Utilities/String+RSParser.swift similarity index 100% rename from Parser/Sources/Swift/Utilities/String+RSParser.swift rename to Parser/Sources/Parser/Utilities/String+RSParser.swift diff --git a/Parser/Sources/Swift/Exports.swift b/Parser/Sources/Swift/Exports.swift deleted file mode 100644 index 6b5b7e3fa..000000000 --- a/Parser/Sources/Swift/Exports.swift +++ /dev/null @@ -1,9 +0,0 @@ -// -// Exports.swift -// -// -// Created by Stuart Breckenridge on 29/7/20. -// - -import Foundation -@_exported import ParserObjC diff --git a/ParserObjc/.gitignore b/ParserObjc/.gitignore new file mode 100644 index 000000000..0023a5340 --- /dev/null +++ b/ParserObjc/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/ParserObjc/Package.swift b/ParserObjc/Package.swift new file mode 100644 index 000000000..69281ca1d --- /dev/null +++ b/ParserObjc/Package.swift @@ -0,0 +1,26 @@ +// swift-tools-version: 5.10 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "ParserObjC", + platforms: [.macOS(.v14), .iOS(.v17)], + products: [ + // Products define the executables and libraries a package produces, making them visible to other packages. + .library( + name: "ParserObjC", + type: .dynamic, + targets: ["ParserObjC"]), + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .target( + name: "ParserObjC", + cSettings: [ + .headerSearchPath("include") + ] + ), + ] +) diff --git a/Parser/Sources/ObjC/FeedParser.h b/ParserObjc/Sources/ParserObjC/FeedParser.h similarity index 100% rename from Parser/Sources/ObjC/FeedParser.h rename to ParserObjc/Sources/ParserObjC/FeedParser.h diff --git a/Parser/Sources/ObjC/NSData+RSParser.h b/ParserObjc/Sources/ParserObjC/NSData+RSParser.h similarity index 100% rename from Parser/Sources/ObjC/NSData+RSParser.h rename to ParserObjc/Sources/ParserObjC/NSData+RSParser.h diff --git a/Parser/Sources/ObjC/NSData+RSParser.m b/ParserObjc/Sources/ParserObjC/NSData+RSParser.m similarity index 100% rename from Parser/Sources/ObjC/NSData+RSParser.m rename to ParserObjc/Sources/ParserObjC/NSData+RSParser.m diff --git a/Parser/Sources/ObjC/NSString+RSParser.h b/ParserObjc/Sources/ParserObjC/NSString+RSParser.h similarity index 100% rename from Parser/Sources/ObjC/NSString+RSParser.h rename to ParserObjc/Sources/ParserObjC/NSString+RSParser.h diff --git a/Parser/Sources/ObjC/NSString+RSParser.m b/ParserObjc/Sources/ParserObjC/NSString+RSParser.m similarity index 100% rename from Parser/Sources/ObjC/NSString+RSParser.m rename to ParserObjc/Sources/ParserObjC/NSString+RSParser.m diff --git a/Parser/Sources/ObjC/ParserData.h b/ParserObjc/Sources/ParserObjC/ParserData.h similarity index 100% rename from Parser/Sources/ObjC/ParserData.h rename to ParserObjc/Sources/ParserObjC/ParserData.h diff --git a/Parser/Sources/ObjC/ParserData.m b/ParserObjc/Sources/ParserObjC/ParserData.m similarity index 100% rename from Parser/Sources/ObjC/ParserData.m rename to ParserObjc/Sources/ParserObjC/ParserData.m diff --git a/Parser/Sources/ObjC/RSAtomParser.h b/ParserObjc/Sources/ParserObjC/RSAtomParser.h similarity index 100% rename from Parser/Sources/ObjC/RSAtomParser.h rename to ParserObjc/Sources/ParserObjC/RSAtomParser.h diff --git a/Parser/Sources/ObjC/RSAtomParser.m b/ParserObjc/Sources/ParserObjC/RSAtomParser.m similarity index 100% rename from Parser/Sources/ObjC/RSAtomParser.m rename to ParserObjc/Sources/ParserObjC/RSAtomParser.m diff --git a/Parser/Sources/ObjC/RSDateParser.h b/ParserObjc/Sources/ParserObjC/RSDateParser.h similarity index 100% rename from Parser/Sources/ObjC/RSDateParser.h rename to ParserObjc/Sources/ParserObjC/RSDateParser.h diff --git a/Parser/Sources/ObjC/RSDateParser.m b/ParserObjc/Sources/ParserObjC/RSDateParser.m similarity index 100% rename from Parser/Sources/ObjC/RSDateParser.m rename to ParserObjc/Sources/ParserObjC/RSDateParser.m diff --git a/Parser/Sources/ObjC/RSHTMLLinkParser.h b/ParserObjc/Sources/ParserObjC/RSHTMLLinkParser.h similarity index 100% rename from Parser/Sources/ObjC/RSHTMLLinkParser.h rename to ParserObjc/Sources/ParserObjC/RSHTMLLinkParser.h diff --git a/Parser/Sources/ObjC/RSHTMLLinkParser.m b/ParserObjc/Sources/ParserObjC/RSHTMLLinkParser.m similarity index 100% rename from Parser/Sources/ObjC/RSHTMLLinkParser.m rename to ParserObjc/Sources/ParserObjC/RSHTMLLinkParser.m diff --git a/Parser/Sources/ObjC/RSHTMLMetadata.h b/ParserObjc/Sources/ParserObjC/RSHTMLMetadata.h similarity index 100% rename from Parser/Sources/ObjC/RSHTMLMetadata.h rename to ParserObjc/Sources/ParserObjC/RSHTMLMetadata.h diff --git a/Parser/Sources/ObjC/RSHTMLMetadata.m b/ParserObjc/Sources/ParserObjC/RSHTMLMetadata.m similarity index 100% rename from Parser/Sources/ObjC/RSHTMLMetadata.m rename to ParserObjc/Sources/ParserObjC/RSHTMLMetadata.m diff --git a/Parser/Sources/ObjC/RSHTMLMetadataParser.h b/ParserObjc/Sources/ParserObjC/RSHTMLMetadataParser.h similarity index 100% rename from Parser/Sources/ObjC/RSHTMLMetadataParser.h rename to ParserObjc/Sources/ParserObjC/RSHTMLMetadataParser.h diff --git a/Parser/Sources/ObjC/RSHTMLMetadataParser.m b/ParserObjc/Sources/ParserObjC/RSHTMLMetadataParser.m similarity index 100% rename from Parser/Sources/ObjC/RSHTMLMetadataParser.m rename to ParserObjc/Sources/ParserObjC/RSHTMLMetadataParser.m diff --git a/Parser/Sources/ObjC/RSHTMLTag.h b/ParserObjc/Sources/ParserObjC/RSHTMLTag.h similarity index 100% rename from Parser/Sources/ObjC/RSHTMLTag.h rename to ParserObjc/Sources/ParserObjC/RSHTMLTag.h diff --git a/Parser/Sources/ObjC/RSHTMLTag.m b/ParserObjc/Sources/ParserObjC/RSHTMLTag.m similarity index 100% rename from Parser/Sources/ObjC/RSHTMLTag.m rename to ParserObjc/Sources/ParserObjC/RSHTMLTag.m diff --git a/Parser/Sources/ObjC/RSOPMLAttributes.h b/ParserObjc/Sources/ParserObjC/RSOPMLAttributes.h similarity index 100% rename from Parser/Sources/ObjC/RSOPMLAttributes.h rename to ParserObjc/Sources/ParserObjC/RSOPMLAttributes.h diff --git a/Parser/Sources/ObjC/RSOPMLAttributes.m b/ParserObjc/Sources/ParserObjC/RSOPMLAttributes.m similarity index 100% rename from Parser/Sources/ObjC/RSOPMLAttributes.m rename to ParserObjc/Sources/ParserObjC/RSOPMLAttributes.m diff --git a/Parser/Sources/ObjC/RSOPMLDocument.h b/ParserObjc/Sources/ParserObjC/RSOPMLDocument.h similarity index 100% rename from Parser/Sources/ObjC/RSOPMLDocument.h rename to ParserObjc/Sources/ParserObjC/RSOPMLDocument.h diff --git a/Parser/Sources/ObjC/RSOPMLDocument.m b/ParserObjc/Sources/ParserObjC/RSOPMLDocument.m similarity index 100% rename from Parser/Sources/ObjC/RSOPMLDocument.m rename to ParserObjc/Sources/ParserObjC/RSOPMLDocument.m diff --git a/Parser/Sources/ObjC/RSOPMLError.h b/ParserObjc/Sources/ParserObjC/RSOPMLError.h similarity index 100% rename from Parser/Sources/ObjC/RSOPMLError.h rename to ParserObjc/Sources/ParserObjC/RSOPMLError.h diff --git a/Parser/Sources/ObjC/RSOPMLError.m b/ParserObjc/Sources/ParserObjC/RSOPMLError.m similarity index 100% rename from Parser/Sources/ObjC/RSOPMLError.m rename to ParserObjc/Sources/ParserObjC/RSOPMLError.m diff --git a/Parser/Sources/ObjC/RSOPMLFeedSpecifier.h b/ParserObjc/Sources/ParserObjC/RSOPMLFeedSpecifier.h similarity index 100% rename from Parser/Sources/ObjC/RSOPMLFeedSpecifier.h rename to ParserObjc/Sources/ParserObjC/RSOPMLFeedSpecifier.h diff --git a/Parser/Sources/ObjC/RSOPMLFeedSpecifier.m b/ParserObjc/Sources/ParserObjC/RSOPMLFeedSpecifier.m similarity index 100% rename from Parser/Sources/ObjC/RSOPMLFeedSpecifier.m rename to ParserObjc/Sources/ParserObjC/RSOPMLFeedSpecifier.m diff --git a/Parser/Sources/ObjC/RSOPMLItem.h b/ParserObjc/Sources/ParserObjC/RSOPMLItem.h similarity index 100% rename from Parser/Sources/ObjC/RSOPMLItem.h rename to ParserObjc/Sources/ParserObjC/RSOPMLItem.h diff --git a/Parser/Sources/ObjC/RSOPMLItem.m b/ParserObjc/Sources/ParserObjC/RSOPMLItem.m similarity index 100% rename from Parser/Sources/ObjC/RSOPMLItem.m rename to ParserObjc/Sources/ParserObjC/RSOPMLItem.m diff --git a/Parser/Sources/ObjC/RSOPMLParser.h b/ParserObjc/Sources/ParserObjC/RSOPMLParser.h similarity index 100% rename from Parser/Sources/ObjC/RSOPMLParser.h rename to ParserObjc/Sources/ParserObjC/RSOPMLParser.h diff --git a/Parser/Sources/ObjC/RSOPMLParser.m b/ParserObjc/Sources/ParserObjC/RSOPMLParser.m similarity index 100% rename from Parser/Sources/ObjC/RSOPMLParser.m rename to ParserObjc/Sources/ParserObjC/RSOPMLParser.m diff --git a/Parser/Sources/ObjC/RSParsedArticle.h b/ParserObjc/Sources/ParserObjC/RSParsedArticle.h similarity index 100% rename from Parser/Sources/ObjC/RSParsedArticle.h rename to ParserObjc/Sources/ParserObjC/RSParsedArticle.h diff --git a/Parser/Sources/ObjC/RSParsedArticle.m b/ParserObjc/Sources/ParserObjC/RSParsedArticle.m similarity index 100% rename from Parser/Sources/ObjC/RSParsedArticle.m rename to ParserObjc/Sources/ParserObjC/RSParsedArticle.m diff --git a/Parser/Sources/ObjC/RSParsedAuthor.h b/ParserObjc/Sources/ParserObjC/RSParsedAuthor.h similarity index 100% rename from Parser/Sources/ObjC/RSParsedAuthor.h rename to ParserObjc/Sources/ParserObjC/RSParsedAuthor.h diff --git a/Parser/Sources/ObjC/RSParsedAuthor.m b/ParserObjc/Sources/ParserObjC/RSParsedAuthor.m similarity index 100% rename from Parser/Sources/ObjC/RSParsedAuthor.m rename to ParserObjc/Sources/ParserObjC/RSParsedAuthor.m diff --git a/Parser/Sources/ObjC/RSParsedEnclosure.h b/ParserObjc/Sources/ParserObjC/RSParsedEnclosure.h similarity index 100% rename from Parser/Sources/ObjC/RSParsedEnclosure.h rename to ParserObjc/Sources/ParserObjC/RSParsedEnclosure.h diff --git a/Parser/Sources/ObjC/RSParsedEnclosure.m b/ParserObjc/Sources/ParserObjC/RSParsedEnclosure.m similarity index 100% rename from Parser/Sources/ObjC/RSParsedEnclosure.m rename to ParserObjc/Sources/ParserObjC/RSParsedEnclosure.m diff --git a/Parser/Sources/ObjC/RSParsedFeed.h b/ParserObjc/Sources/ParserObjC/RSParsedFeed.h similarity index 100% rename from Parser/Sources/ObjC/RSParsedFeed.h rename to ParserObjc/Sources/ParserObjC/RSParsedFeed.h diff --git a/Parser/Sources/ObjC/RSParsedFeed.m b/ParserObjc/Sources/ParserObjC/RSParsedFeed.m similarity index 100% rename from Parser/Sources/ObjC/RSParsedFeed.m rename to ParserObjc/Sources/ParserObjC/RSParsedFeed.m diff --git a/Parser/Sources/ObjC/RSParserInternal.h b/ParserObjc/Sources/ParserObjC/RSParserInternal.h similarity index 100% rename from Parser/Sources/ObjC/RSParserInternal.h rename to ParserObjc/Sources/ParserObjC/RSParserInternal.h diff --git a/Parser/Sources/ObjC/RSParserInternal.m b/ParserObjc/Sources/ParserObjC/RSParserInternal.m similarity index 100% rename from Parser/Sources/ObjC/RSParserInternal.m rename to ParserObjc/Sources/ParserObjC/RSParserInternal.m diff --git a/Parser/Sources/ObjC/RSRSSParser.h b/ParserObjc/Sources/ParserObjC/RSRSSParser.h similarity index 100% rename from Parser/Sources/ObjC/RSRSSParser.h rename to ParserObjc/Sources/ParserObjC/RSRSSParser.h diff --git a/Parser/Sources/ObjC/RSRSSParser.m b/ParserObjc/Sources/ParserObjC/RSRSSParser.m similarity index 100% rename from Parser/Sources/ObjC/RSRSSParser.m rename to ParserObjc/Sources/ParserObjC/RSRSSParser.m diff --git a/Parser/Sources/ObjC/RSSAXHTMLParser.h b/ParserObjc/Sources/ParserObjC/RSSAXHTMLParser.h similarity index 100% rename from Parser/Sources/ObjC/RSSAXHTMLParser.h rename to ParserObjc/Sources/ParserObjC/RSSAXHTMLParser.h diff --git a/Parser/Sources/ObjC/RSSAXHTMLParser.m b/ParserObjc/Sources/ParserObjC/RSSAXHTMLParser.m similarity index 100% rename from Parser/Sources/ObjC/RSSAXHTMLParser.m rename to ParserObjc/Sources/ParserObjC/RSSAXHTMLParser.m diff --git a/Parser/Sources/ObjC/RSSAXParser.h b/ParserObjc/Sources/ParserObjC/RSSAXParser.h similarity index 100% rename from Parser/Sources/ObjC/RSSAXParser.h rename to ParserObjc/Sources/ParserObjC/RSSAXParser.h diff --git a/Parser/Sources/ObjC/RSSAXParser.m b/ParserObjc/Sources/ParserObjC/RSSAXParser.m similarity index 100% rename from Parser/Sources/ObjC/RSSAXParser.m rename to ParserObjc/Sources/ParserObjC/RSSAXParser.m diff --git a/Parser/Sources/ObjC/include/RSParser.h b/ParserObjc/Sources/ParserObjC/include/RSParser.h similarity index 100% rename from Parser/Sources/ObjC/include/RSParser.h rename to ParserObjc/Sources/ParserObjC/include/RSParser.h diff --git a/Shared/HTMLMetadata/HTMLMetadataDownloader.swift b/Shared/HTMLMetadata/HTMLMetadataDownloader.swift index ae21b1bd6..94495688d 100644 --- a/Shared/HTMLMetadata/HTMLMetadataDownloader.swift +++ b/Shared/HTMLMetadata/HTMLMetadataDownloader.swift @@ -9,6 +9,7 @@ import Foundation import Web import Parser +import ParserObjC extension RSHTMLMetadata: @unchecked Sendable {}