2026-07-27 11:26:19 +00:00
// Module ID: 10879
// Function ID: 84490
2026-07-20 16:05:17 +00:00
// Name: _createForOfIteratorHelperLoose
2026-07-27 11:26:19 +00:00
// Dependencies: [5, 4151, 10880, 4812, 8113, 653, 664, 4815, 10881, 10882, 2]
2026-07-20 16:05:17 +00:00
// Exports: ensureSpotifyPlayable, ensureSpotifyPremium, getSpotifyMetadataFromActivity, isSpotifyPlayable, isSpotifyPremium
2026-07-27 11:26:19 +00:00
// Module 10879 (_createForOfIteratorHelperLoose)
2026-07-23 10:11:24 +00:00
import ME from "ME" ;
import _isNativeReflectConstruct from "_isNativeReflectConstruct" ;
import closure_5 from "_isNativeReflectConstruct" ;
import closure_6 from "_isNativeReflectConstruct" ;
import spotifyUtmParams from "spotifyUtmParams" ;
import { PlatformTypes } from "ME" ;
let closure_7 ;
let closure_8 ;
let closure_9 ;
const require = arg1 ;
function _createForOfIteratorHelperLoose ( iterable ) {
let closure_0 = iterable ;
iterable = "undefined" !== typeof Symbol ;
if ( iterable ) {
2026-07-20 16:05:17 +00:00
const _Symbol = Symbol ;
2026-07-23 10:11:24 +00:00
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( ! iterable ) {
iterable = iterable [ Symbol . iterator ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
if ( iterable ) {
const iter = iterable . call ( iterable ) ;
2026-07-20 16:05:17 +00:00
const next = iter . next ;
return next . bind ( iter ) ;
} else {
const _Array = Array ;
2026-07-23 10:11:24 +00:00
let tmp = iterable ;
if ( ! Array . isArray ( iterable ) ) {
2026-07-20 16:05:17 +00:00
let tmp2 ;
2026-07-23 10:11:24 +00:00
if ( iterable ) {
if ( "string" === typeof iterable ) {
tmp2 = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
const toString = { } . toString ;
2026-07-23 10:11:24 +00:00
const substr = toString . call ( iterable ) . slice ( 8 , - 1 ) ;
2026-07-20 16:05:17 +00:00
let name = substr ;
if ( tmp3 ) {
2026-07-23 10:11:24 +00:00
name = iterable . constructor . name ;
2026-07-20 16:05:17 +00:00
}
if ( "Map" !== name ) {
if ( "Set" !== name ) {
if ( "Arguments" === name ) {
2026-07-23 10:11:24 +00:00
let arr = _arrayLikeToArray ( iterable , undefined ) ;
2026-07-20 16:05:17 +00:00
} else {
2026-07-23 10:11:24 +00:00
let obj = /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/ ;
2026-07-20 16:05:17 +00:00
}
}
tmp2 = arr ;
}
const _Array2 = Array ;
2026-07-23 10:11:24 +00:00
arr = Array . from ( iterable ) ;
const callResult = toString . call ( iterable ) ;
tmp3 = "Object" === substr && iterable . constructor ;
2026-07-20 16:05:17 +00:00
}
}
tmp = tmp2 ;
if ( ! tmp2 ) {
const _TypeError = TypeError ;
const typeError = new TypeError ( "Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method." ) ;
throw typeError ;
}
}
if ( tmp ) {
2026-07-23 10:11:24 +00:00
closure_0 = tmp ;
2026-07-20 16:05:17 +00:00
}
2026-07-23 10:11:24 +00:00
let c1 = 0 ;
2026-07-20 16:05:17 +00:00
return ( ) = > {
2026-07-23 10:11:24 +00:00
if ( closure_1 >= length . length ) {
2026-07-20 16:05:17 +00:00
let obj = { done : true } ;
} else {
obj = { done : false } ;
closure_1 = tmp3 + 1 ;
2026-07-23 10:11:24 +00:00
obj . value = length [ + closure_1 ] ;
2026-07-20 16:05:17 +00:00
}
return obj ;
} ;
}
}
function _arrayLikeToArray ( arg0 , arg1 ) {
let length ;
if ( tmp ) {
length = arg0 . length ;
}
const ArrayResult = Array ( length ) ;
for ( let num = 0 ; num < length ; num = num + 1 ) {
ArrayResult [ num ] = arg0 [ num ] ;
}
return ArrayResult ;
}
function asString ( arg0 ) {
if ( "string" === typeof arg0 ) {
return arg0 ;
} else {
const _Error = Error ;
const error = new Error ( "value is not a string" ) ;
throw error ;
}
}
function _getSpotifyMetadataFromActivity() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback ( tmp ) ;
return obj ( . . . arguments ) ;
}
2026-07-23 10:11:24 +00:00
( { SPOTIFY_APP_PROTOCOL : closure_7 , SpotifyResourceTypes : closure_8 , getSpotifyResourceType : closure_9 } = spotifyUtmParams ) ;
let closure_11 = 30 * require ( "set" ) . Millis . SECOND ;
const result = require ( "_isNativeReflectConstruct" ) . fileFinishedImporting ( "modules/spotify/SpotifyUtils.tsx" ) ;
2026-07-20 16:05:17 +00:00
export const isSpotifyPlayable = function isSpotifyPlayable ( getActiveSocketAndDevice ) {
let isProtocolRegisteredResult = null != getActiveSocketAndDevice . getActiveSocketAndDevice ( ) ;
if ( ! isProtocolRegisteredResult ) {
isProtocolRegisteredResult = closure_5 . isProtocolRegistered ( ) ;
}
return isProtocolRegisteredResult ;
} ;
export const ensureSpotifyPlayable = function ensureSpotifyPlayable() {
let device ;
let socket ;
const activeSocketAndDevice = store . getActiveSocketAndDevice ( ) ;
if ( null != activeSocketAndDevice ) {
return Promise . resolve ( activeSocketAndDevice ) ;
} else if ( closure_5 . isProtocolRegistered ( ) ) {
const playableComputerDevices = store . getPlayableComputerDevices ( ) ;
2026-07-25 08:10:48 +00:00
let obj = importDefault ( 4815 ) ;
2026-07-20 16:05:17 +00:00
if ( observedAppRunning . isObservedAppRunning ( obj . get ( PlatformTypes . SPOTIFY ) . name ) ) {
if ( playableComputerDevices . length > 0 ) {
( { socket , device } = playableComputerDevices [ 0 ] ) ;
2026-07-27 11:26:19 +00:00
playableComputerDevices ( 10881 ) . setActiveDevice ( socket . accountId , device . id ) ;
2026-07-20 16:05:17 +00:00
obj = { socket , device } ;
return Promise . resolve ( obj ) ;
}
}
const promise = new Promise ( ( arg0 , arg1 ) = > {
2026-07-23 10:11:24 +00:00
let closure_0 = arg0 ;
let closure_1 = arg1 ;
2026-07-20 16:05:17 +00:00
function onSpotifyStoreChange() {
let done ;
function _loop ( socket , device ) {
2026-07-23 10:11:24 +00:00
let closure_0 = socket ;
let closure_1 = device ;
if ( null == closure_0 . find ( ( device ) = > device . device . id === device . id ) ) {
2026-07-20 16:05:17 +00:00
const _clearTimeout = clearTimeout ;
2026-07-23 10:11:24 +00:00
clearTimeout ( outer1_2 ) ;
outer3_6 . removeChangeListener ( outer1_3 ) ;
2026-07-20 16:05:17 +00:00
const _setImmediate = setImmediate ;
setImmediate ( ( ) = > {
2026-07-23 10:11:24 +00:00
let obj = playableComputerDevices ( outer4_2 [ 8 ] ) ;
obj . setActiveDevice ( socket . accountId , device . id ) ;
obj = { socket , device } ;
outer2_0 ( obj ) ;
2026-07-20 16:05:17 +00:00
} ) ;
}
}
2026-07-23 10:11:24 +00:00
const tmp = outer2_12 ( outer2_6 . getPlayableComputerDevices ( ) ) ;
2026-07-20 16:05:17 +00:00
let iter = tmp ( ) ;
if ( ! iter . done ) {
do {
let value = iter . value ;
let _loopResult = _loop ( value . socket , value . device ) ;
let iter2 = tmp ( ) ;
iter = iter2 ;
done = iter2 . done ;
} while ( ! done ) ;
}
}
const timeout = setTimeout ( ( ) = > {
2026-07-23 10:11:24 +00:00
outer2_6 . removeChangeListener ( onSpotifyStoreChange ) ;
2026-07-20 16:05:17 +00:00
const error = new Error ( "timeout launching spotify" ) ;
2026-07-23 10:11:24 +00:00
callback ( error ) ;
} , outer1_11 ) ;
outer1_6 . addChangeListener ( onSpotifyStoreChange ) ;
window . open ( "" + outer1_7 + ":" ) ;
2026-07-20 16:05:17 +00:00
} ) ;
return promise ;
} else {
const _Error = Error ;
2026-07-23 10:11:24 +00:00
let error = new Error ( "protocol is not registered" ) ;
2026-07-20 16:05:17 +00:00
return Promise . reject ( error ) ;
}
} ;
export const isSpotifyPremium = function isSpotifyPremium() {
const activeSocketAndDevice = store . getActiveSocketAndDevice ( ) ;
let isPremium = null ;
if ( null != activeSocketAndDevice ) {
isPremium = activeSocketAndDevice . socket . isPremium ;
}
return isPremium ;
} ;
export const ensureSpotifyPremium = function ensureSpotifyPremium() {
const activeSocketAndDevice = store . getActiveSocketAndDevice ( ) ;
if ( null == activeSocketAndDevice ) {
2026-07-23 10:11:24 +00:00
let _Error = Error ;
let error = new Error ( "no active profile" ) ;
2026-07-20 16:05:17 +00:00
return Promise . reject ( error ) ;
} else {
const socket = activeSocketAndDevice . socket ;
if ( socket . isPremium ) {
let resolved = Promise . resolve ( ) ;
} else {
2026-07-27 11:26:19 +00:00
const profile = socket ( 10881 ) . getProfile ( socket . accountId , socket . accessToken ) ;
2026-07-20 16:05:17 +00:00
resolved = profile . then ( ( ) = > {
if ( ! socket . isPremium ) {
const _Error = Error ;
const error = new Error ( "spotify account is not premium" ) ;
return Promise . reject ( error ) ;
}
} ) ;
2026-07-27 11:26:19 +00:00
const obj = socket ( 10881 ) ;
2026-07-20 16:05:17 +00:00
}
return resolved ;
}
} ;
2026-07-23 10:11:24 +00:00
export const getSpotifyMetadataFromActivity = function getSpotifyMetadataFromActivity ( closure_0 , closure_1 ) {
2026-07-20 16:05:17 +00:00
return _getSpotifyMetadataFromActivity ( . . . arguments ) ;
} ;