AutoUpdaterController class

Controller for auto-update functionality.

Manages version checking, lock file management for preventing concurrent updates, installation, and shell config cleanup.

Inheritance

Constructors

AutoUpdaterController({required String appVersion, required String packageUrl, required String configHomeDir, String? userType, bool isRunningWithBun = false, Future<ProcessResult> execCommand(String executable, List<String> arguments, {String? workingDirectory})?})

Properties

appVersion String
Current app version.
final
configHomeDir String
Config home directory.
final
hashCode int
The hash code for this object.
no setterinherited
initialized bool
Checks whether the controller has already been initialized.
no setterinherited
isClosed bool
Checks whether the controller has already been closed.
no setterinherited
isDisposed bool
no setterinherited
isRunningWithBun bool
Whether running with Bun runtime.
final
latestVersion → RxnString
Latest available version.
final
listenersLength int
no setterinherited
lockFilePath String
Get the path to the lock file.
no setter
packageUrl String
Package URL for npm operations.
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
updateStatus → Rx<AutoUpdateInstallStatus?>
Current update status.
final
userType String?
User type (ant, external).
final

Methods

acquireLock() Future<bool>
Attempts to acquire a lock for auto-updater. Returns true if lock was acquired, false if another process holds it.
addListener(SintStateUpdate listener) → Disposer
Register a closure to be called when the object notifies its listeners.
inherited
addListenerId(Object? key, SintStateUpdate listener) → Disposer
inherited
assertMinVersion(String minVersion) String?
Checks if the current version meets the minimum required version.
checkGlobalInstallPermissions() Future<({bool hasPermissions, String? npmPrefix})>
Check global install permissions.
containsListener(SintStateUpdate listener) bool
inherited
debounce<T>(RxInterface<T> rx, void callback(T), {Duration duration = const Duration(milliseconds: 400)}) → void
Calls callback after rx stops changing for duration. Useful for search-as-you-type, form validation, etc.
inherited
dispose() → void
inherited
ever<T>(RxInterface<T> rx, void callback(T)) → void
Calls callback every time rx changes. Auto-cancels on controller disposal.
inherited
getLatestVersion(ReleaseChannel channel) Future<String?>
Get the latest version from npm registry for a given channel.
getMaxVersion(MaxVersionConfig config) String?
Returns the maximum allowed version for the current user type.
getMaxVersionMessage(MaxVersionConfig config) String?
Returns the server-driven message explaining a known issue.
getNpmDistTags() Future<NpmDistTags>
Get npm dist-tags (latest and stable versions).
getVersionHistory(int limit) Future<List<String>>
Get version history from npm registry. Returns versions sorted newest-first, limited to limit.
installGlobalPackage({String? specificVersion}) Future<AutoUpdateInstallStatus>
Install a global package.
interval<T>(RxInterface<T> rx, void callback(T), {Duration duration = const Duration(seconds: 1)}) → void
Calls callback at most once per duration, ignoring intermediate changes. Useful for rate-limiting UI updates.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
once<T>(RxInterface<T> rx, void callback(T)) → void
Calls callback only the first time rx changes, then cancels.
inherited
onClose() → void
Called before onDelete method. onClose might be used to dispose resources used by the controller. Like closing events, or streams before the controller is destroyed. Or dispose objects that can potentially create some memory leaks, like TextEditingControllers, AnimationControllers. Might be useful as well to persist some data on disk.
inherited
onDelete() → void
inherited
onInit() → void
Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.
inherited
onReady() → void
Called 1 frame after onInit(). It is the perfect place to enter navigation events, like snackbar, dialogs, or a new route, or async request.
inherited
onStart() → void
Called at the exact moment the widget is allocated in memory. It uses an internal "callable" type, to avoid any @overrides in subclasses. This method should be internal and is required to define the lifetime cycle of the subclass.
inherited
refresh() → void
inherited
refreshGroup(Object id) → void
inherited
releaseLock() Future<void>
Releases the update lock if it is held by this process.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that the object notifies.
inherited
removeListenerId(Object id, VoidCallback listener) → void
inherited
reportAdd(VoidCallback disposer) → void
inherited
reportRead() → void
inherited
shouldSkipVersion({required String targetVersion, String? minimumVersion}) bool
Checks if a target version should be skipped due to minimumVersion setting.
toString() String
A string representation of this object.
inherited
update([List<Object>? ids, bool condition = true]) → void
Notifies listeners to update the UI.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited