Commit graph

153 commits

Author SHA1 Message Date
Ross Goldberg
309cfec38d
Fix JSON parsing error by making formattedPrice & price optional for SearchResult.
Use new `displayPrice` to get around optional `formattedPrice`. Doesn't handle i18n, but we can clean that up after we completely redo JSON handling.

Resolve #493

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-11-20 00:39:52 -05:00
Ross Goldberg
5209ccd16b
Improve downloading output.
Update linting for access control on extensions.

Resolve #307

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-30 03:48:00 -04:00
Ross Goldberg
37823cc4dd
Fix typos in DocC.
Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 06:14:19 -04:00
Ross Goldberg
1b43c89bec
Single source for Unknown app ID message.
Resolve #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 05:41:01 -04:00
Ross Goldberg
31dfe81174
Improve lucky & search error message.
Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 04:08:56 -04:00
Ross Goldberg
05674b2534
Remove duplicate error output for lucky.
Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 04:02:11 -04:00
Ross Goldberg
0b9c84bcb8
Improve help output for command arguments.
Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 03:59:14 -04:00
Ross Goldberg
64ab55718a
Improve upgrade unknown app ID/name error output.
Don't output a warning if nothing requires an upgrade.

Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 03:38:12 -04:00
Ross Goldberg
3d264675bf
Move code to more appropriate files.
Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-29 00:16:35 -04:00
Ross Goldberg
e639341d11
Refactor to allow install & purchase to report unknown app IDs via console instead of cryptically via a dialog.
Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 20:18:49 -04:00
Ross Goldberg
9eef8b6cb8
Improve download functions.
Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 15:09:20 -04:00
Ross Goldberg
0a05cd438f
Add & use MASError.unknownAppID(AppID).
Partial #533

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 14:38:06 -04:00
Ross Goldberg
14dbd26d3a
Simplify open() extension func for URL.
Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 12:49:48 -04:00
Ross Goldberg
9ebb01805d
Replace clunky ExternalCommand code that starts new processes with Apple library calls.
Resolve #620

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 12:19:56 -04:00
Ross Goldberg
c0fffeddf3
Open the Mac App Store without any spurious error dialogs.
Use PromiseKit properly.

Don't use `OpenCommand`.

Resolve #217

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 10:17:33 -04:00
Ross Goldberg
5bfd83f3c4
Cleanup help.
Resolve #616

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-28 01:00:48 -04:00
Ross Goldberg
2a496b1f98
Refactor AppStoreSearcher code.
Move code from `AppStoreSearcher` to `ITunesSearchAppStoreSearcher`.

Improve DocC.

Improve Quick test names.

Resolve #607

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-27 15:07:29 -04:00
Ross Goldberg
e79e6283ac
Use ISO8601DateFormatter.
Resolve #613

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-27 14:54:07 -04:00
Ross Goldberg
f83412bba1
Increase minimum macOS version to 10.13, since Swift 5.7 is already used, which requires Xcode 14+ to compile, which only supports macOS deployment targets 10.13+.
Use Swift 5.7.1, which is the newest version of Swift 5.7.

Resolve #578

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-27 14:01:45 -04:00
Ross Goldberg
52a0638f2b
Improve help output.
Make fish shell completions more consistent with the help output.

Resolve #543

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-27 12:09:43 -04:00
Ross Goldberg
fd051eac1f
Require fileSizeBytes & price for SearchResult.
Resolve #597

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-26 02:17:08 -04:00
Ross Goldberg
1b4c97f652
Use formattedPrice instead of price.
Improve price output.

Partial #597

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-26 02:17:07 -04:00
Ross Goldberg
cc219fe644
Rename MasAppLibrary as SoftwareMapAppLibrary.
Rename `AppLibraryMock` as `MockAppLibrary`.

Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:52:20 -04:00
Ross Goldberg
d7072fc66d
Rename *StoreSearch as *AppStoreSearcher.
Rename `MasStoreSearch` as `ITunesSearchAppStoreSearcher`.

Rename `StoreSearchMock` as `MockAppStoreSearcher`.

Rename variables/parameters of the above types as `searcher`.

Fix 'App Store.app' mention in help.

Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:52:20 -04:00
Ross Goldberg
ab22e22ace
Rename Mas as MAS.
Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:52:20 -04:00
Ross Goldberg
6bf5696093
Chop down multiline guard clauses.
Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:52:19 -04:00
Ross Goldberg
59a642590a
Rename some uses of *Url as *URL.
Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:52:14 -04:00
Ross Goldberg
0b11f3737c
Rename some uses of appName as searchTerm.
Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:51:07 -04:00
Ross Goldberg
0e49da7bf1
Rename *bundleId as *bundleID.
Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:51:07 -04:00
Ross Goldberg
3a5593c12d
Rename *accountId & username as *appleID.
Partial #585

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:51:07 -04:00
Ross Goldberg
98c85ac6d6
Delete apps via Scripting Bridge to Finder.
Resolve #313

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:39:03 -04:00
Ross Goldberg
53c64b1758
Improve errors.
Partial #313

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:39:03 -04:00
Ross Goldberg
06ee9608be
Improve output.
Improve errors.

Simplify code.

Partial #313

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:39:03 -04:00
Ross Goldberg
b0d2f23465
Add appID parameter to MASError.notInstalled().
Partial #313

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:39:03 -04:00
Ross Goldberg
222646159d
Refactor AppLibrary.installedApp(…) as AppLibrary.installedApps(…)
because multiple installed apps can have the same app ID or app name.

Partial #313

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:39:02 -04:00
Ross Goldberg
4e0a471d81
Remove unnecessary function from AppLibrary.
Partial #313

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-25 22:39:01 -04:00
Ross Goldberg
4d4dd02cd3
Improve lint configurations.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:34 -04:00
Ross Goldberg
2edd21803b
Improve unwrapping.
Cleanup code.

Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:34 -04:00
Ross Goldberg
87aaba555d
Remove unnecessary variable type.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:34 -04:00
Ross Goldberg
ee28af69df
Eliminate magic numbers.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:34 -04:00
Ross Goldberg
fcf8ba29f6
Improve error output.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:34 -04:00
Ross Goldberg
65218eff74
Comment that catch ignores error.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:34 -04:00
Ross Goldberg
3a6d6724c9
Reorder elements.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:33 -04:00
Ross Goldberg
2af2a42a88
Improve parameter names.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:33 -04:00
Ross Goldberg
586de07389
Improve access control.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:33 -04:00
Ross Goldberg
e927466dce
Use Self.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:33 -04:00
Ross Goldberg
06a347c450
Use isEmpty / beEmpty().
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:33 -04:00
Ross Goldberg
d7074db06f
Remove unnecessary else blocks.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:33 -04:00
Ross Goldberg
71fbe2e444
Improve spacing.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:18:28 -04:00
Ross Goldberg
3eaffa5c3e
Improve DocC.
Partial #592

Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
2024-10-23 06:17:43 -04:00