Provider IDs currently available in the system.
Optional preferences: MediaProviderPreferenceOptional preference configuration.
Filtered and reordered provider ID list.
resolveProviderOrder(['a', 'b', 'c'], { preferred: ['c', 'a'] });
// => ['c', 'a']
resolveProviderOrder(['a', 'b', 'c'], { blocked: ['b'] });
// => ['a', 'c']
Filter and reorder an "available" provider list according to user preferences.
Resolution rules (applied in order):
preferencesisundefinedor empty, returnavailableunchanged.preferredis set, keep only providers that appear in bothavailableandpreferred, preserving the order ofpreferred.blockedis set, remove any provider whose ID appears inblocked.The result is never longer than
availableand never contains duplicates.