{"version":3,"file":"js/72-239bcf4381e26fae2aad.js","mappings":"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","sources":["webpack://fuzu/./app/javascript/utils/defaults/csrfToken.js","webpack://fuzu/./app/javascript/utils/defaults/index.js","webpack://fuzu/./app/javascript/utils/logger.js"],"sourcesContent":["import axios from \"axios\";\nimport Logger from \"../logger\";\n\nconst CSRFManager = (() => {\n const logger = Logger.create(\"CSRF\");\n let isRefreshing = false;\n let failedQueue = [];\n const MAX_RETRIES = 3;\n\n const setCsrfToken = token => {\n if (!token) return;\n\n logger.time(\"Token Update\");\n axios.defaults.headers.common[\"X-CSRF-Token\"] = token;\n const metaTag = document.querySelector(\"meta[name='csrf-token']\");\n if (metaTag && metaTag.setAttribute) metaTag.setAttribute(\"content\", token);\n logger.timeEnd(\"Token Update\");\n logger.log(\"Token updated:\", token);\n };\n\n const getCsrfToken = () => {\n return document.querySelector(\"meta[name='csrf-token']\")?.content || \"\";\n };\n\n const updateCsrfToken = () => {\n const token = getCsrfToken();\n if (token) setCsrfToken(token);\n };\n\n const processQueue = (error = null) => {\n failedQueue.forEach(({ resolve, reject }) => {\n if (error) {\n reject(error);\n } else {\n resolve();\n }\n });\n failedQueue = [];\n };\n\n const refreshCsrfToken = async () => {\n try {\n logger.log(\"Starting token refresh request\");\n logger.log(\"Current token:\", getCsrfToken());\n\n const response = await axios.get(\"/api/v1/browse/users/refresh_csrf\");\n const newToken = response.data.csrf_meta_tags?.csrf_token;\n if (!newToken) throw new Error(\"No CSRF token received from server\");\n\n setCsrfToken(newToken);\n return newToken;\n } catch (error) {\n logger.error(\"Token refresh failed:\", error);\n throw error;\n }\n };\n\n const handleCsrfError = async error => {\n if (error.response?.status !== 422 || error.response?.data?.code !== \"INVALID_CSRF_TOKEN\") {\n return Promise.reject(error);\n }\n\n const { config } = error;\n config.retryCount = config.retryCount || 0;\n\n if (config.retryCount >= MAX_RETRIES) {\n logger.error(\"Max retries reached for:\", config.url);\n return Promise.reject(new Error(\"[CSRF] Max retry attempts reached\"));\n }\n\n if (config.url.includes(\"/refresh_csrf\")) {\n return Promise.reject(error);\n }\n\n config.retryCount += 1;\n logger.log(`Retry attempt ${config.retryCount} of ${MAX_RETRIES} for ${config.url}`);\n\n if (isRefreshing) {\n logger.log(`Request queued while token refresh in progress: ${config.url}`);\n return new Promise((resolve, reject) => {\n failedQueue.push({ resolve, reject });\n }).then(() => {\n logger.log(`Executing queued request for: ${config.url}`);\n return axios.request({\n ...config,\n headers: { ...config.headers, \"X-CSRF-Token\": getCsrfToken() }\n });\n });\n }\n\n isRefreshing = true;\n logger.log(\"Starting token refresh...\");\n\n try {\n const newToken = await refreshCsrfToken();\n logger.log(`Token refresh completed. Processing queue (${failedQueue.length} items)`);\n processQueue();\n return axios.request({ ...config, headers: { ...config.headers, \"X-CSRF-Token\": newToken } });\n } catch (refreshError) {\n logger.error(\"Token refresh failed:\", refreshError);\n processQueue(refreshError);\n return Promise.reject(refreshError);\n } finally {\n isRefreshing = false;\n }\n };\n\n const setupAxiosInterceptors = () => {\n axios.interceptors.response.use(\n response => response,\n error => handleCsrfError(error)\n );\n };\n\n const init = () => {\n logger.log(\"Initializing CSRF Manager\");\n document.addEventListener(\"DOMContentLoaded\", updateCsrfToken);\n document.addEventListener(\"page:load\", updateCsrfToken);\n setupAxiosInterceptors();\n logger.log(\"CSRF Manager initialized\");\n };\n\n const testSingleRequest = () => {\n logger.log(\"=== Single Request Test ===\");\n logger.log(\"Starting test...\");\n logger.log(\"Original token:\", getCsrfToken());\n\n const invalidToken = \"invalid-token\";\n setCsrfToken(invalidToken);\n logger.log(\"Corrupted token:\", getCsrfToken());\n\n return axios\n .post(\"/api/v1/browse/events/track_event\", {\n type: \"test_event\",\n data: { timestamp: Date.now() }\n })\n .then(response => {\n logger.log(\"✅ Request succeeded:\", response);\n logger.log(\"Final token:\", getCsrfToken());\n logger.log(\"=== Test Complete ===\");\n })\n .catch(error => {\n logger.error(\"❌ Request failed:\", error);\n logger.log(\"Final token:\", getCsrfToken());\n logger.log(\"=== Test Complete ===\");\n });\n };\n\n const testConcurrentRequests = () => {\n logger.log(\"=== Concurrent Requests Test ===\");\n logger.log(\"Starting test...\");\n logger.log(\"Original token:\", getCsrfToken());\n\n const invalidToken = \"invalid-token\";\n setCsrfToken(invalidToken);\n logger.log(\"Corrupted token:\", getCsrfToken());\n\n return Promise.all([\n axios.post(\"/api/v1/browse/events/track_event\", { type: \"test_1\", data: { id: 1 } }),\n axios.post(\"/api/v1/browse/events/track_event\", { type: \"test_2\", data: { id: 2 } }),\n axios.post(\"/api/v1/browse/events/track_event\", { type: \"test_3\", data: { id: 3 } })\n ])\n .then(responses => {\n logger.log(\"✅ All requests completed:\", responses);\n logger.log(\"Final token:\", getCsrfToken());\n logger.log(\"=== Test Complete ===\");\n })\n .catch(error => {\n logger.error(\"❌ Some requests failed:\", error);\n logger.log(\"Final token:\", getCsrfToken());\n logger.log(\"=== Test Complete ===\");\n });\n };\n\n return {\n init,\n setCsrfToken,\n refreshCsrfToken,\n test: {\n singleRequest: testSingleRequest,\n concurrentRequests: testConcurrentRequests\n }\n };\n})();\n\nif (process.env.NODE_ENV !== \"production\") {\n window.CSRFManager = CSRFManager;\n}\n\nexport default CSRFManager;\n","// Set common CSRF token for API calls (by picking it from Rails-generated csrf meta tag)\n// Approach picked from https://github.com/reactjs/react-rails/issues/207#issuecomment-409593625\n\nimport axios from \"axios\";\nimport \"../logger\";\nimport CSRFManager from \"./csrfToken\";\n\nwindow.pendingRequestCount = 0;\n\naxios.interceptors.request.use(config => {\n window.pendingRequestCount += 1;\n return config;\n}, Promise.reject);\n\naxios.interceptors.response.use(\n response => {\n window.pendingRequestCount -= 1;\n return response;\n },\n error => {\n window.pendingRequestCount -= 1;\n return Promise.reject(error);\n }\n);\n\nCSRFManager.init();\n","/* eslint-disable no-console */\n/**\n * Logger utility for development and debugging\n *\n * Provides both default logging functionality and ability to create contextual loggers with prefixes.\n * All logging is controlled by window.LOGGER_ON flag or NODE_ENV.\n *\n * @example\n * // Default logging without prefix\n * Logger.log('Simple message');\n * Logger.error('Error occurred', errorObject);\n *\n * // Create contextual logger\n * const apiLogger = Logger.create('API');\n * apiLogger.log('Request started'); // outputs: [API] Request started\n *\n * // Using groups\n * Logger.group('Operation', () => {\n * Logger.log('Step 1');\n * Logger.log('Step 2');\n * });\n *\n * // Groups that always execute\n * apiLogger.groupAlways('Request', () => {\n * makeRequest(); // This always runs\n * apiLogger.log('Request complete'); // This only logs if enabled\n * });\n *\n * // Timing operations\n * Logger.time('Operation');\n * await someOperation();\n * Logger.timeEnd('Operation');\n *\n * // Debug data visualization\n * Logger.table(data);\n * Logger.dir(complexObject);\n */\nconst Logger = (() => {\n // Check if we're in a browser environment\n const isBrowser = typeof window !== \"undefined\";\n\n // Create a safe global context that works in both browser and SSR\n const globalContext = isBrowser\n ? window\n : {\n LOGGER_ON: false,\n // Stub console methods for SSR\n console: {\n log: () => {},\n warn: () => {},\n error: () => {},\n info: () => {},\n time: () => {},\n timeEnd: () => {},\n group: () => {},\n groupEnd: () => {},\n table: () => {},\n dir: () => {}\n }\n };\n\n // Set initial state\n globalContext.LOGGER_ON = isBrowser && process.env.NODE_ENV !== \"production\";\n\n /**\n * Checks if logging is currently enabled\n * @returns {boolean} True if logging is enabled\n */\n const isDebugEnabled = () => {\n return globalContext.LOGGER_ON;\n };\n\n /**\n * Format log arguments to handle both messages and data\n * @param {string} prefix - Logger prefix\n * @param {Array} args - Arguments to log\n * @returns {Array} Formatted arguments\n */\n const formatArgs = (prefix, args) => {\n if (!prefix) return args;\n\n // If first arg is a string, prepend prefix\n if (typeof args[0] === \"string\") {\n return [prefix + \" \" + args[0], ...args.slice(1)];\n }\n\n // If it's data/objects, keep prefix separate\n return [prefix, ...args];\n };\n\n /**\n * Creates a logger instance with optional prefix\n * @param {string} prefix - Optional prefix for all logs from this instance\n * @returns {Object} Logger instance\n */\n const createLogger = (prefix = \"\") => ({\n /**\n * Log information\n * @param {...any} args - Arguments to log\n * @example\n * logger.log('User logged in', { userId: 123 });\n */\n log: (...args) => {\n if (isDebugEnabled()) {\n console.log(...formatArgs(prefix, args));\n }\n },\n\n /**\n * Log warning\n * @param {...any} args - Arguments to log\n * @example\n * logger.warn('Deprecated feature used', { feature: 'oldAPI' });\n */\n warn: (...args) => {\n if (isDebugEnabled()) {\n console.warn(...formatArgs(prefix, args));\n }\n },\n\n /**\n * Log error\n * @param {...any} args - Arguments to log\n * @example\n * logger.error('Operation failed', error);\n */\n error: (...args) => {\n if (isDebugEnabled()) {\n console.error(...formatArgs(prefix, args));\n }\n },\n\n /**\n * Log info\n * @param {...any} args - Arguments to log\n * @example\n * logger.info('System status', { status: 'healthy' });\n */\n info: (...args) => {\n if (isDebugEnabled()) {\n console.info(...formatArgs(prefix, args));\n }\n },\n\n /**\n * Start a timer\n * @param {string} label - Timer label\n * @example\n * logger.time('Request');\n * await makeRequest();\n * logger.timeEnd('Request');\n */\n time: label => {\n if (isDebugEnabled()) {\n console.time(prefix ? `${prefix} ${label}` : label);\n }\n },\n\n /**\n * End a timer\n * @param {string} label - Timer label\n */\n timeEnd: label => {\n if (isDebugEnabled()) {\n console.timeEnd(prefix ? `${prefix} ${label}` : label);\n }\n },\n\n /**\n * Group logs together. Only executes if logging is enabled\n * @param {string} label - Group label\n * @param {Function} fn - Function containing logs to group\n * @example\n * logger.group('User Authentication', () => {\n * logger.log('Checking credentials');\n * logger.log('Validating token');\n * });\n */\n group: (label, fn) => {\n if (isDebugEnabled()) {\n console.group(prefix ? `${prefix} ${label}` : label);\n fn();\n console.groupEnd();\n }\n },\n\n /**\n * Group logs together, always executing the function\n * @param {string} label - Group label\n * @param {Function} fn - Function to execute (always runs)\n * @example\n * logger.groupAlways('Critical Operation', () => {\n * performOperation(); // Always executes\n * logger.log('Operation result'); // Only logs if enabled\n * });\n */\n groupAlways: (label, fn) => {\n if (isDebugEnabled()) {\n console.group(prefix ? `${prefix} ${label}` : label);\n fn();\n console.groupEnd();\n } else {\n fn();\n }\n },\n\n /**\n * Display tabular data\n * @param {Object|Array} data - Data to display\n * @param {Array} [columns] - Columns to include\n * @example\n * logger.table([\n * { id: 1, name: 'John' },\n * { id: 2, name: 'Jane' }\n * ]);\n */\n table: (data, columns) => {\n if (isDebugEnabled()) {\n if (prefix) console.log(prefix);\n console.table(data, columns);\n }\n },\n\n /**\n * Display object structure\n * @param {Object} obj - Object to inspect\n * @param {Object} [options={ depth: null, colors: true }] - Display options\n * @example\n * logger.dir(complexObject, { depth: 2 });\n */\n dir: (obj, options = { depth: null, colors: true }) => {\n if (isDebugEnabled()) {\n if (prefix) console.log(prefix);\n console.dir(obj, options);\n }\n }\n });\n\n // Create default logger instance\n const defaultLogger = createLogger();\n\n /**\n * Controls for logger state\n */\n const controls = {\n /**\n * Enable all logging (including production)\n * @returns {void}\n */\n enable: () => {\n if (!isBrowser) return;\n globalContext.LOGGER_ON = true;\n console.log(\"Logger enabled (all environments)\");\n },\n\n /**\n * Disable all logging\n * @returns {void}\n */\n disable: () => {\n if (!isBrowser) return;\n globalContext.LOGGER_ON = false;\n console.log(\"Logger disabled (all environments)\");\n },\n\n /**\n * Get current logger state\n * @returns {Object} Current state of logger flags\n */\n status: () => ({\n enabled: globalContext.LOGGER_ON,\n isLogging: isDebugEnabled(),\n environment: process.env.NODE_ENV,\n isBrowser\n }),\n\n /**\n * Test if logging is working\n * @returns {void}\n */\n test: () => {\n if (!isBrowser) return;\n const status = controls.status();\n console.log(\"=== Logger Test ===\");\n console.table(status);\n console.log(\"\\nTesting log output:\");\n const testLogger = Logger.create(\"TEST\");\n testLogger.log(\"This message should appear if logging is enabled\");\n console.log(\"=== Test Complete ===\");\n }\n };\n\n const logger = {\n ...defaultLogger,\n /**\n * Create a new logger instance with a prefix\n * @param {string} prefix - Prefix for the new logger\n * @returns {Object} New logger instance\n * @example\n * const apiLogger = Logger.create('API');\n * apiLogger.log('Request started'); // outputs: [API] Request started\n */\n create: prefix => createLogger(`[${prefix}]`),\n controls\n };\n\n // Only attach to window if in browser environment\n if (isBrowser) {\n window.Logger = logger;\n }\n\n return logger;\n})();\n\nexport default Logger;\n\n// interface Window {\n// Logger: {\n// log: (...args: any[]) => void;\n// error: (...args: any[]) => void;\n// warn: (...args: any[]) => void;\n// info: (...args: any[]) => void;\n// time: (label: string) => void;\n// timeEnd: (label: string) => void;\n// group: (label: string, fn: () => void) => void;\n// groupAlways: (label: string, fn: () => void) => void;\n// table: (data: any, columns?: string[]) => void;\n// dir: (obj: any, options?: object) => void;\n// create: (prefix: string) => Logger;\n// };\n// LOGGER_ON: boolean;\n// }\n\n// examples/logger-usage.js\n\n// import Logger from '../utils/logger';\n\n// // Enable logging (in development/testing)\n// window.LOGGER_ON = true;\n\n// // Basic logging\n// Logger.log('Application started');\n// Logger.error('Something went wrong', new Error('Oops'));\n// Logger.warn('Deprecated feature used');\n// Logger.info('System status: OK');\n\n// // Contextual logging\n// const apiLogger = Logger.create('API');\n// const authLogger = Logger.create('Auth');\n\n// apiLogger.log('Making request'); // outputs: [API] Making request\n// authLogger.error('Login failed'); // outputs: [Auth] Login failed\n\n// // Timing operations\n// Logger.time('Operation');\n// someOperation();\n// Logger.timeEnd('Operation');\n\n// // Grouping related logs\n// Logger.group('Initialization', () => {\n// Logger.log('Step 1: Loading config');\n// Logger.log('Step 2: Connecting to DB');\n// Logger.log('Step 3: Starting server');\n// });\n\n// // Grouping with always-execute operations\n// authLogger.groupAlways('Login Process', () => {\n// const result = authenticateUser(); // Always runs\n// authLogger.log('Auth result:', result); // Only logs if enabled\n// });\n\n// // Debugging data structures\n// const users = [\n// { id: 1, name: 'John' },\n// { id: 2, name: 'Jane' }\n// ];\n// Logger.table(users);\n\n// const complexObject = {\n// data: { nested: { deep: { value: 42 } } }\n// };\n// Logger.dir(complexObject, { depth: 3 });\n\n// // Mixed usage example\n// function processUserLogin(credentials) {\n// const logger = Logger.create('UserAuth');\n\n// logger.groupAlways('Login', () => {\n// logger.time('Login Process');\n\n// try {\n// logger.log('Validating credentials');\n// validateCredentials(credentials);\n\n// logger.log('Making API request');\n// const result = makeLoginRequest(credentials);\n\n// logger.log('Login successful', result);\n// } catch (error) {\n// logger.error('Login failed', error);\n// throw error;\n// } finally {\n// logger.timeEnd('Login Process');\n// }\n// });\n// }\n"],"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","logger","isRefreshing","failedQueue","setCsrfToken","getCsrfToken","updateCsrfToken","processQueue","refreshCsrfToken","handleCsrfError","CSRFManager","Logger","token","time","axios","headers","common","metaTag","document","querySelector","setAttribute","timeEnd","log","_document$querySelect","content","error","undefined","_ref","reject","_ref2","_callee","_response$data$csrf_m","response","newToken","_context","data","csrf_meta_tags","csrf_token","t0","_ref3","_callee2","_error$response","_error$response2","config","_context2","status","code","retryCount","url","includes","concat","_objectSpread","_x","init","addEventListener","use","test","singleRequest","timestamp","Date","now","concurrentRequests","all","id","responses","window","pendingRequestCount","request","isBrowser","globalContext","LOGGER_ON","console","warn","info","group","groupEnd","table","dir","process","isDebugEnabled","formatArgs","prefix","args","_toConsumableArray","createLogger","_console","_len","Array","_key","_console2","_len2","_key2","_console3","_len3","_key3","_console4","_len4","_key4","label","fn","groupAlways","columns","obj","options","depth","colors","defaultLogger","controls","enable","disable","enabled","isLogging","environment"],"sourceRoot":""}