2026-07-24 07:16:23 +00:00
// Module ID: 6927
// Function ID: 55277
2026-07-20 16:05:17 +00:00
// Name: _isNativeReflectConstruct
2026-07-24 07:16:23 +00:00
// Dependencies: [6, 7, 15, 17, 18, 1348, 3758, 6928, 4015, 686, 664, 566, 2]
2026-07-20 16:05:17 +00:00
2026-07-24 07:16:23 +00:00
// Module 6927 (_isNativeReflectConstruct)
2026-07-23 10:11:24 +00:00
import _isNativeReflectConstruct from "_isNativeReflectConstruct" ;
import canBypassSlowmodeHelper from "canBypassSlowmodeHelper" ;
import _possibleConstructorReturn from "_possibleConstructorReturn" ;
import _getPrototypeOf from "_getPrototypeOf" ;
import _inherits from "_inherits" ;
import closure_8 from "_isNativeReflectConstruct" ;
import closure_9 from "_isNativeReflectConstruct" ;
const require = arg1 ;
2026-07-20 16:05:17 +00:00
function _isNativeReflectConstruct() {
let closure_0 = ! valueOf . call ( Reflect . construct ( Boolean , [ ] , ( ) = > {
} ) ) ;
function _isNativeReflectConstruct() {
return closure_0 ;
}
const result = _isNativeReflectConstruct ( ) ;
}
2026-07-23 10:11:24 +00:00
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 setCooldown ( channel , SendMessage , cooldownMs ) {
2026-07-23 10:11:24 +00:00
const _require = channel ;
let closure_1 = SendMessage ;
if ( null != dependencyMap [ SendMessage ] [ channel . id ] ) {
const timer = dependencyMap [ SendMessage ] [ channel . id ] . timer ;
2026-07-20 16:05:17 +00:00
timer . stop ( ) ;
const id = channel . id ;
2026-07-23 10:11:24 +00:00
delete tmp2 [ tmp ] ;
2026-07-20 16:05:17 +00:00
}
2026-07-24 07:16:23 +00:00
let obj = _require ( 6928 ) ;
2026-07-20 16:05:17 +00:00
if ( ! obj . canBypassSlowmode ( channel , SendMessage ) ) {
if ( cooldownMs > 0 ) {
const _Date = Date ;
const sum = cooldownMs + Date . now ( ) ;
2026-07-23 10:11:24 +00:00
dependencyMap = sum ;
2026-07-20 16:05:17 +00:00
obj = { rateLimitPerUser : channel.rateLimitPerUser , cooldownMs , cooldownEndTimestamp : sum } ;
2026-07-23 10:11:24 +00:00
const Timeout = _require ( 4015 ) . Timeout ;
2026-07-20 16:05:17 +00:00
const prototype = Timeout . prototype ;
const timeout = new Timeout ( ) ;
obj . timer = timeout ;
2026-07-23 10:11:24 +00:00
dependencyMap [ SendMessage ] [ channel . id ] = obj ;
const timer2 = dependencyMap [ SendMessage ] [ channel . id ] . timer ;
2026-07-20 16:05:17 +00:00
timer2 . start ( 1000 , ( ) = > {
2026-07-23 10:11:24 +00:00
let obj = SendMessage ( sum [ 9 ] ) ;
obj = { type : "SLOWMODE_SET_COOLDOWN" , channelId : id.id , slowmodeType : SendMessage , cooldownMs : Math.max ( closure_2 - Date . now ( ) , 0 ) } ;
2026-07-20 16:05:17 +00:00
obj . dispatch ( obj ) ;
} , true ) ;
}
}
}
function resetCooldown ( channelId , SendMessage ) {
const channel = store . getChannel ( channelId ) ;
if ( null == channel ) {
return false ;
} else {
let num = 0 ;
if ( 0 !== channel . rateLimitPerUser ) {
2026-07-23 10:11:24 +00:00
num = channel . rateLimitPerUser * importDefault ( 664 ) . Millis . SECOND + 100 ;
2026-07-20 16:05:17 +00:00
}
setCooldown ( channel , SendMessage , num ) ;
}
}
function handleUploadCancel ( channelId ) {
const channel = store . getChannel ( channelId . channelId ) ;
if ( null != channel ) {
setCooldown ( channel , obj . SendMessage , 0 ) ;
}
return null != channel ;
}
let obj = { SendMessage : 0 , [ 0 ] : "SendMessage" , CreateThread : 1 , [ 1 ] : "CreateThread" } ;
let closure_11 = { [ obj . SendMessage ] : { } , [ obj . CreateThread ] : { } } ;
2026-07-23 10:11:24 +00:00
let tmp2 = ( ( Store ) = > {
2026-07-20 16:05:17 +00:00
class SlowmodeStore {
constructor ( ) {
self = this ;
2026-07-23 10:11:24 +00:00
tmp = outer1_3 ( this , SlowmodeStore ) ;
obj = outer1_6 ( SlowmodeStore ) ;
tmp2 = outer1_5 ;
if ( outer1_12 ( ) ) {
2026-07-20 16:05:17 +00:00
tmp6 = globalThis ;
_Reflect = Reflect ;
2026-07-23 10:11:24 +00:00
tmp7 = outer1_6 ;
2026-07-20 16:05:17 +00:00
tmp8 = arguments ;
2026-07-23 10:11:24 +00:00
constructResult = Reflect . construct ( obj , arguments , outer1_6 ( self ) . constructor ) ;
2026-07-20 16:05:17 +00:00
} else {
tmp3 = arguments ;
tmp4 = arguments ;
constructResult = obj ( . . . arguments ) ;
}
return tmp2 ( self , constructResult ) ;
}
}
callback2 ( SlowmodeStore , Store ) ;
let obj = {
key : "initialize" ,
value() {
2026-07-23 10:11:24 +00:00
this . waitFor ( outer1_8 , outer1_9 ) ;
2026-07-20 16:05:17 +00:00
}
} ;
const items = [ obj , , ] ;
obj = {
key : "getSlowmodeCooldownGuess" ,
value ( arg0 , arg1 ) {
let SendMessage = arg1 ;
if ( null == arg1 ) {
2026-07-23 10:11:24 +00:00
SendMessage = outer1_10 . SendMessage ;
2026-07-20 16:05:17 +00:00
}
let num = 0 ;
2026-07-23 10:11:24 +00:00
if ( null != outer1_11 [ SendMessage ] [ arg0 ] ) {
2026-07-20 16:05:17 +00:00
num = tmp3 . cooldownMs ;
}
return num ;
}
} ;
items [ 1 ] = obj ;
obj = {
key : "isChannelOnCooldown" ,
value ( id ) {
return this . getSlowmodeCooldownGuess ( id . id , arg1 ) > 0 && id . rateLimitPerUser > 0 ;
}
} ;
items [ 2 ] = obj ;
return callback ( SlowmodeStore , items ) ;
2026-07-23 10:11:24 +00:00
} ) ( require ( "initialize" ) . Store ) ;
2026-07-20 16:05:17 +00:00
tmp2 . displayName = "SlowmodeStore" ;
obj = {
SLOWMODE_RESET_COOLDOWN : function handleSlowmodeResetCooldown ( channelId ) {
return resetCooldown ( channelId . channelId , channelId . slowmodeType ) ;
} ,
SLOWMODE_SET_COOLDOWN : function handleSlowmodeSetCooldown ( cooldownMs ) {
cooldownMs = cooldownMs . cooldownMs ;
const channel = store . getChannel ( cooldownMs . channelId ) ;
if ( null == channel ) {
return false ;
} else {
let num = 0 ;
if ( 0 !== cooldownMs ) {
num = cooldownMs + 100 ;
}
setCooldown ( channel , cooldownMs . slowmodeType , num ) ;
}
} ,
UPLOAD_START : function handleUploadStart ( channelId ) {
return resetCooldown ( channelId . channelId , obj . SendMessage ) ;
} ,
UPLOAD_FAIL : handleUploadCancel ,
UPLOAD_CANCEL_REQUEST : handleUploadCancel ,
CHANNEL_UPDATES : function handleUpdateCooldown ( channels ) {
2026-07-23 10:11:24 +00:00
channels = channels . channels ;
2026-07-20 16:05:17 +00:00
const items = [ obj . SendMessage , obj . CreateThread ] ;
const item = items . forEach ( ( arg0 ) = > {
let iter3 ;
2026-07-23 10:11:24 +00:00
const tmp = outer1_13 ( channels ) ;
2026-07-20 16:05:17 +00:00
const iter = tmp ( ) ;
let iter2 = iter ;
if ( ! iter . done ) {
do {
let value = iter2 . value ;
2026-07-23 10:11:24 +00:00
let tmp3 = outer1_11 ;
let tmp4 = outer1_11 [ arg0 ] [ value . id ] ;
2026-07-20 16:05:17 +00:00
let rateLimitPerUser = value . rateLimitPerUser ;
let tmp5 = tmp2 ;
if ( null != tmp4 ) {
tmp5 = tmp2 ;
if ( tmp4 . rateLimitPerUser !== rateLimitPerUser ) {
let cooldownMs ;
2026-07-23 10:11:24 +00:00
let tmp6 = outer1_15 ;
2026-07-20 16:05:17 +00:00
if ( null != tmp4 ) {
cooldownMs = tmp4 . cooldownMs ;
}
let num = 0 ;
if ( null != cooldownMs ) {
num = cooldownMs ;
}
2026-07-23 10:11:24 +00:00
let tmp8 = outer1_1 ;
let tmp9 = outer1_2 ;
let tmp6Result = tmp6 ( value , arg0 , Math . min ( num , rateLimitPerUser * outer1_1 ( outer1_2 [ 10 ] ) . Millis . SECOND ) ) ;
2026-07-20 16:05:17 +00:00
tmp5 = cooldownMs ;
}
}
iter3 = tmp ( ) ;
2026-07-23 10:11:24 +00:00
tmp2 = tmp5 ;
2026-07-20 16:05:17 +00:00
iter2 = iter3 ;
} while ( ! iter3 . done ) ;
}
} ) ;
} ,
LOGOUT : function clear() {
const items = [ obj . SendMessage , obj . CreateThread ] ;
2026-07-23 10:11:24 +00:00
let item = items . forEach ( ( arg0 ) = > {
let closure_0 = arg0 ;
const keys = Object . keys ( outer1_11 [ arg0 ] ) ;
2026-07-20 16:05:17 +00:00
const item = keys . forEach ( ( arg0 ) = > {
2026-07-23 10:11:24 +00:00
const timer = outer2_11 [ closure_0 ] [ arg0 ] . timer ;
2026-07-20 16:05:17 +00:00
return timer . stop ( ) ;
} ) ;
2026-07-23 10:11:24 +00:00
outer1_11 [ arg0 ] = { } ;
2026-07-20 16:05:17 +00:00
} ) ;
}
} ;
2026-07-23 10:11:24 +00:00
tmp2 = new tmp2 ( require ( "dispatcher" ) , obj ) ;
let result = require ( "_possibleConstructorReturn" ) . fileFinishedImporting ( "stores/SlowmodeStore.tsx" ) ;
2026-07-20 16:05:17 +00:00
export default tmp2 ;
export const SlowmodeType = obj ;