From adb6c51a9684de9ef8245adfe6f0a909394bbdc1 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Wed, 23 Apr 2025 17:13:24 -0700 Subject: [PATCH] Move modules to Modules folder. --- {Account => Modules/Account}/.gitignore | 0 .../xcshareddata/xcschemes/Account.xcscheme | 0 {Account => Modules/Account}/Package.swift | 0 {Account => Modules/Account}/README.md | 0 .../Account}/Sources/Account/Account.swift | 0 .../Sources/Account/AccountBehaviors.swift | 0 .../Sources/Account/AccountDelegate.swift | 0 .../Sources/Account/AccountError.swift | 0 .../Sources/Account/AccountManager.swift | 0 .../Sources/Account/AccountMetadata.swift | 0 .../Sources/Account/AccountMetadataFile.swift | 0 .../Sources/Account/ArticleFetcher.swift | 0 .../CloudKit/CKRecord+Extensions.swift | 0 .../CloudKit/CloudKitAccountDelegate.swift | 0 .../CloudKit/CloudKitAccountZone.swift | 0 .../CloudKitAccountZoneDelegate.swift | 0 .../CloudKitArticleStatusUpdate.swift | 0 .../CloudKit/CloudKitArticlesZone.swift | 0 .../CloudKitArticlesZoneDelegate.swift | 0 .../CloudKitReceiveStatusOperation.swift | 0 .../CloudKitRemoteNotificationOperation.swift | 0 .../CloudKitSendStatusOperation.swift | 0 .../CloudKit/CloudKitWebDocumentation.swift | 0 .../Account/CombinedRefreshProgress.swift | 0 .../Account}/Sources/Account/Container.swift | 0 .../Sources/Account/ContainerIdentifier.swift | 0 .../Sources/Account/ContainerPath.swift | 0 .../Sources/Account/DataExtensions.swift | 0 .../Account}/Sources/Account/Feed.swift | 0 .../Account/FeedFinder/FeedFinder.swift | 0 .../Account/FeedFinder/FeedSpecifier.swift | 0 .../Account/FeedFinder/HTMLFeedFinder.swift | 0 .../Sources/Account/FeedIdentifier.swift | 0 .../Account/Feedbin/FeedbinAPICaller.swift | 0 .../Feedbin/FeedbinAccountDelegate.swift | 0 .../Sources/Account/Feedbin/FeedbinDate.swift | 0 .../Account/Feedbin/FeedbinEntry.swift | 0 .../Account/Feedbin/FeedbinImportResult.swift | 0 .../Account/Feedbin/FeedbinStarredEntry.swift | 0 .../Account/Feedbin/FeedbinSubscription.swift | 0 .../Sources/Account/Feedbin/FeedbinTag.swift | 0 .../Account/Feedbin/FeedbinTagging.swift | 0 .../Account/Feedbin/FeedbinUnreadEntry.swift | 0 .../Account/Feedly/FeedlyAPICaller.swift | 0 .../Feedly/FeedlyAccountDelegate+OAuth.swift | 0 .../Feedly/FeedlyAccountDelegate.swift | 0 .../Feedly/FeedlyAccountDelegateError.swift | 0 .../Feedly/FeedlyFeedContainerValidator.swift | 0 .../Feedly/FeedlyResourceProviding.swift | 0 .../Feedly/Models/FeedlyCategory.swift | 0 .../Feedly/Models/FeedlyCollection.swift | 0 .../Models/FeedlyCollectionParser.swift | 0 .../Account/Feedly/Models/FeedlyEntry.swift | 0 .../FeedlyEntryIdentifierProviding.swift | 0 .../Feedly/Models/FeedlyEntryParser.swift | 0 .../Account/Feedly/Models/FeedlyFeed.swift | 0 .../Feedly/Models/FeedlyFeedParser.swift | 0 .../Models/FeedlyFeedsSearchResponse.swift | 0 .../Account/Feedly/Models/FeedlyLink.swift | 0 .../Account/Feedly/Models/FeedlyOrigin.swift | 0 .../Models/FeedlyRTLTextSanitizer.swift | 0 .../Feedly/Models/FeedlyResourceId.swift | 0 .../Account/Feedly/Models/FeedlyStream.swift | 0 .../Feedly/Models/FeedlyStreamIds.swift | 0 .../Account/Feedly/Models/FeedlyTag.swift | 0 .../OAuthAccountAuthorizationOperation.swift | 0 .../Feedly/OAuthAcessTokenRefreshing.swift | 0 .../OAuthAuthorizationClient+Feedly.swift | 0 .../OAuthAuthorizationCodeGranting.swift | 0 .../FeedlyAddExistingFeedOperation.swift | 0 .../FeedlyAddFeedToCollectionOperation.swift | 0 .../FeedlyAddNewFeedOperation.swift | 0 .../FeedlyCheckpointOperation.swift | 0 ...teFeedsForCollectionFoldersOperation.swift | 0 .../FeedlyDownloadArticlesOperation.swift | 0 ...yFetchIdsForMissingArticlesOperation.swift | 0 .../FeedlyGetCollectionsOperation.swift | 0 .../FeedlyGetEntriesOperation.swift | 0 .../FeedlyGetStreamContentsOperation.swift | 0 .../FeedlyGetStreamIdsOperation.swift | 0 .../FeedlyGetUpdatedArticleIdsOperation.swift | 0 ...edlyIngestStarredArticleIdsOperation.swift | 0 ...eedlyIngestStreamArticleIdsOperation.swift | 0 ...eedlyIngestUnreadArticleIdsOperation.swift | 0 .../Operations/FeedlyLogoutOperation.swift | 0 ...yMirrorCollectionsAsFoldersOperation.swift | 0 .../Feedly/Operations/FeedlyOperation.swift | 0 ...lyOrganiseParsedItemsByFeedOperation.swift | 0 .../FeedlyRefreshAccessTokenOperation.swift | 0 .../FeedlyRequestStreamsOperation.swift | 0 .../Operations/FeedlySearchOperation.swift | 0 .../FeedlySendArticleStatusesOperation.swift | 0 .../Operations/FeedlySyncAllOperation.swift | 0 .../FeedlySyncStreamContentsOperation.swift | 0 ...UpdateAccountFeedsWithItemsOperation.swift | 0 .../FeedlyGetCollectionsService.swift | 0 .../Services/FeedlyGetEntriesService.swift | 0 .../FeedlyGetStreamContentsService.swift | 0 .../Services/FeedlyGetStreamIdsService.swift | 0 .../Services/FeedlyMarkArticlesService.swift | 0 .../Account}/Sources/Account/Folder.swift | 0 .../LocalAccount/InitialFeedDownloader.swift | 0 .../LocalAccount/LocalAccountDelegate.swift | 0 .../LocalAccount/LocalAccountRefresher.swift | 0 .../NewsBlurAPICaller+Internal.swift | 0 .../NewsBlurAccountDelegate+Internal.swift | 0 .../NewsBlur/Models/NewsBlurFeed.swift | 0 .../NewsBlur/Models/NewsBlurFeedChange.swift | 0 .../Models/NewsBlurFolderChange.swift | 0 .../Models/NewsBlurGenericCodingKeys.swift | 0 .../Models/NewsBlurLoginResponse.swift | 0 .../NewsBlur/Models/NewsBlurStory.swift | 0 .../NewsBlur/Models/NewsBlurStoryHash.swift | 0 .../Models/NewsBlurStoryStatusChange.swift | 0 .../Account/NewsBlur/NewsBlurAPICaller.swift | 0 .../NewsBlur/NewsBlurAccountDelegate.swift | 0 .../Account}/Sources/Account/OPMLFile.swift | 0 .../Sources/Account/OPMLNormalizer.swift | 0 .../ReaderAPI/ReaderAPIAccountDelegate.swift | 0 .../Account/ReaderAPI/ReaderAPICaller.swift | 0 .../Account/ReaderAPI/ReaderAPIEntry.swift | 0 .../ReaderAPI/ReaderAPISubscription.swift | 0 .../Account/ReaderAPI/ReaderAPITag.swift | 0 .../Account/ReaderAPI/ReaderAPITagging.swift | 0 .../ReaderAPI/ReaderAPIUnreadEntry.swift | 0 .../Account/ReaderAPI/ReaderAPIVariant.swift | 0 .../Account/SingleArticleFetcher.swift | 0 .../Sources/Account/URLRequest+Account.swift | 0 .../Sources/Account/UnreadCountProvider.swift | 0 .../Account}/Sources/Account/WebFeed.swift | 0 .../Sources/Account/WebFeedMetadata.swift | 0 .../Sources/Account/WebFeedMetadataFile.swift | 0 .../AccountTests/AccountCredentialsTest.swift | 0 ...AccountFeedbinFolderContentsSyncTest.swift | 0 .../AccountFeedbinFolderSyncTest.swift | 0 .../Feedbin/AccountFeedbinSyncTest.swift | 0 .../FeedlyCheckpointOperationTests.swift | 0 .../Feedly/FeedlyCollectionParserTests.swift | 0 ...dsForCollectionFoldersOperationTests.swift | 0 .../Feedly/FeedlyEntryParserTests.swift | 0 .../Feedly/FeedlyFeedParserTests.swift | 0 .../FeedlyGetCollectionsOperationTests.swift | 0 ...eedlyGetStreamContentsOperationTests.swift | 0 .../FeedlyGetStreamIdsOperationTests.swift | 0 .../Feedly/FeedlyLogoutOperationTests.swift | 0 ...orCollectionsAsFoldersOperationTests.swift | 0 .../Feedly/FeedlyOperationTests.swift | 0 ...aniseParsedItemsByFeedOperationTests.swift | 0 ...edlyRefreshAccessTokenOperationTests.swift | 0 .../Feedly/FeedlyResourceIdTests.swift | 0 ...dlySendArticleStatusesOperationTests.swift | 0 .../FeedlySyncAllMockResponseProvider.swift | 0 ...edlySyncStreamContentsOperationTests.swift | 0 .../Feedly/FeedlyTestSecrets.swift | 0 .../Feedly/FeedlyTestSupport.swift | 0 .../Feedly/FeedlyTextSanitizationTests.swift | 0 .../Feedly/TestGetCollectionsService.swift | 0 .../Feedly/TestGetEntriesService.swift | 0 .../TestGetPagedStreamContentsService.swift | 0 .../Feedly/TestGetPagedStreamIdsService.swift | 0 .../Feedly/TestGetStreamContentsService.swift | 0 .../Feedly/TestGetStreamIdsService.swift | 0 .../Feedly/TestMarkArticlesService.swift | 0 .../JSON/feedly_collections_initial.json | 0 .../JSON/feedly_macintosh_initial.json | 0 .../JSON/feedly_unreads_1000.json | 0 .../JSON/feedly_unreads_initial.json | 0 .../AccountTests/JSON/subscriptions_add.json | 0 .../JSON/subscriptions_initial.json | 0 .../Tests/AccountTests/JSON/taggings_add.json | 0 .../AccountTests/JSON/taggings_delete.json | 0 .../AccountTests/JSON/taggings_initial.json | 0 .../Tests/AccountTests/JSON/tags_add.json | 0 .../Tests/AccountTests/JSON/tags_delete.json | 0 .../Tests/AccountTests/JSON/tags_initial.json | 0 .../AccountTests/TestAccountManager.swift | 0 .../Tests/AccountTests/TestTransport.swift | 0 .../Account}/Tests/LinuxMain.swift | 0 {Articles => Modules/Articles}/.gitignore | 0 .../xcshareddata/xcschemes/Articles.xcscheme | 0 {Articles => Modules/Articles}/Package.swift | 0 {Articles => Modules/Articles}/README.md | 0 .../Articles}/Sources/Articles/Article.swift | 0 .../Sources/Articles/ArticleStatus.swift | 0 .../Articles}/Sources/Articles/Author.swift | 0 .../Sources/Articles/DatabaseID.swift | 0 .../ArticlesDatabase}/.gitignore | 0 .../ArticlesDatabase}/Package.swift | 0 .../ArticlesDatabase}/README.md | 0 .../ArticlesDatabase/ArticlesDatabase.swift | 0 .../ArticlesDatabase/ArticlesTable.swift | 0 .../ArticlesDatabase/AuthorsTable.swift | 0 .../Sources/ArticlesDatabase/Constants.swift | 0 .../Extensions/Article+Database.swift | 0 .../Extensions/ArticleStatus+Database.swift | 0 .../Extensions/Author+Database.swift | 0 .../Extensions/DatabaseObject+Database.swift | 0 .../Extensions/ParsedArticle+Database.swift | 0 .../RelatedObjectsMap+Database.swift | 0 .../FetchAllUnreadCountsOperation.swift | 0 .../FetchFeedUnreadCountOperation.swift | 0 .../FetchUnreadCountsForFeedsOperation.swift | 0 .../ArticlesDatabase/SearchTable.swift | 0 .../ArticlesDatabase/StatusesTable.swift | 0 .../contents.xcworkspacedata | 0 {RSCore => Modules/RSCore}/Package.swift | 0 {RSCore => Modules/RSCore}/README.md | 0 .../Sources/RSCore/AppKit/FourCharCode.swift | 0 .../Sources/RSCore/AppKit/Keyboard.swift | 0 .../AppKit/KeyboardDelegateProtocol.swift | 0 .../RSCore/AppKit/NSAppearance+RSCore.swift | 0 .../NSAppleEventDescriptor+RSCore.swift | 0 .../RSCore/AppKit/NSImage+RSCore.swift | 0 .../RSCore/AppKit/NSMenu+Extensions.swift | 0 .../RSCore/AppKit/NSOutlineView+RSCore.swift | 0 .../RSCore/AppKit/NSPasteboard+RSCore.swift | 0 .../AppKit/NSResponder-Extensions.swift | 0 .../RSCore/AppKit/NSTableView+RSCore.swift | 0 .../RSCore/AppKit/NSToolbar+RSCore.swift | 0 .../Sources/RSCore/AppKit/NSView+RSCore.swift | 0 .../RSCore/AppKit/NSWindow-Extensions.swift | 0 .../AppKit/NSWindowController+RSCore.swift | 0 .../RSCore/AppKit/NSWorkspace+RSCore.swift | 0 .../RSCore/AppKit/PasteboardWriterOwner.swift | 0 .../RSCore/AppKit/RSAppMovementMonitor.swift | 0 .../RSDarkModeAdaptingToolbarButton.swift | 0 .../Sources/RSCore/AppKit/RSToolbarItem.swift | 0 .../RSCore/AppKit/URLPasteboardWriter.swift | 0 .../Sources/RSCore/AppKit/UserApp.swift | 0 .../RSCore/CloudKit/CloudKitError.swift | 0 .../RSCore/CloudKit/CloudKitZone.swift | 0 .../RSCore/CloudKit/CloudKitZoneResult.swift | 0 .../RSCore}/Sources/RSCore/RSCore.swift | 0 .../Sources/RSCore/Shared/AppConfig.swift | 0 .../Sources/RSCore/Shared/Array+RSCore.swift | 0 .../Sources/RSCore/Shared/BatchUpdate.swift | 0 .../RSCore/Shared/BinaryDiskCache.swift | 0 .../Sources/RSCore/Shared/Blocks.swift | 0 .../RSCore}/Sources/RSCore/Shared/Cache.swift | 0 .../RSCore/Shared/Calendar+RSCore.swift | 0 .../RSCore/Shared/Character+RSCore.swift | 0 .../RSCore/Shared/CoalescingQueue.swift | 0 .../Sources/RSCore/Shared/Data+RSCore.swift | 0 .../RSCore/Shared/Date+Extensions.swift | 0 .../RSCore/Shared/DisplayNameProvider.swift | 0 .../RSCore/Shared/FileManager+RSCore.swift | 0 .../Sources/RSCore/Shared/Geometry.swift | 0 .../RSCore/Shared/MacroProcessor.swift | 0 .../Shared/MainThreadBlockOperation.swift | 0 .../RSCore/Shared/MainThreadOperation.swift | 0 .../Shared/MainThreadOperationQueue.swift | 0 .../RSCore/Shared/ManagedResourceFile.swift | 0 .../RSCore/Shared/OPMLRepresentable.swift | 0 .../Sources/RSCore/Shared/Platform.swift | 0 .../Sources/RSCore/Shared/PropertyList.swift | 0 .../Sources/RSCore/Shared/RSImage.swift | 0 .../Sources/RSCore/Shared/RSScreen.swift | 0 .../Sources/RSCore/Shared/Renamable.swift | 0 .../RSCore/Shared/SendToBlogEditorApp.swift | 0 .../Sources/RSCore/Shared/SendToCommand.swift | 0 .../RSCore/Shared/Set+Extensions.swift | 0 .../Sources/RSCore/Shared/String+RSCore.swift | 0 .../RSCore/Shared/UndoableCommand.swift | 0 .../RSCore/UIKit/UIResponder+RSCore.swift | 0 .../Sources/RSCore/UIKit/UIView+RSCore.swift | 0 .../UIKit/UIViewController+RSCore.swift | 0 .../RSCore/UIKit/UIWindow+RSCore.swift | 0 .../Sources/RSCoreObjC/NSData+RSCore.h | 0 .../Sources/RSCoreObjC/NSData+RSCore.m | 0 .../Sources/RSCoreObjC/include/RSCore.h | 0 ...ndeterminateProgressWindowController.swift | 0 .../AppKit/WebViewWindowController.swift | 0 .../RSCoreResources/RSCoreResources.swift | 0 .../Resources/IndeterminateProgressWindow.xib | 0 .../Resources/WebViewWindow.xib | 0 .../RSCore}/Tests/LinuxMain.swift | 0 .../Tests/RSCoreTests/Data+RSCoreTests.swift | 0 .../RSCoreTests/MacroProcessorTests.swift | 0 .../MainThreadOperationTests.swift | 0 .../Tests/RSCoreTests/RSCoreTests.swift | 0 .../RSCoreTests/String+RSCoreTests.swift | 0 .../Tests/RSCoreTests/XCTestManifests.swift | 0 .../RSDatabase}/Package.swift | 0 .../Sources/RSDatabase/Database.swift | 0 .../Sources/RSDatabase/DatabaseObject.swift | 0 .../RSDatabase/DatabaseObjectCache.swift | 0 .../Sources/RSDatabase/DatabaseQueue.swift | 0 .../Sources/RSDatabase/DatabaseTable.swift | 0 .../Sources/RSDatabase/ODB/ODB.swift | 0 .../Sources/RSDatabase/ODB/ODBObject.swift | 0 .../Sources/RSDatabase/ODB/ODBPath.swift | 0 .../RSDatabase/ODB/ODBRawValueTable.swift | 0 .../Sources/RSDatabase/ODB/ODBTable.swift | 0 .../RSDatabase/ODB/ODBTablesTable.swift | 0 .../Sources/RSDatabase/ODB/ODBValue.swift | 0 .../RSDatabase/ODB/ODBValueObject.swift | 0 .../RSDatabase/ODB/ODBValuesTable.swift | 0 .../Sources/RSDatabase/ODB/README.markdown | 0 .../Related Objects/DatabaseLookupTable.swift | 0 .../DatabaseRelatedObjectsTable.swift | 0 .../Related Objects/RelatedObjectIDsMap.swift | 0 .../Related Objects/RelatedObjectsMap.swift | 0 .../RSDatabaseObjC/FMDatabase+RSExtras.h | 0 .../RSDatabaseObjC/FMDatabase+RSExtras.m | 0 .../Sources/RSDatabaseObjC/FMDatabase.h | 0 .../Sources/RSDatabaseObjC/FMDatabase.m | 0 .../RSDatabaseObjC/FMDatabaseAdditions.h | 0 .../RSDatabaseObjC/FMDatabaseAdditions.m | 0 .../RSDatabaseObjC/FMResultSet+RSExtras.h | 0 .../RSDatabaseObjC/FMResultSet+RSExtras.m | 0 .../Sources/RSDatabaseObjC/FMResultSet.h | 0 .../Sources/RSDatabaseObjC/FMResultSet.m | 0 .../RSDatabaseObjC/NSString+RSDatabase.h | 0 .../RSDatabaseObjC/NSString+RSDatabase.m | 0 .../Sources/RSDatabaseObjC/RSDatabaseQueue.h | 0 .../Sources/RSDatabaseObjC/RSDatabaseQueue.m | 0 .../RSDatabaseObjC/include/RSDatabaseObjC.h | 0 .../Tests/RSDatabaseTests/ODBTests.swift | 0 .../contents.xcworkspacedata | 0 {RSParser => Modules/RSParser}/Package.swift | 0 {RSParser => Modules/RSParser}/README.md | 0 .../RSParser}/Sources/ObjC/FeedParser.h | 0 .../RSParser}/Sources/ObjC/NSData+RSParser.h | 0 .../RSParser}/Sources/ObjC/NSData+RSParser.m | 0 .../Sources/ObjC/NSString+RSParser.h | 0 .../Sources/ObjC/NSString+RSParser.m | 0 .../RSParser}/Sources/ObjC/ParserData.h | 0 .../RSParser}/Sources/ObjC/ParserData.m | 0 .../RSParser}/Sources/ObjC/RSAtomParser.h | 0 .../RSParser}/Sources/ObjC/RSAtomParser.m | 0 .../RSParser}/Sources/ObjC/RSDateParser.h | 0 .../RSParser}/Sources/ObjC/RSDateParser.m | 0 .../RSParser}/Sources/ObjC/RSHTMLLinkParser.h | 0 .../RSParser}/Sources/ObjC/RSHTMLLinkParser.m | 0 .../RSParser}/Sources/ObjC/RSHTMLMetadata.h | 0 .../RSParser}/Sources/ObjC/RSHTMLMetadata.m | 0 .../Sources/ObjC/RSHTMLMetadataParser.h | 0 .../Sources/ObjC/RSHTMLMetadataParser.m | 0 .../RSParser}/Sources/ObjC/RSHTMLTag.h | 0 .../RSParser}/Sources/ObjC/RSHTMLTag.m | 0 .../RSParser}/Sources/ObjC/RSOPMLAttributes.h | 0 .../RSParser}/Sources/ObjC/RSOPMLAttributes.m | 0 .../RSParser}/Sources/ObjC/RSOPMLDocument.h | 0 .../RSParser}/Sources/ObjC/RSOPMLDocument.m | 0 .../RSParser}/Sources/ObjC/RSOPMLError.h | 0 .../RSParser}/Sources/ObjC/RSOPMLError.m | 0 .../Sources/ObjC/RSOPMLFeedSpecifier.h | 0 .../Sources/ObjC/RSOPMLFeedSpecifier.m | 0 .../RSParser}/Sources/ObjC/RSOPMLItem.h | 0 .../RSParser}/Sources/ObjC/RSOPMLItem.m | 0 .../RSParser}/Sources/ObjC/RSOPMLParser.h | 0 .../RSParser}/Sources/ObjC/RSOPMLParser.m | 0 .../RSParser}/Sources/ObjC/RSParsedArticle.h | 0 .../RSParser}/Sources/ObjC/RSParsedArticle.m | 0 .../RSParser}/Sources/ObjC/RSParsedAuthor.h | 0 .../RSParser}/Sources/ObjC/RSParsedAuthor.m | 0 .../Sources/ObjC/RSParsedEnclosure.h | 0 .../Sources/ObjC/RSParsedEnclosure.m | 0 .../RSParser}/Sources/ObjC/RSParsedFeed.h | 0 .../RSParser}/Sources/ObjC/RSParsedFeed.m | 0 .../RSParser}/Sources/ObjC/RSParserInternal.h | 0 .../RSParser}/Sources/ObjC/RSParserInternal.m | 0 .../RSParser}/Sources/ObjC/RSRSSParser.h | 0 .../RSParser}/Sources/ObjC/RSRSSParser.m | 0 .../RSParser}/Sources/ObjC/RSSAXHTMLParser.h | 0 .../RSParser}/Sources/ObjC/RSSAXHTMLParser.m | 0 .../RSParser}/Sources/ObjC/RSSAXParser.h | 0 .../RSParser}/Sources/ObjC/RSSAXParser.m | 0 .../RSParser}/Sources/ObjC/include/RSParser.h | 0 .../RSParser}/Sources/Swift/Exports.swift | 0 .../Sources/Swift/Feeds/FeedParser.swift | 0 .../Sources/Swift/Feeds/FeedParserError.swift | 0 .../Sources/Swift/Feeds/FeedType.swift | 0 .../Swift/Feeds/JSON/JSONFeedParser.swift | 0 .../Swift/Feeds/JSON/RSSInJSONParser.swift | 0 .../Swift/Feeds/ParsedAttachment.swift | 0 .../Sources/Swift/Feeds/ParsedAuthor.swift | 0 .../Sources/Swift/Feeds/ParsedFeed.swift | 0 .../Sources/Swift/Feeds/ParsedHub.swift | 0 .../Sources/Swift/Feeds/ParsedItem.swift | 0 .../Sources/Swift/Feeds/XML/AtomParser.swift | 0 .../Feeds/XML/RSParsedFeedTransformer.swift | 0 .../Sources/Swift/Feeds/XML/RSSParser.swift | 0 .../Sources/Swift/JSON/JSONTypes.swift | 0 .../Sources/Swift/JSON/JSONUtilities.swift | 0 .../Swift/Utilities/String+RSParser.swift | 0 .../RSParser}/Tests/LinuxMain.swift | 0 .../Tests/RSParserTests/AtomParserTests.swift | 0 .../RSParserTests/EntityDecodingTests.swift | 0 .../RSParserTests/FeedParserTypeTests.swift | 0 .../Tests/RSParserTests/HTMLLinkTests.swift | 0 .../RSParserTests/HTMLMetadataTests.swift | 0 .../RSParser}/Tests/RSParserTests/Info.plist | 0 .../RSParserTests/JSONFeedParserTests.swift | 0 .../Tests/RSParserTests/OPMLTests.swift | 0 .../RSParserTests/RSDateParserTests.swift | 0 .../RSParserTests/RSSInJSONParserTests.swift | 0 .../Tests/RSParserTests/RSSParserTests.swift | 0 .../Tests/RSParserTests/Resources/3960.json | 0 .../Tests/RSParserTests/Resources/489.rss | 0 .../RSParserTests/Resources/4fsodonline.atom | 0 .../Resources/DaringFireball.atom | 0 .../Resources/DaringFireball.html | 0 .../Resources/DaringFireball.json | 0 .../Resources/DaringFireball.rss | 0 .../Tests/RSParserTests/Resources/EMarley.rss | 0 .../RSParserTests/Resources/KatieFloyd.rss | 0 .../Resources/OneFootTsunami.atom | 0 .../Resources/ScriptingNews.json | 0 .../Tests/RSParserTests/Resources/Subs.opml | 0 .../Resources/SubsNoTitleAttributes.opml | 0 .../Resources/YouTubeTheVolvoRocks.html | 0 .../RSParserTests/Resources/aktuality.rss | 0 .../Resources/allthis-partial.json | 0 .../RSParserTests/Resources/allthis.atom | 0 .../RSParserTests/Resources/allthis.json | 0 .../Tests/RSParserTests/Resources/atp.rss | 0 .../RSParserTests/Resources/authors.json | 0 .../Tests/RSParserTests/Resources/bio.rdf | 0 .../RSParserTests/Resources/cloudblog.rss | 0 .../Tests/RSParserTests/Resources/coco.html | 0 .../Tests/RSParserTests/Resources/curt.json | 0 .../RSParserTests/Resources/dcrainmaker.xml | 0 .../RSParserTests/Resources/donthitsave.xml | 0 .../Resources/expertopinionent.atom | 0 .../Tests/RSParserTests/Resources/furbo.html | 0 .../RSParserTests/Resources/inessential.html | 0 .../RSParserTests/Resources/inessential.json | 0 .../Tests/RSParserTests/Resources/kc0011.rss | 0 .../RSParserTests/Resources/livemint.xml | 0 .../RSParserTests/Resources/macworld.rss | 0 .../Tests/RSParserTests/Resources/manton.rss | 0 .../RSParserTests/Resources/monkeydom.rss | 0 .../Tests/RSParserTests/Resources/natasha.xml | 0 .../Tests/RSParserTests/Resources/phpxml.rss | 0 .../Tests/RSParserTests/Resources/pxlnv.json | 0 .../Tests/RSParserTests/Resources/rose.json | 0 .../RSParserTests/Resources/russcox.atom | 0 .../RSParserTests/Resources/scriptingNews.rss | 0 .../RSParserTests/Resources/sixcolors.html | 0 .../RSParserTests/Resources/theomnishow.rss | 0 {RSTree => Modules/RSTree}/Package.swift | 0 .../Sources/RSTree/NSOutlineView+RSTree.swift | 0 .../RSTree}/Sources/RSTree/Node.swift | 0 .../RSTree}/Sources/RSTree/NodePath.swift | 0 .../RSTree}/Sources/RSTree/RSTree.swift | 0 .../RSTree/TopLevelRepresentedObject.swift | 0 .../Sources/RSTree/TreeController.swift | 0 {RSWeb => Modules/RSWeb}/Package.swift | 0 {RSWeb => Modules/RSWeb}/README.md | 0 .../Sources/RSWeb/CacheControlInfo.swift | 0 .../Sources/RSWeb/Dictionary+RSWeb.swift | 0 .../Sources/RSWeb/DownloadProgress.swift | 0 .../Sources/RSWeb/DownloadSession.swift | 0 .../RSWeb}/Sources/RSWeb/Downloader.swift | 0 .../Sources/RSWeb/HTMLMetadataCache.swift | 0 .../RSWeb/HTMLMetadataDownloader.swift | 0 .../RSWeb/HTTPConditionalGetInfo.swift | 0 .../RSWeb}/Sources/RSWeb/HTTPDateInfo.swift | 0 .../Sources/RSWeb/HTTPLinkPagingInfo.swift | 0 .../RSWeb}/Sources/RSWeb/HTTPMethod.swift | 0 .../Sources/RSWeb/HTTPRequestHeader.swift | 0 .../Sources/RSWeb/HTTPResponse429.swift | 0 .../Sources/RSWeb/HTTPResponseCode.swift | 0 .../Sources/RSWeb/HTTPResponseHeader.swift | 0 .../RSWeb}/Sources/RSWeb/MacWebBrowser.swift | 0 .../RSWeb}/Sources/RSWeb/MimeType.swift | 0 .../RSWeb}/Sources/RSWeb/Reachability.swift | 0 .../RSWeb}/Sources/RSWeb/SpecialCases.swift | 0 .../RSWeb}/Sources/RSWeb/String+RSWeb.swift | 0 .../RSWeb}/Sources/RSWeb/URL+RSWeb.swift | 0 .../Sources/RSWeb/URLComponents+RSWeb.swift | 0 .../Sources/RSWeb/URLRequest+RSWeb.swift | 0 .../Sources/RSWeb/URLResponse+RSWeb.swift | 0 .../Sources/RSWeb/UTS46/Data+Extensions.swift | 0 .../RSWeb/UTS46/Scanner+Extensions.swift | 0 .../Sources/RSWeb/UTS46/String+Punycode.swift | 0 .../Sources/RSWeb/UTS46/UTS46+Loading.swift | 0 .../RSWeb}/Sources/RSWeb/UTS46/UTS46.swift | 0 .../RSWeb}/Sources/RSWeb/UTS46/uts46 | Bin .../RSWeb}/Sources/RSWeb/UserAgent.swift | 0 .../Sources/RSWeb/WebServices/Transport.swift | 0 .../RSWeb/WebServices/TransportJSON.swift | 0 .../Tests/RSWebTests/DictionaryTests.swift | 0 .../RSWeb}/Tests/RSWebTests/RSWebTests.swift | 0 .../RSWeb}/Tests/RSWebTests/StringTests.swift | 0 {Secrets => Modules/Secrets}/.gitignore | 0 {Secrets => Modules/Secrets}/Package.swift | 0 {Secrets => Modules/Secrets}/README.md | 0 .../Sources/Secrets/Credentials.swift | 0 .../Sources/Secrets/CredentialsManager.swift | 0 .../Sources/Secrets/SecretsManager.swift | 0 .../Sources/Secrets/SecretsProvider.swift | 0 .../SyncDatabase}/.gitignore | 0 .../SyncDatabase}/Package.swift | 0 .../SyncDatabase}/README.md | 0 .../Sources/SyncDatabase/Constants.swift | 0 .../Sources/SyncDatabase/SyncDatabase.swift | 0 .../Sources/SyncDatabase/SyncStatus.swift | 0 .../SyncDatabase/SyncStatusTable.swift | 0 NetNewsWire.xcodeproj/project.pbxproj | 22 ++------------ NetNewsWire.xctestplan | 27 +++++++++++------- 502 files changed, 19 insertions(+), 30 deletions(-) rename {Account => Modules/Account}/.gitignore (100%) rename {Account => Modules/Account}/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme (100%) rename {Account => Modules/Account}/Package.swift (100%) rename {Account => Modules/Account}/README.md (100%) rename {Account => Modules/Account}/Sources/Account/Account.swift (100%) rename {Account => Modules/Account}/Sources/Account/AccountBehaviors.swift (100%) rename {Account => Modules/Account}/Sources/Account/AccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/AccountError.swift (100%) rename {Account => Modules/Account}/Sources/Account/AccountManager.swift (100%) rename {Account => Modules/Account}/Sources/Account/AccountMetadata.swift (100%) rename {Account => Modules/Account}/Sources/Account/AccountMetadataFile.swift (100%) rename {Account => Modules/Account}/Sources/Account/ArticleFetcher.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CKRecord+Extensions.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitAccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitAccountZone.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitArticlesZone.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/CloudKit/CloudKitWebDocumentation.swift (100%) rename {Account => Modules/Account}/Sources/Account/CombinedRefreshProgress.swift (100%) rename {Account => Modules/Account}/Sources/Account/Container.swift (100%) rename {Account => Modules/Account}/Sources/Account/ContainerIdentifier.swift (100%) rename {Account => Modules/Account}/Sources/Account/ContainerPath.swift (100%) rename {Account => Modules/Account}/Sources/Account/DataExtensions.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feed.swift (100%) rename {Account => Modules/Account}/Sources/Account/FeedFinder/FeedFinder.swift (100%) rename {Account => Modules/Account}/Sources/Account/FeedFinder/FeedSpecifier.swift (100%) rename {Account => Modules/Account}/Sources/Account/FeedFinder/HTMLFeedFinder.swift (100%) rename {Account => Modules/Account}/Sources/Account/FeedIdentifier.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinAPICaller.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinAccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinDate.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinEntry.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinImportResult.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinStarredEntry.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinSubscription.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinTag.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinTagging.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedbin/FeedbinUnreadEntry.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/FeedlyAPICaller.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/FeedlyAccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/FeedlyAccountDelegateError.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/FeedlyResourceProviding.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyCategory.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyCollection.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyEntry.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyEntryParser.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyFeed.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyFeedParser.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyLink.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyOrigin.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyResourceId.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyStream.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyStreamIds.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Models/FeedlyTag.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift (100%) rename {Account => Modules/Account}/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift (100%) rename {Account => Modules/Account}/Sources/Account/Folder.swift (100%) rename {Account => Modules/Account}/Sources/Account/LocalAccount/InitialFeedDownloader.swift (100%) rename {Account => Modules/Account}/Sources/Account/LocalAccount/LocalAccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/LocalAccount/LocalAccountRefresher.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurStory.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/NewsBlurAPICaller.swift (100%) rename {Account => Modules/Account}/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/OPMLFile.swift (100%) rename {Account => Modules/Account}/Sources/Account/OPMLNormalizer.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPICaller.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPIEntry.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPISubscription.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPITag.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPITagging.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift (100%) rename {Account => Modules/Account}/Sources/Account/ReaderAPI/ReaderAPIVariant.swift (100%) rename {Account => Modules/Account}/Sources/Account/SingleArticleFetcher.swift (100%) rename {Account => Modules/Account}/Sources/Account/URLRequest+Account.swift (100%) rename {Account => Modules/Account}/Sources/Account/UnreadCountProvider.swift (100%) rename {Account => Modules/Account}/Sources/Account/WebFeed.swift (100%) rename {Account => Modules/Account}/Sources/Account/WebFeedMetadata.swift (100%) rename {Account => Modules/Account}/Sources/Account/WebFeedMetadataFile.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/AccountCredentialsTest.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyTestSecrets.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyTestSupport.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestGetCollectionsService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestGetEntriesService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/Feedly/TestMarkArticlesService.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/feedly_collections_initial.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/feedly_macintosh_initial.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/feedly_unreads_1000.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/feedly_unreads_initial.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/subscriptions_add.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/subscriptions_initial.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/taggings_add.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/taggings_delete.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/taggings_initial.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/tags_add.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/tags_delete.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/JSON/tags_initial.json (100%) rename {Account => Modules/Account}/Tests/AccountTests/TestAccountManager.swift (100%) rename {Account => Modules/Account}/Tests/AccountTests/TestTransport.swift (100%) rename {Account => Modules/Account}/Tests/LinuxMain.swift (100%) rename {Articles => Modules/Articles}/.gitignore (100%) rename {Articles => Modules/Articles}/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme (100%) rename {Articles => Modules/Articles}/Package.swift (100%) rename {Articles => Modules/Articles}/README.md (100%) rename {Articles => Modules/Articles}/Sources/Articles/Article.swift (100%) rename {Articles => Modules/Articles}/Sources/Articles/ArticleStatus.swift (100%) rename {Articles => Modules/Articles}/Sources/Articles/Author.swift (100%) rename {Articles => Modules/Articles}/Sources/Articles/DatabaseID.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/.gitignore (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Package.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/README.md (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/ArticlesDatabase.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/ArticlesTable.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/AuthorsTable.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Constants.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Extensions/Article+Database.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Extensions/Author+Database.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/SearchTable.swift (100%) rename {ArticlesDatabase => Modules/ArticlesDatabase}/Sources/ArticlesDatabase/StatusesTable.swift (100%) rename {RSCore => Modules/RSCore}/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata (100%) rename {RSCore => Modules/RSCore}/Package.swift (100%) rename {RSCore => Modules/RSCore}/README.md (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/FourCharCode.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/Keyboard.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSAppearance+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSImage+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSMenu+Extensions.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSResponder-Extensions.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSTableView+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSToolbar+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSView+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSWindow-Extensions.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSWindowController+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/PasteboardWriterOwner.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/RSAppMovementMonitor.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/RSToolbarItem.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/URLPasteboardWriter.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/AppKit/UserApp.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/CloudKit/CloudKitError.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/CloudKit/CloudKitZone.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/CloudKit/CloudKitZoneResult.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/AppConfig.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Array+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/BatchUpdate.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/BinaryDiskCache.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Blocks.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Cache.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Calendar+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Character+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/CoalescingQueue.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Data+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Date+Extensions.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/DisplayNameProvider.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/FileManager+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Geometry.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/MacroProcessor.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/MainThreadBlockOperation.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/MainThreadOperation.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/MainThreadOperationQueue.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/ManagedResourceFile.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/OPMLRepresentable.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Platform.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/PropertyList.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/RSImage.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/RSScreen.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Renamable.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/SendToBlogEditorApp.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/SendToCommand.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/Set+Extensions.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/String+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/Shared/UndoableCommand.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/UIKit/UIResponder+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/UIKit/UIView+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/UIKit/UIViewController+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCore/UIKit/UIWindow+RSCore.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreObjC/NSData+RSCore.h (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreObjC/NSData+RSCore.m (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreObjC/include/RSCore.h (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreResources/AppKit/WebViewWindowController.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreResources/RSCoreResources.swift (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib (100%) rename {RSCore => Modules/RSCore}/Sources/RSCoreResources/Resources/WebViewWindow.xib (100%) rename {RSCore => Modules/RSCore}/Tests/LinuxMain.swift (100%) rename {RSCore => Modules/RSCore}/Tests/RSCoreTests/Data+RSCoreTests.swift (100%) rename {RSCore => Modules/RSCore}/Tests/RSCoreTests/MacroProcessorTests.swift (100%) rename {RSCore => Modules/RSCore}/Tests/RSCoreTests/MainThreadOperationTests.swift (100%) rename {RSCore => Modules/RSCore}/Tests/RSCoreTests/RSCoreTests.swift (100%) rename {RSCore => Modules/RSCore}/Tests/RSCoreTests/String+RSCoreTests.swift (100%) rename {RSCore => Modules/RSCore}/Tests/RSCoreTests/XCTestManifests.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Package.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/Database.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/DatabaseObject.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/DatabaseObjectCache.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/DatabaseQueue.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/DatabaseTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODB.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBObject.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBPath.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBRawValueTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBTablesTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBValue.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBValueObject.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/ODBValuesTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/ODB/README.markdown (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMDatabase.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMDatabase.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMDatabaseAdditions.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMDatabaseAdditions.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMResultSet.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/FMResultSet.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/NSString+RSDatabase.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/NSString+RSDatabase.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/RSDatabaseQueue.h (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/RSDatabaseQueue.m (100%) rename {RSDatabase => Modules/RSDatabase}/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h (100%) rename {RSDatabase => Modules/RSDatabase}/Tests/RSDatabaseTests/ODBTests.swift (100%) rename {RSParser => Modules/RSParser}/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata (100%) rename {RSParser => Modules/RSParser}/Package.swift (100%) rename {RSParser => Modules/RSParser}/README.md (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/FeedParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/NSData+RSParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/NSData+RSParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/NSString+RSParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/NSString+RSParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/ParserData.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/ParserData.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSAtomParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSAtomParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSDateParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSDateParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLLinkParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLLinkParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLMetadata.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLMetadata.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLMetadataParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLMetadataParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLTag.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSHTMLTag.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLAttributes.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLAttributes.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLDocument.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLDocument.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLError.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLError.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLFeedSpecifier.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLFeedSpecifier.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLItem.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLItem.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSOPMLParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedArticle.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedArticle.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedAuthor.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedAuthor.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedEnclosure.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedEnclosure.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedFeed.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParsedFeed.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParserInternal.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSParserInternal.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSRSSParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSRSSParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSSAXHTMLParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSSAXHTMLParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSSAXParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/RSSAXParser.m (100%) rename {RSParser => Modules/RSParser}/Sources/ObjC/include/RSParser.h (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Exports.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/FeedParser.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/FeedParserError.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/FeedType.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/JSON/JSONFeedParser.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/ParsedAttachment.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/ParsedAuthor.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/ParsedFeed.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/ParsedHub.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/ParsedItem.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/XML/AtomParser.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Feeds/XML/RSSParser.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/JSON/JSONTypes.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/JSON/JSONUtilities.swift (100%) rename {RSParser => Modules/RSParser}/Sources/Swift/Utilities/String+RSParser.swift (100%) rename {RSParser => Modules/RSParser}/Tests/LinuxMain.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/AtomParserTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/EntityDecodingTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/FeedParserTypeTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/HTMLLinkTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/HTMLMetadataTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Info.plist (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/JSONFeedParserTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/OPMLTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/RSDateParserTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/RSSInJSONParserTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/RSSParserTests.swift (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/3960.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/489.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/4fsodonline.atom (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/DaringFireball.atom (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/DaringFireball.html (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/DaringFireball.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/DaringFireball.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/EMarley.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/KatieFloyd.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/OneFootTsunami.atom (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/ScriptingNews.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/Subs.opml (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/SubsNoTitleAttributes.opml (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/YouTubeTheVolvoRocks.html (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/aktuality.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/allthis-partial.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/allthis.atom (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/allthis.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/atp.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/authors.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/bio.rdf (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/cloudblog.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/coco.html (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/curt.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/dcrainmaker.xml (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/donthitsave.xml (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/expertopinionent.atom (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/furbo.html (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/inessential.html (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/inessential.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/kc0011.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/livemint.xml (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/macworld.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/manton.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/monkeydom.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/natasha.xml (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/phpxml.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/pxlnv.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/rose.json (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/russcox.atom (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/scriptingNews.rss (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/sixcolors.html (100%) rename {RSParser => Modules/RSParser}/Tests/RSParserTests/Resources/theomnishow.rss (100%) rename {RSTree => Modules/RSTree}/Package.swift (100%) rename {RSTree => Modules/RSTree}/Sources/RSTree/NSOutlineView+RSTree.swift (100%) rename {RSTree => Modules/RSTree}/Sources/RSTree/Node.swift (100%) rename {RSTree => Modules/RSTree}/Sources/RSTree/NodePath.swift (100%) rename {RSTree => Modules/RSTree}/Sources/RSTree/RSTree.swift (100%) rename {RSTree => Modules/RSTree}/Sources/RSTree/TopLevelRepresentedObject.swift (100%) rename {RSTree => Modules/RSTree}/Sources/RSTree/TreeController.swift (100%) rename {RSWeb => Modules/RSWeb}/Package.swift (100%) rename {RSWeb => Modules/RSWeb}/README.md (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/CacheControlInfo.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/Dictionary+RSWeb.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/DownloadProgress.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/DownloadSession.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/Downloader.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTMLMetadataCache.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTMLMetadataDownloader.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPConditionalGetInfo.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPDateInfo.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPLinkPagingInfo.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPMethod.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPRequestHeader.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPResponse429.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPResponseCode.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/HTTPResponseHeader.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/MacWebBrowser.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/MimeType.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/Reachability.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/SpecialCases.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/String+RSWeb.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/URL+RSWeb.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/URLComponents+RSWeb.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/URLRequest+RSWeb.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/URLResponse+RSWeb.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UTS46/Data+Extensions.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UTS46/Scanner+Extensions.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UTS46/String+Punycode.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UTS46/UTS46+Loading.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UTS46/UTS46.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UTS46/uts46 (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/UserAgent.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/WebServices/Transport.swift (100%) rename {RSWeb => Modules/RSWeb}/Sources/RSWeb/WebServices/TransportJSON.swift (100%) rename {RSWeb => Modules/RSWeb}/Tests/RSWebTests/DictionaryTests.swift (100%) rename {RSWeb => Modules/RSWeb}/Tests/RSWebTests/RSWebTests.swift (100%) rename {RSWeb => Modules/RSWeb}/Tests/RSWebTests/StringTests.swift (100%) rename {Secrets => Modules/Secrets}/.gitignore (100%) rename {Secrets => Modules/Secrets}/Package.swift (100%) rename {Secrets => Modules/Secrets}/README.md (100%) rename {Secrets => Modules/Secrets}/Sources/Secrets/Credentials.swift (100%) rename {Secrets => Modules/Secrets}/Sources/Secrets/CredentialsManager.swift (100%) rename {Secrets => Modules/Secrets}/Sources/Secrets/SecretsManager.swift (100%) rename {Secrets => Modules/Secrets}/Sources/Secrets/SecretsProvider.swift (100%) rename {SyncDatabase => Modules/SyncDatabase}/.gitignore (100%) rename {SyncDatabase => Modules/SyncDatabase}/Package.swift (100%) rename {SyncDatabase => Modules/SyncDatabase}/README.md (100%) rename {SyncDatabase => Modules/SyncDatabase}/Sources/SyncDatabase/Constants.swift (100%) rename {SyncDatabase => Modules/SyncDatabase}/Sources/SyncDatabase/SyncDatabase.swift (100%) rename {SyncDatabase => Modules/SyncDatabase}/Sources/SyncDatabase/SyncStatus.swift (100%) rename {SyncDatabase => Modules/SyncDatabase}/Sources/SyncDatabase/SyncStatusTable.swift (100%) diff --git a/Account/.gitignore b/Modules/Account/.gitignore similarity index 100% rename from Account/.gitignore rename to Modules/Account/.gitignore diff --git a/Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme b/Modules/Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme similarity index 100% rename from Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme rename to Modules/Account/.swiftpm/xcode/xcshareddata/xcschemes/Account.xcscheme diff --git a/Account/Package.swift b/Modules/Account/Package.swift similarity index 100% rename from Account/Package.swift rename to Modules/Account/Package.swift diff --git a/Account/README.md b/Modules/Account/README.md similarity index 100% rename from Account/README.md rename to Modules/Account/README.md diff --git a/Account/Sources/Account/Account.swift b/Modules/Account/Sources/Account/Account.swift similarity index 100% rename from Account/Sources/Account/Account.swift rename to Modules/Account/Sources/Account/Account.swift diff --git a/Account/Sources/Account/AccountBehaviors.swift b/Modules/Account/Sources/Account/AccountBehaviors.swift similarity index 100% rename from Account/Sources/Account/AccountBehaviors.swift rename to Modules/Account/Sources/Account/AccountBehaviors.swift diff --git a/Account/Sources/Account/AccountDelegate.swift b/Modules/Account/Sources/Account/AccountDelegate.swift similarity index 100% rename from Account/Sources/Account/AccountDelegate.swift rename to Modules/Account/Sources/Account/AccountDelegate.swift diff --git a/Account/Sources/Account/AccountError.swift b/Modules/Account/Sources/Account/AccountError.swift similarity index 100% rename from Account/Sources/Account/AccountError.swift rename to Modules/Account/Sources/Account/AccountError.swift diff --git a/Account/Sources/Account/AccountManager.swift b/Modules/Account/Sources/Account/AccountManager.swift similarity index 100% rename from Account/Sources/Account/AccountManager.swift rename to Modules/Account/Sources/Account/AccountManager.swift diff --git a/Account/Sources/Account/AccountMetadata.swift b/Modules/Account/Sources/Account/AccountMetadata.swift similarity index 100% rename from Account/Sources/Account/AccountMetadata.swift rename to Modules/Account/Sources/Account/AccountMetadata.swift diff --git a/Account/Sources/Account/AccountMetadataFile.swift b/Modules/Account/Sources/Account/AccountMetadataFile.swift similarity index 100% rename from Account/Sources/Account/AccountMetadataFile.swift rename to Modules/Account/Sources/Account/AccountMetadataFile.swift diff --git a/Account/Sources/Account/ArticleFetcher.swift b/Modules/Account/Sources/Account/ArticleFetcher.swift similarity index 100% rename from Account/Sources/Account/ArticleFetcher.swift rename to Modules/Account/Sources/Account/ArticleFetcher.swift diff --git a/Account/Sources/Account/CloudKit/CKRecord+Extensions.swift b/Modules/Account/Sources/Account/CloudKit/CKRecord+Extensions.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CKRecord+Extensions.swift rename to Modules/Account/Sources/Account/CloudKit/CKRecord+Extensions.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitAccountDelegate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountZone.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitAccountZone.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitAccountZone.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitAccountZone.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitAccountZoneDelegate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitArticleStatusUpdate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZone.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitArticlesZoneDelegate.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitReceiveStatusOperation.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitRemoteNotificationOperation.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitSendStatusOperation.swift diff --git a/Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift b/Modules/Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift similarity index 100% rename from Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift rename to Modules/Account/Sources/Account/CloudKit/CloudKitWebDocumentation.swift diff --git a/Account/Sources/Account/CombinedRefreshProgress.swift b/Modules/Account/Sources/Account/CombinedRefreshProgress.swift similarity index 100% rename from Account/Sources/Account/CombinedRefreshProgress.swift rename to Modules/Account/Sources/Account/CombinedRefreshProgress.swift diff --git a/Account/Sources/Account/Container.swift b/Modules/Account/Sources/Account/Container.swift similarity index 100% rename from Account/Sources/Account/Container.swift rename to Modules/Account/Sources/Account/Container.swift diff --git a/Account/Sources/Account/ContainerIdentifier.swift b/Modules/Account/Sources/Account/ContainerIdentifier.swift similarity index 100% rename from Account/Sources/Account/ContainerIdentifier.swift rename to Modules/Account/Sources/Account/ContainerIdentifier.swift diff --git a/Account/Sources/Account/ContainerPath.swift b/Modules/Account/Sources/Account/ContainerPath.swift similarity index 100% rename from Account/Sources/Account/ContainerPath.swift rename to Modules/Account/Sources/Account/ContainerPath.swift diff --git a/Account/Sources/Account/DataExtensions.swift b/Modules/Account/Sources/Account/DataExtensions.swift similarity index 100% rename from Account/Sources/Account/DataExtensions.swift rename to Modules/Account/Sources/Account/DataExtensions.swift diff --git a/Account/Sources/Account/Feed.swift b/Modules/Account/Sources/Account/Feed.swift similarity index 100% rename from Account/Sources/Account/Feed.swift rename to Modules/Account/Sources/Account/Feed.swift diff --git a/Account/Sources/Account/FeedFinder/FeedFinder.swift b/Modules/Account/Sources/Account/FeedFinder/FeedFinder.swift similarity index 100% rename from Account/Sources/Account/FeedFinder/FeedFinder.swift rename to Modules/Account/Sources/Account/FeedFinder/FeedFinder.swift diff --git a/Account/Sources/Account/FeedFinder/FeedSpecifier.swift b/Modules/Account/Sources/Account/FeedFinder/FeedSpecifier.swift similarity index 100% rename from Account/Sources/Account/FeedFinder/FeedSpecifier.swift rename to Modules/Account/Sources/Account/FeedFinder/FeedSpecifier.swift diff --git a/Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift b/Modules/Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift similarity index 100% rename from Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift rename to Modules/Account/Sources/Account/FeedFinder/HTMLFeedFinder.swift diff --git a/Account/Sources/Account/FeedIdentifier.swift b/Modules/Account/Sources/Account/FeedIdentifier.swift similarity index 100% rename from Account/Sources/Account/FeedIdentifier.swift rename to Modules/Account/Sources/Account/FeedIdentifier.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinAPICaller.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinAPICaller.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinAPICaller.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinAPICaller.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinAccountDelegate.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinDate.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinDate.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinDate.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinDate.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinEntry.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinEntry.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinEntry.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinEntry.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinImportResult.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinImportResult.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinImportResult.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinImportResult.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinStarredEntry.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinSubscription.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinSubscription.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinSubscription.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinSubscription.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinTag.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinTag.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinTag.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinTag.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinTagging.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinTagging.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinTagging.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinTagging.swift diff --git a/Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift b/Modules/Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift similarity index 100% rename from Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift rename to Modules/Account/Sources/Account/Feedbin/FeedbinUnreadEntry.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAPICaller.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAPICaller.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAPICaller.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAPICaller.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate+OAuth.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegate.swift diff --git a/Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift b/Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyAccountDelegateError.swift diff --git a/Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift b/Modules/Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyFeedContainerValidator.swift diff --git a/Account/Sources/Account/Feedly/FeedlyResourceProviding.swift b/Modules/Account/Sources/Account/Feedly/FeedlyResourceProviding.swift similarity index 100% rename from Account/Sources/Account/Feedly/FeedlyResourceProviding.swift rename to Modules/Account/Sources/Account/Feedly/FeedlyResourceProviding.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyCategory.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyCategory.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyCategory.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyCategory.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyCollection.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyCollection.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyCollection.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyCollection.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyCollectionParser.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyEntry.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyEntry.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyEntry.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyEntry.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryIdentifierProviding.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyEntryParser.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyFeed.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyFeed.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyFeed.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyFeed.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedParser.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyFeedsSearchResponse.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyLink.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyLink.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyLink.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyLink.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyOrigin.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyRTLTextSanitizer.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyResourceId.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyStream.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyStream.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyStream.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyStream.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyStreamIds.swift diff --git a/Account/Sources/Account/Feedly/Models/FeedlyTag.swift b/Modules/Account/Sources/Account/Feedly/Models/FeedlyTag.swift similarity index 100% rename from Account/Sources/Account/Feedly/Models/FeedlyTag.swift rename to Modules/Account/Sources/Account/Feedly/Models/FeedlyTag.swift diff --git a/Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift b/Modules/Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAccountAuthorizationOperation.swift diff --git a/Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift b/Modules/Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAcessTokenRefreshing.swift diff --git a/Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift b/Modules/Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAuthorizationClient+Feedly.swift diff --git a/Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift b/Modules/Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift similarity index 100% rename from Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift rename to Modules/Account/Sources/Account/Feedly/OAuthAuthorizationCodeGranting.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddExistingFeedOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddFeedToCollectionOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyAddNewFeedOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyCheckpointOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyCreateFeedsForCollectionFoldersOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyDownloadArticlesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyFetchIdsForMissingArticlesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetCollectionsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetEntriesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamContentsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetStreamIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyGetUpdatedArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStarredArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestStreamArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyIngestUnreadArticleIdsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyLogoutOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyMirrorCollectionsAsFoldersOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyOrganiseParsedItemsByFeedOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyRefreshAccessTokenOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyRequestStreamsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySearchOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySendArticleStatusesOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncAllOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlySyncStreamContentsOperation.swift diff --git a/Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift b/Modules/Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift similarity index 100% rename from Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift rename to Modules/Account/Sources/Account/Feedly/Operations/FeedlyUpdateAccountFeedsWithItemsOperation.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetCollectionsService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetEntriesService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamContentsService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyGetStreamIdsService.swift diff --git a/Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift b/Modules/Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift similarity index 100% rename from Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift rename to Modules/Account/Sources/Account/Feedly/Services/FeedlyMarkArticlesService.swift diff --git a/Account/Sources/Account/Folder.swift b/Modules/Account/Sources/Account/Folder.swift similarity index 100% rename from Account/Sources/Account/Folder.swift rename to Modules/Account/Sources/Account/Folder.swift diff --git a/Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift b/Modules/Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift similarity index 100% rename from Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift rename to Modules/Account/Sources/Account/LocalAccount/InitialFeedDownloader.swift diff --git a/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift b/Modules/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift rename to Modules/Account/Sources/Account/LocalAccount/LocalAccountDelegate.swift diff --git a/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift b/Modules/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift similarity index 100% rename from Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift rename to Modules/Account/Sources/Account/LocalAccount/LocalAccountRefresher.swift diff --git a/Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift b/Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift rename to Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAPICaller+Internal.swift diff --git a/Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift b/Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift rename to Modules/Account/Sources/Account/NewsBlur/Internals/NewsBlurAccountDelegate+Internal.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeed.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFeedChange.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurFolderChange.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurGenericCodingKeys.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurLoginResponse.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStory.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryHash.swift diff --git a/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift b/Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift rename to Modules/Account/Sources/Account/NewsBlur/Models/NewsBlurStoryStatusChange.swift diff --git a/Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift b/Modules/Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift rename to Modules/Account/Sources/Account/NewsBlur/NewsBlurAPICaller.swift diff --git a/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift b/Modules/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift rename to Modules/Account/Sources/Account/NewsBlur/NewsBlurAccountDelegate.swift diff --git a/Account/Sources/Account/OPMLFile.swift b/Modules/Account/Sources/Account/OPMLFile.swift similarity index 100% rename from Account/Sources/Account/OPMLFile.swift rename to Modules/Account/Sources/Account/OPMLFile.swift diff --git a/Account/Sources/Account/OPMLNormalizer.swift b/Modules/Account/Sources/Account/OPMLNormalizer.swift similarity index 100% rename from Account/Sources/Account/OPMLNormalizer.swift rename to Modules/Account/Sources/Account/OPMLNormalizer.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIAccountDelegate.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPICaller.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIEntry.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPISubscription.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPITag.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPITag.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPITag.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPITag.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPITagging.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIUnreadEntry.swift diff --git a/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift b/Modules/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift similarity index 100% rename from Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift rename to Modules/Account/Sources/Account/ReaderAPI/ReaderAPIVariant.swift diff --git a/Account/Sources/Account/SingleArticleFetcher.swift b/Modules/Account/Sources/Account/SingleArticleFetcher.swift similarity index 100% rename from Account/Sources/Account/SingleArticleFetcher.swift rename to Modules/Account/Sources/Account/SingleArticleFetcher.swift diff --git a/Account/Sources/Account/URLRequest+Account.swift b/Modules/Account/Sources/Account/URLRequest+Account.swift similarity index 100% rename from Account/Sources/Account/URLRequest+Account.swift rename to Modules/Account/Sources/Account/URLRequest+Account.swift diff --git a/Account/Sources/Account/UnreadCountProvider.swift b/Modules/Account/Sources/Account/UnreadCountProvider.swift similarity index 100% rename from Account/Sources/Account/UnreadCountProvider.swift rename to Modules/Account/Sources/Account/UnreadCountProvider.swift diff --git a/Account/Sources/Account/WebFeed.swift b/Modules/Account/Sources/Account/WebFeed.swift similarity index 100% rename from Account/Sources/Account/WebFeed.swift rename to Modules/Account/Sources/Account/WebFeed.swift diff --git a/Account/Sources/Account/WebFeedMetadata.swift b/Modules/Account/Sources/Account/WebFeedMetadata.swift similarity index 100% rename from Account/Sources/Account/WebFeedMetadata.swift rename to Modules/Account/Sources/Account/WebFeedMetadata.swift diff --git a/Account/Sources/Account/WebFeedMetadataFile.swift b/Modules/Account/Sources/Account/WebFeedMetadataFile.swift similarity index 100% rename from Account/Sources/Account/WebFeedMetadataFile.swift rename to Modules/Account/Sources/Account/WebFeedMetadataFile.swift diff --git a/Account/Tests/AccountTests/AccountCredentialsTest.swift b/Modules/Account/Tests/AccountTests/AccountCredentialsTest.swift similarity index 100% rename from Account/Tests/AccountTests/AccountCredentialsTest.swift rename to Modules/Account/Tests/AccountTests/AccountCredentialsTest.swift diff --git a/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift b/Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift similarity index 100% rename from Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift rename to Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderContentsSyncTest.swift diff --git a/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift b/Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift similarity index 100% rename from Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift rename to Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinFolderSyncTest.swift diff --git a/Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift b/Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift similarity index 100% rename from Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift rename to Modules/Account/Tests/AccountTests/Feedbin/AccountFeedbinSyncTest.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyCheckpointOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyCollectionParserTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyCreateFeedsForCollectionFoldersOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyEntryParserTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyFeedParserTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyGetCollectionsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamContentsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyGetStreamIdsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyLogoutOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyMirrorCollectionsAsFoldersOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyOrganiseParsedItemsByFeedOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyRefreshAccessTokenOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyResourceIdTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlySendArticleStatusesOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlySyncAllMockResponseProvider.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlySyncStreamContentsOperationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyTestSecrets.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyTestSecrets.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyTestSecrets.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyTestSecrets.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyTestSupport.swift diff --git a/Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift b/Modules/Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift rename to Modules/Account/Tests/AccountTests/Feedly/FeedlyTextSanitizationTests.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetCollectionsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetEntriesService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamContentsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetPagedStreamIdsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetStreamContentsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestGetStreamIdsService.swift diff --git a/Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift b/Modules/Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift similarity index 100% rename from Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift rename to Modules/Account/Tests/AccountTests/Feedly/TestMarkArticlesService.swift diff --git a/Account/Tests/AccountTests/JSON/feedly_collections_initial.json b/Modules/Account/Tests/AccountTests/JSON/feedly_collections_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_collections_initial.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_collections_initial.json diff --git a/Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json b/Modules/Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_macintosh_initial.json diff --git a/Account/Tests/AccountTests/JSON/feedly_unreads_1000.json b/Modules/Account/Tests/AccountTests/JSON/feedly_unreads_1000.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_unreads_1000.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_unreads_1000.json diff --git a/Account/Tests/AccountTests/JSON/feedly_unreads_initial.json b/Modules/Account/Tests/AccountTests/JSON/feedly_unreads_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/feedly_unreads_initial.json rename to Modules/Account/Tests/AccountTests/JSON/feedly_unreads_initial.json diff --git a/Account/Tests/AccountTests/JSON/subscriptions_add.json b/Modules/Account/Tests/AccountTests/JSON/subscriptions_add.json similarity index 100% rename from Account/Tests/AccountTests/JSON/subscriptions_add.json rename to Modules/Account/Tests/AccountTests/JSON/subscriptions_add.json diff --git a/Account/Tests/AccountTests/JSON/subscriptions_initial.json b/Modules/Account/Tests/AccountTests/JSON/subscriptions_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/subscriptions_initial.json rename to Modules/Account/Tests/AccountTests/JSON/subscriptions_initial.json diff --git a/Account/Tests/AccountTests/JSON/taggings_add.json b/Modules/Account/Tests/AccountTests/JSON/taggings_add.json similarity index 100% rename from Account/Tests/AccountTests/JSON/taggings_add.json rename to Modules/Account/Tests/AccountTests/JSON/taggings_add.json diff --git a/Account/Tests/AccountTests/JSON/taggings_delete.json b/Modules/Account/Tests/AccountTests/JSON/taggings_delete.json similarity index 100% rename from Account/Tests/AccountTests/JSON/taggings_delete.json rename to Modules/Account/Tests/AccountTests/JSON/taggings_delete.json diff --git a/Account/Tests/AccountTests/JSON/taggings_initial.json b/Modules/Account/Tests/AccountTests/JSON/taggings_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/taggings_initial.json rename to Modules/Account/Tests/AccountTests/JSON/taggings_initial.json diff --git a/Account/Tests/AccountTests/JSON/tags_add.json b/Modules/Account/Tests/AccountTests/JSON/tags_add.json similarity index 100% rename from Account/Tests/AccountTests/JSON/tags_add.json rename to Modules/Account/Tests/AccountTests/JSON/tags_add.json diff --git a/Account/Tests/AccountTests/JSON/tags_delete.json b/Modules/Account/Tests/AccountTests/JSON/tags_delete.json similarity index 100% rename from Account/Tests/AccountTests/JSON/tags_delete.json rename to Modules/Account/Tests/AccountTests/JSON/tags_delete.json diff --git a/Account/Tests/AccountTests/JSON/tags_initial.json b/Modules/Account/Tests/AccountTests/JSON/tags_initial.json similarity index 100% rename from Account/Tests/AccountTests/JSON/tags_initial.json rename to Modules/Account/Tests/AccountTests/JSON/tags_initial.json diff --git a/Account/Tests/AccountTests/TestAccountManager.swift b/Modules/Account/Tests/AccountTests/TestAccountManager.swift similarity index 100% rename from Account/Tests/AccountTests/TestAccountManager.swift rename to Modules/Account/Tests/AccountTests/TestAccountManager.swift diff --git a/Account/Tests/AccountTests/TestTransport.swift b/Modules/Account/Tests/AccountTests/TestTransport.swift similarity index 100% rename from Account/Tests/AccountTests/TestTransport.swift rename to Modules/Account/Tests/AccountTests/TestTransport.swift diff --git a/Account/Tests/LinuxMain.swift b/Modules/Account/Tests/LinuxMain.swift similarity index 100% rename from Account/Tests/LinuxMain.swift rename to Modules/Account/Tests/LinuxMain.swift diff --git a/Articles/.gitignore b/Modules/Articles/.gitignore similarity index 100% rename from Articles/.gitignore rename to Modules/Articles/.gitignore diff --git a/Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme b/Modules/Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme similarity index 100% rename from Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme rename to Modules/Articles/.swiftpm/xcode/xcshareddata/xcschemes/Articles.xcscheme diff --git a/Articles/Package.swift b/Modules/Articles/Package.swift similarity index 100% rename from Articles/Package.swift rename to Modules/Articles/Package.swift diff --git a/Articles/README.md b/Modules/Articles/README.md similarity index 100% rename from Articles/README.md rename to Modules/Articles/README.md diff --git a/Articles/Sources/Articles/Article.swift b/Modules/Articles/Sources/Articles/Article.swift similarity index 100% rename from Articles/Sources/Articles/Article.swift rename to Modules/Articles/Sources/Articles/Article.swift diff --git a/Articles/Sources/Articles/ArticleStatus.swift b/Modules/Articles/Sources/Articles/ArticleStatus.swift similarity index 100% rename from Articles/Sources/Articles/ArticleStatus.swift rename to Modules/Articles/Sources/Articles/ArticleStatus.swift diff --git a/Articles/Sources/Articles/Author.swift b/Modules/Articles/Sources/Articles/Author.swift similarity index 100% rename from Articles/Sources/Articles/Author.swift rename to Modules/Articles/Sources/Articles/Author.swift diff --git a/Articles/Sources/Articles/DatabaseID.swift b/Modules/Articles/Sources/Articles/DatabaseID.swift similarity index 100% rename from Articles/Sources/Articles/DatabaseID.swift rename to Modules/Articles/Sources/Articles/DatabaseID.swift diff --git a/ArticlesDatabase/.gitignore b/Modules/ArticlesDatabase/.gitignore similarity index 100% rename from ArticlesDatabase/.gitignore rename to Modules/ArticlesDatabase/.gitignore diff --git a/ArticlesDatabase/Package.swift b/Modules/ArticlesDatabase/Package.swift similarity index 100% rename from ArticlesDatabase/Package.swift rename to Modules/ArticlesDatabase/Package.swift diff --git a/ArticlesDatabase/README.md b/Modules/ArticlesDatabase/README.md similarity index 100% rename from ArticlesDatabase/README.md rename to Modules/ArticlesDatabase/README.md diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesDatabase.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/ArticlesTable.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/AuthorsTable.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Constants.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Article+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ArticleStatus+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/Author+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/DatabaseObject+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/ParsedArticle+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Extensions/RelatedObjectsMap+Database.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchAllUnreadCountsOperation.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchFeedUnreadCountOperation.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/Operations/FetchUnreadCountsForFeedsOperation.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/SearchTable.swift diff --git a/ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift b/Modules/ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift similarity index 100% rename from ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift rename to Modules/ArticlesDatabase/Sources/ArticlesDatabase/StatusesTable.swift diff --git a/RSCore/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/Modules/RSCore/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata similarity index 100% rename from RSCore/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata rename to Modules/RSCore/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/RSCore/Package.swift b/Modules/RSCore/Package.swift similarity index 100% rename from RSCore/Package.swift rename to Modules/RSCore/Package.swift diff --git a/RSCore/README.md b/Modules/RSCore/README.md similarity index 100% rename from RSCore/README.md rename to Modules/RSCore/README.md diff --git a/RSCore/Sources/RSCore/AppKit/FourCharCode.swift b/Modules/RSCore/Sources/RSCore/AppKit/FourCharCode.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/FourCharCode.swift rename to Modules/RSCore/Sources/RSCore/AppKit/FourCharCode.swift diff --git a/RSCore/Sources/RSCore/AppKit/Keyboard.swift b/Modules/RSCore/Sources/RSCore/AppKit/Keyboard.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/Keyboard.swift rename to Modules/RSCore/Sources/RSCore/AppKit/Keyboard.swift diff --git a/RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift b/Modules/RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift rename to Modules/RSCore/Sources/RSCore/AppKit/KeyboardDelegateProtocol.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSAppearance+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSAppleEventDescriptor+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSImage+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSMenu+Extensions.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSOutlineView+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSPasteboard+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSResponder-Extensions.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSTableView+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSToolbar+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSView+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSWindow-Extensions.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSWindowController+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift b/Modules/RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift rename to Modules/RSCore/Sources/RSCore/AppKit/NSWorkspace+RSCore.swift diff --git a/RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift b/Modules/RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift rename to Modules/RSCore/Sources/RSCore/AppKit/PasteboardWriterOwner.swift diff --git a/RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift b/Modules/RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift rename to Modules/RSCore/Sources/RSCore/AppKit/RSAppMovementMonitor.swift diff --git a/RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift b/Modules/RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift rename to Modules/RSCore/Sources/RSCore/AppKit/RSDarkModeAdaptingToolbarButton.swift diff --git a/RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift b/Modules/RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift rename to Modules/RSCore/Sources/RSCore/AppKit/RSToolbarItem.swift diff --git a/RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift b/Modules/RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift rename to Modules/RSCore/Sources/RSCore/AppKit/URLPasteboardWriter.swift diff --git a/RSCore/Sources/RSCore/AppKit/UserApp.swift b/Modules/RSCore/Sources/RSCore/AppKit/UserApp.swift similarity index 100% rename from RSCore/Sources/RSCore/AppKit/UserApp.swift rename to Modules/RSCore/Sources/RSCore/AppKit/UserApp.swift diff --git a/RSCore/Sources/RSCore/CloudKit/CloudKitError.swift b/Modules/RSCore/Sources/RSCore/CloudKit/CloudKitError.swift similarity index 100% rename from RSCore/Sources/RSCore/CloudKit/CloudKitError.swift rename to Modules/RSCore/Sources/RSCore/CloudKit/CloudKitError.swift diff --git a/RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift b/Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift similarity index 100% rename from RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift rename to Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZone.swift diff --git a/RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift b/Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift similarity index 100% rename from RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift rename to Modules/RSCore/Sources/RSCore/CloudKit/CloudKitZoneResult.swift diff --git a/RSCore/Sources/RSCore/RSCore.swift b/Modules/RSCore/Sources/RSCore/RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/RSCore.swift rename to Modules/RSCore/Sources/RSCore/RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/AppConfig.swift b/Modules/RSCore/Sources/RSCore/Shared/AppConfig.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/AppConfig.swift rename to Modules/RSCore/Sources/RSCore/Shared/AppConfig.swift diff --git a/RSCore/Sources/RSCore/Shared/Array+RSCore.swift b/Modules/RSCore/Sources/RSCore/Shared/Array+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Array+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Shared/Array+RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/BatchUpdate.swift b/Modules/RSCore/Sources/RSCore/Shared/BatchUpdate.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/BatchUpdate.swift rename to Modules/RSCore/Sources/RSCore/Shared/BatchUpdate.swift diff --git a/RSCore/Sources/RSCore/Shared/BinaryDiskCache.swift b/Modules/RSCore/Sources/RSCore/Shared/BinaryDiskCache.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/BinaryDiskCache.swift rename to Modules/RSCore/Sources/RSCore/Shared/BinaryDiskCache.swift diff --git a/RSCore/Sources/RSCore/Shared/Blocks.swift b/Modules/RSCore/Sources/RSCore/Shared/Blocks.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Blocks.swift rename to Modules/RSCore/Sources/RSCore/Shared/Blocks.swift diff --git a/RSCore/Sources/RSCore/Shared/Cache.swift b/Modules/RSCore/Sources/RSCore/Shared/Cache.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Cache.swift rename to Modules/RSCore/Sources/RSCore/Shared/Cache.swift diff --git a/RSCore/Sources/RSCore/Shared/Calendar+RSCore.swift b/Modules/RSCore/Sources/RSCore/Shared/Calendar+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Calendar+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Shared/Calendar+RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/Character+RSCore.swift b/Modules/RSCore/Sources/RSCore/Shared/Character+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Character+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Shared/Character+RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/CoalescingQueue.swift b/Modules/RSCore/Sources/RSCore/Shared/CoalescingQueue.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/CoalescingQueue.swift rename to Modules/RSCore/Sources/RSCore/Shared/CoalescingQueue.swift diff --git a/RSCore/Sources/RSCore/Shared/Data+RSCore.swift b/Modules/RSCore/Sources/RSCore/Shared/Data+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Data+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Shared/Data+RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/Date+Extensions.swift b/Modules/RSCore/Sources/RSCore/Shared/Date+Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Date+Extensions.swift rename to Modules/RSCore/Sources/RSCore/Shared/Date+Extensions.swift diff --git a/RSCore/Sources/RSCore/Shared/DisplayNameProvider.swift b/Modules/RSCore/Sources/RSCore/Shared/DisplayNameProvider.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/DisplayNameProvider.swift rename to Modules/RSCore/Sources/RSCore/Shared/DisplayNameProvider.swift diff --git a/RSCore/Sources/RSCore/Shared/FileManager+RSCore.swift b/Modules/RSCore/Sources/RSCore/Shared/FileManager+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/FileManager+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Shared/FileManager+RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/Geometry.swift b/Modules/RSCore/Sources/RSCore/Shared/Geometry.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Geometry.swift rename to Modules/RSCore/Sources/RSCore/Shared/Geometry.swift diff --git a/RSCore/Sources/RSCore/Shared/MacroProcessor.swift b/Modules/RSCore/Sources/RSCore/Shared/MacroProcessor.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/MacroProcessor.swift rename to Modules/RSCore/Sources/RSCore/Shared/MacroProcessor.swift diff --git a/RSCore/Sources/RSCore/Shared/MainThreadBlockOperation.swift b/Modules/RSCore/Sources/RSCore/Shared/MainThreadBlockOperation.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/MainThreadBlockOperation.swift rename to Modules/RSCore/Sources/RSCore/Shared/MainThreadBlockOperation.swift diff --git a/RSCore/Sources/RSCore/Shared/MainThreadOperation.swift b/Modules/RSCore/Sources/RSCore/Shared/MainThreadOperation.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/MainThreadOperation.swift rename to Modules/RSCore/Sources/RSCore/Shared/MainThreadOperation.swift diff --git a/RSCore/Sources/RSCore/Shared/MainThreadOperationQueue.swift b/Modules/RSCore/Sources/RSCore/Shared/MainThreadOperationQueue.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/MainThreadOperationQueue.swift rename to Modules/RSCore/Sources/RSCore/Shared/MainThreadOperationQueue.swift diff --git a/RSCore/Sources/RSCore/Shared/ManagedResourceFile.swift b/Modules/RSCore/Sources/RSCore/Shared/ManagedResourceFile.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/ManagedResourceFile.swift rename to Modules/RSCore/Sources/RSCore/Shared/ManagedResourceFile.swift diff --git a/RSCore/Sources/RSCore/Shared/OPMLRepresentable.swift b/Modules/RSCore/Sources/RSCore/Shared/OPMLRepresentable.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/OPMLRepresentable.swift rename to Modules/RSCore/Sources/RSCore/Shared/OPMLRepresentable.swift diff --git a/RSCore/Sources/RSCore/Shared/Platform.swift b/Modules/RSCore/Sources/RSCore/Shared/Platform.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Platform.swift rename to Modules/RSCore/Sources/RSCore/Shared/Platform.swift diff --git a/RSCore/Sources/RSCore/Shared/PropertyList.swift b/Modules/RSCore/Sources/RSCore/Shared/PropertyList.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/PropertyList.swift rename to Modules/RSCore/Sources/RSCore/Shared/PropertyList.swift diff --git a/RSCore/Sources/RSCore/Shared/RSImage.swift b/Modules/RSCore/Sources/RSCore/Shared/RSImage.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/RSImage.swift rename to Modules/RSCore/Sources/RSCore/Shared/RSImage.swift diff --git a/RSCore/Sources/RSCore/Shared/RSScreen.swift b/Modules/RSCore/Sources/RSCore/Shared/RSScreen.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/RSScreen.swift rename to Modules/RSCore/Sources/RSCore/Shared/RSScreen.swift diff --git a/RSCore/Sources/RSCore/Shared/Renamable.swift b/Modules/RSCore/Sources/RSCore/Shared/Renamable.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Renamable.swift rename to Modules/RSCore/Sources/RSCore/Shared/Renamable.swift diff --git a/RSCore/Sources/RSCore/Shared/SendToBlogEditorApp.swift b/Modules/RSCore/Sources/RSCore/Shared/SendToBlogEditorApp.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/SendToBlogEditorApp.swift rename to Modules/RSCore/Sources/RSCore/Shared/SendToBlogEditorApp.swift diff --git a/RSCore/Sources/RSCore/Shared/SendToCommand.swift b/Modules/RSCore/Sources/RSCore/Shared/SendToCommand.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/SendToCommand.swift rename to Modules/RSCore/Sources/RSCore/Shared/SendToCommand.swift diff --git a/RSCore/Sources/RSCore/Shared/Set+Extensions.swift b/Modules/RSCore/Sources/RSCore/Shared/Set+Extensions.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/Set+Extensions.swift rename to Modules/RSCore/Sources/RSCore/Shared/Set+Extensions.swift diff --git a/RSCore/Sources/RSCore/Shared/String+RSCore.swift b/Modules/RSCore/Sources/RSCore/Shared/String+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/String+RSCore.swift rename to Modules/RSCore/Sources/RSCore/Shared/String+RSCore.swift diff --git a/RSCore/Sources/RSCore/Shared/UndoableCommand.swift b/Modules/RSCore/Sources/RSCore/Shared/UndoableCommand.swift similarity index 100% rename from RSCore/Sources/RSCore/Shared/UndoableCommand.swift rename to Modules/RSCore/Sources/RSCore/Shared/UndoableCommand.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIResponder+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIView+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIViewController+RSCore.swift diff --git a/RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift b/Modules/RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift similarity index 100% rename from RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift rename to Modules/RSCore/Sources/RSCore/UIKit/UIWindow+RSCore.swift diff --git a/RSCore/Sources/RSCoreObjC/NSData+RSCore.h b/Modules/RSCore/Sources/RSCoreObjC/NSData+RSCore.h similarity index 100% rename from RSCore/Sources/RSCoreObjC/NSData+RSCore.h rename to Modules/RSCore/Sources/RSCoreObjC/NSData+RSCore.h diff --git a/RSCore/Sources/RSCoreObjC/NSData+RSCore.m b/Modules/RSCore/Sources/RSCoreObjC/NSData+RSCore.m similarity index 100% rename from RSCore/Sources/RSCoreObjC/NSData+RSCore.m rename to Modules/RSCore/Sources/RSCoreObjC/NSData+RSCore.m diff --git a/RSCore/Sources/RSCoreObjC/include/RSCore.h b/Modules/RSCore/Sources/RSCoreObjC/include/RSCore.h similarity index 100% rename from RSCore/Sources/RSCoreObjC/include/RSCore.h rename to Modules/RSCore/Sources/RSCoreObjC/include/RSCore.h diff --git a/RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift b/Modules/RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift similarity index 100% rename from RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift rename to Modules/RSCore/Sources/RSCoreResources/AppKit/IndeterminateProgressWindowController.swift diff --git a/RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift b/Modules/RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift similarity index 100% rename from RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift rename to Modules/RSCore/Sources/RSCoreResources/AppKit/WebViewWindowController.swift diff --git a/RSCore/Sources/RSCoreResources/RSCoreResources.swift b/Modules/RSCore/Sources/RSCoreResources/RSCoreResources.swift similarity index 100% rename from RSCore/Sources/RSCoreResources/RSCoreResources.swift rename to Modules/RSCore/Sources/RSCoreResources/RSCoreResources.swift diff --git a/RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib b/Modules/RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib similarity index 100% rename from RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib rename to Modules/RSCore/Sources/RSCoreResources/Resources/IndeterminateProgressWindow.xib diff --git a/RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib b/Modules/RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib similarity index 100% rename from RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib rename to Modules/RSCore/Sources/RSCoreResources/Resources/WebViewWindow.xib diff --git a/RSCore/Tests/LinuxMain.swift b/Modules/RSCore/Tests/LinuxMain.swift similarity index 100% rename from RSCore/Tests/LinuxMain.swift rename to Modules/RSCore/Tests/LinuxMain.swift diff --git a/RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift b/Modules/RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift rename to Modules/RSCore/Tests/RSCoreTests/Data+RSCoreTests.swift diff --git a/RSCore/Tests/RSCoreTests/MacroProcessorTests.swift b/Modules/RSCore/Tests/RSCoreTests/MacroProcessorTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/MacroProcessorTests.swift rename to Modules/RSCore/Tests/RSCoreTests/MacroProcessorTests.swift diff --git a/RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift b/Modules/RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift rename to Modules/RSCore/Tests/RSCoreTests/MainThreadOperationTests.swift diff --git a/RSCore/Tests/RSCoreTests/RSCoreTests.swift b/Modules/RSCore/Tests/RSCoreTests/RSCoreTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/RSCoreTests.swift rename to Modules/RSCore/Tests/RSCoreTests/RSCoreTests.swift diff --git a/RSCore/Tests/RSCoreTests/String+RSCoreTests.swift b/Modules/RSCore/Tests/RSCoreTests/String+RSCoreTests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/String+RSCoreTests.swift rename to Modules/RSCore/Tests/RSCoreTests/String+RSCoreTests.swift diff --git a/RSCore/Tests/RSCoreTests/XCTestManifests.swift b/Modules/RSCore/Tests/RSCoreTests/XCTestManifests.swift similarity index 100% rename from RSCore/Tests/RSCoreTests/XCTestManifests.swift rename to Modules/RSCore/Tests/RSCoreTests/XCTestManifests.swift diff --git a/RSDatabase/Package.swift b/Modules/RSDatabase/Package.swift similarity index 100% rename from RSDatabase/Package.swift rename to Modules/RSDatabase/Package.swift diff --git a/RSDatabase/Sources/RSDatabase/Database.swift b/Modules/RSDatabase/Sources/RSDatabase/Database.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Database.swift rename to Modules/RSDatabase/Sources/RSDatabase/Database.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseObject.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseObject.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseObject.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseObject.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseObjectCache.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseQueue.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseQueue.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseQueue.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseQueue.swift diff --git a/RSDatabase/Sources/RSDatabase/DatabaseTable.swift b/Modules/RSDatabase/Sources/RSDatabase/DatabaseTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/DatabaseTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/DatabaseTable.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODB.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODB.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODB.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODB.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBObject.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBObject.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBObject.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBObject.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBPath.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBPath.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBPath.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBPath.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBRawValueTable.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBRawValueTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBRawValueTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBRawValueTable.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBTable.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBTable.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBTablesTable.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBTablesTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBTablesTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBTablesTable.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBValue.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBValue.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBValue.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBValue.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBValueObject.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBValueObject.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBValueObject.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBValueObject.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/ODBValuesTable.swift b/Modules/RSDatabase/Sources/RSDatabase/ODB/ODBValuesTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/ODBValuesTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/ODB/ODBValuesTable.swift diff --git a/RSDatabase/Sources/RSDatabase/ODB/README.markdown b/Modules/RSDatabase/Sources/RSDatabase/ODB/README.markdown similarity index 100% rename from RSDatabase/Sources/RSDatabase/ODB/README.markdown rename to Modules/RSDatabase/Sources/RSDatabase/ODB/README.markdown diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseLookupTable.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/DatabaseRelatedObjectsTable.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectIDsMap.swift diff --git a/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift b/Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift similarity index 100% rename from RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift rename to Modules/RSDatabase/Sources/RSDatabase/Related Objects/RelatedObjectsMap.swift diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase+RSExtras.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabase.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMDatabaseAdditions.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet+RSExtras.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/FMResultSet.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/NSString+RSDatabase.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.h diff --git a/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m b/Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m rename to Modules/RSDatabase/Sources/RSDatabaseObjC/RSDatabaseQueue.m diff --git a/RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h b/Modules/RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h similarity index 100% rename from RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h rename to Modules/RSDatabase/Sources/RSDatabaseObjC/include/RSDatabaseObjC.h diff --git a/RSDatabase/Tests/RSDatabaseTests/ODBTests.swift b/Modules/RSDatabase/Tests/RSDatabaseTests/ODBTests.swift similarity index 100% rename from RSDatabase/Tests/RSDatabaseTests/ODBTests.swift rename to Modules/RSDatabase/Tests/RSDatabaseTests/ODBTests.swift diff --git a/RSParser/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata b/Modules/RSParser/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata similarity index 100% rename from RSParser/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata rename to Modules/RSParser/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/RSParser/Package.swift b/Modules/RSParser/Package.swift similarity index 100% rename from RSParser/Package.swift rename to Modules/RSParser/Package.swift diff --git a/RSParser/README.md b/Modules/RSParser/README.md similarity index 100% rename from RSParser/README.md rename to Modules/RSParser/README.md diff --git a/RSParser/Sources/ObjC/FeedParser.h b/Modules/RSParser/Sources/ObjC/FeedParser.h similarity index 100% rename from RSParser/Sources/ObjC/FeedParser.h rename to Modules/RSParser/Sources/ObjC/FeedParser.h diff --git a/RSParser/Sources/ObjC/NSData+RSParser.h b/Modules/RSParser/Sources/ObjC/NSData+RSParser.h similarity index 100% rename from RSParser/Sources/ObjC/NSData+RSParser.h rename to Modules/RSParser/Sources/ObjC/NSData+RSParser.h diff --git a/RSParser/Sources/ObjC/NSData+RSParser.m b/Modules/RSParser/Sources/ObjC/NSData+RSParser.m similarity index 100% rename from RSParser/Sources/ObjC/NSData+RSParser.m rename to Modules/RSParser/Sources/ObjC/NSData+RSParser.m diff --git a/RSParser/Sources/ObjC/NSString+RSParser.h b/Modules/RSParser/Sources/ObjC/NSString+RSParser.h similarity index 100% rename from RSParser/Sources/ObjC/NSString+RSParser.h rename to Modules/RSParser/Sources/ObjC/NSString+RSParser.h diff --git a/RSParser/Sources/ObjC/NSString+RSParser.m b/Modules/RSParser/Sources/ObjC/NSString+RSParser.m similarity index 100% rename from RSParser/Sources/ObjC/NSString+RSParser.m rename to Modules/RSParser/Sources/ObjC/NSString+RSParser.m diff --git a/RSParser/Sources/ObjC/ParserData.h b/Modules/RSParser/Sources/ObjC/ParserData.h similarity index 100% rename from RSParser/Sources/ObjC/ParserData.h rename to Modules/RSParser/Sources/ObjC/ParserData.h diff --git a/RSParser/Sources/ObjC/ParserData.m b/Modules/RSParser/Sources/ObjC/ParserData.m similarity index 100% rename from RSParser/Sources/ObjC/ParserData.m rename to Modules/RSParser/Sources/ObjC/ParserData.m diff --git a/RSParser/Sources/ObjC/RSAtomParser.h b/Modules/RSParser/Sources/ObjC/RSAtomParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSAtomParser.h rename to Modules/RSParser/Sources/ObjC/RSAtomParser.h diff --git a/RSParser/Sources/ObjC/RSAtomParser.m b/Modules/RSParser/Sources/ObjC/RSAtomParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSAtomParser.m rename to Modules/RSParser/Sources/ObjC/RSAtomParser.m diff --git a/RSParser/Sources/ObjC/RSDateParser.h b/Modules/RSParser/Sources/ObjC/RSDateParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSDateParser.h rename to Modules/RSParser/Sources/ObjC/RSDateParser.h diff --git a/RSParser/Sources/ObjC/RSDateParser.m b/Modules/RSParser/Sources/ObjC/RSDateParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSDateParser.m rename to Modules/RSParser/Sources/ObjC/RSDateParser.m diff --git a/RSParser/Sources/ObjC/RSHTMLLinkParser.h b/Modules/RSParser/Sources/ObjC/RSHTMLLinkParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLLinkParser.h rename to Modules/RSParser/Sources/ObjC/RSHTMLLinkParser.h diff --git a/RSParser/Sources/ObjC/RSHTMLLinkParser.m b/Modules/RSParser/Sources/ObjC/RSHTMLLinkParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLLinkParser.m rename to Modules/RSParser/Sources/ObjC/RSHTMLLinkParser.m diff --git a/RSParser/Sources/ObjC/RSHTMLMetadata.h b/Modules/RSParser/Sources/ObjC/RSHTMLMetadata.h similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLMetadata.h rename to Modules/RSParser/Sources/ObjC/RSHTMLMetadata.h diff --git a/RSParser/Sources/ObjC/RSHTMLMetadata.m b/Modules/RSParser/Sources/ObjC/RSHTMLMetadata.m similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLMetadata.m rename to Modules/RSParser/Sources/ObjC/RSHTMLMetadata.m diff --git a/RSParser/Sources/ObjC/RSHTMLMetadataParser.h b/Modules/RSParser/Sources/ObjC/RSHTMLMetadataParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLMetadataParser.h rename to Modules/RSParser/Sources/ObjC/RSHTMLMetadataParser.h diff --git a/RSParser/Sources/ObjC/RSHTMLMetadataParser.m b/Modules/RSParser/Sources/ObjC/RSHTMLMetadataParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLMetadataParser.m rename to Modules/RSParser/Sources/ObjC/RSHTMLMetadataParser.m diff --git a/RSParser/Sources/ObjC/RSHTMLTag.h b/Modules/RSParser/Sources/ObjC/RSHTMLTag.h similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLTag.h rename to Modules/RSParser/Sources/ObjC/RSHTMLTag.h diff --git a/RSParser/Sources/ObjC/RSHTMLTag.m b/Modules/RSParser/Sources/ObjC/RSHTMLTag.m similarity index 100% rename from RSParser/Sources/ObjC/RSHTMLTag.m rename to Modules/RSParser/Sources/ObjC/RSHTMLTag.m diff --git a/RSParser/Sources/ObjC/RSOPMLAttributes.h b/Modules/RSParser/Sources/ObjC/RSOPMLAttributes.h similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLAttributes.h rename to Modules/RSParser/Sources/ObjC/RSOPMLAttributes.h diff --git a/RSParser/Sources/ObjC/RSOPMLAttributes.m b/Modules/RSParser/Sources/ObjC/RSOPMLAttributes.m similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLAttributes.m rename to Modules/RSParser/Sources/ObjC/RSOPMLAttributes.m diff --git a/RSParser/Sources/ObjC/RSOPMLDocument.h b/Modules/RSParser/Sources/ObjC/RSOPMLDocument.h similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLDocument.h rename to Modules/RSParser/Sources/ObjC/RSOPMLDocument.h diff --git a/RSParser/Sources/ObjC/RSOPMLDocument.m b/Modules/RSParser/Sources/ObjC/RSOPMLDocument.m similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLDocument.m rename to Modules/RSParser/Sources/ObjC/RSOPMLDocument.m diff --git a/RSParser/Sources/ObjC/RSOPMLError.h b/Modules/RSParser/Sources/ObjC/RSOPMLError.h similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLError.h rename to Modules/RSParser/Sources/ObjC/RSOPMLError.h diff --git a/RSParser/Sources/ObjC/RSOPMLError.m b/Modules/RSParser/Sources/ObjC/RSOPMLError.m similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLError.m rename to Modules/RSParser/Sources/ObjC/RSOPMLError.m diff --git a/RSParser/Sources/ObjC/RSOPMLFeedSpecifier.h b/Modules/RSParser/Sources/ObjC/RSOPMLFeedSpecifier.h similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLFeedSpecifier.h rename to Modules/RSParser/Sources/ObjC/RSOPMLFeedSpecifier.h diff --git a/RSParser/Sources/ObjC/RSOPMLFeedSpecifier.m b/Modules/RSParser/Sources/ObjC/RSOPMLFeedSpecifier.m similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLFeedSpecifier.m rename to Modules/RSParser/Sources/ObjC/RSOPMLFeedSpecifier.m diff --git a/RSParser/Sources/ObjC/RSOPMLItem.h b/Modules/RSParser/Sources/ObjC/RSOPMLItem.h similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLItem.h rename to Modules/RSParser/Sources/ObjC/RSOPMLItem.h diff --git a/RSParser/Sources/ObjC/RSOPMLItem.m b/Modules/RSParser/Sources/ObjC/RSOPMLItem.m similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLItem.m rename to Modules/RSParser/Sources/ObjC/RSOPMLItem.m diff --git a/RSParser/Sources/ObjC/RSOPMLParser.h b/Modules/RSParser/Sources/ObjC/RSOPMLParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLParser.h rename to Modules/RSParser/Sources/ObjC/RSOPMLParser.h diff --git a/RSParser/Sources/ObjC/RSOPMLParser.m b/Modules/RSParser/Sources/ObjC/RSOPMLParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSOPMLParser.m rename to Modules/RSParser/Sources/ObjC/RSOPMLParser.m diff --git a/RSParser/Sources/ObjC/RSParsedArticle.h b/Modules/RSParser/Sources/ObjC/RSParsedArticle.h similarity index 100% rename from RSParser/Sources/ObjC/RSParsedArticle.h rename to Modules/RSParser/Sources/ObjC/RSParsedArticle.h diff --git a/RSParser/Sources/ObjC/RSParsedArticle.m b/Modules/RSParser/Sources/ObjC/RSParsedArticle.m similarity index 100% rename from RSParser/Sources/ObjC/RSParsedArticle.m rename to Modules/RSParser/Sources/ObjC/RSParsedArticle.m diff --git a/RSParser/Sources/ObjC/RSParsedAuthor.h b/Modules/RSParser/Sources/ObjC/RSParsedAuthor.h similarity index 100% rename from RSParser/Sources/ObjC/RSParsedAuthor.h rename to Modules/RSParser/Sources/ObjC/RSParsedAuthor.h diff --git a/RSParser/Sources/ObjC/RSParsedAuthor.m b/Modules/RSParser/Sources/ObjC/RSParsedAuthor.m similarity index 100% rename from RSParser/Sources/ObjC/RSParsedAuthor.m rename to Modules/RSParser/Sources/ObjC/RSParsedAuthor.m diff --git a/RSParser/Sources/ObjC/RSParsedEnclosure.h b/Modules/RSParser/Sources/ObjC/RSParsedEnclosure.h similarity index 100% rename from RSParser/Sources/ObjC/RSParsedEnclosure.h rename to Modules/RSParser/Sources/ObjC/RSParsedEnclosure.h diff --git a/RSParser/Sources/ObjC/RSParsedEnclosure.m b/Modules/RSParser/Sources/ObjC/RSParsedEnclosure.m similarity index 100% rename from RSParser/Sources/ObjC/RSParsedEnclosure.m rename to Modules/RSParser/Sources/ObjC/RSParsedEnclosure.m diff --git a/RSParser/Sources/ObjC/RSParsedFeed.h b/Modules/RSParser/Sources/ObjC/RSParsedFeed.h similarity index 100% rename from RSParser/Sources/ObjC/RSParsedFeed.h rename to Modules/RSParser/Sources/ObjC/RSParsedFeed.h diff --git a/RSParser/Sources/ObjC/RSParsedFeed.m b/Modules/RSParser/Sources/ObjC/RSParsedFeed.m similarity index 100% rename from RSParser/Sources/ObjC/RSParsedFeed.m rename to Modules/RSParser/Sources/ObjC/RSParsedFeed.m diff --git a/RSParser/Sources/ObjC/RSParserInternal.h b/Modules/RSParser/Sources/ObjC/RSParserInternal.h similarity index 100% rename from RSParser/Sources/ObjC/RSParserInternal.h rename to Modules/RSParser/Sources/ObjC/RSParserInternal.h diff --git a/RSParser/Sources/ObjC/RSParserInternal.m b/Modules/RSParser/Sources/ObjC/RSParserInternal.m similarity index 100% rename from RSParser/Sources/ObjC/RSParserInternal.m rename to Modules/RSParser/Sources/ObjC/RSParserInternal.m diff --git a/RSParser/Sources/ObjC/RSRSSParser.h b/Modules/RSParser/Sources/ObjC/RSRSSParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSRSSParser.h rename to Modules/RSParser/Sources/ObjC/RSRSSParser.h diff --git a/RSParser/Sources/ObjC/RSRSSParser.m b/Modules/RSParser/Sources/ObjC/RSRSSParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSRSSParser.m rename to Modules/RSParser/Sources/ObjC/RSRSSParser.m diff --git a/RSParser/Sources/ObjC/RSSAXHTMLParser.h b/Modules/RSParser/Sources/ObjC/RSSAXHTMLParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSSAXHTMLParser.h rename to Modules/RSParser/Sources/ObjC/RSSAXHTMLParser.h diff --git a/RSParser/Sources/ObjC/RSSAXHTMLParser.m b/Modules/RSParser/Sources/ObjC/RSSAXHTMLParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSSAXHTMLParser.m rename to Modules/RSParser/Sources/ObjC/RSSAXHTMLParser.m diff --git a/RSParser/Sources/ObjC/RSSAXParser.h b/Modules/RSParser/Sources/ObjC/RSSAXParser.h similarity index 100% rename from RSParser/Sources/ObjC/RSSAXParser.h rename to Modules/RSParser/Sources/ObjC/RSSAXParser.h diff --git a/RSParser/Sources/ObjC/RSSAXParser.m b/Modules/RSParser/Sources/ObjC/RSSAXParser.m similarity index 100% rename from RSParser/Sources/ObjC/RSSAXParser.m rename to Modules/RSParser/Sources/ObjC/RSSAXParser.m diff --git a/RSParser/Sources/ObjC/include/RSParser.h b/Modules/RSParser/Sources/ObjC/include/RSParser.h similarity index 100% rename from RSParser/Sources/ObjC/include/RSParser.h rename to Modules/RSParser/Sources/ObjC/include/RSParser.h diff --git a/RSParser/Sources/Swift/Exports.swift b/Modules/RSParser/Sources/Swift/Exports.swift similarity index 100% rename from RSParser/Sources/Swift/Exports.swift rename to Modules/RSParser/Sources/Swift/Exports.swift diff --git a/RSParser/Sources/Swift/Feeds/FeedParser.swift b/Modules/RSParser/Sources/Swift/Feeds/FeedParser.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/FeedParser.swift rename to Modules/RSParser/Sources/Swift/Feeds/FeedParser.swift diff --git a/RSParser/Sources/Swift/Feeds/FeedParserError.swift b/Modules/RSParser/Sources/Swift/Feeds/FeedParserError.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/FeedParserError.swift rename to Modules/RSParser/Sources/Swift/Feeds/FeedParserError.swift diff --git a/RSParser/Sources/Swift/Feeds/FeedType.swift b/Modules/RSParser/Sources/Swift/Feeds/FeedType.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/FeedType.swift rename to Modules/RSParser/Sources/Swift/Feeds/FeedType.swift diff --git a/RSParser/Sources/Swift/Feeds/JSON/JSONFeedParser.swift b/Modules/RSParser/Sources/Swift/Feeds/JSON/JSONFeedParser.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/JSON/JSONFeedParser.swift rename to Modules/RSParser/Sources/Swift/Feeds/JSON/JSONFeedParser.swift diff --git a/RSParser/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift b/Modules/RSParser/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift rename to Modules/RSParser/Sources/Swift/Feeds/JSON/RSSInJSONParser.swift diff --git a/RSParser/Sources/Swift/Feeds/ParsedAttachment.swift b/Modules/RSParser/Sources/Swift/Feeds/ParsedAttachment.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/ParsedAttachment.swift rename to Modules/RSParser/Sources/Swift/Feeds/ParsedAttachment.swift diff --git a/RSParser/Sources/Swift/Feeds/ParsedAuthor.swift b/Modules/RSParser/Sources/Swift/Feeds/ParsedAuthor.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/ParsedAuthor.swift rename to Modules/RSParser/Sources/Swift/Feeds/ParsedAuthor.swift diff --git a/RSParser/Sources/Swift/Feeds/ParsedFeed.swift b/Modules/RSParser/Sources/Swift/Feeds/ParsedFeed.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/ParsedFeed.swift rename to Modules/RSParser/Sources/Swift/Feeds/ParsedFeed.swift diff --git a/RSParser/Sources/Swift/Feeds/ParsedHub.swift b/Modules/RSParser/Sources/Swift/Feeds/ParsedHub.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/ParsedHub.swift rename to Modules/RSParser/Sources/Swift/Feeds/ParsedHub.swift diff --git a/RSParser/Sources/Swift/Feeds/ParsedItem.swift b/Modules/RSParser/Sources/Swift/Feeds/ParsedItem.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/ParsedItem.swift rename to Modules/RSParser/Sources/Swift/Feeds/ParsedItem.swift diff --git a/RSParser/Sources/Swift/Feeds/XML/AtomParser.swift b/Modules/RSParser/Sources/Swift/Feeds/XML/AtomParser.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/XML/AtomParser.swift rename to Modules/RSParser/Sources/Swift/Feeds/XML/AtomParser.swift diff --git a/RSParser/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift b/Modules/RSParser/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift rename to Modules/RSParser/Sources/Swift/Feeds/XML/RSParsedFeedTransformer.swift diff --git a/RSParser/Sources/Swift/Feeds/XML/RSSParser.swift b/Modules/RSParser/Sources/Swift/Feeds/XML/RSSParser.swift similarity index 100% rename from RSParser/Sources/Swift/Feeds/XML/RSSParser.swift rename to Modules/RSParser/Sources/Swift/Feeds/XML/RSSParser.swift diff --git a/RSParser/Sources/Swift/JSON/JSONTypes.swift b/Modules/RSParser/Sources/Swift/JSON/JSONTypes.swift similarity index 100% rename from RSParser/Sources/Swift/JSON/JSONTypes.swift rename to Modules/RSParser/Sources/Swift/JSON/JSONTypes.swift diff --git a/RSParser/Sources/Swift/JSON/JSONUtilities.swift b/Modules/RSParser/Sources/Swift/JSON/JSONUtilities.swift similarity index 100% rename from RSParser/Sources/Swift/JSON/JSONUtilities.swift rename to Modules/RSParser/Sources/Swift/JSON/JSONUtilities.swift diff --git a/RSParser/Sources/Swift/Utilities/String+RSParser.swift b/Modules/RSParser/Sources/Swift/Utilities/String+RSParser.swift similarity index 100% rename from RSParser/Sources/Swift/Utilities/String+RSParser.swift rename to Modules/RSParser/Sources/Swift/Utilities/String+RSParser.swift diff --git a/RSParser/Tests/LinuxMain.swift b/Modules/RSParser/Tests/LinuxMain.swift similarity index 100% rename from RSParser/Tests/LinuxMain.swift rename to Modules/RSParser/Tests/LinuxMain.swift diff --git a/RSParser/Tests/RSParserTests/AtomParserTests.swift b/Modules/RSParser/Tests/RSParserTests/AtomParserTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/AtomParserTests.swift rename to Modules/RSParser/Tests/RSParserTests/AtomParserTests.swift diff --git a/RSParser/Tests/RSParserTests/EntityDecodingTests.swift b/Modules/RSParser/Tests/RSParserTests/EntityDecodingTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/EntityDecodingTests.swift rename to Modules/RSParser/Tests/RSParserTests/EntityDecodingTests.swift diff --git a/RSParser/Tests/RSParserTests/FeedParserTypeTests.swift b/Modules/RSParser/Tests/RSParserTests/FeedParserTypeTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/FeedParserTypeTests.swift rename to Modules/RSParser/Tests/RSParserTests/FeedParserTypeTests.swift diff --git a/RSParser/Tests/RSParserTests/HTMLLinkTests.swift b/Modules/RSParser/Tests/RSParserTests/HTMLLinkTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/HTMLLinkTests.swift rename to Modules/RSParser/Tests/RSParserTests/HTMLLinkTests.swift diff --git a/RSParser/Tests/RSParserTests/HTMLMetadataTests.swift b/Modules/RSParser/Tests/RSParserTests/HTMLMetadataTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/HTMLMetadataTests.swift rename to Modules/RSParser/Tests/RSParserTests/HTMLMetadataTests.swift diff --git a/RSParser/Tests/RSParserTests/Info.plist b/Modules/RSParser/Tests/RSParserTests/Info.plist similarity index 100% rename from RSParser/Tests/RSParserTests/Info.plist rename to Modules/RSParser/Tests/RSParserTests/Info.plist diff --git a/RSParser/Tests/RSParserTests/JSONFeedParserTests.swift b/Modules/RSParser/Tests/RSParserTests/JSONFeedParserTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/JSONFeedParserTests.swift rename to Modules/RSParser/Tests/RSParserTests/JSONFeedParserTests.swift diff --git a/RSParser/Tests/RSParserTests/OPMLTests.swift b/Modules/RSParser/Tests/RSParserTests/OPMLTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/OPMLTests.swift rename to Modules/RSParser/Tests/RSParserTests/OPMLTests.swift diff --git a/RSParser/Tests/RSParserTests/RSDateParserTests.swift b/Modules/RSParser/Tests/RSParserTests/RSDateParserTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/RSDateParserTests.swift rename to Modules/RSParser/Tests/RSParserTests/RSDateParserTests.swift diff --git a/RSParser/Tests/RSParserTests/RSSInJSONParserTests.swift b/Modules/RSParser/Tests/RSParserTests/RSSInJSONParserTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/RSSInJSONParserTests.swift rename to Modules/RSParser/Tests/RSParserTests/RSSInJSONParserTests.swift diff --git a/RSParser/Tests/RSParserTests/RSSParserTests.swift b/Modules/RSParser/Tests/RSParserTests/RSSParserTests.swift similarity index 100% rename from RSParser/Tests/RSParserTests/RSSParserTests.swift rename to Modules/RSParser/Tests/RSParserTests/RSSParserTests.swift diff --git a/RSParser/Tests/RSParserTests/Resources/3960.json b/Modules/RSParser/Tests/RSParserTests/Resources/3960.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/3960.json rename to Modules/RSParser/Tests/RSParserTests/Resources/3960.json diff --git a/RSParser/Tests/RSParserTests/Resources/489.rss b/Modules/RSParser/Tests/RSParserTests/Resources/489.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/489.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/489.rss diff --git a/RSParser/Tests/RSParserTests/Resources/4fsodonline.atom b/Modules/RSParser/Tests/RSParserTests/Resources/4fsodonline.atom similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/4fsodonline.atom rename to Modules/RSParser/Tests/RSParserTests/Resources/4fsodonline.atom diff --git a/RSParser/Tests/RSParserTests/Resources/DaringFireball.atom b/Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.atom similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/DaringFireball.atom rename to Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.atom diff --git a/RSParser/Tests/RSParserTests/Resources/DaringFireball.html b/Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.html similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/DaringFireball.html rename to Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.html diff --git a/RSParser/Tests/RSParserTests/Resources/DaringFireball.json b/Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/DaringFireball.json rename to Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.json diff --git a/RSParser/Tests/RSParserTests/Resources/DaringFireball.rss b/Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/DaringFireball.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/DaringFireball.rss diff --git a/RSParser/Tests/RSParserTests/Resources/EMarley.rss b/Modules/RSParser/Tests/RSParserTests/Resources/EMarley.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/EMarley.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/EMarley.rss diff --git a/RSParser/Tests/RSParserTests/Resources/KatieFloyd.rss b/Modules/RSParser/Tests/RSParserTests/Resources/KatieFloyd.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/KatieFloyd.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/KatieFloyd.rss diff --git a/RSParser/Tests/RSParserTests/Resources/OneFootTsunami.atom b/Modules/RSParser/Tests/RSParserTests/Resources/OneFootTsunami.atom similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/OneFootTsunami.atom rename to Modules/RSParser/Tests/RSParserTests/Resources/OneFootTsunami.atom diff --git a/RSParser/Tests/RSParserTests/Resources/ScriptingNews.json b/Modules/RSParser/Tests/RSParserTests/Resources/ScriptingNews.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/ScriptingNews.json rename to Modules/RSParser/Tests/RSParserTests/Resources/ScriptingNews.json diff --git a/RSParser/Tests/RSParserTests/Resources/Subs.opml b/Modules/RSParser/Tests/RSParserTests/Resources/Subs.opml similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/Subs.opml rename to Modules/RSParser/Tests/RSParserTests/Resources/Subs.opml diff --git a/RSParser/Tests/RSParserTests/Resources/SubsNoTitleAttributes.opml b/Modules/RSParser/Tests/RSParserTests/Resources/SubsNoTitleAttributes.opml similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/SubsNoTitleAttributes.opml rename to Modules/RSParser/Tests/RSParserTests/Resources/SubsNoTitleAttributes.opml diff --git a/RSParser/Tests/RSParserTests/Resources/YouTubeTheVolvoRocks.html b/Modules/RSParser/Tests/RSParserTests/Resources/YouTubeTheVolvoRocks.html similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/YouTubeTheVolvoRocks.html rename to Modules/RSParser/Tests/RSParserTests/Resources/YouTubeTheVolvoRocks.html diff --git a/RSParser/Tests/RSParserTests/Resources/aktuality.rss b/Modules/RSParser/Tests/RSParserTests/Resources/aktuality.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/aktuality.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/aktuality.rss diff --git a/RSParser/Tests/RSParserTests/Resources/allthis-partial.json b/Modules/RSParser/Tests/RSParserTests/Resources/allthis-partial.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/allthis-partial.json rename to Modules/RSParser/Tests/RSParserTests/Resources/allthis-partial.json diff --git a/RSParser/Tests/RSParserTests/Resources/allthis.atom b/Modules/RSParser/Tests/RSParserTests/Resources/allthis.atom similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/allthis.atom rename to Modules/RSParser/Tests/RSParserTests/Resources/allthis.atom diff --git a/RSParser/Tests/RSParserTests/Resources/allthis.json b/Modules/RSParser/Tests/RSParserTests/Resources/allthis.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/allthis.json rename to Modules/RSParser/Tests/RSParserTests/Resources/allthis.json diff --git a/RSParser/Tests/RSParserTests/Resources/atp.rss b/Modules/RSParser/Tests/RSParserTests/Resources/atp.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/atp.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/atp.rss diff --git a/RSParser/Tests/RSParserTests/Resources/authors.json b/Modules/RSParser/Tests/RSParserTests/Resources/authors.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/authors.json rename to Modules/RSParser/Tests/RSParserTests/Resources/authors.json diff --git a/RSParser/Tests/RSParserTests/Resources/bio.rdf b/Modules/RSParser/Tests/RSParserTests/Resources/bio.rdf similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/bio.rdf rename to Modules/RSParser/Tests/RSParserTests/Resources/bio.rdf diff --git a/RSParser/Tests/RSParserTests/Resources/cloudblog.rss b/Modules/RSParser/Tests/RSParserTests/Resources/cloudblog.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/cloudblog.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/cloudblog.rss diff --git a/RSParser/Tests/RSParserTests/Resources/coco.html b/Modules/RSParser/Tests/RSParserTests/Resources/coco.html similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/coco.html rename to Modules/RSParser/Tests/RSParserTests/Resources/coco.html diff --git a/RSParser/Tests/RSParserTests/Resources/curt.json b/Modules/RSParser/Tests/RSParserTests/Resources/curt.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/curt.json rename to Modules/RSParser/Tests/RSParserTests/Resources/curt.json diff --git a/RSParser/Tests/RSParserTests/Resources/dcrainmaker.xml b/Modules/RSParser/Tests/RSParserTests/Resources/dcrainmaker.xml similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/dcrainmaker.xml rename to Modules/RSParser/Tests/RSParserTests/Resources/dcrainmaker.xml diff --git a/RSParser/Tests/RSParserTests/Resources/donthitsave.xml b/Modules/RSParser/Tests/RSParserTests/Resources/donthitsave.xml similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/donthitsave.xml rename to Modules/RSParser/Tests/RSParserTests/Resources/donthitsave.xml diff --git a/RSParser/Tests/RSParserTests/Resources/expertopinionent.atom b/Modules/RSParser/Tests/RSParserTests/Resources/expertopinionent.atom similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/expertopinionent.atom rename to Modules/RSParser/Tests/RSParserTests/Resources/expertopinionent.atom diff --git a/RSParser/Tests/RSParserTests/Resources/furbo.html b/Modules/RSParser/Tests/RSParserTests/Resources/furbo.html similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/furbo.html rename to Modules/RSParser/Tests/RSParserTests/Resources/furbo.html diff --git a/RSParser/Tests/RSParserTests/Resources/inessential.html b/Modules/RSParser/Tests/RSParserTests/Resources/inessential.html similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/inessential.html rename to Modules/RSParser/Tests/RSParserTests/Resources/inessential.html diff --git a/RSParser/Tests/RSParserTests/Resources/inessential.json b/Modules/RSParser/Tests/RSParserTests/Resources/inessential.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/inessential.json rename to Modules/RSParser/Tests/RSParserTests/Resources/inessential.json diff --git a/RSParser/Tests/RSParserTests/Resources/kc0011.rss b/Modules/RSParser/Tests/RSParserTests/Resources/kc0011.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/kc0011.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/kc0011.rss diff --git a/RSParser/Tests/RSParserTests/Resources/livemint.xml b/Modules/RSParser/Tests/RSParserTests/Resources/livemint.xml similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/livemint.xml rename to Modules/RSParser/Tests/RSParserTests/Resources/livemint.xml diff --git a/RSParser/Tests/RSParserTests/Resources/macworld.rss b/Modules/RSParser/Tests/RSParserTests/Resources/macworld.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/macworld.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/macworld.rss diff --git a/RSParser/Tests/RSParserTests/Resources/manton.rss b/Modules/RSParser/Tests/RSParserTests/Resources/manton.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/manton.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/manton.rss diff --git a/RSParser/Tests/RSParserTests/Resources/monkeydom.rss b/Modules/RSParser/Tests/RSParserTests/Resources/monkeydom.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/monkeydom.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/monkeydom.rss diff --git a/RSParser/Tests/RSParserTests/Resources/natasha.xml b/Modules/RSParser/Tests/RSParserTests/Resources/natasha.xml similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/natasha.xml rename to Modules/RSParser/Tests/RSParserTests/Resources/natasha.xml diff --git a/RSParser/Tests/RSParserTests/Resources/phpxml.rss b/Modules/RSParser/Tests/RSParserTests/Resources/phpxml.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/phpxml.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/phpxml.rss diff --git a/RSParser/Tests/RSParserTests/Resources/pxlnv.json b/Modules/RSParser/Tests/RSParserTests/Resources/pxlnv.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/pxlnv.json rename to Modules/RSParser/Tests/RSParserTests/Resources/pxlnv.json diff --git a/RSParser/Tests/RSParserTests/Resources/rose.json b/Modules/RSParser/Tests/RSParserTests/Resources/rose.json similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/rose.json rename to Modules/RSParser/Tests/RSParserTests/Resources/rose.json diff --git a/RSParser/Tests/RSParserTests/Resources/russcox.atom b/Modules/RSParser/Tests/RSParserTests/Resources/russcox.atom similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/russcox.atom rename to Modules/RSParser/Tests/RSParserTests/Resources/russcox.atom diff --git a/RSParser/Tests/RSParserTests/Resources/scriptingNews.rss b/Modules/RSParser/Tests/RSParserTests/Resources/scriptingNews.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/scriptingNews.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/scriptingNews.rss diff --git a/RSParser/Tests/RSParserTests/Resources/sixcolors.html b/Modules/RSParser/Tests/RSParserTests/Resources/sixcolors.html similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/sixcolors.html rename to Modules/RSParser/Tests/RSParserTests/Resources/sixcolors.html diff --git a/RSParser/Tests/RSParserTests/Resources/theomnishow.rss b/Modules/RSParser/Tests/RSParserTests/Resources/theomnishow.rss similarity index 100% rename from RSParser/Tests/RSParserTests/Resources/theomnishow.rss rename to Modules/RSParser/Tests/RSParserTests/Resources/theomnishow.rss diff --git a/RSTree/Package.swift b/Modules/RSTree/Package.swift similarity index 100% rename from RSTree/Package.swift rename to Modules/RSTree/Package.swift diff --git a/RSTree/Sources/RSTree/NSOutlineView+RSTree.swift b/Modules/RSTree/Sources/RSTree/NSOutlineView+RSTree.swift similarity index 100% rename from RSTree/Sources/RSTree/NSOutlineView+RSTree.swift rename to Modules/RSTree/Sources/RSTree/NSOutlineView+RSTree.swift diff --git a/RSTree/Sources/RSTree/Node.swift b/Modules/RSTree/Sources/RSTree/Node.swift similarity index 100% rename from RSTree/Sources/RSTree/Node.swift rename to Modules/RSTree/Sources/RSTree/Node.swift diff --git a/RSTree/Sources/RSTree/NodePath.swift b/Modules/RSTree/Sources/RSTree/NodePath.swift similarity index 100% rename from RSTree/Sources/RSTree/NodePath.swift rename to Modules/RSTree/Sources/RSTree/NodePath.swift diff --git a/RSTree/Sources/RSTree/RSTree.swift b/Modules/RSTree/Sources/RSTree/RSTree.swift similarity index 100% rename from RSTree/Sources/RSTree/RSTree.swift rename to Modules/RSTree/Sources/RSTree/RSTree.swift diff --git a/RSTree/Sources/RSTree/TopLevelRepresentedObject.swift b/Modules/RSTree/Sources/RSTree/TopLevelRepresentedObject.swift similarity index 100% rename from RSTree/Sources/RSTree/TopLevelRepresentedObject.swift rename to Modules/RSTree/Sources/RSTree/TopLevelRepresentedObject.swift diff --git a/RSTree/Sources/RSTree/TreeController.swift b/Modules/RSTree/Sources/RSTree/TreeController.swift similarity index 100% rename from RSTree/Sources/RSTree/TreeController.swift rename to Modules/RSTree/Sources/RSTree/TreeController.swift diff --git a/RSWeb/Package.swift b/Modules/RSWeb/Package.swift similarity index 100% rename from RSWeb/Package.swift rename to Modules/RSWeb/Package.swift diff --git a/RSWeb/README.md b/Modules/RSWeb/README.md similarity index 100% rename from RSWeb/README.md rename to Modules/RSWeb/README.md diff --git a/RSWeb/Sources/RSWeb/CacheControlInfo.swift b/Modules/RSWeb/Sources/RSWeb/CacheControlInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/CacheControlInfo.swift rename to Modules/RSWeb/Sources/RSWeb/CacheControlInfo.swift diff --git a/RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/Dictionary+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/DownloadProgress.swift b/Modules/RSWeb/Sources/RSWeb/DownloadProgress.swift similarity index 100% rename from RSWeb/Sources/RSWeb/DownloadProgress.swift rename to Modules/RSWeb/Sources/RSWeb/DownloadProgress.swift diff --git a/RSWeb/Sources/RSWeb/DownloadSession.swift b/Modules/RSWeb/Sources/RSWeb/DownloadSession.swift similarity index 100% rename from RSWeb/Sources/RSWeb/DownloadSession.swift rename to Modules/RSWeb/Sources/RSWeb/DownloadSession.swift diff --git a/RSWeb/Sources/RSWeb/Downloader.swift b/Modules/RSWeb/Sources/RSWeb/Downloader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/Downloader.swift rename to Modules/RSWeb/Sources/RSWeb/Downloader.swift diff --git a/RSWeb/Sources/RSWeb/HTMLMetadataCache.swift b/Modules/RSWeb/Sources/RSWeb/HTMLMetadataCache.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTMLMetadataCache.swift rename to Modules/RSWeb/Sources/RSWeb/HTMLMetadataCache.swift diff --git a/RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift b/Modules/RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift rename to Modules/RSWeb/Sources/RSWeb/HTMLMetadataDownloader.swift diff --git a/RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift b/Modules/RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPConditionalGetInfo.swift diff --git a/RSWeb/Sources/RSWeb/HTTPDateInfo.swift b/Modules/RSWeb/Sources/RSWeb/HTTPDateInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPDateInfo.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPDateInfo.swift diff --git a/RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift b/Modules/RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPLinkPagingInfo.swift diff --git a/RSWeb/Sources/RSWeb/HTTPMethod.swift b/Modules/RSWeb/Sources/RSWeb/HTTPMethod.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPMethod.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPMethod.swift diff --git a/RSWeb/Sources/RSWeb/HTTPRequestHeader.swift b/Modules/RSWeb/Sources/RSWeb/HTTPRequestHeader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPRequestHeader.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPRequestHeader.swift diff --git a/RSWeb/Sources/RSWeb/HTTPResponse429.swift b/Modules/RSWeb/Sources/RSWeb/HTTPResponse429.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPResponse429.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPResponse429.swift diff --git a/RSWeb/Sources/RSWeb/HTTPResponseCode.swift b/Modules/RSWeb/Sources/RSWeb/HTTPResponseCode.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPResponseCode.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPResponseCode.swift diff --git a/RSWeb/Sources/RSWeb/HTTPResponseHeader.swift b/Modules/RSWeb/Sources/RSWeb/HTTPResponseHeader.swift similarity index 100% rename from RSWeb/Sources/RSWeb/HTTPResponseHeader.swift rename to Modules/RSWeb/Sources/RSWeb/HTTPResponseHeader.swift diff --git a/RSWeb/Sources/RSWeb/MacWebBrowser.swift b/Modules/RSWeb/Sources/RSWeb/MacWebBrowser.swift similarity index 100% rename from RSWeb/Sources/RSWeb/MacWebBrowser.swift rename to Modules/RSWeb/Sources/RSWeb/MacWebBrowser.swift diff --git a/RSWeb/Sources/RSWeb/MimeType.swift b/Modules/RSWeb/Sources/RSWeb/MimeType.swift similarity index 100% rename from RSWeb/Sources/RSWeb/MimeType.swift rename to Modules/RSWeb/Sources/RSWeb/MimeType.swift diff --git a/RSWeb/Sources/RSWeb/Reachability.swift b/Modules/RSWeb/Sources/RSWeb/Reachability.swift similarity index 100% rename from RSWeb/Sources/RSWeb/Reachability.swift rename to Modules/RSWeb/Sources/RSWeb/Reachability.swift diff --git a/RSWeb/Sources/RSWeb/SpecialCases.swift b/Modules/RSWeb/Sources/RSWeb/SpecialCases.swift similarity index 100% rename from RSWeb/Sources/RSWeb/SpecialCases.swift rename to Modules/RSWeb/Sources/RSWeb/SpecialCases.swift diff --git a/RSWeb/Sources/RSWeb/String+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/String+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/String+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/String+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URL+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URL+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URL+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URL+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URLComponents+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URLRequest+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift b/Modules/RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift similarity index 100% rename from RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift rename to Modules/RSWeb/Sources/RSWeb/URLResponse+RSWeb.swift diff --git a/RSWeb/Sources/RSWeb/UTS46/Data+Extensions.swift b/Modules/RSWeb/Sources/RSWeb/UTS46/Data+Extensions.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UTS46/Data+Extensions.swift rename to Modules/RSWeb/Sources/RSWeb/UTS46/Data+Extensions.swift diff --git a/RSWeb/Sources/RSWeb/UTS46/Scanner+Extensions.swift b/Modules/RSWeb/Sources/RSWeb/UTS46/Scanner+Extensions.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UTS46/Scanner+Extensions.swift rename to Modules/RSWeb/Sources/RSWeb/UTS46/Scanner+Extensions.swift diff --git a/RSWeb/Sources/RSWeb/UTS46/String+Punycode.swift b/Modules/RSWeb/Sources/RSWeb/UTS46/String+Punycode.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UTS46/String+Punycode.swift rename to Modules/RSWeb/Sources/RSWeb/UTS46/String+Punycode.swift diff --git a/RSWeb/Sources/RSWeb/UTS46/UTS46+Loading.swift b/Modules/RSWeb/Sources/RSWeb/UTS46/UTS46+Loading.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UTS46/UTS46+Loading.swift rename to Modules/RSWeb/Sources/RSWeb/UTS46/UTS46+Loading.swift diff --git a/RSWeb/Sources/RSWeb/UTS46/UTS46.swift b/Modules/RSWeb/Sources/RSWeb/UTS46/UTS46.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UTS46/UTS46.swift rename to Modules/RSWeb/Sources/RSWeb/UTS46/UTS46.swift diff --git a/RSWeb/Sources/RSWeb/UTS46/uts46 b/Modules/RSWeb/Sources/RSWeb/UTS46/uts46 similarity index 100% rename from RSWeb/Sources/RSWeb/UTS46/uts46 rename to Modules/RSWeb/Sources/RSWeb/UTS46/uts46 diff --git a/RSWeb/Sources/RSWeb/UserAgent.swift b/Modules/RSWeb/Sources/RSWeb/UserAgent.swift similarity index 100% rename from RSWeb/Sources/RSWeb/UserAgent.swift rename to Modules/RSWeb/Sources/RSWeb/UserAgent.swift diff --git a/RSWeb/Sources/RSWeb/WebServices/Transport.swift b/Modules/RSWeb/Sources/RSWeb/WebServices/Transport.swift similarity index 100% rename from RSWeb/Sources/RSWeb/WebServices/Transport.swift rename to Modules/RSWeb/Sources/RSWeb/WebServices/Transport.swift diff --git a/RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift b/Modules/RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift similarity index 100% rename from RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift rename to Modules/RSWeb/Sources/RSWeb/WebServices/TransportJSON.swift diff --git a/RSWeb/Tests/RSWebTests/DictionaryTests.swift b/Modules/RSWeb/Tests/RSWebTests/DictionaryTests.swift similarity index 100% rename from RSWeb/Tests/RSWebTests/DictionaryTests.swift rename to Modules/RSWeb/Tests/RSWebTests/DictionaryTests.swift diff --git a/RSWeb/Tests/RSWebTests/RSWebTests.swift b/Modules/RSWeb/Tests/RSWebTests/RSWebTests.swift similarity index 100% rename from RSWeb/Tests/RSWebTests/RSWebTests.swift rename to Modules/RSWeb/Tests/RSWebTests/RSWebTests.swift diff --git a/RSWeb/Tests/RSWebTests/StringTests.swift b/Modules/RSWeb/Tests/RSWebTests/StringTests.swift similarity index 100% rename from RSWeb/Tests/RSWebTests/StringTests.swift rename to Modules/RSWeb/Tests/RSWebTests/StringTests.swift diff --git a/Secrets/.gitignore b/Modules/Secrets/.gitignore similarity index 100% rename from Secrets/.gitignore rename to Modules/Secrets/.gitignore diff --git a/Secrets/Package.swift b/Modules/Secrets/Package.swift similarity index 100% rename from Secrets/Package.swift rename to Modules/Secrets/Package.swift diff --git a/Secrets/README.md b/Modules/Secrets/README.md similarity index 100% rename from Secrets/README.md rename to Modules/Secrets/README.md diff --git a/Secrets/Sources/Secrets/Credentials.swift b/Modules/Secrets/Sources/Secrets/Credentials.swift similarity index 100% rename from Secrets/Sources/Secrets/Credentials.swift rename to Modules/Secrets/Sources/Secrets/Credentials.swift diff --git a/Secrets/Sources/Secrets/CredentialsManager.swift b/Modules/Secrets/Sources/Secrets/CredentialsManager.swift similarity index 100% rename from Secrets/Sources/Secrets/CredentialsManager.swift rename to Modules/Secrets/Sources/Secrets/CredentialsManager.swift diff --git a/Secrets/Sources/Secrets/SecretsManager.swift b/Modules/Secrets/Sources/Secrets/SecretsManager.swift similarity index 100% rename from Secrets/Sources/Secrets/SecretsManager.swift rename to Modules/Secrets/Sources/Secrets/SecretsManager.swift diff --git a/Secrets/Sources/Secrets/SecretsProvider.swift b/Modules/Secrets/Sources/Secrets/SecretsProvider.swift similarity index 100% rename from Secrets/Sources/Secrets/SecretsProvider.swift rename to Modules/Secrets/Sources/Secrets/SecretsProvider.swift diff --git a/SyncDatabase/.gitignore b/Modules/SyncDatabase/.gitignore similarity index 100% rename from SyncDatabase/.gitignore rename to Modules/SyncDatabase/.gitignore diff --git a/SyncDatabase/Package.swift b/Modules/SyncDatabase/Package.swift similarity index 100% rename from SyncDatabase/Package.swift rename to Modules/SyncDatabase/Package.swift diff --git a/SyncDatabase/README.md b/Modules/SyncDatabase/README.md similarity index 100% rename from SyncDatabase/README.md rename to Modules/SyncDatabase/README.md diff --git a/SyncDatabase/Sources/SyncDatabase/Constants.swift b/Modules/SyncDatabase/Sources/SyncDatabase/Constants.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/Constants.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/Constants.swift diff --git a/SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift b/Modules/SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/SyncDatabase.swift diff --git a/SyncDatabase/Sources/SyncDatabase/SyncStatus.swift b/Modules/SyncDatabase/Sources/SyncDatabase/SyncStatus.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/SyncStatus.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/SyncStatus.swift diff --git a/SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift b/Modules/SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift similarity index 100% rename from SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift rename to Modules/SyncDatabase/Sources/SyncDatabase/SyncStatusTable.swift diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj index 0ff1fe0bf..48ff9e551 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -694,11 +694,6 @@ 51C03080257D815A00609262 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Mac/Base.lproj/UnifiedWindow.storyboard; sourceTree = SOURCE_ROOT; }; 51C452B32265141B00C03939 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/WebKit.framework; sourceTree = DEVELOPER_DIR; }; 51C4CFEF24D37D1F00AF9874 /* Secrets.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Secrets.swift; sourceTree = ""; }; - 51CD32A824D2CB25009ABAEF /* SyncDatabase */ = {isa = PBXFileReference; lastKnownFileType = folder; path = SyncDatabase; sourceTree = ""; }; - 51CD32C324D2CD57009ABAEF /* ArticlesDatabase */ = {isa = PBXFileReference; lastKnownFileType = folder; path = ArticlesDatabase; sourceTree = ""; }; - 51CD32C424D2CF1D009ABAEF /* Articles */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Articles; sourceTree = ""; }; - 51CD32C624D2DEF9009ABAEF /* Account */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Account; sourceTree = ""; }; - 51CD32C724D2E06C009ABAEF /* Secrets */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Secrets; sourceTree = ""; }; 51D0214526ED617100FF2E0F /* core.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = core.css; sourceTree = ""; }; 51D87EE02311D34700E63F03 /* ActivityType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivityType.swift; sourceTree = ""; }; 51DC07972552083500A3F79F /* ArticleTextSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleTextSize.swift; sourceTree = ""; }; @@ -747,12 +742,10 @@ 841ABA5D20145E9200980E11 /* FolderInspectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FolderInspectorViewController.swift; sourceTree = ""; }; 841ABA5F20145EC100980E11 /* BuiltinSmartFeedInspectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuiltinSmartFeedInspectorViewController.swift; sourceTree = ""; }; 84216D0222128B9D0049B9B9 /* DetailWebViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailWebViewController.swift; sourceTree = ""; }; - 8424B3162DB73D320053AA11 /* RSParser */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSParser; sourceTree = ""; }; 842611891FCB67AA0086A189 /* FeedIconDownloader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeedIconDownloader.swift; sourceTree = ""; }; 842611A11FCB769D0086A189 /* RSHTMLMetadata+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RSHTMLMetadata+Extension.swift"; sourceTree = ""; }; 842E45CD1ED8C308000A8B52 /* AppNotifications.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppNotifications.swift; sourceTree = ""; }; 842E45DC1ED8C54B000A8B52 /* Browser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Browser.swift; sourceTree = ""; }; - 843E2F152CF2B43700ED170F /* RSWeb */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSWeb; sourceTree = ""; }; 84411E701FE5FBFA004B527F /* SmallIconProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmallIconProvider.swift; sourceTree = ""; }; 8444C8F11FED81840051386C /* OPMLExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OPMLExporter.swift; sourceTree = ""; }; 844B5B581FE9FE4F00C7C76A /* SidebarKeyboardDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidebarKeyboardDelegate.swift; sourceTree = ""; }; @@ -784,7 +777,6 @@ 848CEF1E2DB74B56002B35B5 /* NetNewsWire-iOS.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = "NetNewsWire-iOS.xctestplan"; sourceTree = ""; }; 848D578D21543519005FFAD5 /* PasteboardWebFeed.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteboardWebFeed.swift; sourceTree = ""; }; 848E84CA2DB743FF0023F3BA /* NetNewsWire.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = NetNewsWire.xctestplan; sourceTree = ""; }; - 848E84CB2DB749300023F3BA /* RSCore */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSCore; sourceTree = ""; }; 848F6AE41FC29CFA002D422E /* FaviconDownloader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FaviconDownloader.swift; sourceTree = ""; }; 849A97421ED9EAA9007D329B /* AddFolderWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddFolderWindowController.swift; sourceTree = ""; }; 849A97511ED9EAC0007D329B /* AddFeedController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AddFeedController.swift; path = AddFeed/AddFeedController.swift; sourceTree = ""; }; @@ -863,8 +855,6 @@ 84E8E0DA202EC49300562D8F /* TimelineViewController+ContextualMenus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TimelineViewController+ContextualMenus.swift"; sourceTree = ""; }; 84E8E0EA202F693600562D8F /* DetailWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailWebView.swift; sourceTree = ""; }; 84E95D231FB1087500552D99 /* ArticlePasteboardWriter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticlePasteboardWriter.swift; sourceTree = ""; }; - 84EE3F102DB8A078009D3A8D /* RSTree */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSTree; sourceTree = ""; }; - 84EE43462DB8A42E009D3A8D /* RSDatabase */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = RSDatabase; sourceTree = ""; }; 84F204DF1FAACBB30076E152 /* ArticleArray.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArticleArray.swift; sourceTree = ""; }; 84F2D5351FC22FCB00998D64 /* PseudoFeed.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PseudoFeed.swift; sourceTree = ""; }; 84F2D5361FC22FCB00998D64 /* TodayFeedDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TodayFeedDelegate.swift; sourceTree = ""; }; @@ -968,6 +958,7 @@ /* Begin PBXFileSystemSynchronizedRootGroup section */ 8448F1F62D1E36BF0048BA50 /* Widget */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (8448F2052D1E36BF0048BA50 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Widget; sourceTree = ""; }; 84A6CFB52D1B4EC500F23315 /* iOS */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (84A6D03F2D1B4EC500F23315 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 84A6D0402D1B4EC500F23315 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 84A6D0412D1B4EC500F23315 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = iOS; sourceTree = ""; }; + 84CB35042DB9B5E2002AC251 /* Modules */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Modules; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1530,16 +1521,7 @@ D5907CDA2002F084005947E5 /* xcconfig */, 849C64611ED37A5D003D8FC0 /* Products */, 51C452B22265141B00C03939 /* Frameworks */, - 51CD32C624D2DEF9009ABAEF /* Account */, - 51CD32C424D2CF1D009ABAEF /* Articles */, - 51CD32C324D2CD57009ABAEF /* ArticlesDatabase */, - 51CD32C724D2E06C009ABAEF /* Secrets */, - 51CD32A824D2CB25009ABAEF /* SyncDatabase */, - 84EE43462DB8A42E009D3A8D /* RSDatabase */, - 8424B3162DB73D320053AA11 /* RSParser */, - 84EE3F102DB8A078009D3A8D /* RSTree */, - 843E2F152CF2B43700ED170F /* RSWeb */, - 848E84CB2DB749300023F3BA /* RSCore */, + 84CB35042DB9B5E2002AC251 /* Modules */, ); sourceTree = ""; usesTabs = 1; diff --git a/NetNewsWire.xctestplan b/NetNewsWire.xctestplan index f5a1d35db..54a20e57e 100644 --- a/NetNewsWire.xctestplan +++ b/NetNewsWire.xctestplan @@ -19,21 +19,14 @@ "testTargets" : [ { "target" : { - "containerPath" : "container:RSWeb", + "containerPath" : "container:Modules\/RSWeb", "identifier" : "RSWebTests", "name" : "RSWebTests" } }, { "target" : { - "containerPath" : "container:", - "identifier" : "RSCoreTests", - "name" : "RSCoreTests" - } - }, - { - "target" : { - "containerPath" : "container:Account", + "containerPath" : "container:Modules\/Account", "identifier" : "AccountTests", "name" : "AccountTests" } @@ -50,10 +43,24 @@ }, { "target" : { - "containerPath" : "container:RSParser", + "containerPath" : "container:Modules\/RSDatabase", + "identifier" : "RSDatabaseTests", + "name" : "RSDatabaseTests" + } + }, + { + "target" : { + "containerPath" : "container:Modules\/RSParser", "identifier" : "RSParserTests", "name" : "RSParserTests" } + }, + { + "target" : { + "containerPath" : "container:Modules\/RSCore", + "identifier" : "RSCoreTests", + "name" : "RSCoreTests" + } } ], "version" : 1