ObslyConfig.fromMap constructor
Crea desde Map (para deserialización) IMPORTANTE: Los valores null indican que el servidor no especificó ese parámetro Esto permite que el merge mantenga la prioridad Remote > Local > Default
Implementation
factory ObslyConfig.fromMap(Map<String, dynamic> map) {
return ObslyConfig(
enableScreenshotOnUi: map[
'enableScreenshotOnUi'], // Removed ?? false - let it be null if not specified
requestBlacklist:
(map['requestBlacklist'] as List<dynamic>?)?.cast<String>(),
requestBodyWhitelist:
_parseRequestBodyWhitelist(map['requestBodyWhitelist']),
requestHeadersWhitelist:
_parseRequestHeadersWhitelist(map['requestHeadersWhitelist']),
tagsBlacklist: _parseTagsBlacklist(map['tagsBlacklist']),
rageClick: _parseRageClick(map['rageClick']),
enableCrashes: map['enableCrashes'],
enableLifeCycleLog: map['enableLifeCycleLog'],
enableRequestLog: map['enableRequestLog'],
enableTagger: map['enableTagger'],
enablePerformance: map['enablePerformance'],
enableMetrics: map['enableMetrics'],
enableUI: map['enableUI'],
automaticViewDetection: map['automaticViewDetection'],
sessionMaxLengthMins: map['sessionMaxLengthMins'],
bufferSize: map['bufferSize'],
captureConsole: map['captureConsole'],
captureBodyOnError: map['captureBodyOnError'],
messengerInterval: map['messengerInterval'],
enableDebugTools: map['enableDebugTools'],
enableRules: map['enableRules'],
obslyTools: _parseObslyTools(map['obsly_tools']),
rateLimits: _parseRateLimits(map['rateLimits']),
);
}