From d287c5cfd6cf65acc2a220963aceac438ff68114 Mon Sep 17 00:00:00 2001 From: Chris Araman Date: Mon, 26 Apr 2021 15:10:17 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=9A=A7=20Move=20sources=20to=20typical=20?= =?UTF-8?q?SPM=20locations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AppStore/CKSoftwareMap+SoftwareMap.swift | 0 .../CKSoftwareProduct+SoftwareProduct.swift | 0 .../MasKit}/AppStore/Downloader.swift | 0 .../MasKit}/AppStore/ISStoreAccount.swift | 0 .../AppStore/PurchaseDownloadObserver.swift | 0 .../MasKit}/AppStore/SSPurchase.swift | 0 .../MasKit}/AppStore/StoreAccount.swift | 0 .../MasKit}/Commands/Account.swift | 0 .../MasKit}/Commands/Home.swift | 0 .../MasKit}/Commands/Info.swift | 0 .../MasKit}/Commands/Install.swift | 0 .../MasKit}/Commands/List.swift | 0 .../MasKit}/Commands/Lucky.swift | 0 .../MasKit}/Commands/Open.swift | 0 .../MasKit}/Commands/Outdated.swift | 0 .../MasKit}/Commands/Purchase.swift | 0 .../MasKit}/Commands/Reset.swift | 0 .../MasKit}/Commands/Search.swift | 0 .../MasKit}/Commands/SignIn.swift | 0 .../MasKit}/Commands/SignOut.swift | 0 .../MasKit}/Commands/Uninstall.swift | 0 .../MasKit}/Commands/Upgrade.swift | 0 .../MasKit}/Commands/Vendor.swift | 0 .../MasKit}/Commands/Version.swift | 0 .../MasKit}/Controllers/AppLibrary.swift | 0 .../MasKit}/Controllers/MasAppLibrary.swift | 0 .../MasKit}/Controllers/MasStoreSearch.swift | 0 .../MasKit}/Controllers/SoftwareMap.swift | 0 .../MasKit}/Controllers/StoreSearch.swift | 0 .../MasKit}/Errors/MASError.swift | 0 .../Extensions/String+PercentEncoding.swift | 0 .../ExternalCommands/ExternalCommand.swift | 0 .../ExternalCommands/OpenSystemCommand.swift | 0 .../MasKit}/Formatters/AppInfoFormatter.swift | 0 .../MasKit}/Formatters/AppListFormatter.swift | 0 .../Formatters/SearchResultFormatter.swift | 0 .../MasKit}/Formatters/Utilities.swift | 0 .../MasKit}/Models/SearchResult.swift | 0 .../MasKit}/Models/SearchResultList.swift | 0 .../MasKit}/Models/SoftwareProduct.swift | 0 .../MasKit}/Network/NetworkManager.swift | 0 .../MasKit}/Network/NetworkSession.swift | 0 .../Network/URLSession+NetworkSession.swift | 0 .../MasKit}/SupportingFiles/Info.plist | 0 .../MasKit}/SupportingFiles/MasKit.h | 0 .../CommerceKit/CKAccountStore.h | 0 .../CommerceKit/CKDownloadDirectory.h | 0 .../CommerceKit/CKDownloadQueue.h | 0 .../CommerceKit/CKDownloadQueueObserver.h | 0 .../CommerceKit/CKPurchaseController.h | 0 .../CommerceKit/CKServiceInterface.h | 0 .../CommerceKit/CKSoftwareMap.h | 0 .../CommerceKit/module.modulemap | 0 .../StoreFoundation/CKSoftwareProduct.h | 0 .../StoreFoundation/CKUpdate.h | 0 .../StoreFoundation/ISAccountService.h | 0 .../StoreFoundation/ISAuthenticationContext.h | 0 .../ISAuthenticationResponse.h | 0 .../StoreFoundation/ISServiceProxy.h | 0 .../StoreFoundation/ISServiceRemoteObject.h | 0 .../StoreFoundation/ISStoreAccount.h | 0 .../StoreFoundation/ISStoreClient.h | 0 .../StoreFoundation/SSDownload.h | 0 .../StoreFoundation/SSDownloadMetadata.h | 0 .../StoreFoundation/SSDownloadPhase.h | 0 .../StoreFoundation/SSDownloadStatus.h | 0 .../StoreFoundation/SSPurchase.h | 0 .../StoreFoundation/SSPurchaseResponse.h | 0 .../StoreFoundation/module.modulemap | 0 {mas => Sources/mas}/main.swift | 0 {mas => Sources/mas}/mas-Info.plist | 0 .../MasKitTests}/.swiftlint.yml | 0 .../Commands/AccountCommandSpec.swift | 0 .../Commands/HomeCommandSpec.swift | 0 .../Commands/InfoCommandSpec.swift | 0 .../Commands/InstallCommandSpec.swift | 0 .../Commands/ListCommandSpec.swift | 0 .../Commands/LuckyCommandSpec.swift | 0 .../Commands/OpenCommandSpec.swift | 0 .../Commands/OutdatedCommandSpec.swift | 0 .../Commands/PurchaseCommandSpec.swift | 0 .../Commands/ResetCommandSpec.swift | 0 .../Commands/SearchCommandSpec.swift | 0 .../Commands/SignInCommandSpec.swift | 0 .../Commands/SignOutCommandSpec.swift | 0 .../Commands/UninstallCommandSpec.swift | 0 .../Commands/UpgradeCommandSpec.swift | 0 .../Commands/VendorCommandSpec.swift | 0 .../Commands/VersionCommandSpec.swift | 0 .../Controllers/AppLibraryMock.swift | 0 .../Controllers/MasAppLibrarySpec.swift | 0 .../Controllers/MasStoreSearchSpec.swift | 0 .../Controllers/StoreSearchMock.swift | 0 .../Controllers/StoreSearchSpec.swift | 0 .../Errors/MASErrorTestCase.swift | 0 .../MasKitTests}/Extensions/Bundle+JSON.swift | 0 .../Extensions/String+FileExtension.swift | 0 .../OpenSystemCommandMock.swift | 0 .../OpenSystemCommandSpec.swift | 0 .../Formatters/AppListFormatterSpec.swift | 0 .../SearchResultFormatterSpec.swift | 0 .../MasKitTests}/JSON/lookup/fantastical.json | 0 .../MasKitTests}/JSON/lookup/notability.json | 0 .../MasKitTests}/JSON/lookup/slack.json | 0 .../MasKitTests}/JSON/lookup/things.json | 0 .../MasKitTests}/JSON/search/bbedit.json | 0 .../MasKitTests}/JSON/search/bear.json | 0 .../MasKitTests}/JSON/search/deliveries.json | 0 .../MasKitTests}/JSON/search/fantastical.json | 0 .../MasKitTests}/JSON/search/mojave.json | 0 .../MasKitTests}/JSON/search/nonexistent.json | 0 .../MasKitTests}/JSON/search/notability.json | 0 .../MasKitTests}/JSON/search/slack.json | 0 .../MasKitTests}/JSON/search/things-3.json | 0 .../JSON/search/things-that-go-bump.json | 0 .../MasKitTests}/JSON/search/things.json | 0 .../MasKitTests}/JSON/search/tweetbot.json | 0 .../Models/SearchResultListSpec.swift | 0 .../Models/SearchResultSpec.swift | 0 .../Models/SoftwareProductMock.swift | 0 .../Network/NetworkManagerTests.swift | 0 .../Network/NetworkSessionMock.swift | 0 .../Network/NetworkSessionMockFromFile.swift | 0 .../Network/TestURLSessionDelegate.swift | 0 .../URLSessionConfiguration+Tests.swift | 0 .../Network/URLSessionDataTaskMock.swift | 0 .../Nimble/ResultPredicates.swift | 0 .../MasKitTests}/OutputListener.swift | 0 .../MasKitTests}/OutputListenerSpec.swift | 0 .../MasKitTests}/Strongify.swift | 0 .../MasKitTests}/SupportingFiles/Info.plist | 0 mas-cli.xcodeproj/project.pbxproj | 48 +++++++++++-------- script/lint | 6 +-- script/update_headers | 2 +- 134 files changed, 32 insertions(+), 24 deletions(-) rename {MasKit => Sources/MasKit}/AppStore/CKSoftwareMap+SoftwareMap.swift (100%) rename {MasKit => Sources/MasKit}/AppStore/CKSoftwareProduct+SoftwareProduct.swift (100%) rename {MasKit => Sources/MasKit}/AppStore/Downloader.swift (100%) rename {MasKit => Sources/MasKit}/AppStore/ISStoreAccount.swift (100%) rename {MasKit => Sources/MasKit}/AppStore/PurchaseDownloadObserver.swift (100%) rename {MasKit => Sources/MasKit}/AppStore/SSPurchase.swift (100%) rename {MasKit => Sources/MasKit}/AppStore/StoreAccount.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Account.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Home.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Info.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Install.swift (100%) rename {MasKit => Sources/MasKit}/Commands/List.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Lucky.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Open.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Outdated.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Purchase.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Reset.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Search.swift (100%) rename {MasKit => Sources/MasKit}/Commands/SignIn.swift (100%) rename {MasKit => Sources/MasKit}/Commands/SignOut.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Uninstall.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Upgrade.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Vendor.swift (100%) rename {MasKit => Sources/MasKit}/Commands/Version.swift (100%) rename {MasKit => Sources/MasKit}/Controllers/AppLibrary.swift (100%) rename {MasKit => Sources/MasKit}/Controllers/MasAppLibrary.swift (100%) rename {MasKit => Sources/MasKit}/Controllers/MasStoreSearch.swift (100%) rename {MasKit => Sources/MasKit}/Controllers/SoftwareMap.swift (100%) rename {MasKit => Sources/MasKit}/Controllers/StoreSearch.swift (100%) rename {MasKit => Sources/MasKit}/Errors/MASError.swift (100%) rename {MasKit => Sources/MasKit}/Extensions/String+PercentEncoding.swift (100%) rename {MasKit => Sources/MasKit}/ExternalCommands/ExternalCommand.swift (100%) rename {MasKit => Sources/MasKit}/ExternalCommands/OpenSystemCommand.swift (100%) rename {MasKit => Sources/MasKit}/Formatters/AppInfoFormatter.swift (100%) rename {MasKit => Sources/MasKit}/Formatters/AppListFormatter.swift (100%) rename {MasKit => Sources/MasKit}/Formatters/SearchResultFormatter.swift (100%) rename {MasKit => Sources/MasKit}/Formatters/Utilities.swift (100%) rename {MasKit => Sources/MasKit}/Models/SearchResult.swift (100%) rename {MasKit => Sources/MasKit}/Models/SearchResultList.swift (100%) rename {MasKit => Sources/MasKit}/Models/SoftwareProduct.swift (100%) rename {MasKit => Sources/MasKit}/Network/NetworkManager.swift (100%) rename {MasKit => Sources/MasKit}/Network/NetworkSession.swift (100%) rename {MasKit => Sources/MasKit}/Network/URLSession+NetworkSession.swift (100%) rename {MasKit => Sources/MasKit}/SupportingFiles/Info.plist (100%) rename {MasKit => Sources/MasKit}/SupportingFiles/MasKit.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKAccountStore.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKDownloadDirectory.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKDownloadQueue.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKDownloadQueueObserver.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKPurchaseController.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKServiceInterface.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/CKSoftwareMap.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/CommerceKit/module.modulemap (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/CKSoftwareProduct.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/CKUpdate.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISAccountService.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISAuthenticationContext.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISAuthenticationResponse.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISServiceProxy.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISServiceRemoteObject.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISStoreAccount.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/ISStoreClient.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/SSDownload.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/SSDownloadMetadata.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/SSDownloadPhase.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/SSDownloadStatus.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/SSPurchase.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/SSPurchaseResponse.h (100%) rename {PrivateFrameworks => Sources/PrivateFrameworks}/StoreFoundation/module.modulemap (100%) rename {mas => Sources/mas}/main.swift (100%) rename {mas => Sources/mas}/mas-Info.plist (100%) rename {MasKitTests => Tests/MasKitTests}/.swiftlint.yml (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/AccountCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/HomeCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/InfoCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/InstallCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/ListCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/LuckyCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/OpenCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/OutdatedCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/PurchaseCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/ResetCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/SearchCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/SignInCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/SignOutCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/UninstallCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/UpgradeCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/VendorCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Commands/VersionCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Controllers/AppLibraryMock.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Controllers/MasAppLibrarySpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Controllers/MasStoreSearchSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Controllers/StoreSearchMock.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Controllers/StoreSearchSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Errors/MASErrorTestCase.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Extensions/Bundle+JSON.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Extensions/String+FileExtension.swift (100%) rename {MasKitTests => Tests/MasKitTests}/ExternalCommands/OpenSystemCommandMock.swift (100%) rename {MasKitTests => Tests/MasKitTests}/ExternalCommands/OpenSystemCommandSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Formatters/AppListFormatterSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Formatters/SearchResultFormatterSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/lookup/fantastical.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/lookup/notability.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/lookup/slack.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/lookup/things.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/bbedit.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/bear.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/deliveries.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/fantastical.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/mojave.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/nonexistent.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/notability.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/slack.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/things-3.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/things-that-go-bump.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/things.json (100%) rename {MasKitTests => Tests/MasKitTests}/JSON/search/tweetbot.json (100%) rename {MasKitTests => Tests/MasKitTests}/Models/SearchResultListSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Models/SearchResultSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Models/SoftwareProductMock.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Network/NetworkManagerTests.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Network/NetworkSessionMock.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Network/NetworkSessionMockFromFile.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Network/TestURLSessionDelegate.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Network/URLSessionConfiguration+Tests.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Network/URLSessionDataTaskMock.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Nimble/ResultPredicates.swift (100%) rename {MasKitTests => Tests/MasKitTests}/OutputListener.swift (100%) rename {MasKitTests => Tests/MasKitTests}/OutputListenerSpec.swift (100%) rename {MasKitTests => Tests/MasKitTests}/Strongify.swift (100%) rename {MasKitTests => Tests/MasKitTests}/SupportingFiles/Info.plist (100%) diff --git a/MasKit/AppStore/CKSoftwareMap+SoftwareMap.swift b/Sources/MasKit/AppStore/CKSoftwareMap+SoftwareMap.swift similarity index 100% rename from MasKit/AppStore/CKSoftwareMap+SoftwareMap.swift rename to Sources/MasKit/AppStore/CKSoftwareMap+SoftwareMap.swift diff --git a/MasKit/AppStore/CKSoftwareProduct+SoftwareProduct.swift b/Sources/MasKit/AppStore/CKSoftwareProduct+SoftwareProduct.swift similarity index 100% rename from MasKit/AppStore/CKSoftwareProduct+SoftwareProduct.swift rename to Sources/MasKit/AppStore/CKSoftwareProduct+SoftwareProduct.swift diff --git a/MasKit/AppStore/Downloader.swift b/Sources/MasKit/AppStore/Downloader.swift similarity index 100% rename from MasKit/AppStore/Downloader.swift rename to Sources/MasKit/AppStore/Downloader.swift diff --git a/MasKit/AppStore/ISStoreAccount.swift b/Sources/MasKit/AppStore/ISStoreAccount.swift similarity index 100% rename from MasKit/AppStore/ISStoreAccount.swift rename to Sources/MasKit/AppStore/ISStoreAccount.swift diff --git a/MasKit/AppStore/PurchaseDownloadObserver.swift b/Sources/MasKit/AppStore/PurchaseDownloadObserver.swift similarity index 100% rename from MasKit/AppStore/PurchaseDownloadObserver.swift rename to Sources/MasKit/AppStore/PurchaseDownloadObserver.swift diff --git a/MasKit/AppStore/SSPurchase.swift b/Sources/MasKit/AppStore/SSPurchase.swift similarity index 100% rename from MasKit/AppStore/SSPurchase.swift rename to Sources/MasKit/AppStore/SSPurchase.swift diff --git a/MasKit/AppStore/StoreAccount.swift b/Sources/MasKit/AppStore/StoreAccount.swift similarity index 100% rename from MasKit/AppStore/StoreAccount.swift rename to Sources/MasKit/AppStore/StoreAccount.swift diff --git a/MasKit/Commands/Account.swift b/Sources/MasKit/Commands/Account.swift similarity index 100% rename from MasKit/Commands/Account.swift rename to Sources/MasKit/Commands/Account.swift diff --git a/MasKit/Commands/Home.swift b/Sources/MasKit/Commands/Home.swift similarity index 100% rename from MasKit/Commands/Home.swift rename to Sources/MasKit/Commands/Home.swift diff --git a/MasKit/Commands/Info.swift b/Sources/MasKit/Commands/Info.swift similarity index 100% rename from MasKit/Commands/Info.swift rename to Sources/MasKit/Commands/Info.swift diff --git a/MasKit/Commands/Install.swift b/Sources/MasKit/Commands/Install.swift similarity index 100% rename from MasKit/Commands/Install.swift rename to Sources/MasKit/Commands/Install.swift diff --git a/MasKit/Commands/List.swift b/Sources/MasKit/Commands/List.swift similarity index 100% rename from MasKit/Commands/List.swift rename to Sources/MasKit/Commands/List.swift diff --git a/MasKit/Commands/Lucky.swift b/Sources/MasKit/Commands/Lucky.swift similarity index 100% rename from MasKit/Commands/Lucky.swift rename to Sources/MasKit/Commands/Lucky.swift diff --git a/MasKit/Commands/Open.swift b/Sources/MasKit/Commands/Open.swift similarity index 100% rename from MasKit/Commands/Open.swift rename to Sources/MasKit/Commands/Open.swift diff --git a/MasKit/Commands/Outdated.swift b/Sources/MasKit/Commands/Outdated.swift similarity index 100% rename from MasKit/Commands/Outdated.swift rename to Sources/MasKit/Commands/Outdated.swift diff --git a/MasKit/Commands/Purchase.swift b/Sources/MasKit/Commands/Purchase.swift similarity index 100% rename from MasKit/Commands/Purchase.swift rename to Sources/MasKit/Commands/Purchase.swift diff --git a/MasKit/Commands/Reset.swift b/Sources/MasKit/Commands/Reset.swift similarity index 100% rename from MasKit/Commands/Reset.swift rename to Sources/MasKit/Commands/Reset.swift diff --git a/MasKit/Commands/Search.swift b/Sources/MasKit/Commands/Search.swift similarity index 100% rename from MasKit/Commands/Search.swift rename to Sources/MasKit/Commands/Search.swift diff --git a/MasKit/Commands/SignIn.swift b/Sources/MasKit/Commands/SignIn.swift similarity index 100% rename from MasKit/Commands/SignIn.swift rename to Sources/MasKit/Commands/SignIn.swift diff --git a/MasKit/Commands/SignOut.swift b/Sources/MasKit/Commands/SignOut.swift similarity index 100% rename from MasKit/Commands/SignOut.swift rename to Sources/MasKit/Commands/SignOut.swift diff --git a/MasKit/Commands/Uninstall.swift b/Sources/MasKit/Commands/Uninstall.swift similarity index 100% rename from MasKit/Commands/Uninstall.swift rename to Sources/MasKit/Commands/Uninstall.swift diff --git a/MasKit/Commands/Upgrade.swift b/Sources/MasKit/Commands/Upgrade.swift similarity index 100% rename from MasKit/Commands/Upgrade.swift rename to Sources/MasKit/Commands/Upgrade.swift diff --git a/MasKit/Commands/Vendor.swift b/Sources/MasKit/Commands/Vendor.swift similarity index 100% rename from MasKit/Commands/Vendor.swift rename to Sources/MasKit/Commands/Vendor.swift diff --git a/MasKit/Commands/Version.swift b/Sources/MasKit/Commands/Version.swift similarity index 100% rename from MasKit/Commands/Version.swift rename to Sources/MasKit/Commands/Version.swift diff --git a/MasKit/Controllers/AppLibrary.swift b/Sources/MasKit/Controllers/AppLibrary.swift similarity index 100% rename from MasKit/Controllers/AppLibrary.swift rename to Sources/MasKit/Controllers/AppLibrary.swift diff --git a/MasKit/Controllers/MasAppLibrary.swift b/Sources/MasKit/Controllers/MasAppLibrary.swift similarity index 100% rename from MasKit/Controllers/MasAppLibrary.swift rename to Sources/MasKit/Controllers/MasAppLibrary.swift diff --git a/MasKit/Controllers/MasStoreSearch.swift b/Sources/MasKit/Controllers/MasStoreSearch.swift similarity index 100% rename from MasKit/Controllers/MasStoreSearch.swift rename to Sources/MasKit/Controllers/MasStoreSearch.swift diff --git a/MasKit/Controllers/SoftwareMap.swift b/Sources/MasKit/Controllers/SoftwareMap.swift similarity index 100% rename from MasKit/Controllers/SoftwareMap.swift rename to Sources/MasKit/Controllers/SoftwareMap.swift diff --git a/MasKit/Controllers/StoreSearch.swift b/Sources/MasKit/Controllers/StoreSearch.swift similarity index 100% rename from MasKit/Controllers/StoreSearch.swift rename to Sources/MasKit/Controllers/StoreSearch.swift diff --git a/MasKit/Errors/MASError.swift b/Sources/MasKit/Errors/MASError.swift similarity index 100% rename from MasKit/Errors/MASError.swift rename to Sources/MasKit/Errors/MASError.swift diff --git a/MasKit/Extensions/String+PercentEncoding.swift b/Sources/MasKit/Extensions/String+PercentEncoding.swift similarity index 100% rename from MasKit/Extensions/String+PercentEncoding.swift rename to Sources/MasKit/Extensions/String+PercentEncoding.swift diff --git a/MasKit/ExternalCommands/ExternalCommand.swift b/Sources/MasKit/ExternalCommands/ExternalCommand.swift similarity index 100% rename from MasKit/ExternalCommands/ExternalCommand.swift rename to Sources/MasKit/ExternalCommands/ExternalCommand.swift diff --git a/MasKit/ExternalCommands/OpenSystemCommand.swift b/Sources/MasKit/ExternalCommands/OpenSystemCommand.swift similarity index 100% rename from MasKit/ExternalCommands/OpenSystemCommand.swift rename to Sources/MasKit/ExternalCommands/OpenSystemCommand.swift diff --git a/MasKit/Formatters/AppInfoFormatter.swift b/Sources/MasKit/Formatters/AppInfoFormatter.swift similarity index 100% rename from MasKit/Formatters/AppInfoFormatter.swift rename to Sources/MasKit/Formatters/AppInfoFormatter.swift diff --git a/MasKit/Formatters/AppListFormatter.swift b/Sources/MasKit/Formatters/AppListFormatter.swift similarity index 100% rename from MasKit/Formatters/AppListFormatter.swift rename to Sources/MasKit/Formatters/AppListFormatter.swift diff --git a/MasKit/Formatters/SearchResultFormatter.swift b/Sources/MasKit/Formatters/SearchResultFormatter.swift similarity index 100% rename from MasKit/Formatters/SearchResultFormatter.swift rename to Sources/MasKit/Formatters/SearchResultFormatter.swift diff --git a/MasKit/Formatters/Utilities.swift b/Sources/MasKit/Formatters/Utilities.swift similarity index 100% rename from MasKit/Formatters/Utilities.swift rename to Sources/MasKit/Formatters/Utilities.swift diff --git a/MasKit/Models/SearchResult.swift b/Sources/MasKit/Models/SearchResult.swift similarity index 100% rename from MasKit/Models/SearchResult.swift rename to Sources/MasKit/Models/SearchResult.swift diff --git a/MasKit/Models/SearchResultList.swift b/Sources/MasKit/Models/SearchResultList.swift similarity index 100% rename from MasKit/Models/SearchResultList.swift rename to Sources/MasKit/Models/SearchResultList.swift diff --git a/MasKit/Models/SoftwareProduct.swift b/Sources/MasKit/Models/SoftwareProduct.swift similarity index 100% rename from MasKit/Models/SoftwareProduct.swift rename to Sources/MasKit/Models/SoftwareProduct.swift diff --git a/MasKit/Network/NetworkManager.swift b/Sources/MasKit/Network/NetworkManager.swift similarity index 100% rename from MasKit/Network/NetworkManager.swift rename to Sources/MasKit/Network/NetworkManager.swift diff --git a/MasKit/Network/NetworkSession.swift b/Sources/MasKit/Network/NetworkSession.swift similarity index 100% rename from MasKit/Network/NetworkSession.swift rename to Sources/MasKit/Network/NetworkSession.swift diff --git a/MasKit/Network/URLSession+NetworkSession.swift b/Sources/MasKit/Network/URLSession+NetworkSession.swift similarity index 100% rename from MasKit/Network/URLSession+NetworkSession.swift rename to Sources/MasKit/Network/URLSession+NetworkSession.swift diff --git a/MasKit/SupportingFiles/Info.plist b/Sources/MasKit/SupportingFiles/Info.plist similarity index 100% rename from MasKit/SupportingFiles/Info.plist rename to Sources/MasKit/SupportingFiles/Info.plist diff --git a/MasKit/SupportingFiles/MasKit.h b/Sources/MasKit/SupportingFiles/MasKit.h similarity index 100% rename from MasKit/SupportingFiles/MasKit.h rename to Sources/MasKit/SupportingFiles/MasKit.h diff --git a/PrivateFrameworks/CommerceKit/CKAccountStore.h b/Sources/PrivateFrameworks/CommerceKit/CKAccountStore.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKAccountStore.h rename to Sources/PrivateFrameworks/CommerceKit/CKAccountStore.h diff --git a/PrivateFrameworks/CommerceKit/CKDownloadDirectory.h b/Sources/PrivateFrameworks/CommerceKit/CKDownloadDirectory.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKDownloadDirectory.h rename to Sources/PrivateFrameworks/CommerceKit/CKDownloadDirectory.h diff --git a/PrivateFrameworks/CommerceKit/CKDownloadQueue.h b/Sources/PrivateFrameworks/CommerceKit/CKDownloadQueue.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKDownloadQueue.h rename to Sources/PrivateFrameworks/CommerceKit/CKDownloadQueue.h diff --git a/PrivateFrameworks/CommerceKit/CKDownloadQueueObserver.h b/Sources/PrivateFrameworks/CommerceKit/CKDownloadQueueObserver.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKDownloadQueueObserver.h rename to Sources/PrivateFrameworks/CommerceKit/CKDownloadQueueObserver.h diff --git a/PrivateFrameworks/CommerceKit/CKPurchaseController.h b/Sources/PrivateFrameworks/CommerceKit/CKPurchaseController.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKPurchaseController.h rename to Sources/PrivateFrameworks/CommerceKit/CKPurchaseController.h diff --git a/PrivateFrameworks/CommerceKit/CKServiceInterface.h b/Sources/PrivateFrameworks/CommerceKit/CKServiceInterface.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKServiceInterface.h rename to Sources/PrivateFrameworks/CommerceKit/CKServiceInterface.h diff --git a/PrivateFrameworks/CommerceKit/CKSoftwareMap.h b/Sources/PrivateFrameworks/CommerceKit/CKSoftwareMap.h similarity index 100% rename from PrivateFrameworks/CommerceKit/CKSoftwareMap.h rename to Sources/PrivateFrameworks/CommerceKit/CKSoftwareMap.h diff --git a/PrivateFrameworks/CommerceKit/module.modulemap b/Sources/PrivateFrameworks/CommerceKit/module.modulemap similarity index 100% rename from PrivateFrameworks/CommerceKit/module.modulemap rename to Sources/PrivateFrameworks/CommerceKit/module.modulemap diff --git a/PrivateFrameworks/StoreFoundation/CKSoftwareProduct.h b/Sources/PrivateFrameworks/StoreFoundation/CKSoftwareProduct.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/CKSoftwareProduct.h rename to Sources/PrivateFrameworks/StoreFoundation/CKSoftwareProduct.h diff --git a/PrivateFrameworks/StoreFoundation/CKUpdate.h b/Sources/PrivateFrameworks/StoreFoundation/CKUpdate.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/CKUpdate.h rename to Sources/PrivateFrameworks/StoreFoundation/CKUpdate.h diff --git a/PrivateFrameworks/StoreFoundation/ISAccountService.h b/Sources/PrivateFrameworks/StoreFoundation/ISAccountService.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISAccountService.h rename to Sources/PrivateFrameworks/StoreFoundation/ISAccountService.h diff --git a/PrivateFrameworks/StoreFoundation/ISAuthenticationContext.h b/Sources/PrivateFrameworks/StoreFoundation/ISAuthenticationContext.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISAuthenticationContext.h rename to Sources/PrivateFrameworks/StoreFoundation/ISAuthenticationContext.h diff --git a/PrivateFrameworks/StoreFoundation/ISAuthenticationResponse.h b/Sources/PrivateFrameworks/StoreFoundation/ISAuthenticationResponse.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISAuthenticationResponse.h rename to Sources/PrivateFrameworks/StoreFoundation/ISAuthenticationResponse.h diff --git a/PrivateFrameworks/StoreFoundation/ISServiceProxy.h b/Sources/PrivateFrameworks/StoreFoundation/ISServiceProxy.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISServiceProxy.h rename to Sources/PrivateFrameworks/StoreFoundation/ISServiceProxy.h diff --git a/PrivateFrameworks/StoreFoundation/ISServiceRemoteObject.h b/Sources/PrivateFrameworks/StoreFoundation/ISServiceRemoteObject.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISServiceRemoteObject.h rename to Sources/PrivateFrameworks/StoreFoundation/ISServiceRemoteObject.h diff --git a/PrivateFrameworks/StoreFoundation/ISStoreAccount.h b/Sources/PrivateFrameworks/StoreFoundation/ISStoreAccount.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISStoreAccount.h rename to Sources/PrivateFrameworks/StoreFoundation/ISStoreAccount.h diff --git a/PrivateFrameworks/StoreFoundation/ISStoreClient.h b/Sources/PrivateFrameworks/StoreFoundation/ISStoreClient.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/ISStoreClient.h rename to Sources/PrivateFrameworks/StoreFoundation/ISStoreClient.h diff --git a/PrivateFrameworks/StoreFoundation/SSDownload.h b/Sources/PrivateFrameworks/StoreFoundation/SSDownload.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/SSDownload.h rename to Sources/PrivateFrameworks/StoreFoundation/SSDownload.h diff --git a/PrivateFrameworks/StoreFoundation/SSDownloadMetadata.h b/Sources/PrivateFrameworks/StoreFoundation/SSDownloadMetadata.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/SSDownloadMetadata.h rename to Sources/PrivateFrameworks/StoreFoundation/SSDownloadMetadata.h diff --git a/PrivateFrameworks/StoreFoundation/SSDownloadPhase.h b/Sources/PrivateFrameworks/StoreFoundation/SSDownloadPhase.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/SSDownloadPhase.h rename to Sources/PrivateFrameworks/StoreFoundation/SSDownloadPhase.h diff --git a/PrivateFrameworks/StoreFoundation/SSDownloadStatus.h b/Sources/PrivateFrameworks/StoreFoundation/SSDownloadStatus.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/SSDownloadStatus.h rename to Sources/PrivateFrameworks/StoreFoundation/SSDownloadStatus.h diff --git a/PrivateFrameworks/StoreFoundation/SSPurchase.h b/Sources/PrivateFrameworks/StoreFoundation/SSPurchase.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/SSPurchase.h rename to Sources/PrivateFrameworks/StoreFoundation/SSPurchase.h diff --git a/PrivateFrameworks/StoreFoundation/SSPurchaseResponse.h b/Sources/PrivateFrameworks/StoreFoundation/SSPurchaseResponse.h similarity index 100% rename from PrivateFrameworks/StoreFoundation/SSPurchaseResponse.h rename to Sources/PrivateFrameworks/StoreFoundation/SSPurchaseResponse.h diff --git a/PrivateFrameworks/StoreFoundation/module.modulemap b/Sources/PrivateFrameworks/StoreFoundation/module.modulemap similarity index 100% rename from PrivateFrameworks/StoreFoundation/module.modulemap rename to Sources/PrivateFrameworks/StoreFoundation/module.modulemap diff --git a/mas/main.swift b/Sources/mas/main.swift similarity index 100% rename from mas/main.swift rename to Sources/mas/main.swift diff --git a/mas/mas-Info.plist b/Sources/mas/mas-Info.plist similarity index 100% rename from mas/mas-Info.plist rename to Sources/mas/mas-Info.plist diff --git a/MasKitTests/.swiftlint.yml b/Tests/MasKitTests/.swiftlint.yml similarity index 100% rename from MasKitTests/.swiftlint.yml rename to Tests/MasKitTests/.swiftlint.yml diff --git a/MasKitTests/Commands/AccountCommandSpec.swift b/Tests/MasKitTests/Commands/AccountCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/AccountCommandSpec.swift rename to Tests/MasKitTests/Commands/AccountCommandSpec.swift diff --git a/MasKitTests/Commands/HomeCommandSpec.swift b/Tests/MasKitTests/Commands/HomeCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/HomeCommandSpec.swift rename to Tests/MasKitTests/Commands/HomeCommandSpec.swift diff --git a/MasKitTests/Commands/InfoCommandSpec.swift b/Tests/MasKitTests/Commands/InfoCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/InfoCommandSpec.swift rename to Tests/MasKitTests/Commands/InfoCommandSpec.swift diff --git a/MasKitTests/Commands/InstallCommandSpec.swift b/Tests/MasKitTests/Commands/InstallCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/InstallCommandSpec.swift rename to Tests/MasKitTests/Commands/InstallCommandSpec.swift diff --git a/MasKitTests/Commands/ListCommandSpec.swift b/Tests/MasKitTests/Commands/ListCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/ListCommandSpec.swift rename to Tests/MasKitTests/Commands/ListCommandSpec.swift diff --git a/MasKitTests/Commands/LuckyCommandSpec.swift b/Tests/MasKitTests/Commands/LuckyCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/LuckyCommandSpec.swift rename to Tests/MasKitTests/Commands/LuckyCommandSpec.swift diff --git a/MasKitTests/Commands/OpenCommandSpec.swift b/Tests/MasKitTests/Commands/OpenCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/OpenCommandSpec.swift rename to Tests/MasKitTests/Commands/OpenCommandSpec.swift diff --git a/MasKitTests/Commands/OutdatedCommandSpec.swift b/Tests/MasKitTests/Commands/OutdatedCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/OutdatedCommandSpec.swift rename to Tests/MasKitTests/Commands/OutdatedCommandSpec.swift diff --git a/MasKitTests/Commands/PurchaseCommandSpec.swift b/Tests/MasKitTests/Commands/PurchaseCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/PurchaseCommandSpec.swift rename to Tests/MasKitTests/Commands/PurchaseCommandSpec.swift diff --git a/MasKitTests/Commands/ResetCommandSpec.swift b/Tests/MasKitTests/Commands/ResetCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/ResetCommandSpec.swift rename to Tests/MasKitTests/Commands/ResetCommandSpec.swift diff --git a/MasKitTests/Commands/SearchCommandSpec.swift b/Tests/MasKitTests/Commands/SearchCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/SearchCommandSpec.swift rename to Tests/MasKitTests/Commands/SearchCommandSpec.swift diff --git a/MasKitTests/Commands/SignInCommandSpec.swift b/Tests/MasKitTests/Commands/SignInCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/SignInCommandSpec.swift rename to Tests/MasKitTests/Commands/SignInCommandSpec.swift diff --git a/MasKitTests/Commands/SignOutCommandSpec.swift b/Tests/MasKitTests/Commands/SignOutCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/SignOutCommandSpec.swift rename to Tests/MasKitTests/Commands/SignOutCommandSpec.swift diff --git a/MasKitTests/Commands/UninstallCommandSpec.swift b/Tests/MasKitTests/Commands/UninstallCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/UninstallCommandSpec.swift rename to Tests/MasKitTests/Commands/UninstallCommandSpec.swift diff --git a/MasKitTests/Commands/UpgradeCommandSpec.swift b/Tests/MasKitTests/Commands/UpgradeCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/UpgradeCommandSpec.swift rename to Tests/MasKitTests/Commands/UpgradeCommandSpec.swift diff --git a/MasKitTests/Commands/VendorCommandSpec.swift b/Tests/MasKitTests/Commands/VendorCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/VendorCommandSpec.swift rename to Tests/MasKitTests/Commands/VendorCommandSpec.swift diff --git a/MasKitTests/Commands/VersionCommandSpec.swift b/Tests/MasKitTests/Commands/VersionCommandSpec.swift similarity index 100% rename from MasKitTests/Commands/VersionCommandSpec.swift rename to Tests/MasKitTests/Commands/VersionCommandSpec.swift diff --git a/MasKitTests/Controllers/AppLibraryMock.swift b/Tests/MasKitTests/Controllers/AppLibraryMock.swift similarity index 100% rename from MasKitTests/Controllers/AppLibraryMock.swift rename to Tests/MasKitTests/Controllers/AppLibraryMock.swift diff --git a/MasKitTests/Controllers/MasAppLibrarySpec.swift b/Tests/MasKitTests/Controllers/MasAppLibrarySpec.swift similarity index 100% rename from MasKitTests/Controllers/MasAppLibrarySpec.swift rename to Tests/MasKitTests/Controllers/MasAppLibrarySpec.swift diff --git a/MasKitTests/Controllers/MasStoreSearchSpec.swift b/Tests/MasKitTests/Controllers/MasStoreSearchSpec.swift similarity index 100% rename from MasKitTests/Controllers/MasStoreSearchSpec.swift rename to Tests/MasKitTests/Controllers/MasStoreSearchSpec.swift diff --git a/MasKitTests/Controllers/StoreSearchMock.swift b/Tests/MasKitTests/Controllers/StoreSearchMock.swift similarity index 100% rename from MasKitTests/Controllers/StoreSearchMock.swift rename to Tests/MasKitTests/Controllers/StoreSearchMock.swift diff --git a/MasKitTests/Controllers/StoreSearchSpec.swift b/Tests/MasKitTests/Controllers/StoreSearchSpec.swift similarity index 100% rename from MasKitTests/Controllers/StoreSearchSpec.swift rename to Tests/MasKitTests/Controllers/StoreSearchSpec.swift diff --git a/MasKitTests/Errors/MASErrorTestCase.swift b/Tests/MasKitTests/Errors/MASErrorTestCase.swift similarity index 100% rename from MasKitTests/Errors/MASErrorTestCase.swift rename to Tests/MasKitTests/Errors/MASErrorTestCase.swift diff --git a/MasKitTests/Extensions/Bundle+JSON.swift b/Tests/MasKitTests/Extensions/Bundle+JSON.swift similarity index 100% rename from MasKitTests/Extensions/Bundle+JSON.swift rename to Tests/MasKitTests/Extensions/Bundle+JSON.swift diff --git a/MasKitTests/Extensions/String+FileExtension.swift b/Tests/MasKitTests/Extensions/String+FileExtension.swift similarity index 100% rename from MasKitTests/Extensions/String+FileExtension.swift rename to Tests/MasKitTests/Extensions/String+FileExtension.swift diff --git a/MasKitTests/ExternalCommands/OpenSystemCommandMock.swift b/Tests/MasKitTests/ExternalCommands/OpenSystemCommandMock.swift similarity index 100% rename from MasKitTests/ExternalCommands/OpenSystemCommandMock.swift rename to Tests/MasKitTests/ExternalCommands/OpenSystemCommandMock.swift diff --git a/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift b/Tests/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift similarity index 100% rename from MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift rename to Tests/MasKitTests/ExternalCommands/OpenSystemCommandSpec.swift diff --git a/MasKitTests/Formatters/AppListFormatterSpec.swift b/Tests/MasKitTests/Formatters/AppListFormatterSpec.swift similarity index 100% rename from MasKitTests/Formatters/AppListFormatterSpec.swift rename to Tests/MasKitTests/Formatters/AppListFormatterSpec.swift diff --git a/MasKitTests/Formatters/SearchResultFormatterSpec.swift b/Tests/MasKitTests/Formatters/SearchResultFormatterSpec.swift similarity index 100% rename from MasKitTests/Formatters/SearchResultFormatterSpec.swift rename to Tests/MasKitTests/Formatters/SearchResultFormatterSpec.swift diff --git a/MasKitTests/JSON/lookup/fantastical.json b/Tests/MasKitTests/JSON/lookup/fantastical.json similarity index 100% rename from MasKitTests/JSON/lookup/fantastical.json rename to Tests/MasKitTests/JSON/lookup/fantastical.json diff --git a/MasKitTests/JSON/lookup/notability.json b/Tests/MasKitTests/JSON/lookup/notability.json similarity index 100% rename from MasKitTests/JSON/lookup/notability.json rename to Tests/MasKitTests/JSON/lookup/notability.json diff --git a/MasKitTests/JSON/lookup/slack.json b/Tests/MasKitTests/JSON/lookup/slack.json similarity index 100% rename from MasKitTests/JSON/lookup/slack.json rename to Tests/MasKitTests/JSON/lookup/slack.json diff --git a/MasKitTests/JSON/lookup/things.json b/Tests/MasKitTests/JSON/lookup/things.json similarity index 100% rename from MasKitTests/JSON/lookup/things.json rename to Tests/MasKitTests/JSON/lookup/things.json diff --git a/MasKitTests/JSON/search/bbedit.json b/Tests/MasKitTests/JSON/search/bbedit.json similarity index 100% rename from MasKitTests/JSON/search/bbedit.json rename to Tests/MasKitTests/JSON/search/bbedit.json diff --git a/MasKitTests/JSON/search/bear.json b/Tests/MasKitTests/JSON/search/bear.json similarity index 100% rename from MasKitTests/JSON/search/bear.json rename to Tests/MasKitTests/JSON/search/bear.json diff --git a/MasKitTests/JSON/search/deliveries.json b/Tests/MasKitTests/JSON/search/deliveries.json similarity index 100% rename from MasKitTests/JSON/search/deliveries.json rename to Tests/MasKitTests/JSON/search/deliveries.json diff --git a/MasKitTests/JSON/search/fantastical.json b/Tests/MasKitTests/JSON/search/fantastical.json similarity index 100% rename from MasKitTests/JSON/search/fantastical.json rename to Tests/MasKitTests/JSON/search/fantastical.json diff --git a/MasKitTests/JSON/search/mojave.json b/Tests/MasKitTests/JSON/search/mojave.json similarity index 100% rename from MasKitTests/JSON/search/mojave.json rename to Tests/MasKitTests/JSON/search/mojave.json diff --git a/MasKitTests/JSON/search/nonexistent.json b/Tests/MasKitTests/JSON/search/nonexistent.json similarity index 100% rename from MasKitTests/JSON/search/nonexistent.json rename to Tests/MasKitTests/JSON/search/nonexistent.json diff --git a/MasKitTests/JSON/search/notability.json b/Tests/MasKitTests/JSON/search/notability.json similarity index 100% rename from MasKitTests/JSON/search/notability.json rename to Tests/MasKitTests/JSON/search/notability.json diff --git a/MasKitTests/JSON/search/slack.json b/Tests/MasKitTests/JSON/search/slack.json similarity index 100% rename from MasKitTests/JSON/search/slack.json rename to Tests/MasKitTests/JSON/search/slack.json diff --git a/MasKitTests/JSON/search/things-3.json b/Tests/MasKitTests/JSON/search/things-3.json similarity index 100% rename from MasKitTests/JSON/search/things-3.json rename to Tests/MasKitTests/JSON/search/things-3.json diff --git a/MasKitTests/JSON/search/things-that-go-bump.json b/Tests/MasKitTests/JSON/search/things-that-go-bump.json similarity index 100% rename from MasKitTests/JSON/search/things-that-go-bump.json rename to Tests/MasKitTests/JSON/search/things-that-go-bump.json diff --git a/MasKitTests/JSON/search/things.json b/Tests/MasKitTests/JSON/search/things.json similarity index 100% rename from MasKitTests/JSON/search/things.json rename to Tests/MasKitTests/JSON/search/things.json diff --git a/MasKitTests/JSON/search/tweetbot.json b/Tests/MasKitTests/JSON/search/tweetbot.json similarity index 100% rename from MasKitTests/JSON/search/tweetbot.json rename to Tests/MasKitTests/JSON/search/tweetbot.json diff --git a/MasKitTests/Models/SearchResultListSpec.swift b/Tests/MasKitTests/Models/SearchResultListSpec.swift similarity index 100% rename from MasKitTests/Models/SearchResultListSpec.swift rename to Tests/MasKitTests/Models/SearchResultListSpec.swift diff --git a/MasKitTests/Models/SearchResultSpec.swift b/Tests/MasKitTests/Models/SearchResultSpec.swift similarity index 100% rename from MasKitTests/Models/SearchResultSpec.swift rename to Tests/MasKitTests/Models/SearchResultSpec.swift diff --git a/MasKitTests/Models/SoftwareProductMock.swift b/Tests/MasKitTests/Models/SoftwareProductMock.swift similarity index 100% rename from MasKitTests/Models/SoftwareProductMock.swift rename to Tests/MasKitTests/Models/SoftwareProductMock.swift diff --git a/MasKitTests/Network/NetworkManagerTests.swift b/Tests/MasKitTests/Network/NetworkManagerTests.swift similarity index 100% rename from MasKitTests/Network/NetworkManagerTests.swift rename to Tests/MasKitTests/Network/NetworkManagerTests.swift diff --git a/MasKitTests/Network/NetworkSessionMock.swift b/Tests/MasKitTests/Network/NetworkSessionMock.swift similarity index 100% rename from MasKitTests/Network/NetworkSessionMock.swift rename to Tests/MasKitTests/Network/NetworkSessionMock.swift diff --git a/MasKitTests/Network/NetworkSessionMockFromFile.swift b/Tests/MasKitTests/Network/NetworkSessionMockFromFile.swift similarity index 100% rename from MasKitTests/Network/NetworkSessionMockFromFile.swift rename to Tests/MasKitTests/Network/NetworkSessionMockFromFile.swift diff --git a/MasKitTests/Network/TestURLSessionDelegate.swift b/Tests/MasKitTests/Network/TestURLSessionDelegate.swift similarity index 100% rename from MasKitTests/Network/TestURLSessionDelegate.swift rename to Tests/MasKitTests/Network/TestURLSessionDelegate.swift diff --git a/MasKitTests/Network/URLSessionConfiguration+Tests.swift b/Tests/MasKitTests/Network/URLSessionConfiguration+Tests.swift similarity index 100% rename from MasKitTests/Network/URLSessionConfiguration+Tests.swift rename to Tests/MasKitTests/Network/URLSessionConfiguration+Tests.swift diff --git a/MasKitTests/Network/URLSessionDataTaskMock.swift b/Tests/MasKitTests/Network/URLSessionDataTaskMock.swift similarity index 100% rename from MasKitTests/Network/URLSessionDataTaskMock.swift rename to Tests/MasKitTests/Network/URLSessionDataTaskMock.swift diff --git a/MasKitTests/Nimble/ResultPredicates.swift b/Tests/MasKitTests/Nimble/ResultPredicates.swift similarity index 100% rename from MasKitTests/Nimble/ResultPredicates.swift rename to Tests/MasKitTests/Nimble/ResultPredicates.swift diff --git a/MasKitTests/OutputListener.swift b/Tests/MasKitTests/OutputListener.swift similarity index 100% rename from MasKitTests/OutputListener.swift rename to Tests/MasKitTests/OutputListener.swift diff --git a/MasKitTests/OutputListenerSpec.swift b/Tests/MasKitTests/OutputListenerSpec.swift similarity index 100% rename from MasKitTests/OutputListenerSpec.swift rename to Tests/MasKitTests/OutputListenerSpec.swift diff --git a/MasKitTests/Strongify.swift b/Tests/MasKitTests/Strongify.swift similarity index 100% rename from MasKitTests/Strongify.swift rename to Tests/MasKitTests/Strongify.swift diff --git a/MasKitTests/SupportingFiles/Info.plist b/Tests/MasKitTests/SupportingFiles/Info.plist similarity index 100% rename from MasKitTests/SupportingFiles/Info.plist rename to Tests/MasKitTests/SupportingFiles/Info.plist diff --git a/mas-cli.xcodeproj/project.pbxproj b/mas-cli.xcodeproj/project.pbxproj index 30a3380..ccb3010 100644 --- a/mas-cli.xcodeproj/project.pbxproj +++ b/mas-cli.xcodeproj/project.pbxproj @@ -22,7 +22,6 @@ B576FE0021E113610016B39D /* NetworkSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FDFF21E113610016B39D /* NetworkSession.swift */; }; B576FE0221E1139E0016B39D /* URLSession+NetworkSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE0121E1139E0016B39D /* URLSession+NetworkSession.swift */; }; B576FE0421E113E90016B39D /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE0321E113E90016B39D /* NetworkManager.swift */; }; - B576FE0821E114A80016B39D /* NetworkResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE0721E114A80016B39D /* NetworkResult.swift */; }; B576FE0C21E116590016B39D /* NetworkManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE0B21E116590016B39D /* NetworkManagerTests.swift */; }; B576FE0E21E1D6310016B39D /* String+PercentEncoding.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE0D21E1D6310016B39D /* String+PercentEncoding.swift */; }; B576FE1221E1D82D0016B39D /* NetworkSessionMockFromFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE1121E1D82D0016B39D /* NetworkSessionMockFromFile.swift */; }; @@ -30,7 +29,6 @@ B576FE1621E1D8CB0016B39D /* String+FileExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE1521E1D8CB0016B39D /* String+FileExtension.swift */; }; B576FE1B21E28E8A0016B39D /* NetworkSessionMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE1A21E28E8A0016B39D /* NetworkSessionMock.swift */; }; B576FE1D21E28EF70016B39D /* URLSessionDataTaskMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE1C21E28EF70016B39D /* URLSessionDataTaskMock.swift */; }; - B576FE2821E423E60016B39D /* Dictionary+StringOrEmpty.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE2721E423E60016B39D /* Dictionary+StringOrEmpty.swift */; }; B576FE2A21E4240B0016B39D /* AppInfoFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE2921E4240B0016B39D /* AppInfoFormatter.swift */; }; B576FE2C21E42A230016B39D /* OutputListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE2B21E42A230016B39D /* OutputListener.swift */; }; B576FE2E21E5A8010016B39D /* Strongify.swift in Sources */ = {isa = PBXBuildFile; fileRef = B576FE2D21E5A8010016B39D /* Strongify.swift */; }; @@ -188,7 +186,6 @@ B576FDFF21E113610016B39D /* NetworkSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkSession.swift; sourceTree = ""; }; B576FE0121E1139E0016B39D /* URLSession+NetworkSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URLSession+NetworkSession.swift"; sourceTree = ""; }; B576FE0321E113E90016B39D /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = ""; }; - B576FE0721E114A80016B39D /* NetworkResult.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkResult.swift; sourceTree = ""; }; B576FE0B21E116590016B39D /* NetworkManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManagerTests.swift; sourceTree = ""; }; B576FE0D21E1D6310016B39D /* String+PercentEncoding.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+PercentEncoding.swift"; sourceTree = ""; }; B576FE1121E1D82D0016B39D /* NetworkSessionMockFromFile.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkSessionMockFromFile.swift; sourceTree = ""; }; @@ -196,7 +193,6 @@ B576FE1521E1D8CB0016B39D /* String+FileExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+FileExtension.swift"; sourceTree = ""; }; B576FE1A21E28E8A0016B39D /* NetworkSessionMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NetworkSessionMock.swift; sourceTree = ""; }; B576FE1C21E28EF70016B39D /* URLSessionDataTaskMock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = URLSessionDataTaskMock.swift; sourceTree = ""; }; - B576FE2721E423E60016B39D /* Dictionary+StringOrEmpty.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Dictionary+StringOrEmpty.swift"; sourceTree = ""; }; B576FE2921E4240B0016B39D /* AppInfoFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfoFormatter.swift; sourceTree = ""; }; B576FE2B21E42A230016B39D /* OutputListener.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutputListener.swift; sourceTree = ""; }; B576FE2D21E5A8010016B39D /* Strongify.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Strongify.swift; sourceTree = ""; }; @@ -348,7 +344,6 @@ isa = PBXGroup; children = ( B576FE0321E113E90016B39D /* NetworkManager.swift */, - B576FE0721E114A80016B39D /* NetworkResult.swift */, B576FDFF21E113610016B39D /* NetworkSession.swift */, B576FE0121E1139E0016B39D /* URLSession+NetworkSession.swift */, ); @@ -407,7 +402,6 @@ B576FE1F21E290720016B39D /* Extensions */ = { isa = PBXGroup; children = ( - B576FE2721E423E60016B39D /* Dictionary+StringOrEmpty.swift */, B576FE0D21E1D6310016B39D /* String+PercentEncoding.swift */, ); path = Extensions; @@ -524,14 +518,30 @@ path = Models; sourceTree = ""; }; + C56F16DB2637711100EAC548 /* Sources */ = { + isa = PBXGroup; + children = ( + ED031A7A1B5127C00097692E /* mas */, + F8FB715320F2B41400F56FDC /* MasKit */, + F8FB719920F2EC4500F56FDC /* PrivateFrameworks */, + ); + path = Sources; + sourceTree = ""; + }; + C56F16DC2637711900EAC548 /* Tests */ = { + isa = PBXGroup; + children = ( + F8FB715E20F2B41400F56FDC /* MasKitTests */, + ); + path = Tests; + sourceTree = ""; + }; ED031A6F1B5127C00097692E = { isa = PBXGroup; children = ( EDFC76381B642A2E00D0DBD7 /* Frameworks */, - ED031A7A1B5127C00097692E /* mas */, - F8FB715320F2B41400F56FDC /* MasKit */, - F8FB715E20F2B41400F56FDC /* MasKitTests */, - F8FB719920F2EC4500F56FDC /* PrivateFrameworks */, + C56F16DB2637711100EAC548 /* Sources */, + C56F16DC2637711900EAC548 /* Tests */, ED031A791B5127C00097692E /* Products */, ); sourceTree = ""; @@ -917,7 +927,6 @@ B594B12721D5825800F3AC59 /* AppLibrary.swift in Sources */, F85DA8B2240CBAFE00FE5650 /* CKSoftwareMap+SoftwareMap.swift in Sources */, B594B12B21D5837200F3AC59 /* CKSoftwareProduct+SoftwareProduct.swift in Sources */, - B576FE2821E423E60016B39D /* Dictionary+StringOrEmpty.swift in Sources */, F8FB716A20F2B4DD00F56FDC /* Downloader.swift in Sources */, B588CE0221DC89490047D305 /* ExternalCommand.swift in Sources */, B594B14C21D8983700F3AC59 /* Home.swift in Sources */, @@ -930,7 +939,6 @@ F8FB717B20F2B4DD00F56FDC /* MASError.swift in Sources */, B594B15221D89A8B00F3AC59 /* MasStoreSearch.swift in Sources */, B576FE0421E113E90016B39D /* NetworkManager.swift in Sources */, - B576FE0821E114A80016B39D /* NetworkResult.swift in Sources */, B576FE0021E113610016B39D /* NetworkSession.swift in Sources */, B5DBF80D21DEE4E600F3B151 /* Open.swift in Sources */, B576FDF721E107AA0016B39D /* OpenSystemCommand.swift in Sources */, @@ -1150,7 +1158,7 @@ CODE_SIGN_IDENTITY = "-"; COPY_PHASE_STRIP = NO; GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = "mas/mas-Info.plist"; + INFOPLIST_FILE = "Sources/mas/mas-Info.plist"; INSTALL_PATH = /bin; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/.", @@ -1175,7 +1183,7 @@ COPY_PHASE_STRIP = NO; DEPLOYMENT_LOCATION = YES; GCC_SYMBOLS_PRIVATE_EXTERN = NO; - INFOPLIST_FILE = "mas/mas-Info.plist"; + INFOPLIST_FILE = "Sources/mas/mas-Info.plist"; INSTALL_PATH = /bin; LD_RUNPATH_SEARCH_PATHS = ( "@executable_path/.", @@ -1214,7 +1222,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; FRAMEWORK_VERSION = A; GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = MasKit/SupportingFiles/Info.plist; + INFOPLIST_FILE = Sources/MasKit/SupportingFiles/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1225,7 +1233,7 @@ PRODUCT_BUNDLE_IDENTIFIER = at.phatbl.MasKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/PrivateFrameworks/CommerceKit $(SRCROOT)/PrivateFrameworks/StoreFoundation"; + SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/Sources/PrivateFrameworks/CommerceKit $(SRCROOT)/Sources/PrivateFrameworks/StoreFoundation"; }; name = Debug; }; @@ -1249,7 +1257,7 @@ FRAMEWORK_SEARCH_PATHS = "$(inherited)"; FRAMEWORK_VERSION = A; GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = MasKit/SupportingFiles/Info.plist; + INFOPLIST_FILE = Sources/MasKit/SupportingFiles/Info.plist; INSTALL_PATH = /Frameworks; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -1260,7 +1268,7 @@ PRODUCT_BUNDLE_IDENTIFIER = at.phatbl.MasKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/PrivateFrameworks/CommerceKit $(SRCROOT)/PrivateFrameworks/StoreFoundation"; + SWIFT_INCLUDE_PATHS = "$(inherited) $(SRCROOT)/Sources/PrivateFrameworks/CommerceKit $(SRCROOT)/Sources/PrivateFrameworks/StoreFoundation"; SWIFT_OPTIMIZATION_LEVEL = "-O"; }; name = Release; @@ -1281,7 +1289,7 @@ COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = MasKitTests/SupportingFiles/Info.plist; + INFOPLIST_FILE = Tests/MasKitTests/SupportingFiles/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1313,7 +1321,7 @@ COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = MasKitTests/SupportingFiles/Info.plist; + INFOPLIST_FILE = Tests/MasKitTests/SupportingFiles/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", diff --git a/script/lint b/script/lint index 82357e0..469a620 100755 --- a/script/lint +++ b/script/lint @@ -24,11 +24,11 @@ git diff --check echo echo "--> 🕊️ Swift" -swiftformat --lint . -for SOURCE in mas MasKit MasKitTests; do +for SOURCE in Sources Tests; do + swiftformat --lint ${SOURCE} swift-format lint --configuration .swift-format --recursive ${SOURCE} + swiftlint lint --strict ${SOURCE} done -swiftlint lint --strict echo echo "--> 📜 Bash" diff --git a/script/update_headers b/script/update_headers index 9fa8168..0fabab6 100755 --- a/script/update_headers +++ b/script/update_headers @@ -24,7 +24,7 @@ check_class_dump() { extract_private_framework_headers() { local framework_name="$1" shift - local directory="PrivateFrameworks/${framework_name}" + local directory="Sources/PrivateFrameworks/${framework_name}" mkdir -p "$directory" class-dump -Ho "$directory" "/System/Library/PrivateFrameworks/${framework_name}.framework" }