├── .clang-format ├── .github ├── CONTRIBUTING.md ├── ISSUE_TEMPLATE.md ├── PULL_REQUEST_TEMPLATE.md └── workflows │ ├── build.yml │ └── deploy.yml ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .ruby-version ├── CHANGELOG.md ├── Gemfile ├── Gemfile.lock ├── LICENSE.md ├── Launcher ├── Info.plist ├── Launcher.entitlements ├── LauncherDebug.entitlements ├── PHLauncherAppDelegate.h ├── PHLauncherAppDelegate.m └── main.m ├── LauncherTests └── LauncherTests.m ├── Phoenix.xcodeproj ├── project.pbxproj └── xcshareddata │ └── xcschemes │ └── Phoenix.xcscheme ├── Phoenix.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── Phoenix ├── Base.lproj │ └── MainMenu.xib ├── Credits.rtf ├── Images.xcassets │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── icon_128x128.png │ │ ├── icon_128x128@2x.png │ │ ├── icon_16x16.png │ │ ├── icon_16x16@2x.png │ │ ├── icon_256x256.png │ │ ├── icon_256x256@2x.png │ │ ├── icon_32x32.png │ │ ├── icon_32x32@2x.png │ │ ├── icon_512x512.png │ │ └── icon_512x512@2x.png │ └── StatusItemIcon.imageset │ │ ├── Contents.json │ │ ├── status-item.png │ │ └── status-item@2x.png ├── Info.plist ├── ModalWindow.xib ├── NSArray+PHExtension.h ├── NSArray+PHExtension.m ├── NSImage+PHExtension.h ├── NSImage+PHExtension.m ├── NSProcessInfo+PHExtension.h ├── NSProcessInfo+PHExtension.m ├── NSScreen+PHExtension.h ├── NSScreen+PHExtension.m ├── NSTask+PHExtension.h ├── NSTask+PHExtension.m ├── PHAXObserver.h ├── PHAXObserver.m ├── PHAXUIElement.h ├── PHAXUIElement.m ├── PHAccessibilityObserver.h ├── PHAccessibilityObserver.m ├── PHApp.h ├── PHApp.m ├── PHAppDelegate.h ├── PHAppDelegate.m ├── PHContext.h ├── PHContext.m ├── PHEventConstants.h ├── PHEventHandler.h ├── PHEventHandler.m ├── PHEventTranslator.h ├── PHEventTranslator.m ├── PHGlobalEventMonitor.h ├── PHGlobalEventMonitor.m ├── PHHandler.h ├── PHHandler.m ├── PHIdentifiableJSExport.h ├── PHIterableJSExport.h ├── PHKeyHandler.h ├── PHKeyHandler.m ├── PHKeyTranslator.h ├── PHKeyTranslator.m ├── PHModalWindow.h ├── PHModalWindow.m ├── PHModalWindowController.h ├── PHModalWindowController.m ├── PHMouse.h ├── PHMouse.m ├── PHNotificationHelper.h ├── PHNotificationHelper.m ├── PHOpenAtLoginHelper.h ├── PHOpenAtLoginHelper.m ├── PHPathWatcher.h ├── PHPathWatcher.m ├── PHPhoenix.h ├── PHPhoenix.m ├── PHPreferences.h ├── PHPreferences.m ├── PHPreprocessor.h ├── PHShebangPreprocessor.h ├── PHShebangPreprocessor.m ├── PHSpace.h ├── PHSpace.m ├── PHStorage.h ├── PHStorage.m ├── PHTaskHandler.h ├── PHTaskHandler.m ├── PHTimerHandler.h ├── PHTimerHandler.m ├── PHUniversalAccessHelper.h ├── PHUniversalAccessHelper.m ├── PHWeakTimerTarget.h ├── PHWeakTimerTarget.m ├── PHWindow.h ├── PHWindow.m ├── Phoenix.entitlements ├── PhoenixDebug.entitlements ├── lodash.min.js ├── main.m └── phoenix.min.js ├── PhoenixTests ├── Info.plist └── PhoenixTests.m ├── Podfile ├── Podfile.lock ├── Pods ├── Manifest.lock ├── Pods.xcodeproj │ └── project.pbxproj ├── Sparkle │ ├── LICENSE │ ├── Sparkle.framework │ │ ├── Autoupdate │ │ ├── Headers │ │ ├── Modules │ │ ├── PrivateHeaders │ │ ├── Resources │ │ ├── Sparkle │ │ ├── Updater.app │ │ ├── Versions │ │ │ ├── B │ │ │ │ ├── Autoupdate │ │ │ │ ├── Headers │ │ │ │ │ ├── SPUDownloadData.h │ │ │ │ │ ├── SPUStandardUpdaterController.h │ │ │ │ │ ├── SPUStandardUserDriver.h │ │ │ │ │ ├── SPUStandardUserDriverDelegate.h │ │ │ │ │ ├── SPUUpdateCheck.h │ │ │ │ │ ├── SPUUpdatePermissionRequest.h │ │ │ │ │ ├── SPUUpdater.h │ │ │ │ │ ├── SPUUpdaterDelegate.h │ │ │ │ │ ├── SPUUpdaterSettings.h │ │ │ │ │ ├── SPUUserDriver.h │ │ │ │ │ ├── SPUUserUpdateState.h │ │ │ │ │ ├── SUAppcast.h │ │ │ │ │ ├── SUAppcastItem.h │ │ │ │ │ ├── SUErrors.h │ │ │ │ │ ├── SUExport.h │ │ │ │ │ ├── SUStandardVersionComparator.h │ │ │ │ │ ├── SUUpdatePermissionResponse.h │ │ │ │ │ ├── SUUpdater.h │ │ │ │ │ ├── SUUpdaterDelegate.h │ │ │ │ │ ├── SUVersionComparisonProtocol.h │ │ │ │ │ ├── SUVersionDisplayProtocol.h │ │ │ │ │ └── Sparkle.h │ │ │ │ ├── Modules │ │ │ │ │ └── module.modulemap │ │ │ │ ├── PrivateHeaders │ │ │ │ │ ├── SPUAppcastItemStateResolver.h │ │ │ │ │ ├── SPUGentleUserDriverReminders.h │ │ │ │ │ ├── SPUInstallationType.h │ │ │ │ │ ├── SPUStandardUserDriver+Private.h │ │ │ │ │ ├── SPUUserAgent+Private.h │ │ │ │ │ ├── SUAppcastItem+Private.h │ │ │ │ │ └── SUInstallerLauncher+Private.h │ │ │ │ ├── Resources │ │ │ │ │ ├── Base.lproj │ │ │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ │ │ ├── keyedobjects-101300.nib │ │ │ │ │ │ │ └── keyedobjects-110000.nib │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── ReleaseNotesColorStyle.css │ │ │ │ │ ├── SUStatus.nib │ │ │ │ │ ├── ar.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ca.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── cs.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── da.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── de.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── el.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── en.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ └── SUUpdatePermissionPrompt.strings │ │ │ │ │ ├── es.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── fa.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── fi.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── fr.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── he.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── hr.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── hu.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── is.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── it.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ja.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ko.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── nb.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── nl.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── nn.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── pl.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── pt-BR.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── pt-PT.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ro.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ru.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── sk.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── sl.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── sv.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── th.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── tr.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── uk.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── zh_CN.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── zh_HK.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ └── zh_TW.lproj │ │ │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ ├── Sparkle │ │ │ │ ├── Updater.app │ │ │ │ │ └── Contents │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ ├── MacOS │ │ │ │ │ │ └── Updater │ │ │ │ │ │ ├── PkgInfo │ │ │ │ │ │ ├── Resources │ │ │ │ │ │ └── SUStatus.nib │ │ │ │ │ │ └── _CodeSignature │ │ │ │ │ │ └── CodeResources │ │ │ │ ├── XPCServices │ │ │ │ │ ├── Downloader.xpc │ │ │ │ │ │ └── Contents │ │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ │ ├── MacOS │ │ │ │ │ │ │ └── Downloader │ │ │ │ │ │ │ └── _CodeSignature │ │ │ │ │ │ │ └── CodeResources │ │ │ │ │ └── Installer.xpc │ │ │ │ │ │ └── Contents │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ ├── MacOS │ │ │ │ │ │ └── Installer │ │ │ │ │ │ └── _CodeSignature │ │ │ │ │ │ └── CodeResources │ │ │ │ └── _CodeSignature │ │ │ │ │ └── CodeResources │ │ │ └── Current │ │ └── XPCServices │ ├── Symbols │ │ ├── Autoupdate.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── Autoupdate │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── Autoupdate.yml │ │ │ │ └── x86_64 │ │ │ │ └── Autoupdate.yml │ │ ├── BinaryDelta.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── BinaryDelta │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── BinaryDelta.yml │ │ │ │ └── x86_64 │ │ │ │ └── BinaryDelta.yml │ │ ├── Downloader.xpc.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── Downloader │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── Downloader.yml │ │ │ │ └── x86_64 │ │ │ │ └── Downloader.yml │ │ ├── Installer.xpc.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── Installer │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── Installer.yml │ │ │ │ └── x86_64 │ │ │ │ └── Installer.yml │ │ ├── Sparkle Test App.app.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── Sparkle Test App │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── Sparkle Test App.yml │ │ │ │ └── x86_64 │ │ │ │ └── Sparkle Test App.yml │ │ ├── Sparkle.framework.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── Sparkle │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── Sparkle.yml │ │ │ │ └── x86_64 │ │ │ │ └── Sparkle.yml │ │ ├── Updater.app.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── Updater │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── Updater.yml │ │ │ │ └── x86_64 │ │ │ │ └── Updater.yml │ │ ├── generate_appcast.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── generate_appcast │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── generate_appcast.yml │ │ │ │ └── x86_64 │ │ │ │ └── generate_appcast.yml │ │ ├── generate_keys.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── generate_keys │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── generate_keys.yml │ │ │ │ └── x86_64 │ │ │ │ └── generate_keys.yml │ │ ├── sign_update.dSYM │ │ │ └── Contents │ │ │ │ ├── Info.plist │ │ │ │ └── Resources │ │ │ │ ├── DWARF │ │ │ │ └── sign_update │ │ │ │ └── Relocations │ │ │ │ ├── aarch64 │ │ │ │ └── sign_update.yml │ │ │ │ └── x86_64 │ │ │ │ └── sign_update.yml │ │ └── sparkle.app.dSYM │ │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ ├── DWARF │ │ │ └── sparkle │ │ │ └── Relocations │ │ │ ├── aarch64 │ │ │ └── sparkle.yml │ │ │ └── x86_64 │ │ │ └── sparkle.yml │ └── bin │ │ ├── BinaryDelta │ │ ├── generate_appcast │ │ ├── generate_keys │ │ ├── old_dsa_scripts │ │ └── sign_update │ │ └── sign_update └── Target Support Files │ ├── Pods-Phoenix │ ├── Pods-Phoenix-acknowledgements.markdown │ ├── Pods-Phoenix-acknowledgements.plist │ ├── Pods-Phoenix-dummy.m │ ├── Pods-Phoenix-frameworks-Debug-input-files.xcfilelist │ ├── Pods-Phoenix-frameworks-Debug-output-files.xcfilelist │ ├── Pods-Phoenix-frameworks-Release-input-files.xcfilelist │ ├── Pods-Phoenix-frameworks-Release-output-files.xcfilelist │ ├── Pods-Phoenix-frameworks.sh │ ├── Pods-Phoenix-resources.sh │ ├── Pods-Phoenix.debug.xcconfig │ └── Pods-Phoenix.release.xcconfig │ └── Sparkle │ ├── Sparkle-copy-dsyms-input-files.xcfilelist │ ├── Sparkle-copy-dsyms-output-files.xcfilelist │ ├── Sparkle-copy-dsyms.sh │ ├── Sparkle.debug.xcconfig │ ├── Sparkle.release.xcconfig │ └── Sparkle.xcconfig ├── README.md ├── assets ├── safari-advanced-preferences.png ├── safari-develop-menu.png ├── screenshot.gif ├── screenshot.psd ├── status-item.psd ├── web-inspector-console.png └── web-inspector-debugger.png ├── docs ├── .gitignore ├── API.md ├── babel.config.js ├── docs │ ├── api │ │ ├── _category_.json │ │ ├── app.md │ │ ├── event.md │ │ ├── events.md │ │ ├── identifiable.md │ │ ├── image.md │ │ ├── iterable.md │ │ ├── key.md │ │ ├── keys.md │ │ ├── modal.md │ │ ├── mouse.md │ │ ├── phoenix.md │ │ ├── point.md │ │ ├── preferences.md │ │ ├── rectangle.md │ │ ├── require.md │ │ ├── screen.md │ │ ├── size.md │ │ ├── space.md │ │ ├── storage.md │ │ ├── task.md │ │ ├── timer.md │ │ └── window.md │ ├── getting-started │ │ ├── 1-introduction.md │ │ ├── 2-managing-handlers.md │ │ ├── 3-loading.md │ │ ├── 4-preprocessing.md │ │ ├── 5-about-coordinates.md │ │ ├── 6-logging-and-debugging.md │ │ ├── 7-typescript.md │ │ └── _category_.json │ └── index.md ├── docusaurus.config.js ├── package-lock.json ├── package.json ├── sidebars.js ├── src │ └── css │ │ └── custom.css └── static │ ├── .nojekyll │ └── img │ ├── favicon.ico │ ├── logo.png │ └── modal │ ├── icon-modal.png │ ├── input-modal.png │ └── text-modal.png ├── export.plist ├── format ├── library └── src │ ├── event.js │ ├── key.js │ ├── modal.js │ ├── phoenix.js │ ├── screen.js │ ├── space.js │ ├── task.js │ ├── timer.js │ └── window.js ├── package-lock.json ├── package.json ├── release └── sparkle.xml /.clang-format: -------------------------------------------------------------------------------- 1 | BasedOnStyle: Google 2 | BinPackArguments: false 3 | BinPackParameters: false 4 | ColumnLimit: 120 5 | IndentWidth: 4 6 | ObjCBlockIndentWidth: 4 7 | SpacesInContainerLiterals: false 8 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | Contributing 2 | ============ 3 | 4 | Feel free to contribute to this project by creating issues, pull requests and editing the Wiki. Please follow the following guidelines: 5 | 6 | 1. Provide sufficient information to reproduce issues 7 | 2. Use feature branches for pull requests and squash related commits 8 | 3. Follow the overall code style for this project in pull requests 9 | 4. Remember to update related documentations and if necessary add the change to the Changelog 10 | 5. Collaborators should use pull requests for major commits 11 | 6. Only the owner is allowed to build, sign and publish releases 12 | 7. Do not get discouraged by any changes requested to your pull requests! 13 | 14 | If you have any questions, do not hesitate to ask! 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | - Version: x.x.x 2 | - macOS: x.x.x 3 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | - [ ] Updated related documentations 2 | - [ ] Added the change to the Changelog 3 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build Phoenix 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | pull_request: 8 | branches: 9 | - master 10 | workflow_dispatch: 11 | 12 | jobs: 13 | build: 14 | runs-on: macos-14 15 | steps: 16 | - uses: actions/checkout@v4 17 | - uses: actions/setup-node@v4 18 | with: 19 | node-version: 22.2.0 20 | - name: Build docs 21 | working-directory: docs 22 | run: | 23 | npm ci 24 | npm run lint 25 | npm run build 26 | - name: Install ClangFormat 27 | run: brew install clang-format 28 | - name: Build Launcher 29 | uses: sersoft-gmbh/xcodebuild-action@v3 30 | with: 31 | workspace: Phoenix.xcworkspace 32 | scheme: Launcher 33 | action: test build 34 | - name: Build Phoenix 35 | uses: sersoft-gmbh/xcodebuild-action@v3 36 | with: 37 | workspace: Phoenix.xcworkspace 38 | scheme: Phoenix 39 | action: test build 40 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | name: Deploy docs to GitHub Pages 2 | 3 | on: 4 | push: 5 | branches: 6 | - master 7 | paths: 8 | - docs/** 9 | 10 | jobs: 11 | deploy: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | - uses: actions/setup-node@v4 16 | with: 17 | node-version: 22.2.0 18 | - name: Build docs 19 | working-directory: docs 20 | run: | 21 | npm ci 22 | npm run lint 23 | npm run build 24 | - name: Deploy docs 25 | uses: peaceiris/actions-gh-pages@v4 26 | with: 27 | github_token: ${{secrets.GITHUB_TOKEN}} 28 | publish_dir: ./docs/build 29 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # macOS 2 | 3 | .DS_Store 4 | 5 | # Project 6 | 7 | DerivedData/ 8 | Phoenix/phoenix.js 9 | build/ 10 | node_modules/ 11 | project.xcworkspace/ 12 | xcuserdata/ 13 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | *.md 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "bracketSpacing": true, 3 | "singleQuote": true, 4 | "trailingComma": "all" 5 | } 6 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 3.3.3 2 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | ruby '3.3.3' 3 | 4 | gem 'cocoapods', '1.15.2' 5 | -------------------------------------------------------------------------------- /Launcher/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | LSApplicationCategoryType 6 | public.app-category.productivity 7 | LSBackgroundOnly 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Launcher/Launcher.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.files.user-selected.read-only 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Launcher/LauncherDebug.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.disable-library-validation 8 | 9 | com.apple.security.files.user-selected.read-only 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Launcher/PHLauncherAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | @interface PHLauncherAppDelegate : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /Launcher/PHLauncherAppDelegate.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHLauncherAppDelegate.h" 6 | 7 | @interface PHLauncherAppDelegate () 8 | 9 | @end 10 | 11 | @implementation PHLauncherAppDelegate 12 | 13 | #if DEBUG 14 | static NSString *const PHMainBundleIdentifier = @"org.khirviko.Phoenix.debug"; 15 | #else 16 | static NSString *const PHMainBundleIdentifier = @"org.khirviko.Phoenix"; 17 | #endif 18 | 19 | #pragma mark - NSApplicationDelegate 20 | 21 | - (void)applicationDidFinishLaunching:(NSNotification *)__unused notification { 22 | BOOL isRunning = NO; 23 | NSWorkspace *sharedWorkspace = [NSWorkspace sharedWorkspace]; 24 | 25 | for (NSRunningApplication *runningApp in sharedWorkspace.runningApplications) { 26 | if ([runningApp.bundleIdentifier isEqualToString:PHMainBundleIdentifier]) { 27 | isRunning = YES; 28 | } 29 | } 30 | 31 | if (!isRunning) { 32 | NSLog(@"Info: Launching Phoenix..."); 33 | 34 | NSError *error; 35 | [sharedWorkspace 36 | launchApplicationAtURL:[sharedWorkspace URLForApplicationWithBundleIdentifier:PHMainBundleIdentifier] 37 | options:NSWorkspaceLaunchWithoutActivation 38 | configuration:@{} 39 | error:&error]; 40 | if (error) { 41 | NSLog(@"Error: Could not launch Phoenix. (%@)", error); 42 | } 43 | } 44 | } 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Launcher/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | #import "PHLauncherAppDelegate.h" 8 | 9 | int main(int argc, const char *argv[]) { 10 | @autoreleasepool { 11 | PHLauncherAppDelegate *delegate = [[PHLauncherAppDelegate alloc] init]; 12 | [NSApplication sharedApplication].delegate = delegate; 13 | return NSApplicationMain(argc, argv); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /LauncherTests/LauncherTests.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import XCTest; 6 | 7 | @interface LauncherTests : XCTestCase 8 | 9 | @end 10 | 11 | @implementation LauncherTests 12 | 13 | - (void)testPass { 14 | XCTAssert(YES, @"Pass"); 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Phoenix.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Phoenix/Credits.rtf: -------------------------------------------------------------------------------- 1 | {\rtf1\ansi\ansicpg1252\cocoartf2761 2 | \cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fswiss\fcharset0 Helvetica-Bold;\f1\fswiss\fcharset0 Helvetica;} 3 | {\colortbl;\red255\green255\blue255;} 4 | {\*\expandedcolortbl;;} 5 | \paperw12240\paperh15840\vieww9600\viewh8400\viewkind0 6 | \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc\partightenfactor0 7 | 8 | \f0\b\fs24 \cf0 \ 9 | Developer: 10 | \f1\b0 Kasper Hirvikoski\ 11 | 12 | \f0\b \ 13 | 14 | \f1\b0 With the generous help of contributions made by many individuals.\ 15 | \ 16 | {\field{\*\fldinst{HYPERLINK "https://kasper.github.io/phoenix/"}}{\fldrslt https://kasper.github.io/phoenix/}}\ 17 | \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardirnatural\qc\partightenfactor0 18 | {\field{\*\fldinst{HYPERLINK "https://github.com/kasper/phoenix/"}}{\fldrslt \cf0 https://github.com/kasper/phoenix/}}\ 19 | } -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_128x128.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_128x128@2x.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_16x16.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_16x16@2x.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_256x256.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_256x256@2x.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_32x32.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_32x32@2x.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_512x512.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/AppIcon.appiconset/icon_512x512@2x.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/StatusItemIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "scale" : "1x", 6 | "filename" : "status-item.png" 7 | }, 8 | { 9 | "idiom" : "mac", 10 | "scale" : "2x", 11 | "filename" : "status-item@2x.png" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode", 17 | "template-rendering-intent" : "template" 18 | } 19 | } -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/StatusItemIcon.imageset/status-item.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/StatusItemIcon.imageset/status-item.png -------------------------------------------------------------------------------- /Phoenix/Images.xcassets/StatusItemIcon.imageset/status-item@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Phoenix/Images.xcassets/StatusItemIcon.imageset/status-item@2x.png -------------------------------------------------------------------------------- /Phoenix/NSArray+PHExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface NSArray (PHExtension) 8 | 9 | #pragma mark - Iterating 10 | 11 | - (ObjectType)nextFrom:(ObjectType)object; 12 | - (ObjectType)previousFrom:(ObjectType)object; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Phoenix/NSArray+PHExtension.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "NSArray+PHExtension.h" 6 | 7 | @implementation NSArray (PHExtension) 8 | 9 | #pragma mark - Iterating 10 | 11 | - (id)nextFrom:(id)object { 12 | NSArray *objects = [NSArray arrayWithArray:self]; 13 | NSUInteger nextIndex = [objects indexOfObject:object] + 1; 14 | 15 | // Last object, return first 16 | if (nextIndex == objects.count) { 17 | return objects.firstObject; 18 | } 19 | 20 | return objects[nextIndex]; 21 | } 22 | 23 | - (id)previousFrom:(id)object { 24 | NSArray *objects = [NSArray arrayWithArray:self]; 25 | NSInteger previousIndex = [objects indexOfObject:object] - 1; 26 | 27 | // First object, return last 28 | if (previousIndex == -1) { 29 | return objects.lastObject; 30 | } 31 | 32 | return objects[previousIndex]; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Phoenix/NSImage+PHExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | @import JavaScriptCore; 7 | 8 | #import "PHIdentifiableJSExport.h" 9 | 10 | @protocol NSImageJSExport 11 | 12 | #pragma mark - Constructing 13 | 14 | + (instancetype)fromFile:(NSString *)path; 15 | 16 | @end 17 | 18 | @interface NSImage (PHExtension) 19 | 20 | #pragma mark - Initialising 21 | 22 | + (instancetype)fromFile:(NSString *)path; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Phoenix/NSImage+PHExtension.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "NSImage+PHExtension.h" 6 | 7 | @implementation NSImage (PHExtension) 8 | 9 | #pragma mark - Initialising 10 | 11 | + (instancetype)fromFile:(NSString *)path { 12 | NSString *resolvedPath = path.stringByResolvingSymlinksInPath; 13 | 14 | if (![[NSFileManager defaultManager] fileExistsAtPath:resolvedPath]) { 15 | NSLog(@"Warning: Trying to initialise an image from a non-existent path “%@”.", resolvedPath); 16 | } 17 | 18 | return [[self alloc] initWithContentsOfFile:resolvedPath]; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Phoenix/NSProcessInfo+PHExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface NSProcessInfo (PHExtension) 8 | 9 | #pragma mark - Operating System 10 | 11 | + (BOOL)isOperatingSystemAtLeastBigSur; 12 | + (BOOL)isOperatingSystemAtLeastMonterey; 13 | + (BOOL)isOperatingSystemAtLeastSonoma145; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Phoenix/NSProcessInfo+PHExtension.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "NSProcessInfo+PHExtension.h" 6 | 7 | @implementation NSProcessInfo (PHExtension) 8 | 9 | #pragma mark - Operating System 10 | 11 | + (BOOL)isOperatingSystemAtLeastBigSur { 12 | NSOperatingSystemVersion bigSur = {.majorVersion = 11, .minorVersion = 0, .patchVersion = 0}; 13 | return [[self processInfo] isOperatingSystemAtLeastVersion:bigSur]; 14 | } 15 | 16 | + (BOOL)isOperatingSystemAtLeastMonterey { 17 | NSOperatingSystemVersion monterey = {.majorVersion = 12, .minorVersion = 0, .patchVersion = 0}; 18 | return [[self processInfo] isOperatingSystemAtLeastVersion:monterey]; 19 | } 20 | 21 | + (BOOL)isOperatingSystemAtLeastSonoma145 { 22 | NSOperatingSystemVersion sonoma145 = {.majorVersion = 14, .minorVersion = 5, .patchVersion = 0}; 23 | return [[self processInfo] isOperatingSystemAtLeastVersion:sonoma145]; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Phoenix/NSScreen+PHExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | @import JavaScriptCore; 7 | 8 | @class PHSpace; 9 | @class PHWindow; 10 | 11 | #import "PHIdentifiableJSExport.h" 12 | #import "PHIterableJSExport.h" 13 | 14 | @protocol NSScreenJSExport 15 | 16 | #pragma mark - Exported Screens 17 | 18 | + (instancetype)main; 19 | + (NSArray *)all; 20 | 21 | #pragma mark - Properties 22 | 23 | - (NSString *)identifier; 24 | 25 | #pragma mark - Frame 26 | 27 | - (NSRect)frame; 28 | - (NSRect)visibleFrame; 29 | - (CGRect)flippedFrame; 30 | - (CGRect)flippedVisibleFrame; 31 | 32 | #pragma mark - Spaces 33 | 34 | - (PHSpace *)currentSpace; 35 | - (NSArray *)spaces; 36 | 37 | #pragma mark - Windows 38 | 39 | - (NSArray *)windows:(NSDictionary *)optionals; 40 | 41 | @end 42 | 43 | @interface NSScreen (PHExtension) 44 | 45 | #pragma mark - Screens 46 | 47 | + (instancetype)screenForIdentifier:(NSString *)identifier; 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Phoenix/NSTask+PHExtension.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | static NSInteger const NSTaskErrorCode = -1; 8 | static NSString *const NSTaskErrorDomain = @"NSTaskErrorDomain"; 9 | 10 | @interface NSTask (PHExtension) 11 | 12 | #pragma mark - Environment 13 | 14 | + (NSString *)searchPath; 15 | 16 | #pragma mark - Launching 17 | 18 | + (NSString *)outputFromLaunchedTaskWithEnvironment:(NSDictionary *)environment 19 | arguments:(NSArray *)arguments 20 | error:(NSError **)error; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Phoenix/PHAXObserver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | #import "PHAXUIElement.h" 8 | 9 | static NSString *const PHAXObserverWindowKey = @"PHAXObserverWindow"; 10 | 11 | @interface PHAXObserver : PHAXUIElement 12 | 13 | #pragma mark - Initialising 14 | 15 | - (instancetype)initWithApp:(NSRunningApplication *)app; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix/PHAXUIElement.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHAXUIElement : NSObject 8 | 9 | #pragma mark - Initialising 10 | 11 | + (instancetype)new NS_UNAVAILABLE; 12 | - (instancetype)init NS_UNAVAILABLE; 13 | 14 | - (instancetype)initWithElement:(id)element NS_DESIGNATED_INITIALIZER; 15 | 16 | #pragma mark - System Accessors 17 | 18 | + (instancetype)elementForSystemAttribute:(NSString *)attribute; 19 | + (instancetype)elementAtPosition:(CGPoint)position; 20 | 21 | #pragma mark - Element Accessors 22 | 23 | - (pid_t)processIdentifier; 24 | - (id)valueForAttribute:(NSString *)attribute; 25 | - (id)valueForAttribute:(NSString *)attribute withDefaultValue:(id)defaultValue; 26 | - (NSArray *)valuesForAttribute:(NSString *)attribute fromIndex:(NSUInteger)index count:(NSUInteger)count; 27 | 28 | #pragma mark - Setters 29 | 30 | - (BOOL)setAttribute:(NSString *)attribute withValue:(id)value; 31 | 32 | #pragma mark - Actions 33 | 34 | - (BOOL)performAction:(NSString *)action; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Phoenix/PHAccessibilityObserver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHAccessibilityObserver : NSObject 8 | 9 | #pragma mark - Initialising 10 | 11 | + (instancetype)new NS_UNAVAILABLE; 12 | + (instancetype)observer; 13 | 14 | @end 15 | -------------------------------------------------------------------------------- /Phoenix/PHApp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | @import JavaScriptCore; 7 | 8 | @class PHApp; 9 | @class PHWindow; 10 | 11 | #import "PHAXUIElement.h" 12 | #import "PHIdentifiableJSExport.h" 13 | 14 | static NSString *const PHAppFocusOptionKey = @"focus"; 15 | 16 | @protocol PHAppJSExport 17 | 18 | #pragma mark - Apps 19 | 20 | + (instancetype)get:(NSString *)appName; 21 | JSExportAs(launch, +(instancetype)launch 22 | : (NSString *)appName withOptionals 23 | : (NSDictionary *)optionals); 24 | + (instancetype)focused; 25 | + (NSArray *)all; 26 | 27 | #pragma mark - Properties 28 | 29 | - (pid_t)processIdentifier; 30 | - (NSString *)bundleIdentifier; 31 | - (NSString *)name; 32 | - (NSImage *)icon; 33 | - (BOOL)isActive; 34 | - (BOOL)isHidden; 35 | - (BOOL)isTerminated; 36 | 37 | #pragma mark - Exported Windows 38 | 39 | - (PHWindow *)mainWindow; 40 | - (NSArray *)windows:(NSDictionary *)optionals; 41 | 42 | #pragma mark - Actions 43 | 44 | - (BOOL)activate; 45 | - (BOOL)focus; 46 | - (BOOL)show; 47 | - (BOOL)hide; 48 | - (BOOL)terminate:(NSDictionary *)optionals; 49 | 50 | @end 51 | 52 | @interface PHApp : PHAXUIElement 53 | 54 | #pragma mark - Initialising 55 | 56 | - (instancetype)initWithApp:(NSRunningApplication *)app; 57 | 58 | #pragma mark - Windows 59 | 60 | - (NSArray *)windows; 61 | 62 | @end 63 | -------------------------------------------------------------------------------- /Phoenix/PHAppDelegate.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | @interface PHAppDelegate : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | 11 | #pragma mark - IBAction 12 | 13 | - (IBAction)reloadContext:(id)sender; 14 | - (IBAction)editConfiguration:(id)sender; 15 | - (IBAction)viewDocumentation:(id)sender; 16 | - (IBAction)showAboutPanel:(id)sender; 17 | - (IBAction)toggleOpenAtLogin:(NSMenuItem *)sender; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Phoenix/PHContext.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | static NSString *const PHContextWillLoadNotification = @"PHContextWillLoadNotification"; 8 | 9 | @protocol PHContextDelegate 10 | 11 | #pragma mark - Loading 12 | 13 | - (void)load; 14 | 15 | #pragma mark - Terminating 16 | 17 | - (void)shouldTerminate:(void (^)(void))terminate; 18 | 19 | @end 20 | 21 | @interface PHContext : NSObject 22 | 23 | @property(readonly) NSString *primaryConfigurationPath; 24 | 25 | #pragma mark - Initialising 26 | 27 | + (instancetype)new NS_UNAVAILABLE; 28 | + (instancetype)context; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Phoenix/PHEventConstants.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | #pragma mark - Event Notifications 8 | 9 | static NSString* const PHEventDidLaunchNotification = @"PHEventDidLaunchNotification"; 10 | static NSString* const PHEventWillTerminateNotification = @"PHEventWillTerminateNotification"; 11 | 12 | #pragma mark - Mouse Notifications 13 | 14 | static NSString* const PHMouseDidMoveNotification = @"PHMouseDidMoveNotification"; 15 | static NSString* const PHMouseDidLeftClickNotification = @"PHMouseDidLeftClickNotification"; 16 | static NSString* const PHMouseDidRightClickNotification = @"PHMouseDidRightClickNotification"; 17 | static NSString* const PHMouseDidOtherClickNotification = @"PHMouseDidOtherClickNotification"; 18 | static NSString* const PHMouseDidLeftDragNotification = @"PHMouseDidLeftDragNotification"; 19 | static NSString* const PHMouseDidRightDragNotification = @"PHMouseDidRightDragNotification"; 20 | static NSString* const PHMouseDidOtherDragNotification = @"PHMouseDidOtherDragNotification"; 21 | -------------------------------------------------------------------------------- /Phoenix/PHEventHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | #import "PHHandler.h" 9 | #import "PHIdentifiableJSExport.h" 10 | 11 | @protocol PHEventHandlerJSExport 12 | 13 | @property(readonly) NSString *name; 14 | 15 | #pragma mark - Constructing 16 | 17 | - (instancetype)initWithEvent:(NSString *)event callback:(JSValue *)callback; 18 | 19 | #pragma mark - Binding 20 | 21 | - (void)disable; 22 | 23 | @end 24 | 25 | @interface PHEventHandler : PHHandler 26 | 27 | #pragma mark - Initialising 28 | 29 | - (instancetype)initWithEvent:(NSString *)event callback:(JSValue *)callback NS_DESIGNATED_INITIALIZER; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Phoenix/PHEventTranslator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHEventTranslator : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | - (instancetype)init NS_UNAVAILABLE; 11 | 12 | #pragma mark - Translating 13 | 14 | + (NSNotificationCenter *)notificationCenterForNotification:(NSString *)notification; 15 | + (NSString *)notificationForEvent:(NSString *)event; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix/PHGlobalEventMonitor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | static NSString* const PHGlobalEventMonitorMouseKey = @"PHGlobalEventMonitorMouse"; 8 | 9 | @interface PHGlobalEventMonitor : NSObject 10 | 11 | #pragma mark - Initialising 12 | 13 | + (instancetype)new NS_UNAVAILABLE; 14 | + (instancetype)monitor; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Phoenix/PHHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | @interface PHHandler : NSObject 9 | 10 | #pragma mark - Initialising 11 | 12 | + (instancetype)new NS_UNAVAILABLE; 13 | - (instancetype)init NS_UNAVAILABLE; 14 | 15 | - (instancetype)initWithCallback:(JSValue *)callback; 16 | 17 | #pragma mark - Calling 18 | 19 | - (void)callWithArguments:(NSArray *)arguments; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Phoenix/PHHandler.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHHandler.h" 6 | 7 | @interface PHHandler () 8 | 9 | @property JSManagedValue *callback; 10 | 11 | @end 12 | 13 | @implementation PHHandler 14 | 15 | #pragma mark - Initialising 16 | 17 | - (instancetype)initWithCallback:(JSValue *)callback { 18 | if (self = [super init]) { 19 | self.callback = [JSManagedValue managedValueWithValue:callback andOwner:self]; 20 | } 21 | 22 | return self; 23 | } 24 | 25 | #pragma mark - Calling 26 | 27 | - (void)callWithArguments:(NSArray *)arguments { 28 | JSValue *function = self.callback.value; 29 | 30 | if (!function.isUndefined) { 31 | [function callWithArguments:arguments]; 32 | } 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Phoenix/PHIdentifiableJSExport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | @protocol PHIdentifiableJSExport 9 | 10 | #pragma mark - Identifying 11 | 12 | - (NSUInteger)hash; 13 | - (BOOL)isEqual:(id)object; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Phoenix/PHIterableJSExport.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | @protocol PHIterableJSExport 9 | 10 | #pragma mark - Iterating 11 | 12 | - (instancetype)next; 13 | - (instancetype)previous; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Phoenix/PHKeyHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | #import "PHHandler.h" 9 | #import "PHIdentifiableJSExport.h" 10 | 11 | @protocol PHKeyHandlerJSExport 12 | 13 | @property(readonly) NSString *key; 14 | @property(readonly) NSArray *modifiers; 15 | 16 | #pragma mark - Constructing 17 | 18 | - (instancetype)initWithKey:(NSString *)key modifiers:(NSArray *)modifiers callback:(JSValue *)callback; 19 | 20 | #pragma mark - Binding 21 | 22 | - (BOOL)isEnabled; 23 | - (BOOL)enable; 24 | - (BOOL)disable; 25 | 26 | @end 27 | 28 | @interface PHKeyHandler : PHHandler 29 | 30 | #pragma mark - Initialising 31 | 32 | - (instancetype)initWithKey:(NSString *)key 33 | modifiers:(NSArray *)modifiers 34 | callback:(JSValue *)callback NS_DESIGNATED_INITIALIZER; 35 | 36 | @end 37 | -------------------------------------------------------------------------------- /Phoenix/PHKeyTranslator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | @interface PHKeyTranslator : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | - (instancetype)init NS_UNAVAILABLE; 11 | 12 | #pragma mark - Translating 13 | 14 | + (UInt32)modifierFlagsForModifiers:(NSArray *)modifiers; 15 | + (NSArray *)modifiersForModifierFlags:(NSEventModifierFlags)modifierFlags; 16 | + (UInt32)keyCodeForKey:(NSString *)key; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Phoenix/PHModalWindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | @interface PHModalWindow : NSWindow 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | 11 | @end 12 | -------------------------------------------------------------------------------- /Phoenix/PHModalWindow.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHModalWindow.h" 6 | 7 | @implementation PHModalWindow 8 | 9 | #pragma mark - Initialising 10 | 11 | - (instancetype)initWithContentRect:(NSRect)contentRect 12 | styleMask:(NSWindowStyleMask)style 13 | backing:(NSBackingStoreType)backingStoreType 14 | defer:(BOOL)flag { 15 | if (self = [super initWithContentRect:contentRect styleMask:style backing:backingStoreType defer:flag]) { 16 | self.alphaValue = 0.0; 17 | self.animationBehavior = NSWindowAnimationBehaviorAlertPanel; 18 | self.backgroundColor = [NSColor clearColor]; 19 | self.ignoresMouseEvents = YES; 20 | self.level = NSFloatingWindowLevel; 21 | self.opaque = NO; 22 | } 23 | 24 | return self; 25 | } 26 | 27 | #pragma mark - Key Status 28 | 29 | - (BOOL)canBecomeKeyWindow { 30 | return YES; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Phoenix/PHMouse.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | @protocol PHMouseJSExport 9 | 10 | #pragma mark - Position 11 | 12 | + (CGPoint)location; 13 | + (BOOL)move:(CGPoint)point; 14 | 15 | @end 16 | 17 | @interface PHMouse : NSObject 18 | 19 | + (instancetype)new NS_UNAVAILABLE; 20 | - (instancetype)init NS_UNAVAILABLE; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Phoenix/PHMouse.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | #import "PHMouse.h" 8 | 9 | @implementation PHMouse 10 | 11 | #pragma mark - Position 12 | 13 | + (CGPoint)location { 14 | id event = CFBridgingRelease(CGEventCreate(NULL)); 15 | return CGEventGetLocation((__bridge CGEventRef)event); 16 | } 17 | 18 | + (BOOL)move:(CGPoint)point { 19 | CGError error = CGWarpMouseCursorPosition(point); 20 | 21 | if (error != kCGErrorSuccess) { 22 | NSLog(@"Error: Could not move cursor position to “%@”. (%d)", NSStringFromPoint(point), error); 23 | return NO; 24 | } 25 | 26 | return YES; 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Phoenix/PHNotificationHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHNotificationHelper : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | - (instancetype)init NS_UNAVAILABLE; 11 | 12 | #pragma mark - Delivering 13 | 14 | + (void)deliver:(NSString *)message withDelegate:(id)delegate; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Phoenix/PHNotificationHelper.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHNotificationHelper.h" 6 | 7 | @implementation PHNotificationHelper 8 | 9 | #pragma mark - Delivering 10 | 11 | + (void)deliver:(NSString *)message withDelegate:(id)delegate { 12 | NSUserNotificationCenter *center = [NSUserNotificationCenter defaultUserNotificationCenter]; 13 | center.delegate = delegate; 14 | 15 | NSUserNotification *notification = [[NSUserNotification alloc] init]; 16 | notification.informativeText = message; 17 | notification.hasActionButton = NO; 18 | 19 | if (delegate) { 20 | notification.hasActionButton = YES; 21 | } 22 | 23 | [center deliverNotification:notification]; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Phoenix/PHOpenAtLoginHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHOpenAtLoginHelper : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | - (instancetype)init NS_UNAVAILABLE; 11 | 12 | #pragma mark - Login Item 13 | 14 | + (BOOL)opensAtLogin; 15 | + (void)setOpensAtLogin:(BOOL)opensAtLogin; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix/PHOpenAtLoginHelper.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import ServiceManagement; 6 | 7 | #import "PHOpenAtLoginHelper.h" 8 | 9 | @implementation PHOpenAtLoginHelper 10 | 11 | static NSString* const PHUserDefaultsOpenAtLoginKey = @"PHOpenAtLogin"; 12 | 13 | #if DEBUG 14 | static NSString* const PHLauncherBundleIdentifier = @"org.khirviko.Phoenix.Launcher.debug"; 15 | #else 16 | static NSString* const PHLauncherBundleIdentifier = @"org.khirviko.Phoenix.Launcher"; 17 | #endif 18 | 19 | #pragma mark - Login Item 20 | 21 | + (BOOL)opensAtLogin { 22 | return [[NSUserDefaults standardUserDefaults] boolForKey:PHUserDefaultsOpenAtLoginKey]; 23 | } 24 | 25 | + (void)setOpensAtLogin:(BOOL)opensAtLogin { 26 | BOOL didSet = SMLoginItemSetEnabled((__bridge CFStringRef)PHLauncherBundleIdentifier, opensAtLogin); 27 | 28 | if (didSet) { 29 | [[NSUserDefaults standardUserDefaults] setBool:opensAtLogin forKey:PHUserDefaultsOpenAtLoginKey]; 30 | } 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Phoenix/PHPathWatcher.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHPathWatcher : NSObject 8 | 9 | #pragma mark - Initialising 10 | 11 | + (instancetype)new NS_UNAVAILABLE; 12 | - (instancetype)init NS_UNAVAILABLE; 13 | 14 | - (instancetype)initWithPaths:(NSArray *)paths handler:(void (^)(void))handler NS_DESIGNATED_INITIALIZER; 15 | + (instancetype)watcherFor:(NSArray *)paths handler:(void (^)(void))handler; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix/PHPhoenix.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | #import "PHContext.h" 9 | 10 | @protocol PHPhoenixJSExport 11 | 12 | #pragma mark - Actions 13 | 14 | - (void)reload; 15 | - (void)set:(NSDictionary *)preferences; 16 | - (void)log; 17 | - (void)notify:(NSString *)message; 18 | 19 | @end 20 | 21 | @interface PHPhoenix : NSObject 22 | 23 | #pragma mark - Initialising 24 | 25 | + (instancetype)new NS_UNAVAILABLE; 26 | - (instancetype)init NS_UNAVAILABLE; 27 | 28 | - (instancetype)initWithDelegate:(id)delegate NS_DESIGNATED_INITIALIZER; 29 | + (instancetype)withDelegate:(id)delegate; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Phoenix/PHPhoenix.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHPhoenix.h" 6 | #import "PHNotificationHelper.h" 7 | #import "PHPreferences.h" 8 | 9 | @interface PHPhoenix () 10 | 11 | @property(weak) id delegate; 12 | 13 | @end 14 | 15 | @implementation PHPhoenix 16 | 17 | #pragma mark - Initialising 18 | 19 | - (instancetype)initWithDelegate:(id)delegate { 20 | if (self = [super init]) { 21 | self.delegate = delegate; 22 | } 23 | 24 | return self; 25 | } 26 | 27 | + (instancetype)withDelegate:(id)delegate { 28 | return [[self alloc] initWithDelegate:delegate]; 29 | } 30 | 31 | #pragma mark - Actions 32 | 33 | - (void)reload { 34 | [self.delegate load]; 35 | } 36 | 37 | - (void)set:(NSDictionary *)preferences { 38 | [[PHPreferences sharedPreferences] add:preferences]; 39 | } 40 | 41 | - (void)log { 42 | NSArray *components = [[JSContext currentArguments] valueForKey:@"toString"]; 43 | NSLog(@"%@", [components componentsJoinedByString:@" "]); 44 | } 45 | 46 | - (void)notify:(NSString *)message { 47 | [PHNotificationHelper deliver:message withDelegate:nil]; 48 | } 49 | 50 | @end 51 | -------------------------------------------------------------------------------- /Phoenix/PHPreferences.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | typedef NSString *PHPreferencesPreferenceKey; 8 | 9 | static NSString *const PHPreferencesDidChangeNotification = @"PHPreferencesDidChangeNotification"; 10 | static PHPreferencesPreferenceKey const PHPreferencesDaemonKey = @"daemon"; 11 | static PHPreferencesPreferenceKey const PHPreferencesOpenAtLoginKey = @"openAtLogin"; 12 | 13 | @interface PHPreferences : NSObject 14 | 15 | #pragma mark - Initialising 16 | 17 | + (instancetype)new NS_UNAVAILABLE; 18 | - (instancetype)init NS_UNAVAILABLE; 19 | 20 | #pragma mark - Shared Preferences 21 | 22 | + (instancetype)sharedPreferences; 23 | 24 | #pragma mark - Preferences 25 | 26 | - (void)add:(NSDictionary *)preferences; 27 | - (void)reset; 28 | 29 | - (BOOL)isDaemon; 30 | - (BOOL)openAtLogin; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Phoenix/PHPreprocessor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @protocol PHPreprocessor 8 | 9 | #pragma mark - Preprocessing 10 | 11 | + (NSString *)process:(NSString *)script atPath:(NSString *)path error:(NSError **)error; 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Phoenix/PHShebangPreprocessor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | #import "PHPreprocessor.h" 8 | 9 | static NSInteger const PHShebangPreprocessorErrorCode = -1; 10 | static NSString* const PHShebangPreprocessorErrorDomain = @"PHShebangPreprocessorErrorDomain"; 11 | 12 | @interface PHShebangPreprocessor : NSObject 13 | 14 | + (instancetype)new NS_UNAVAILABLE; 15 | - (instancetype)init NS_UNAVAILABLE; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix/PHSpace.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | @class NSScreen; 9 | @class PHSpace; 10 | @class PHWindow; 11 | 12 | #import "PHIdentifiableJSExport.h" 13 | #import "PHIterableJSExport.h" 14 | 15 | @protocol PHSpaceJSExport 16 | 17 | #pragma mark - Exported Spaces 18 | 19 | + (instancetype)active; 20 | + (NSArray *)all; 21 | 22 | #pragma mark - Properties 23 | 24 | - (BOOL)isNormal; 25 | - (BOOL)isFullScreen; 26 | - (NSArray *)screens; 27 | 28 | #pragma mark - Windows 29 | 30 | - (NSArray *)windows:(NSDictionary *)optionals; 31 | - (void)addWindows:(NSArray *)windows; 32 | - (void)removeWindows:(NSArray *)windows; 33 | - (void)moveWindows:(NSArray *)windows; 34 | 35 | @end 36 | 37 | @interface PHSpace : NSObject 38 | 39 | #pragma mark - Initialising 40 | 41 | + (instancetype)new NS_UNAVAILABLE; 42 | - (instancetype)init NS_UNAVAILABLE; 43 | 44 | - (instancetype)initWithIdentifier:(NSUInteger)identifier NS_DESIGNATED_INITIALIZER; 45 | 46 | #pragma mark - Spaces 47 | 48 | + (instancetype)currentSpaceForScreen:(NSScreen *)screen; 49 | + (NSArray *)spacesForWindow:(PHWindow *)window; 50 | 51 | @end 52 | -------------------------------------------------------------------------------- /Phoenix/PHStorage.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | static NSString *const PHStorageDidPersistNotification = @"PHStorageDidPersistNotification"; 9 | 10 | @protocol PHStorageJSExport 11 | 12 | #pragma mark - Storing 13 | 14 | JSExportAs(set, -(void)forKey : (NSString *)key setObject : (id)object); 15 | JSExportAs(get, -(id)objectForKey : (NSString *)key); 16 | JSExportAs(remove, -(void)removeObjectForKey : (NSString *)key); 17 | 18 | @end 19 | 20 | @interface PHStorage : NSObject 21 | 22 | #pragma mark - Initialising 23 | 24 | + (instancetype)new NS_UNAVAILABLE; 25 | + (instancetype)storage; 26 | 27 | #pragma mark - Persisting 28 | 29 | - (BOOL)isPersisting; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Phoenix/PHTaskHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | #import "PHHandler.h" 9 | #import "PHIdentifiableJSExport.h" 10 | 11 | @protocol PHTaskHandlerJSExport 12 | 13 | @property(readonly) int status; 14 | @property(readonly) NSString *output; 15 | @property(readonly) NSString *error; 16 | 17 | #pragma mark - Constructing 18 | 19 | - (instancetype)initWithPath:(NSString *)path arguments:(NSArray *)arguments callback:(JSValue *)callback; 20 | 21 | #pragma mark - Terminating 22 | 23 | - (void)terminate; 24 | 25 | @end 26 | 27 | @interface PHTaskHandler : PHHandler 28 | 29 | #pragma mark - Initialising 30 | 31 | - (instancetype)initWithPath:(NSString *)path 32 | arguments:(NSArray *)arguments 33 | callback:(JSValue *)callback NS_DESIGNATED_INITIALIZER; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Phoenix/PHTimerHandler.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | @import JavaScriptCore; 7 | 8 | #import "PHHandler.h" 9 | #import "PHIdentifiableJSExport.h" 10 | 11 | @protocol PHTimerHandlerJSExport 12 | 13 | #pragma mark - Constructing 14 | 15 | - (instancetype)initWithInterval:(NSTimeInterval)interval repeats:(BOOL)repeats callback:(JSValue *)callback; 16 | 17 | #pragma mark - Timing 18 | 19 | - (void)stop; 20 | 21 | @end 22 | 23 | @interface PHTimerHandler : PHHandler 24 | 25 | #pragma mark - Initialising 26 | 27 | - (instancetype)initWithInterval:(NSTimeInterval)interval 28 | repeats:(BOOL)repeats 29 | callback:(JSValue *)callback NS_DESIGNATED_INITIALIZER; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Phoenix/PHTimerHandler.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHTimerHandler.h" 6 | #import "PHWeakTimerTarget.h" 7 | 8 | @interface PHTimerHandler () 9 | 10 | @property NSTimer *timer; 11 | 12 | @end 13 | 14 | @implementation PHTimerHandler 15 | 16 | #pragma mark - Initialising 17 | 18 | - (instancetype)initWithInterval:(NSTimeInterval)interval repeats:(BOOL)repeats callback:(JSValue *)callback { 19 | if (self = [super initWithCallback:callback]) { 20 | PHWeakTimerTarget *weakTarget = [PHWeakTimerTarget withTarget:self selector:@selector(timerDidFire)]; 21 | 22 | self.timer = [NSTimer scheduledTimerWithTimeInterval:interval 23 | target:weakTarget 24 | selector:@selector(timerDidFireProxy:) 25 | userInfo:nil 26 | repeats:repeats]; 27 | } 28 | 29 | return self; 30 | } 31 | 32 | #pragma mark - Deallocing 33 | 34 | - (void)dealloc { 35 | [self stop]; 36 | } 37 | 38 | #pragma mark - Timing 39 | 40 | - (void)timerDidFire { 41 | [self callWithArguments:@[self]]; 42 | } 43 | 44 | - (void)stop { 45 | [self.timer invalidate]; 46 | } 47 | 48 | @end 49 | -------------------------------------------------------------------------------- /Phoenix/PHUniversalAccessHelper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHUniversalAccessHelper : NSObject 8 | 9 | + (instancetype)new NS_UNAVAILABLE; 10 | - (instancetype)init NS_UNAVAILABLE; 11 | 12 | #pragma mark - Universal Access 13 | 14 | + (BOOL)hasPermission; 15 | + (BOOL)askPermissionIfNeeded; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Phoenix/PHUniversalAccessHelper.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | #import "PHUniversalAccessHelper.h" 8 | 9 | @implementation PHUniversalAccessHelper 10 | 11 | #pragma mark - Universal Access 12 | 13 | + (BOOL)hasPermission { 14 | return AXIsProcessTrusted(); 15 | } 16 | 17 | + (BOOL)askPermissionIfNeeded { 18 | return AXIsProcessTrustedWithOptions((__bridge CFDictionaryRef) 19 | @{(__bridge NSString *)kAXTrustedCheckOptionPrompt: @YES}); 20 | } 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Phoenix/PHWeakTimerTarget.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Foundation; 6 | 7 | @interface PHWeakTimerTarget : NSObject 8 | 9 | #pragma mark - Initialising 10 | 11 | + (instancetype)new NS_UNAVAILABLE; 12 | - (instancetype)init NS_UNAVAILABLE; 13 | 14 | - (instancetype)initWithTarget:(id)target selector:(SEL)selector NS_DESIGNATED_INITIALIZER; 15 | + (instancetype)withTarget:(id)target selector:(SEL)selector; 16 | 17 | #pragma mark - Timing 18 | 19 | - (void)timerDidFireProxy:(NSTimer *)timer; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Phoenix/PHWeakTimerTarget.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | #import "PHWeakTimerTarget.h" 6 | 7 | @interface PHWeakTimerTarget () 8 | 9 | @property(weak) id target; 10 | @property SEL selector; 11 | 12 | @end 13 | 14 | @implementation PHWeakTimerTarget 15 | 16 | #pragma mark - Initialising 17 | 18 | - (instancetype)initWithTarget:(id)target selector:(SEL)selector { 19 | if (self = [super init]) { 20 | self.target = target; 21 | self.selector = selector; 22 | } 23 | 24 | return self; 25 | } 26 | 27 | + (instancetype)withTarget:(id)target selector:(SEL)selector { 28 | return [[self alloc] initWithTarget:target selector:selector]; 29 | } 30 | 31 | #pragma mark - Timing 32 | 33 | - (void)timerDidFireProxy:(NSTimer *)timer { 34 | // Target is still alive 35 | if (self.target) { 36 | #pragma clang diagnostic push 37 | #pragma clang diagnostic ignored "-Warc-performSelector-leaks" 38 | 39 | [self.target performSelector:self.selector]; 40 | 41 | #pragma clang diagnostic pop 42 | 43 | return; 44 | } 45 | 46 | [timer invalidate]; 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Phoenix/Phoenix.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Phoenix/PhoenixDebug.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.cs.disable-library-validation 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Phoenix/main.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import Cocoa; 6 | 7 | int main(int argc, const char* argv[]) { return NSApplicationMain(argc, argv); } 8 | -------------------------------------------------------------------------------- /PhoenixTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /PhoenixTests/PhoenixTests.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Phoenix is released under the MIT License. Refer to https://github.com/kasper/phoenix/blob/master/LICENSE.md 3 | */ 4 | 5 | @import XCTest; 6 | 7 | @interface PhoenixTests : XCTestCase 8 | 9 | @end 10 | 11 | @implementation PhoenixTests 12 | 13 | - (void)testPass { 14 | XCTAssert(YES, @"Pass"); 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :osx, '10.14' 2 | 3 | target 'Phoenix' do 4 | pod 'Sparkle', '2.6.3' 5 | end 6 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Sparkle (2.6.3) 3 | 4 | DEPENDENCIES: 5 | - Sparkle (= 2.6.3) 6 | 7 | SPEC REPOS: 8 | trunk: 9 | - Sparkle 10 | 11 | SPEC CHECKSUMS: 12 | Sparkle: eab32aa3d9497ca8b64b1ce52cca9ece281fea70 13 | 14 | PODFILE CHECKSUM: f8600524839679a91c8e3726fc4f79ca659ec422 15 | 16 | COCOAPODS: 1.15.2 17 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Sparkle (2.6.3) 3 | 4 | DEPENDENCIES: 5 | - Sparkle (= 2.6.3) 6 | 7 | SPEC REPOS: 8 | trunk: 9 | - Sparkle 10 | 11 | SPEC CHECKSUMS: 12 | Sparkle: eab32aa3d9497ca8b64b1ce52cca9ece281fea70 13 | 14 | PODFILE CHECKSUM: f8600524839679a91c8e3726fc4f79ca659ec422 15 | 16 | COCOAPODS: 1.15.2 17 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Autoupdate: -------------------------------------------------------------------------------- 1 | Versions/Current/Autoupdate -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/PrivateHeaders: -------------------------------------------------------------------------------- 1 | Versions/Current/PrivateHeaders -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Sparkle: -------------------------------------------------------------------------------- 1 | Versions/Current/Sparkle -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Updater.app: -------------------------------------------------------------------------------- 1 | Versions/Current/Updater.app -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Autoupdate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Autoupdate -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SPUDownloadData.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUDownloadData.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 8/10/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 12 | // Ignore incorrect warning 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 15 | #import "SUExport.h" 16 | #pragma clang diagnostic pop 17 | #else 18 | #import 19 | #endif 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | /** 24 | * A class for containing downloaded data along with some information about it. 25 | */ 26 | SU_EXPORT @interface SPUDownloadData : NSObject 27 | 28 | /** 29 | * The raw data that was downloaded. 30 | */ 31 | @property (nonatomic, readonly) NSData *data; 32 | 33 | /** 34 | * The URL that was fetched from. 35 | * 36 | * This may be different from the URL in the request if there were redirects involved. 37 | */ 38 | @property (nonatomic, readonly, copy) NSURL *URL; 39 | 40 | /** 41 | * The IANA charset encoding name if available. Eg: "utf-8" 42 | */ 43 | @property (nonatomic, readonly, nullable, copy) NSString *textEncodingName; 44 | 45 | /** 46 | * The MIME type if available. Eg: "text/plain" 47 | */ 48 | @property (nonatomic, readonly, nullable, copy) NSString *MIMEType; 49 | 50 | @end 51 | 52 | NS_ASSUME_NONNULL_END 53 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SPUStandardUserDriver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUStandardUserDriver.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 2/14/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 12 | // Ignore incorrect warning 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 15 | #import "SPUUserDriver.h" 16 | #import "SUExport.h" 17 | #pragma clang diagnostic pop 18 | #else 19 | #import 20 | #import 21 | #endif 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | @protocol SPUStandardUserDriverDelegate; 26 | 27 | /** 28 | Sparkle's standard built-in user driver for updater interactions 29 | */ 30 | SU_EXPORT @interface SPUStandardUserDriver : NSObject 31 | 32 | /** 33 | Initializes a Sparkle's standard user driver for user update interactions 34 | 35 | @param hostBundle The target bundle of the host that is being updated. 36 | @param delegate The optional delegate to this user driver. 37 | */ 38 | - (instancetype)initWithHostBundle:(NSBundle *)hostBundle delegate:(nullable id)delegate; 39 | 40 | /** 41 | Use initWithHostBundle:delegate: instead. 42 | */ 43 | - (instancetype)init NS_UNAVAILABLE; 44 | 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SPUUpdateCheck.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUUpdateCheck.h 3 | // SPUUpdateCheck 4 | // 5 | // Created by Mayur Pawashe on 8/28/21. 6 | // Copyright © 2021 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SPUUpdateCheck_h 10 | #define SPUUpdateCheck_h 11 | 12 | /** 13 | Describes the type of update check being performed. 14 | 15 | Each update check corresponds to an update check method on `SPUUpdater`. 16 | */ 17 | typedef NS_ENUM(NSInteger, SPUUpdateCheck) 18 | { 19 | /** 20 | The user-initiated update check corresponding to `-[SPUUpdater checkForUpdates]`. 21 | */ 22 | SPUUpdateCheckUpdates = 0, 23 | /** 24 | The background scheduled update check corresponding to `-[SPUUpdater checkForUpdatesInBackground]`. 25 | */ 26 | SPUUpdateCheckUpdatesInBackground = 1, 27 | /** 28 | The informational probe update check corresponding to `-[SPUUpdater checkForUpdateInformation]`. 29 | */ 30 | SPUUpdateCheckUpdateInformation = 2 31 | }; 32 | 33 | #endif /* SPUUpdateCheck_h */ 34 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SPUUpdatePermissionRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUUpdatePermissionRequest.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 8/14/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 12 | // Ignore incorrect warning 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 15 | #import "SUExport.h" 16 | #pragma clang diagnostic pop 17 | #else 18 | #import 19 | #endif 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | /** 24 | This class represents information needed to make a permission request for checking updates. 25 | */ 26 | SU_EXPORT @interface SPUUpdatePermissionRequest : NSObject 27 | 28 | /** 29 | Initializes a new update permission request instance. 30 | 31 | @param systemProfile The system profile information. 32 | */ 33 | - (instancetype)initWithSystemProfile:(NSArray *> *)systemProfile; 34 | 35 | /** 36 | A read-only property for the user's system profile. 37 | */ 38 | @property (nonatomic, readonly) NSArray *> *systemProfile; 39 | 40 | @end 41 | 42 | NS_ASSUME_NONNULL_END 43 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SUAppcast.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcast.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCAST_H 10 | #define SUAPPCAST_H 11 | 12 | #import 13 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 14 | // Ignore incorrect warning 15 | #pragma clang diagnostic push 16 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 17 | #import "SUExport.h" 18 | #pragma clang diagnostic pop 19 | #else 20 | #import 21 | #endif 22 | 23 | NS_ASSUME_NONNULL_BEGIN 24 | 25 | @class SUAppcastItem; 26 | 27 | /** 28 | The appcast representing a collection of `SUAppcastItem` items in the feed. 29 | */ 30 | SU_EXPORT @interface SUAppcast : NSObject 31 | 32 | - (instancetype)init NS_UNAVAILABLE; 33 | 34 | /** 35 | The collection of update items. 36 | 37 | These `SUAppcastItem` items are in the same order as specified in the appcast XML feed and are thus not sorted by version. 38 | */ 39 | @property (readonly, nonatomic, copy) NSArray *items; 40 | 41 | @end 42 | 43 | NS_ASSUME_NONNULL_END 44 | 45 | #endif 46 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SUExport.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUExport.h 3 | // Sparkle 4 | // 5 | // Created by Jake Petroules on 2014-08-23. 6 | // Copyright (c) 2014 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SUEXPORT_H 10 | #define SUEXPORT_H 11 | 12 | #ifdef BUILDING_SPARKLE 13 | #define SU_EXPORT __attribute__((visibility("default"))) 14 | #else 15 | #define SU_EXPORT 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/SUVersionComparisonProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionComparisonProtocol.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H 10 | #define SUVERSIONCOMPARISONPROTOCOL_H 11 | 12 | #import 13 | 14 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 15 | // Ignore incorrect warning 16 | #pragma clang diagnostic push 17 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 18 | #import "SUExport.h" 19 | #pragma clang diagnostic pop 20 | #else 21 | #import 22 | #endif 23 | 24 | NS_ASSUME_NONNULL_BEGIN 25 | 26 | /** 27 | Provides version comparison facilities for Sparkle. 28 | */ 29 | @protocol SUVersionComparison 30 | 31 | /** 32 | An abstract method to compare two version strings. 33 | 34 | Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, 35 | and NSOrderedSame if they are equivalent. 36 | */ 37 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; // *** MAY BE CALLED ON NON-MAIN THREAD! 38 | 39 | @end 40 | 41 | NS_ASSUME_NONNULL_END 42 | #endif 43 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Headers/Sparkle.h: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07) 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SPARKLE_H 10 | #define SPARKLE_H 11 | 12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless 13 | // there are name-space collisions) so we can list all of them to start with: 14 | 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | 30 | // UI bits 31 | #import 32 | #import 33 | #import 34 | 35 | // Deprecated bits 36 | #import 37 | #import 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Sparkle { 2 | umbrella header "Sparkle.h" 3 | export * 4 | 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SPUAppcastItemStateResolver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUAppcastItemStateResolver.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 5/31/21. 6 | // Copyright © 2021 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 12 | // Ignore incorrect warning 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 15 | #import "SUExport.h" 16 | #pragma clang diagnostic pop 17 | #else 18 | #import 19 | #endif 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | @class SUStandardVersionComparator, SPUAppcastItemState; 24 | @protocol SUVersionComparison; 25 | 26 | /** 27 | Private exposed class used to resolve Appcast Item properties that rely on external factors such as a host. 28 | This resolver is used for constructing appcast items. 29 | */ 30 | SU_EXPORT @interface SPUAppcastItemStateResolver : NSObject 31 | 32 | - (instancetype)init NS_UNAVAILABLE; 33 | 34 | - (instancetype)initWithHostVersion:(NSString *)hostVersion applicationVersionComparator:(id)applicationVersionComparator standardVersionComparator:(SUStandardVersionComparator *)standardVersionComparator; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SPUGentleUserDriverReminders.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUGentleUserDriverReminders.h 3 | // Sparkle 4 | // 5 | // Copyright © 2022 Sparkle Project. All rights reserved. 6 | // 7 | 8 | #ifndef SPUGentleUserDriverReminders_h 9 | #define SPUGentleUserDriverReminders_h 10 | 11 | /** 12 | A private protocol for user drivers implementing gentle scheduled reminders 13 | */ 14 | @protocol SPUGentleUserDriverReminders 15 | 16 | - (void)logGentleScheduledUpdateReminderWarningIfNeeded; 17 | 18 | - (void)resetTimeSinceOpportuneUpdateNotice; 19 | 20 | @end 21 | 22 | #endif /* SPUGentleUserDriverReminders_h */ 23 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SPUInstallationType.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUInstallationType.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 7/24/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SPUInstallationType_h 10 | #define SPUInstallationType_h 11 | 12 | #define SPUInstallationTypeApplication @"application" // the default installation type for ordinary application updates 13 | #define SPUInstallationTypeGuidedPackage @"package" // the preferred installation type for package installations 14 | #define SPUInstallationTypeInteractivePackage @"interactive-package" // the deprecated installation type; use guided package instead 15 | 16 | #define SPUInstallationTypesArray (@[SPUInstallationTypeApplication, SPUInstallationTypeGuidedPackage, SPUInstallationTypeInteractivePackage]) 17 | #define SPUValidInstallationType(x) ((x != nil) && [SPUInstallationTypesArray containsObject:(NSString * _Nonnull)x]) 18 | 19 | #endif /* SPUInstallationType_h */ 20 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SPUStandardUserDriver+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUStandardUserDriver+Private.h 3 | // Sparkle 4 | // 5 | // Copyright © 2022 Sparkle Project. All rights reserved. 6 | // 7 | 8 | #ifndef SPUStandardUserDriver_Private_h 9 | #define SPUStandardUserDriver_Private_h 10 | 11 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 12 | // Ignore incorrect warning 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 15 | #import "SPUStandardUserDriver.h" 16 | #import "SUExport.h" 17 | #pragma clang diagnostic pop 18 | #else 19 | #import 20 | #import 21 | #endif 22 | 23 | @class NSWindowController; 24 | 25 | NS_ASSUME_NONNULL_BEGIN 26 | 27 | SU_EXPORT @interface SPUStandardUserDriver (Private) 28 | 29 | /** 30 | Private API for accessing the active update alert's window controller. 31 | This is the window controller that shows the update's release notes and install choices. 32 | This can be accessed in -[SPUStandardUserDriverDelegate standardUserDriverWillHandleShowingUpdate:forUpdate:state:] 33 | */ 34 | @property (nonatomic, readonly, nullable) NSWindowController *activeUpdateAlert; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | 40 | #endif /* SPUStandardUserDriver_Private_h */ 41 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SPUUserAgent+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUUserAgent+Private.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 11/12/21. 6 | // Copyright © 2021 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 12 | // Ignore incorrect warning 13 | #pragma clang diagnostic push 14 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 15 | #import "SUExport.h" 16 | #pragma clang diagnostic pop 17 | #else 18 | #import 19 | #endif 20 | 21 | NS_ASSUME_NONNULL_BEGIN 22 | 23 | @class SUHost; 24 | 25 | SU_EXPORT NSString *SPUMakeUserAgentWithHost(SUHost *responsibleHost, NSString * _Nullable displayNameSuffix); 26 | 27 | SU_EXPORT NSString *SPUMakeUserAgentWithBundle(NSBundle *responsibleBundle, NSString * _Nullable displayNameSuffix); 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SUAppcastItem+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcastItem+Private.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 4/30/21. 6 | // Copyright © 2021 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SUAppcastItem_Private_h 10 | #define SUAppcastItem_Private_h 11 | 12 | #import 13 | #import 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | // Available in SPUAppcastItemStateResolver.h (a private exposed header) 18 | @class SPUAppcastItemStateResolver; 19 | @class SUSignatures; 20 | 21 | @interface SUAppcastItem (Private) 22 | 23 | /** 24 | Initializes with data from a dictionary provided by the RSS class and state resolver 25 | 26 | This initializer method is intended to be marked "private" and discouraged from public usage. 27 | This method is available however. Talk to us to describe your use case and if you need to construct appcast items yourself. 28 | */ 29 | - (nullable instancetype)initWithDictionary:(NSDictionary *)dict relativeToURL:(NSURL * _Nullable)appcastURL stateResolver:(SPUAppcastItemStateResolver *)stateResolver failureReason:(NSString * _Nullable __autoreleasing *_Nullable)error; 30 | 31 | /** 32 | The EdDSA and DSA signatures along with their statuses. 33 | */ 34 | @property (readonly, nonatomic, nullable) SUSignatures *signatures; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | 40 | #endif /* SUAppcastItem_Private_h */ 41 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/PrivateHeaders/SUInstallerLauncher+Private.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUInstallerLauncher+Private.h 3 | // SUInstallerLauncher+Private 4 | // 5 | // Created by Mayur Pawashe on 8/21/21. 6 | // Copyright © 2021 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SUInstallerLauncher_Private_h 10 | #define SUInstallerLauncher_Private_h 11 | 12 | #if defined(BUILDING_SPARKLE_SOURCES_EXTERNALLY) 13 | // Ignore incorrect warning 14 | #pragma clang diagnostic push 15 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 16 | #import "SUExport.h" 17 | #import "SPUInstallationType.h" 18 | #pragma clang diagnostic pop 19 | #else 20 | #import 21 | // Chances are clients will need this too 22 | #import 23 | #endif 24 | 25 | @class NSString; 26 | 27 | /** 28 | Private API for determining if the system needs authorization access to update a bundle path 29 | 30 | This API is not supported when used directly from a Sandboxed applications and will always return @c YES in that case. 31 | 32 | @param bundlePath The bundle path to test if authorization is needed when performing an update that replaces this bundle. 33 | @return @c YES if Sparkle thinks authorization is needed to update the @c bundlePath, otherwise @c NO. 34 | */ 35 | SU_EXPORT BOOL SPUSystemNeedsAuthorizationAccessForBundlePath(NSString *bundlePath); 36 | 37 | #endif /* SUInstallerLauncher_Private_h */ 38 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/SUUpdateAlert.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/SUUpdateAlert.nib -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-101300.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-101300.nib -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/Base.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ReleaseNotesColorStyle.css: -------------------------------------------------------------------------------- 1 | @media (prefers-color-scheme: dark) { 2 | html { 3 | color-scheme: dark; 4 | color: white; 5 | background: transparent; 6 | } 7 | :link { 8 | color: #419CFF; 9 | } 10 | :link:active { 11 | color: #FF1919; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/SUStatus.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/SUStatus.nib -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ar.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "محدث البرنامج"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "معلومات عن الإصدار:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "تذكيري لاحقًا"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "تخطي هذا الإصدار"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "تثبيت التحديث"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "تنزيل التحديثات وتثبيتها تلقائيًا في المستقبل"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ar.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "عدم التحقق"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "هل تريد أن يتم التحقق من وجود تحديثات تلقائيًا؟"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "تضمين تقرير عن النظام دون ذكر معلومات عن المستخدم"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "تنزيل التحديثات وتثبيتها تلقائيًا في المست"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "التحقق تلقائيًا"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ar.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ar.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ca.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Actualització del programari"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Notes d'aquesta versió:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Recorda-m'ho més tard"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Omet aquesta versió"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instal·la l'actualització"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Descarrega i instal·la les actualitzacions automàticament en el futur"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ca.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ca.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/cs.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Aktualizace aplikace"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Poznámky k vydání:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Připomenout později"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Přeskočit tuto verzi"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instalovat aktualizaci"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "V budoucnu stahovat a instalovat aktualizace automaticky"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/cs.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Informace z anonymního systémového profilu pomáhají vývojářům lépe plánovat budoucí vývoj aplikace.\nBudete-li mít nějaký dotaz, obraťte se na nás.\n\nToto jsou informace, které budou odeslány:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Nevyhledávat"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Vyhledávat aktualizace automaticky?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Odeslat anonymní systémový profil"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Stahovat a instalovat aktualizace automaticky"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Automaticky vyhledávat"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/cs.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/cs.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/da.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Software Update"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Om denne udgivelse:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Påmind mig senere"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Spring over"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installer"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Hent og installer opdateringer automatisk i fremtiden"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/da.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Søg ikke"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Søg efter opdateringer automatisk?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Vedhæft anonym systemprofil"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Hent og installer opdateringer automatisk"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Søg automatisk"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/da.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/da.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/de.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Softwareupdate"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Versionshinweise:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Später erinnern"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Diese Version überspringen"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installieren"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Updates in Zukunft automatisch laden und installieren"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/de.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = ""; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = ""; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Das anonymisierte Systemprofil unterstützt uns bei der zukünftigen Entwicklung. Bitte kontaktiere uns, wenn du Fragen hierzu hast.\n\nDiese Informationen würden an uns gesendet werden:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Nicht suchen"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Automatisch nach Updates suchen?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Anonymisiertes Systemprofil übertragen"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Updates automatisch laden und installieren"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Automatisch suchen"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/el.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Ενημέρωση προγράμματος"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Σημειώσεις Έκδοσης:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Υπενθύμιση Αργότερα"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Παράλειψη Έκδοσης"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Εγκατάσταση Ενημέρωσης"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Αυτόματη λήψη και εγκατάσταση ενημερώσεων στο μέλλον"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/el.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/el.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/en.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 3 | "5.title" = "Software Update"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 6 | "170.title" = "Release Notes:"; 7 | 8 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 9 | "171.title" = "Remind Me Later"; 10 | 11 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 12 | "172.title" = "Skip This Version"; 13 | 14 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 15 | "173.title" = "Install Update"; 16 | 17 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 18 | "175.title" = "Automatically download and install updates in the future"; 19 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/es.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Actualización de software"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Notas de la versión:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Recordármelo"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "No instalar esta versión"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instalar actualización"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Descargar e instalar actualizaciones automáticamente"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fa.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fa.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fi.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Ohjelmiston pävitys"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Tietoa päivityksestä:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Muistuta myöhemmin"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Ohita tämä versio"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Asenna päivitys"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Hae ja asenna päivitykset jatkossa automaattisesti"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fi.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Älä tarkista"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Tarkista päivitykset käynnistyksen yhteydessä?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Sisällytä nimetön järjestelmäprofiili"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Hae ja asenna päivitykset automaattisesti"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Tarkista automaattisesti"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fi.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fi.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fr.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Mise à jour logiciel"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Notes de version :"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Pas maintenant"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Ignorer cette version"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installer"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Télécharger et installer automatiquement les mises à jour"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/he.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "עדכון תכנה"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "פרטי גרסה:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "הזכר לי מאוחר יותר"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "דלג על גרסה זו"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "התקן עדכון"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "הורד והתקן עדכונים אוטומטית גם בעתיד"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/he.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/he.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hr.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Aktualiziranje softvera"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Napomene uz izdanje:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Podsjeti me kasnije"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Zanemari ovu verziju"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instaliraj nadogradnju"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Ubuduće preuzmi i instaliraj nadogradnje automatski"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hr.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonimizirani podaci profila susatava pomažu nam planirati budući razvoj. Kontaktiraj nas, ako imaš pitanja o tome.\n\nŠalju se sljedeći podaci:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Nemoj provjeravati"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Automatski provjeriti nadogradnje?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Uključi anonimizirane podatke o profilu sustava"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Preuzmi i instaliraj nadogradnje automatski"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Provjeri automatski"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hu.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Szoftverfrissítés"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Változások az előző verzióhoz képest:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Emlékeztessen később"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Verzió kihagyása"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Telepítés"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "A jövőben automatikusan töltse le és telepítse a frissítéseket"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hu.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Manuális keresés"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Keresse automatikusan a frissítéseket?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Anonim rendszerinformáció küldése"; 18 | 19 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 20 | "OhZ-1K-DmA.title" = "Automatikus keresés"; 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hu.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/hu.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/is.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Hugbúnaðaruppfærsla"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Útgáfupunktar:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Áminntu mig síðar"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Sleppa þessari útgáfu"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Innsetja"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Sækja og innsetja uppfærslur sjálfkrafa framvegis"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/is.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Upplýsingar úr nafnlausum kerfisskýrslum eru notaðar til að hjálpa okkur við framtíðarþróun hugbúnaðarins. Ekki hika við að hafa samband ef spurningar vakna um þetta.\n\nÞetta eru upplýsingarnar sem yrðu sendar:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Ekki kanna"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Athuga sjálfkrafa með uppfærslur?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Innifela nafnlausa kerfisskýrslu"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Sækja og innsetja uppfærslur sjálfkrafa"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Kanna sjálfkrafa"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/is.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/is.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/it.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Aggiornamento Software"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Note di rilascio:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Ricordamelo più tardi"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Ignora questa versione"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installa"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "In futuro scarica e installa automaticamente gli aggiornamenti"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ja.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "ソフトウェア・アップデート"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "リリースノート:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "あとで通知"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "このバージョンはスキップ"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "アップデートをインストール"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "今後はアップデートのダウンロードとインストールを自動で行う"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ja.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "匿名のシステムプロファイル情報は、今後の開発の参考にさせていただきます。この件に関してご質問があればご連絡下さい。\n\n以下の情報が送信されます:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "確認しない"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "アップデートを自動で確認しますか?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "匿名のシステム情報を含める"; 18 | 19 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 20 | "OhZ-1K-DmA.title" = "自動で確認"; 21 | 22 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 23 | "AUc-33-qGN.title" = "アップデートを自動でダウンロードしてインストール"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ja.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ja.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ko.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "소프트웨어 업데이트"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "릴리즈 노트:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "나중에"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "이 버전 건너뛰기"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "업데이트 설치"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "향후 업데이트 자동 다운로드 및 설치"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ko.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "176"; */ 8 | "OhZ-1K-DmA.title" = "자동으로 확인"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "177"; */ 11 | "cCJ-V0-aTi.title" = "취소"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "178"; */ 14 | "gmh-T4-BO0.title" = "업데이트를 자동으로 확인할까요?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */ 17 | "gz7-LM-gNf.title" = "익명 시스템 정보 포함"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "업데이트 자동 다운로드 및 설치"; 21 | 22 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 23 | "183.title" = "익명으로 보내지는 시스템 정보로 차후 프로그램 개발에 도움이 될 수 있습니다. 질문이 있으시면 연락 주십시오.\n\n아래 정보가 전송될 것입니다."; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ko.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ko.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nb.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Programoppdatering"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Om oppdateringen:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Utsett"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Hopp over"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installer"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Last ned og installer automatisk i fremtiden"; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nb.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Den anonyme systemprofilen hjelper oss med å planlegge fremtidig utviklingsarbeid. Ta gjerne kontakt med oss hvis du har spørsmål om dette.
\nFølgende innhold vil bli sendt:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Ikke søk"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Søk etter oppdateringer automatisk?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Inkluder anonym systemprofil"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Last ned og installer automatisk"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Søk automatisk"; 24 | 25 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nb.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nb.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nl.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Software-update"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Versiegegevens:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Herinner mij later"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Sla deze versie over"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installeer update"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Download en installeer updates voortaan automatisch"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nl.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 2 | "183.title" = "Aan de hand van anonieme informatie over het systeemprofiel kunnen wij toekomstige ontwikkelingswerkzaamheden beter plannen. Neem contact met ons op als je hierover vragen hebt.\n\nDit is de informatie die wordt verzonden:"; 3 | 4 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 5 | "cCJ-V0-aTi.title" = "Zoek niet"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 8 | "gmh-T4-BO0.title" = "Automatisch zoeken naar updates?"; 9 | 10 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 11 | "gz7-LM-gNf.title" = "Voeg anoniem systeemprofiel bij"; 12 | 13 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 14 | "AUc-33-qGN.title" = "Download en installeer updates automatisch"; 15 | 16 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 17 | "OhZ-1K-DmA.title" = "Zoek automatisch"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nn.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Programoppdatering"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Om oppdateringen:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Utsett"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Hopp over"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installer"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Last ned og installer automatisk i framtida"; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nn.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Den anonyme systemprofilen hjelper oss med å planleggja framtidig utviklingsarbeid. Ta gjerne kontakt med oss om du har spørsmål om dette.
\nFølgjande innhald vil bli sendt:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Ikkje sjå etter"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Sjå etter etter oppdateringar automatisk?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Inkluder anonym systemprofil"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Last ned og installer automatisk"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Sjå etter automatisk"; 24 | 25 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nn.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/nn.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pl.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Uaktualnienie oprogramowania"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Szczegóły wydania:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Przypomnij później"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Pomiń tę wersję"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Zainstaluj teraz"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Automatycznie pobierz i zainstaluj przyszłe uaktualnienia"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pl.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Nie sprawdzaj"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Sprawdzać automatycznie uaktualnienia?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Załącz anonimowe informacje o systemie"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Automatycznie pobierz i zainstaluj uaktualnienia"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Sprawdzaj automatycznie"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pt-BR.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Atualização de Software"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Notas do Lançamento:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Mais Tarde"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Ignorar Esta Versão"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instalar Atualização"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Baixar e instalar atualizações futuras automaticamente"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pt-BR.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pt-BR.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pt-PT.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Actualização de Software"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Notas de lançamento:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Lembrar mais tarde"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Saltar esta versão"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instalar actualização"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "No futuro, transferir e instalar actualizações automaticamente"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pt-PT.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/pt-PT.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ro.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Actualizarea aplicației"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Note de ediție:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Amintește-mi mai târziu"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Sari peste…"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instalează actualizarea"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "În viitor descarcă și instalează în automat actualizările"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ro.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Nu verifica"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Verifică pentru actualizări în mod automat?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Include profil anomin de sistem"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Descarcă și instalează în automat actualizările"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Verifică în mod automat"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ro.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ro.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ru.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Обновление программного обеспечения"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Заметки о выпуске:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Напоминать позже"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Пропустить эту версию"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Установить обновление"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Автоматически загружать и устанавливать обновления в будущем"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sk.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Aktualizácia softvéru"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Poznámky k vydaniu:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Pripomenúť neskôr"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Vynechať túto verziu"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Nainštalovať"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "V budúcnosti aktualizácie preberať a inštalovať automaticky"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sk.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonymný profil systému nám umožní zlepšiť plánovanie budúceho vývoja aplikácie. Ak máte ohľadom tohto akékoľvek otázky, neváhajte a kontaktujte nás.\n\nOdosielané budú nasledujúce informácie:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Nekontrolovať"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Kontrolovať aktualizácie automaticky?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Zahrnúť anonymný profil systému"; 18 | 19 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 20 | "OhZ-1K-DmA.title" = "Kontrolovať automaticky"; 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sl.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Posodabljanje programske opreme"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Opombe ob izdaji:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Spomni me kasneje"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Preskoči to verzijo"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Namesti posodobitev"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "V prihodnje samodejno nameščaj posodobitve"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sl.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Anonimni profil sistema se uporablja za načrtovanje nadaljnega razvoja programa. V primeru vprašanj nas lahko kontaktirate.\n\nPošljejo se sledeče informacije:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Ne preverjaj"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Naj občasno preverjam, če so na voljo posodobitve?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Vključi anonimni profil sistema"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Samodejno namestite posodobitve"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Samodejno preverjaj"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sv.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Programuppdatering"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Versionsinformation:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Påminn mig senare"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Hoppa över denna version"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Installera uppdatering"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Hämta och installera nya uppdateringar automatiskt i framtiden."; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/th.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "อัพเดทซอฟต์แวร์"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Release Notes:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "เตือนในภายหลัง"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "ข้ามเวอร์ชั่นนี้"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "ติดตั้งอัพเดท"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "ดาวน์โหลดและติดตั้งอัพเดทโดยอัตโนมัติในอนาคต"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/th.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "ข้อมูลระบบแบบนิรนามช่วยในการวางแผนพัฒนาแอปพลิเคชันของเราในอนาคต กรุณาติดต่อเราถ้าคุณมีข้อสงสัยในเรื่องนี้\n\nนี่คือข้อมูลที่จะถูกส่งไป:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "ไม่ต้องตรวจสอบ"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "ตรวจสอบอัพเดทอัตโนมัติ?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "ส่งข้อมูลระบบแบบนิรนาม"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "ดาวน์โหลดและติดตั้งอัพเดทโดยอัตโนมัติ"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "ตรวจสอบโดยอัตโนมัติ"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/th.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/th.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/tr.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Yazılım Güncelleme"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Sürüm notları:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Daha Sonra Anımsat"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Bu Sürümü Atla"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Yükle"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Gelecekte güncellemeleri otomatik olarak indir ve yükle"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/tr.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Gönderdiğiniz anonim sistem bilgileri bu yazılımın geliştirilmesi için kullanılacaktır. Konu ile ilgili ayrıntılı bilgi için lütfen bizimle iletişime geçin. Gönderilecek bilgiler:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Denetleme"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Güncellemeler otomatik olarak denetlensin mi?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Anonim sistem profilini içer"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Güncellemeleri otomatik olarak indir ve yükle"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Otomatik Olarak Denetle"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/tr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/tr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/uk.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Оновлення програмного забезпечення"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Примітки про нову версію:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Нагадати пізніше"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Пропустити цю версію"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Встановити оновлення"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Автоматично завантажувати та встановлювати оновлення у майбутньому"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/uk.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "Використання анонімного профілю системи допомагає нам у планування майбутньої розробки. Якщо у вас виникли питання щодо цього, звертайтесь до нас.\n\nІнформація, що буде надіслано:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "Не перервіряти"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "Виконувати автоматичну перевірку оновлень?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "Автоматично надсилати профіль системи"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "Автоматично завантажувати та встановлювати оновлення"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "Перевіряти автоматично"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/uk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/uk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_CN.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "软件更新"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "更新信息:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "稍后提示我"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "跳过这个版本"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "安装更新"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "以后自动下载并安装更新"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "无记名系统概况信息被用于帮助我们安排将来的开发工作。如果对此存在疑问请联系我们。\n\n这是将要被发送的信息::"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "不核查"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "自动核查更新?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "包括无记名系统概况"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "自动下载并安装更新"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "自动核查"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_CN.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_CN.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_HK.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "軟體更新"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "更新事項:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "稍後提醒我"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "跳過此版本"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "安裝更新"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "以後自動下載並安裝更新"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_HK.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "匿名系統概況資訊可用來協助我等計畫未來開發工作。若對此有任何疑問,請聯繫我等。\n\n以下係會傳送嘅資訊:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "毋檢查"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "自動檢查更新?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "包含匿名系統概況"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "自動下載並安裝更新"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "自動檢查"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_HK.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_HK.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_TW.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "軟體更新"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "更新事項:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "暫緩提醒"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "跳過此版本"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "安裝更新項目"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "自動下載並安裝未來的更新項目"; 18 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 8 | "183.title" = "匿名系統描述資訊可用來協助我們計畫未來的開發工作。若您有任何相關問題,請與我們聯繫。\n\n以下是會傳送的資訊:"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "cCJ-V0-aTi"; */ 11 | "cCJ-V0-aTi.title" = "不要檢查"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "gmh-T4-BO0"; */ 14 | "gmh-T4-BO0.title" = "自動檢查更新項目?"; 15 | 16 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "gz7-LM-gNf"; */ 17 | "gz7-LM-gNf.title" = "包含匿名的系統描述資料"; 18 | 19 | /* Class = "NSButtonCell"; title = "Automatically download and install updates"; ObjectID = "AUc-33-qGN"; */ 20 | "AUc-33-qGN.title" = "自動下載並安裝更新項目"; 21 | 22 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "OhZ-1K-DmA"; */ 23 | "OhZ-1K-DmA.title" = "自動檢查"; 24 | -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_TW.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Resources/zh_TW.lproj/Sparkle.strings -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Sparkle -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Updater.app/Contents/MacOS/Updater: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Updater.app/Contents/MacOS/Updater -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Updater.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/Updater.app/Contents/Resources/SUStatus.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/Updater.app/Contents/Resources/SUStatus.nib -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/XPCServices/Downloader.xpc/Contents/MacOS/Downloader: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/XPCServices/Downloader.xpc/Contents/MacOS/Downloader -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/B/XPCServices/Installer.xpc/Contents/MacOS/Installer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Sparkle.framework/Versions/B/XPCServices/Installer.xpc/Contents/MacOS/Installer -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | B -------------------------------------------------------------------------------- /Pods/Sparkle/Sparkle.framework/XPCServices: -------------------------------------------------------------------------------- 1 | Versions/Current/XPCServices -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Autoupdate.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.Autoupdate 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Autoupdate.dSYM/Contents/Resources/DWARF/Autoupdate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/Autoupdate.dSYM/Contents/Resources/DWARF/Autoupdate -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/BinaryDelta.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.BinaryDelta 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/BinaryDelta.dSYM/Contents/Resources/DWARF/BinaryDelta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/BinaryDelta.dSYM/Contents/Resources/DWARF/BinaryDelta -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Downloader.xpc.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.org.sparkle-project.DownloaderService 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 2.6.3 17 | CFBundleVersion 18 | 2039 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Downloader.xpc.dSYM/Contents/Resources/DWARF/Downloader: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/Downloader.xpc.dSYM/Contents/Resources/DWARF/Downloader -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Installer.xpc.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.org.sparkle-project.InstallerLauncher 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 2.6.3 17 | CFBundleVersion 18 | 2039 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Installer.xpc.dSYM/Contents/Resources/DWARF/Installer: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/Installer.xpc.dSYM/Contents/Resources/DWARF/Installer -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Sparkle Test App.app.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.org.sparkle-project.SparkleTestApp 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.5.1 17 | CFBundleVersion 18 | 1.5.1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Sparkle Test App.app.dSYM/Contents/Resources/DWARF/Sparkle Test App: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/Sparkle Test App.app.dSYM/Contents/Resources/DWARF/Sparkle Test App -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Sparkle.framework.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.org.sparkle-project.Sparkle 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 2.6.3 17 | CFBundleVersion 18 | 2039 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Sparkle.framework.dSYM/Contents/Resources/DWARF/Sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/Sparkle.framework.dSYM/Contents/Resources/DWARF/Sparkle -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Updater.app.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.org.sparkle-project.Sparkle.Updater 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 2.6.3 17 | CFBundleVersion 18 | 2039 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/Updater.app.dSYM/Contents/Resources/DWARF/Updater: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/Updater.app.dSYM/Contents/Resources/DWARF/Updater -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/generate_appcast.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.generate_appcast 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/generate_appcast.dSYM/Contents/Resources/DWARF/generate_appcast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/generate_appcast.dSYM/Contents/Resources/DWARF/generate_appcast -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/generate_keys.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.generate_keys 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/generate_keys.dSYM/Contents/Resources/DWARF/generate_keys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/generate_keys.dSYM/Contents/Resources/DWARF/generate_keys -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/sign_update.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.sign_update 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 1.0 17 | CFBundleVersion 18 | 1 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/sign_update.dSYM/Contents/Resources/DWARF/sign_update: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/sign_update.dSYM/Contents/Resources/DWARF/sign_update -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/sparkle.app.dSYM/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleIdentifier 8 | com.apple.xcode.dsym.org.sparkle-project.sparkle-cli 9 | CFBundleInfoDictionaryVersion 10 | 6.0 11 | CFBundlePackageType 12 | dSYM 13 | CFBundleSignature 14 | ???? 15 | CFBundleShortVersionString 16 | 2.6.3 17 | CFBundleVersion 18 | 2039 19 | 20 | 21 | -------------------------------------------------------------------------------- /Pods/Sparkle/Symbols/sparkle.app.dSYM/Contents/Resources/DWARF/sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/Symbols/sparkle.app.dSYM/Contents/Resources/DWARF/sparkle -------------------------------------------------------------------------------- /Pods/Sparkle/bin/BinaryDelta: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/bin/BinaryDelta -------------------------------------------------------------------------------- /Pods/Sparkle/bin/generate_appcast: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/bin/generate_appcast -------------------------------------------------------------------------------- /Pods/Sparkle/bin/generate_keys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/bin/generate_keys -------------------------------------------------------------------------------- /Pods/Sparkle/bin/old_dsa_scripts/sign_update: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | set -o pipefail 4 | if [ "$#" -ne 2 ]; then 5 | echo "Usage: $0 update_archive_file dsa_priv.pem" 6 | echo "This is an old DSA signing script for deprecated DSA keys." 7 | echo "Do not use this for new applications." 8 | exit 1 9 | fi 10 | openssl=/usr/bin/openssl 11 | version=`$openssl version` 12 | if [[ $version =~ "OpenSSL 0.9" ]]; then 13 | # pre-10.13 system: Fall back to OpenSSL DSS1 digest because it does not like the -sha1 option 14 | $openssl dgst -sha1 -binary < "$1" | $openssl dgst -dss1 -sign "$2" | $openssl enc -base64 15 | else 16 | # 10.13 and later: Use LibreSSL SHA1 digest 17 | $openssl dgst -sha1 -binary < "$1" | $openssl dgst -sha1 -sign "$2" | $openssl enc -base64 18 | fi 19 | -------------------------------------------------------------------------------- /Pods/Sparkle/bin/sign_update: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/Pods/Sparkle/bin/sign_update -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Phoenix : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Phoenix 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-Phoenix/Pods-Phoenix-frameworks.sh 2 | ${PODS_ROOT}/Sparkle/Sparkle.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sparkle.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-Phoenix/Pods-Phoenix-frameworks.sh 2 | ${PODS_ROOT}/Sparkle/Sparkle.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Sparkle.framework -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' @loader_path/../Frameworks 5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "Sparkle" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Phoenix/Pods-Phoenix.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' @loader_path/../Frameworks 5 | OTHER_LDFLAGS = $(inherited) -ObjC -framework "Sparkle" 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 9 | PODS_ROOT = ${SRCROOT}/Pods 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Sparkle/Sparkle-copy-dsyms-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Sparkle/Sparkle.framework.dSYM -------------------------------------------------------------------------------- /Pods/Target Support Files/Sparkle/Sparkle-copy-dsyms-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${DWARF_DSYM_FOLDER_PATH}/Sparkle.framework.dSYM -------------------------------------------------------------------------------- /Pods/Target Support Files/Sparkle/Sparkle.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Sparkle 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) @loader_path/../Frameworks 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Sparkle 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Sparkle/Sparkle.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Sparkle 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | LD_RUNPATH_SEARCH_PATHS = $(inherited) @loader_path/../Frameworks 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_DEVELOPMENT_LANGUAGE = ${DEVELOPMENT_LANGUAGE} 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Sparkle 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Sparkle/Sparkle.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Sparkle 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Sparkle" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LD_RUNPATH_SEARCH_PATHS = $(inherited) @loader_path/../Frameworks 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Sparkle 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /assets/safari-advanced-preferences.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/safari-advanced-preferences.png -------------------------------------------------------------------------------- /assets/safari-develop-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/safari-develop-menu.png -------------------------------------------------------------------------------- /assets/screenshot.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/screenshot.gif -------------------------------------------------------------------------------- /assets/screenshot.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/screenshot.psd -------------------------------------------------------------------------------- /assets/status-item.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/status-item.psd -------------------------------------------------------------------------------- /assets/web-inspector-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/web-inspector-console.png -------------------------------------------------------------------------------- /assets/web-inspector-debugger.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/assets/web-inspector-debugger.png -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | .docusaurus/ 2 | /build/ 3 | -------------------------------------------------------------------------------- /docs/API.md: -------------------------------------------------------------------------------- 1 | Note: the documentation has moved to https://kasper.github.io/phoenix/. 2 | -------------------------------------------------------------------------------- /docs/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [require.resolve('@docusaurus/core/lib/babel/preset')], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/docs/api/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "API", 3 | "position": 3, 4 | "collapsed": false 5 | } 6 | -------------------------------------------------------------------------------- /docs/docs/api/identifiable.md: -------------------------------------------------------------------------------- 1 | # Identifiable 2 | 3 | Objects that implement `Identifiable` can be identified and compared. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | interface Identifiable 9 | 10 | int hash() 11 | boolean isEqual(AnyObject object) 12 | 13 | end 14 | ``` 15 | 16 | ## Instance Methods 17 | 18 | - `hash()` returns the hash value for the object 19 | - `isEqual(AnyObject object)` returns `true` if the given object is equal with this object 20 | 21 | ## Example 22 | 23 | ```javascript 24 | // Get the hash value for a window 25 | const hash = Window.focused().hash(); 26 | Phoenix.log(hash); // -> 1668246523 27 | 28 | // Compare equality of two windows 29 | const focusedWindow = Window.focused(); 30 | const mainSafariWindow = App.get('Safari').mainWindow(); 31 | Phoenix.log(focusedWindow.isEqual(mainSafariWindow)); // -> true or false 32 | ``` 33 | -------------------------------------------------------------------------------- /docs/docs/api/image.md: -------------------------------------------------------------------------------- 1 | # Image 2 | 3 | Use Image to load images from the file system. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | class Image implements Identifiable 9 | 10 | static Image fromFile(String path) 11 | 12 | end 13 | ``` 14 | 15 | ## Static Methods 16 | 17 | - `fromFile(String path)` loads an image from the given path, the path is resolved before attempting to load the image, returns `undefined` if unsuccessful 18 | 19 | ## Example 20 | 21 | ```javascript 22 | // Load an image from the file system 23 | const image = Image.fromFile('/path/to/image.png'); 24 | ``` 25 | -------------------------------------------------------------------------------- /docs/docs/api/iterable.md: -------------------------------------------------------------------------------- 1 | # Iterable 2 | 3 | Objects that implement `Iterable` can be traversed relatively to the current object. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | interface Iterable 9 | 10 | Object next() 11 | Object previous() 12 | 13 | end 14 | ``` 15 | 16 | ## Instance Methods 17 | 18 | - `next()` returns the next object or the first object when on the last one 19 | - `previous()` returns the previous object or the last object when on the first one 20 | 21 | ## Example 22 | 23 | ```javascript 24 | // Traverse between screens starting from the main screen 25 | const nextScreen = Screen.main().next(); 26 | const previousScreen = Screen.main().previous(); 27 | ``` 28 | -------------------------------------------------------------------------------- /docs/docs/api/keys.md: -------------------------------------------------------------------------------- 1 | # Keys 2 | 3 | All valid keys for binding are as follows: 4 | 5 | - **Modifiers:** `command` (`cmd`), `option` (`alt`), `control` (`ctrl`) and `shift` (case insensitive) 6 | - **Keys:** case insensitive character or case sensitive special key including function keys, arrow keys, keypad keys etc. as listed below 7 | - You can bind any key on your local keyboard layout, for instance an `å` character if your keyboard has one 8 | - If you use multiple keyboard layouts, Phoenix will use the active layout when the context is loaded 9 | 10 | Use these to construct a [Key](key). 11 | 12 | ## Special Keys 13 | 14 | - **Action:** `return`, `tab`, `space`, `delete`, `escape`, `help`, `home`, `pageUp`, `forwardDelete`, `end`, `pageDown`, `left`, `right`, `down` and `up` 15 | - **Function:** `f1` – `f19` 16 | - **Keypad:** `keypad.`, `keypad*`, `keypad+`, `keypadClear`, `keypad/`, `keypadEnter`, `keypad-`, `keypad=`, `keypad0`, `keypad1`, `keypad2`, `keypad3`, `keypad4`, `keypad5`, `keypad6`, `keypad7`, `keypad8` and `keypad9` 17 | -------------------------------------------------------------------------------- /docs/docs/api/mouse.md: -------------------------------------------------------------------------------- 1 | # Mouse 2 | 3 | Use the Mouse to control the cursor. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | class Mouse 9 | 10 | static Point location() 11 | static boolean move(Point point) 12 | 13 | end 14 | ``` 15 | 16 | ## Static Methods 17 | 18 | - `location()` returns the cursor position 19 | - `move(Point point)` moves the cursor to a given position, returns `true` if successful 20 | 21 | ## Events 22 | 23 | See [Events](events#mouse) for a list of available events for Mouse. 24 | 25 | ## Example 26 | 27 | ```javascript 28 | // Get the cursor location 29 | const location = Mouse.location(); 30 | console.log('Location:', location.x, location.y); // -> 'Location: 2023 301' 31 | 32 | // Move the cursor to origo 33 | Mouse.move({ x: 0, y: 0 }); 34 | ``` 35 | -------------------------------------------------------------------------------- /docs/docs/api/phoenix.md: -------------------------------------------------------------------------------- 1 | # Phoenix 2 | 3 | Use Phoenix for global APIs and actions. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | class Phoenix 9 | 10 | static void reload() 11 | static void set(Map preferences) 12 | static void log(AnyObject... arguments) 13 | static void notify(String message) 14 | 15 | end 16 | ``` 17 | 18 | ## Static Methods 19 | 20 | - `reload()` manually reloads the context and any changes in the configuration files 21 | - `set(Map preferences)` sets the preferences from the given key–value map, any previously set preferences with the same key will be overridden 22 | - `log(AnyObject... arguments)` logs the arguments to the Console (app) 23 | - `notify(String message)` delivers the message to the Notification Center 24 | 25 | ## Events 26 | 27 | See [Events](events#phoenix) for a list of available events for Phoenix. 28 | 29 | ## Example 30 | 31 | ```javascript 32 | // Reload the configuration 33 | Phoenix.reload(); 34 | 35 | // Log a message 36 | Phoenix.log('Message'); 37 | 38 | // Display a notification in Notification Center 39 | Phoenix.notify('Notice this!'); 40 | ``` 41 | -------------------------------------------------------------------------------- /docs/docs/api/point.md: -------------------------------------------------------------------------------- 1 | # Point 2 | 3 | A simple point object for 2D coordinates. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | struct Point 9 | 10 | property double x 11 | property double y 12 | 13 | end 14 | ``` 15 | 16 | ## Example 17 | 18 | ```javascript 19 | // Read point properties 20 | const location = Window.focused().topLeft(); 21 | Phoenix.log(location.x, location.y); // -> 100 0 22 | ``` 23 | -------------------------------------------------------------------------------- /docs/docs/api/preferences.md: -------------------------------------------------------------------------------- 1 | # Preferences 2 | 3 | Phoenix supports the following (case sensitive) preferences: 4 | 5 | - `daemon` (boolean): if set `true` Phoenix will run completely in the background, this also removes the status bar menu, defaults to `false` 6 | - `openAtLogin` (boolean): if set `true` Phoenix will automatically open at login, defaults to `false` if no value has been previously set 7 | 8 | Set the preferences using the `Phoenix` object — for example: 9 | 10 | ```javascript 11 | Phoenix.set({ 12 | daemon: true, 13 | openAtLogin: true 14 | }); 15 | ``` 16 | -------------------------------------------------------------------------------- /docs/docs/api/rectangle.md: -------------------------------------------------------------------------------- 1 | # Rectangle 2 | 3 | A 2D rectangle representation of a `Point` and `Size`. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | struct Rectangle 9 | 10 | property double x 11 | property double y 12 | property double width 13 | property double height 14 | 15 | end 16 | ``` 17 | 18 | ## Example 19 | 20 | ```javascript 21 | // Read rectangle properties 22 | const frame = Window.focused().frame(); 23 | Phoenix.log(frame.x, frame.y, frame.width, frame.height); // -> 100 0 1024 512 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /docs/docs/api/require.md: -------------------------------------------------------------------------------- 1 | # Require 2 | 3 | You can modularise your configuration using the `require` function. It will load the referenced JavaScript file and reload it if any changes are detected. If the path is relative, it is resolved relatively to the absolute location of the primary configuration file. If this file is a symlink, it will be resolved before resolving the location of the required file. If the file does not exist, `require` will throw an error. 4 | 5 | ```javascript 6 | require('path/to/file.js'); 7 | ``` 8 | 9 | All required code is executed in the same namespace. Be careful about the execution order and polluting properties. 10 | -------------------------------------------------------------------------------- /docs/docs/api/size.md: -------------------------------------------------------------------------------- 1 | # Size 2 | 3 | A simple 2D size object. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | struct Size 9 | 10 | property double width 11 | property double height 12 | 13 | end 14 | ``` 15 | 16 | ## Example 17 | 18 | ```javascript 19 | // Read size properties 20 | const size = Window.focused().size(); 21 | Phoenix.log(size.width, size.height); // -> 1024 512 22 | ``` 23 | -------------------------------------------------------------------------------- /docs/docs/api/storage.md: -------------------------------------------------------------------------------- 1 | # Storage 2 | 3 | Use Storage to store values across reloads and reboots as JSON. 4 | 5 | ## Interface 6 | 7 | ```javascript 8 | class Storage 9 | 10 | static void set(String key, AnyObject value) 11 | static AnyObject get(String key) 12 | static void remove(String key) 13 | 14 | end 15 | ``` 16 | 17 | ## Static Methods 18 | 19 | - `set(String key, AnyObject value)` stores the value for the key, any previously set value with the same key will be overridden 20 | - `get(String key)` retrieves and returns the value for the key (`undefined` if no value has been set) 21 | - `remove(String key)` removes the key and the value associated with it 22 | 23 | ## Example 24 | 25 | ```javascript 26 | // Set a value 27 | Storage.set('key', 'value'); 28 | Storage.set('height', 100); 29 | Storage.set('isEnabled', true); 30 | Storage.set('settings', { isEnabled: true }); 31 | 32 | // Get a value 33 | const value = Storage.get('key'); 34 | Phoenix.log(value); // -> 'value' 35 | 36 | // Remove a value 37 | Storage.remove('key'); 38 | ``` 39 | -------------------------------------------------------------------------------- /docs/docs/getting-started/2-managing-handlers.md: -------------------------------------------------------------------------------- 1 | # Managing Handlers 2 | 3 | As previously mentioned you must keep a reference to your handlers, otherwise your callbacks will not get called. In return, if you release the reference to the handler, it will also be disabled eventually. Beware that this can be rather delayed and you are always safer to manually disable the handlers before letting the reference go. This gives you full control over the lifecycle of your handlers and can be especially useful when you want to dynamically create handlers. 4 | 5 | Obviously, in most cases you do not want to worry about the lifecycle of your handlers. This is why Phoenix also provides managed handlers that are held for you. You can use these managed handlers to set keys, events, timers and tasks, but also to disable them. Basically, when you create a managed handler, the handler is constructed and its reference is stored. You will get an identifier for the handler which you can then use to disable it. When you disable the handler, Phoenix will take care of properly disposing it for you. 6 | 7 | For example, to bind a key to a function. 8 | 9 | ```javascript 10 | Key.on('q', ['control', 'shift'], () => {}); 11 | ``` 12 | 13 | You can disable the handler with its identifier. 14 | 15 | ```javascript 16 | const identifier = Key.on('q', ['control', 'shift'], () => {}); 17 | Key.off(identifier); 18 | ``` 19 | -------------------------------------------------------------------------------- /docs/docs/getting-started/3-loading.md: -------------------------------------------------------------------------------- 1 | # Loading 2 | 3 | Your configuration file is loaded when the app launches. All functions are evaluated (and executed if necessary) when this happens. Phoenix also reloads the configuration when any changes are detected to the file(s). You may also reload the configuration manually from the status bar or programmatically from your script. 4 | 5 | The following locations are valid configuration paths and the first existing file will be used. Whilst loading, all symlinks will be resolved, so in the end your configuration can also be a symlink to any desired destination. 6 | 7 | 1. `~/.phoenix.js` 8 | 2. `~/Library/Application Support/Phoenix/phoenix.js` 9 | 3. `~/.config/phoenix/phoenix.js` 10 | 11 | :::note 12 | If you delete your main configuration file while Phoenix is still running, Phoenix will create a blank file in its place. Be sure and quit Phoenix when switching between using the `~/.phoenix.js`, `~/Library/Application Support/Phoenix/phoenix.js` or `~/.config/phoenix/phoenix.js` configuration files. 13 | ::: 14 | 15 | :::note Debug Build 16 | You may also use these paths for the debug configuration (with a suffix of `.debug.js`), if you are using a debug build of Phoenix. 17 | ::: 18 | -------------------------------------------------------------------------------- /docs/docs/getting-started/4-preprocessing.md: -------------------------------------------------------------------------------- 1 | # Preprocessing 2 | 3 | You may add JavaScript preprocessing to your configuration by adding a [Shebang](https://en.wikipedia.org/wiki/Shebang_(Unix))-directive to the beginning of your file. It must be the first statement in your file. Phoenix should support all popular JavaScript compilers, but be aware that you need to have the compiler installed on your setup and accessible through your shell’s `PATH` for Phoenix to find it. You also need to ask the compiler to output to the standard output so Phoenix is able to evaluate the result. 4 | 5 | For example, use [Babel](http://babeljs.io) to use ECMAScript 6 JavaScript in macOS versions prior to Sierra: 6 | 7 | ```javascript 8 | #!/usr/bin/env babel 9 | 10 | Key.on('s', ['control', 'shift'], () => { 11 | App.launch('Safari').focus(); 12 | }); 13 | ``` 14 | 15 | Or alternatively, use [CoffeeScript](http://coffeescript.org) to write your configuration: 16 | 17 | ```coffeescript 18 | #!/usr/bin/env coffee -p 19 | 20 | Key.on 's', ['control', 'shift'], -> 21 | App.launch('Safari').focus() 22 | ``` 23 | -------------------------------------------------------------------------------- /docs/docs/getting-started/5-about-coordinates.md: -------------------------------------------------------------------------------- 1 | # About Coordinates 2 | 3 | macOS has two commonly used coordinate systems: for higher level elements the origo `(0, 0)` is situated in the bottom left corner of the screen, on the contrary for lower level elements the origo is situated in the top left corner of the screen (flipped). 4 | 5 | This API has no distinction between these systems — `Point`s can represent both cases. The larger part of the API uses a flipped top left based origin, unless otherwise is stated. 6 | -------------------------------------------------------------------------------- /docs/docs/getting-started/6-logging-and-debugging.md: -------------------------------------------------------------------------------- 1 | # Logging and Debugging 2 | 3 | To log messages, use `Phoenix.log`. The messages are delivered to the Console (app). You can filter logs by process by searching for “Phoenix”. You can also follow the logs from a terminal by running `log stream --process Phoenix`. 4 | 5 | :::tip console.log 6 | For convenience, `console.log` is bound to `Phoenix.log`. Choose whichever you prefer! 7 | ::: 8 | 9 | ## Web Inspector 10 | 11 | To debug your configuration, use Safari’s Web Inspector. You can attach to the context from Safari’s “Develop” menu under your devices name. Read a more comprehensive [instruction](https://github.com/kasper/phoenix/wiki/Attaching-to-Web-Inspector-for-Debugging/) to get started. In the Web Inspector’s Console you can also see messages outputted with `console.log`. 12 | 13 | :::note 14 | *Due to macOS security restrictions, this only works on non-notarised versions of Phoenix (2.6.2 or older) or with debug builds built from the source.* 15 | ::: 16 | -------------------------------------------------------------------------------- /docs/docs/getting-started/7-typescript.md: -------------------------------------------------------------------------------- 1 | # TypeScript 2 | 3 | You can obviously build the Phoenix configuration using [TypeScript](https://typescriptlang.org). Use the [phoenix-typings](https://github.com/mafredri/phoenix-typings/) library for the API type definitions. Thanks @mafredri! 🙌 4 | -------------------------------------------------------------------------------- /docs/docs/getting-started/_category_.json: -------------------------------------------------------------------------------- 1 | { 2 | "label": "Getting Started", 3 | "position": 2, 4 | "collapsed": false 5 | } 6 | -------------------------------------------------------------------------------- /docs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@phoenix/docs", 3 | "version": "4.0.2", 4 | "private": true, 5 | "engines": { 6 | "node": ">=22.2.0", 7 | "npm": ">=10.8.1" 8 | }, 9 | "dependencies": { 10 | "@docusaurus/core": "3.4.0", 11 | "@docusaurus/preset-classic": "3.4.0", 12 | "@mdx-js/react": "3.0.1", 13 | "docusaurus-lunr-search": "3.4.0", 14 | "eslint-config-airbnb-base": "15.0.0", 15 | "prism-react-renderer": "2.3.1", 16 | "react": "18.3.1", 17 | "react-dom": "18.3.1", 18 | "xo": "0.58.0" 19 | }, 20 | "scripts": { 21 | "build": "docusaurus build", 22 | "clear": "docusaurus clear", 23 | "deploy": "docusaurus deploy", 24 | "docusaurus": "docusaurus", 25 | "lint": "xo", 26 | "lint:fix": "xo --fix", 27 | "serve": "docusaurus serve", 28 | "start": "docusaurus start", 29 | "swizzle": "docusaurus swizzle", 30 | "write-heading-ids": "docusaurus write-heading-ids", 31 | "write-translations": "docusaurus write-translations" 32 | }, 33 | "browserslist": { 34 | "development": [ 35 | "last 1 chrome version", 36 | "last 1 firefox version", 37 | "last 1 safari version" 38 | ], 39 | "production": [ 40 | ">0.5%", 41 | "not dead", 42 | "not op_mini all" 43 | ] 44 | }, 45 | "xo": { 46 | "extends": "eslint-config-airbnb-base", 47 | "prettier": true, 48 | "space": true, 49 | "rules": { 50 | "unicorn/prefer-module": "off" 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /docs/sidebars.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | sidebar: [{ type: 'autogenerated', dirName: '.' }], 3 | }; 4 | -------------------------------------------------------------------------------- /docs/src/css/custom.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --ifm-color-primary: #2e8555; 3 | --ifm-color-primary-dark: #29784c; 4 | --ifm-color-primary-darker: #277148; 5 | --ifm-color-primary-darkest: #205d3b; 6 | --ifm-color-primary-light: #33925d; 7 | --ifm-color-primary-lighter: #359962; 8 | --ifm-color-primary-lightest: #3cad6e; 9 | --ifm-code-font-size: 95%; 10 | } 11 | 12 | html[data-theme='dark'] { 13 | --ifm-color-primary: #25c2a0; 14 | --ifm-color-primary-dark: #21af90; 15 | --ifm-color-primary-darker: #1fa588; 16 | --ifm-color-primary-darkest: #1a8870; 17 | --ifm-color-primary-light: #29d5b0; 18 | --ifm-color-primary-lighter: #32d8b4; 19 | --ifm-color-primary-lightest: #4fddbf; 20 | } 21 | 22 | .docusaurus-highlight-code-line { 23 | background-color: rgba(0, 0, 0, 0.1); 24 | display: block; 25 | margin: 0 calc(-1 * var(--ifm-pre-padding)); 26 | padding: 0 var(--ifm-pre-padding); 27 | } 28 | 29 | html[data-theme='dark'] .docusaurus-highlight-code-line { 30 | background-color: rgba(0, 0, 0, 0.3); 31 | } 32 | 33 | img[src$='#example'] { 34 | display: block; 35 | width: auto; 36 | max-height: 100px; 37 | } 38 | -------------------------------------------------------------------------------- /docs/static/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/docs/static/.nojekyll -------------------------------------------------------------------------------- /docs/static/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/docs/static/img/favicon.ico -------------------------------------------------------------------------------- /docs/static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/docs/static/img/logo.png -------------------------------------------------------------------------------- /docs/static/img/modal/icon-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/docs/static/img/modal/icon-modal.png -------------------------------------------------------------------------------- /docs/static/img/modal/input-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/docs/static/img/modal/input-modal.png -------------------------------------------------------------------------------- /docs/static/img/modal/text-modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kasper/phoenix/52b38ced73313e96c9e6efe61574ffb2ca946f92/docs/static/img/modal/text-modal.png -------------------------------------------------------------------------------- /export.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | method 6 | developer-id 7 | signingStyle 8 | automatic 9 | 10 | 11 | -------------------------------------------------------------------------------- /format: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Exit on error 4 | trap 'exit' ERR 5 | 6 | clang-format -i Launcher/*.h Launcher/*.m 7 | clang-format -i LauncherTests/*.m 8 | clang-format -i Phoenix/*.h Phoenix/*.m 9 | clang-format -i PhoenixTests/*.m 10 | -------------------------------------------------------------------------------- /library/src/event.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Event */ 4 | 5 | (function (scope) { 6 | var events = {}; 7 | 8 | scope.on = function (event, callback) { 9 | var eventHandler = new Event(event, callback); 10 | if (!eventHandler) { 11 | return undefined; 12 | } 13 | events[eventHandler.hash()] = eventHandler; 14 | return eventHandler.hash(); 15 | }; 16 | 17 | scope.off = function (identifier) { 18 | var event = events[identifier]; 19 | if (event) { 20 | event.disable(); 21 | delete events[identifier]; 22 | } 23 | }; 24 | 25 | scope.once = function (event, callback) { 26 | var identifier = scope.on(event, function () { 27 | var returnValue = callback.apply(null, arguments); 28 | if (returnValue === false) { 29 | return; 30 | } 31 | scope.off(identifier); 32 | }); 33 | }; 34 | })(Event); 35 | -------------------------------------------------------------------------------- /library/src/key.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Key */ 4 | 5 | (function (scope) { 6 | var keys = {}; 7 | 8 | scope.on = function (key, modifiers, callback) { 9 | var keyHandler = new Key(key, modifiers, callback); 10 | if (!keyHandler) { 11 | return undefined; 12 | } 13 | keys[keyHandler.hash()] = keyHandler; 14 | return keyHandler.hash(); 15 | }; 16 | 17 | scope.off = function (identifier) { 18 | var key = keys[identifier]; 19 | if (key) { 20 | key.disable(); 21 | delete keys[identifier]; 22 | } 23 | }; 24 | 25 | scope.once = function (key, modifiers, callback) { 26 | var identifier = scope.on(key, modifiers, function () { 27 | var returnValue = callback.apply(null, arguments); 28 | if (returnValue === false) { 29 | return; 30 | } 31 | scope.off(identifier); 32 | }); 33 | }; 34 | })(Key); 35 | -------------------------------------------------------------------------------- /library/src/modal.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Modal */ 4 | 5 | Modal.prototype.setTextColour = Modal.prototype.setTextColor; 6 | 7 | Modal.build = function (properties) { 8 | var modal = new Modal(); 9 | _(properties) 10 | .omit('origin') 11 | .each(function (value, key) { 12 | modal[key] = value; 13 | }); 14 | if (_(properties.origin).isFunction()) { 15 | modal.origin = properties.origin(modal.frame()); 16 | modal.didResize = function () { 17 | modal.origin = properties.origin(modal.frame()); 18 | }; 19 | } 20 | return modal; 21 | }; 22 | -------------------------------------------------------------------------------- /library/src/phoenix.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Phoenix */ 4 | 5 | var consoleLogFn = console.log; // eslint-disable-line no-console 6 | var logFn = Phoenix.log; 7 | 8 | function prettifyError(error) { 9 | var stack = ''; 10 | if (error.stack) { 11 | stack = error.stack 12 | .trim() 13 | .split('\n') 14 | .map(function (line) { 15 | return '\tat ' + line; 16 | }) 17 | .join('\n'); 18 | } 19 | return error.name + ': ' + error.message + '\n' + stack; 20 | } 21 | 22 | Phoenix.log = function () { 23 | var isError = arguments.length === 1 && arguments[0] instanceof Error; 24 | if (isError) { 25 | logFn.call(Phoenix, prettifyError(arguments[0])); 26 | return; 27 | } 28 | logFn.apply(Phoenix, arguments); 29 | }; 30 | 31 | // eslint-disable-next-line no-console 32 | console.log = function () { 33 | consoleLogFn.apply(console, arguments); 34 | Phoenix.log.apply(Phoenix, arguments); 35 | }; 36 | -------------------------------------------------------------------------------- /library/src/screen.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Screen */ 4 | 5 | // TODO: Deprecated and will be removed in later versions, use Screen#flippedFrame() instead 6 | Screen.prototype.frameInRectangle = function () { 7 | Phoenix.log( 8 | 'Deprecated: Function Screen#frameInRectangle() is deprecated and will be removed in later versions, use Screen#flippedFrame() instead.', 9 | ); 10 | return this.flippedFrame(); 11 | }; 12 | 13 | // TODO: Deprecated and will be removed in later versions, use Screen#flippedVisibleFrame() instead 14 | Screen.prototype.visibleFrameInRectangle = function () { 15 | Phoenix.log( 16 | 'Deprecated: Function Screen#visibleFrameInRectangle() is deprecated and will be removed in later versions, use Screen#flippedVisibleFrame() instead.', 17 | ); 18 | return this.flippedVisibleFrame(); 19 | }; 20 | -------------------------------------------------------------------------------- /library/src/space.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Space */ 4 | 5 | // TODO: Deprecated and will be removed in later versions, use Space#screens() instead 6 | Space.prototype.screen = function () { 7 | Phoenix.log( 8 | 'Deprecated: Function Space#screen() is deprecated and will be removed in later versions, use Space#screens() instead.', 9 | ); 10 | return _.first(this.screens()); 11 | }; 12 | -------------------------------------------------------------------------------- /library/src/task.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Task */ 4 | 5 | (function (scope) { 6 | var tasks = {}; 7 | 8 | scope.run = function (path, args, callback) { 9 | var task = new Task(path, args, function (handler) { 10 | if (callback) { 11 | callback(handler); 12 | } 13 | Task.terminate(handler.hash()); 14 | }); 15 | tasks[task.hash()] = task; 16 | return task.hash(); 17 | }; 18 | 19 | scope.terminate = function (identifier) { 20 | var task = tasks[identifier]; 21 | if (task) { 22 | task.terminate(); 23 | delete tasks[identifier]; 24 | } 25 | }; 26 | })(Task); 27 | -------------------------------------------------------------------------------- /library/src/timer.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Timer */ 4 | 5 | (function (scope) { 6 | var timers = {}; 7 | 8 | scope.after = function (interval, callback) { 9 | var timer = new Timer(interval, false, function (handler) { 10 | callback(handler); 11 | Timer.off(handler.hash()); 12 | }); 13 | timers[timer.hash()] = timer; 14 | return timer.hash(); 15 | }; 16 | 17 | scope.every = function (interval, callback) { 18 | var timer = new Timer(interval, true, callback); 19 | timers[timer.hash()] = timer; 20 | return timer.hash(); 21 | }; 22 | 23 | scope.off = function (identifier) { 24 | var timer = timers[identifier]; 25 | if (timer) { 26 | timer.stop(); 27 | delete timers[identifier]; 28 | } 29 | }; 30 | })(Timer); 31 | 32 | /* Global Timing */ 33 | 34 | this.clearTimeout = Timer.off; 35 | this.clearInterval = Timer.off; 36 | 37 | this.setTimeout = function (callback, milliseconds) { 38 | return Timer.after(milliseconds / 1000, callback); 39 | }; 40 | 41 | this.setInterval = function (callback, milliseconds) { 42 | return Timer.every(milliseconds / 1000, callback); 43 | }; 44 | -------------------------------------------------------------------------------- /library/src/window.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /* Window */ 4 | 5 | Window.prototype.isMinimised = Window.prototype.isMinimized; 6 | Window.prototype.maximise = Window.prototype.maximize; 7 | Window.prototype.minimise = Window.prototype.minimize; 8 | Window.prototype.unminimise = Window.prototype.unminimize; 9 | Window.prototype.neighbours = Window.prototype.neighbors; 10 | Window.prototype.focusClosestNeighbour = Window.prototype.focusClosestNeighbor; 11 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "phoenix", 3 | "version": "4.0.2", 4 | "private": true, 5 | "engines": { 6 | "node": ">=22.2.0", 7 | "npm": ">=10.8.1" 8 | }, 9 | "devDependencies": { 10 | "eslint-config-airbnb-base": "15.0.0", 11 | "uglify-js": "3.18.0", 12 | "xo": "0.58.0" 13 | }, 14 | "scripts": { 15 | "build": "npm run clean && npm test && npm run build:concat && npm run build:compress", 16 | "build:compress": "uglifyjs Phoenix/$npm_package_name.js --compress --mangle --output Phoenix/$npm_package_name.min.js", 17 | "build:concat": "cat library/src/*.js > Phoenix/$npm_package_name.js", 18 | "clean": "rm -f Phoenix/$npm_package_name.js Phoenix/$npm_package_name.min.js", 19 | "lint": "xo library/", 20 | "lint:fix": "xo --fix library/", 21 | "test": "npm run lint" 22 | }, 23 | "xo": { 24 | "extends": "eslint-config-airbnb-base/legacy", 25 | "prettier": true, 26 | "space": true, 27 | "globals": [ 28 | "_", 29 | "Event", 30 | "Key", 31 | "Modal", 32 | "Phoenix", 33 | "Screen", 34 | "Space", 35 | "Task", 36 | "Timer", 37 | "Window" 38 | ], 39 | "rules": { 40 | "no-param-reassign": "off", 41 | "prefer-arrow-callback": "off", 42 | "prefer-rest-params": "off", 43 | "prefer-spread": "off", 44 | "strict": "off", 45 | "unicorn/prefer-module": "off", 46 | "unicorn/prefer-reflect-apply": "off", 47 | "unicorn/prevent-abbreviations": "off", 48 | "vars-on-top": "off" 49 | } 50 | } 51 | } 52 | --------------------------------------------------------------------------------