react-visual-feedback 1.4.9 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jira.js","sources":["../../src/integrations/config.js","../../src/integrations/jira.js"],"sourcesContent":["/**\n * Integration Configuration & Default Mappings\n * Users can customize these by passing their own config\n */\n\n// ============================================\n// ATLASSIAN DOCUMENT FORMAT (ADF) HELPER\n// ============================================\n\n/**\n * Convert plain text to Atlassian Document Format\n * Jira Cloud requires descriptions in ADF format\n */\nexport function textToADF(text) {\n const lines = text.split('\\n');\n const content = [];\n let currentParagraph = [];\n\n const flushParagraph = () => {\n if (currentParagraph.length > 0) {\n content.push({\n type: 'paragraph',\n content: currentParagraph\n });\n currentParagraph = [];\n }\n };\n\n lines.forEach((line, index) => {\n // Check if it's a section header (ALL CAPS)\n if (line.match(/^[A-Z][A-Z\\s]+$/) && line.trim().length > 0) {\n flushParagraph();\n content.push({\n type: 'heading',\n attrs: { level: 3 },\n content: [{ type: 'text', text: line }]\n });\n } else if (line === '---') {\n // Horizontal rule\n flushParagraph();\n content.push({ type: 'rule' });\n } else if (line.trim() === '') {\n // Empty line - flush paragraph\n flushParagraph();\n } else {\n // Regular line\n if (currentParagraph.length > 0) {\n currentParagraph.push({ type: 'hardBreak' });\n }\n currentParagraph.push({ type: 'text', text: line });\n }\n });\n\n flushParagraph();\n\n return {\n type: 'doc',\n version: 1,\n content: content.length > 0 ? content : [{ type: 'paragraph', content: [{ type: 'text', text: ' ' }] }]\n };\n}\n\n// ============================================\n// GOOGLE SHEETS COLUMN MAPPING\n// ============================================\n\nexport const DEFAULT_SHEET_COLUMNS = {\n timestamp: {\n key: 'timestamp',\n header: 'Timestamp',\n field: 'timestamp',\n transform: (value) => value || new Date().toISOString()\n },\n id: {\n key: 'id',\n header: 'Feedback ID',\n field: 'id'\n },\n feedback: {\n key: 'feedback',\n header: 'Feedback',\n field: 'feedback'\n },\n type: {\n key: 'type',\n header: 'Type',\n field: 'type',\n transform: (value) => value || 'bug'\n },\n status: {\n key: 'status',\n header: 'Status',\n field: 'status',\n transform: (value) => value || 'new'\n },\n userName: {\n key: 'userName',\n header: 'User Name',\n field: 'userName',\n transform: (value) => value || 'Anonymous'\n },\n userEmail: {\n key: 'userEmail',\n header: 'User Email',\n field: 'userEmail',\n transform: (value) => value || ''\n },\n url: {\n key: 'url',\n header: 'Page URL',\n field: 'url'\n },\n viewport: {\n key: 'viewport',\n header: 'Viewport',\n field: 'viewport',\n transform: (value) => value ? `${value.width}x${value.height}` : ''\n },\n userAgent: {\n key: 'userAgent',\n header: 'Browser',\n field: 'userAgent',\n transform: (value) => {\n if (!value) return '';\n // Simplify user agent\n if (value.includes('Chrome')) return 'Chrome';\n if (value.includes('Firefox')) return 'Firefox';\n if (value.includes('Safari')) return 'Safari';\n if (value.includes('Edge')) return 'Edge';\n return value.substring(0, 50);\n }\n },\n screenshot: {\n key: 'screenshot',\n header: 'Screenshot',\n field: 'screenshot',\n transform: (value) => value ? 'Yes' : 'No' // Don't store base64 in sheets\n },\n video: {\n key: 'video',\n header: 'Video',\n field: 'video',\n transform: (value) => value ? 'Yes' : 'No'\n },\n elementSelector: {\n key: 'elementSelector',\n header: 'Element',\n field: 'elementInfo',\n transform: (value) => value?.selector || ''\n },\n componentName: {\n key: 'componentName',\n header: 'Component',\n field: 'elementInfo',\n transform: (value) => value?.componentStack?.[0] || ''\n },\n sourceFile: {\n key: 'sourceFile',\n header: 'Source File',\n field: 'elementInfo',\n transform: (value) => value?.sourceFile || ''\n },\n jiraKey: {\n key: 'jiraKey',\n header: 'Jira Issue',\n field: 'jiraKey',\n transform: (value) => value || ''\n }\n};\n\n// Default columns to include (order matters)\nexport const DEFAULT_SHEET_COLUMN_ORDER = [\n 'timestamp',\n 'id',\n 'feedback',\n 'type',\n 'status',\n 'userName',\n 'userEmail',\n 'url',\n 'viewport',\n 'screenshot',\n 'video',\n 'jiraKey'\n];\n\n// ============================================\n// JIRA FIELD MAPPING\n// ============================================\n\nexport const DEFAULT_JIRA_FIELDS = {\n summary: {\n key: 'summary',\n source: 'feedback',\n maxLength: 255,\n prefix: '[Feedback] ',\n transform: (data) => {\n const prefix = '[Feedback] ';\n const text = data.feedback || 'User Feedback';\n const maxLen = 255 - prefix.length;\n return prefix + (text.length > maxLen ? text.substring(0, maxLen - 3) + '...' : text);\n }\n },\n description: {\n key: 'description',\n // Build description directly - no wiki markup, clean plain text for ADF\n transform: (data) => {\n const lines = [];\n\n // Feedback Details\n lines.push('FEEDBACK DETAILS');\n lines.push(`Feedback: ${data.feedback || 'No feedback provided'}`);\n lines.push(`Type: ${data.type || 'bug'}`);\n lines.push(`Status: ${data.status || 'new'}`);\n lines.push('');\n\n // User Information\n lines.push('USER INFORMATION');\n lines.push(`Name: ${data.userName || 'Anonymous'}`);\n lines.push(`Email: ${data.userEmail || 'Not provided'}`);\n lines.push('');\n\n // Technical Details\n lines.push('TECHNICAL DETAILS');\n lines.push(`Page URL: ${data.url || 'N/A'}`);\n if (data.viewport) {\n lines.push(`Viewport: ${data.viewport.width}x${data.viewport.height}`);\n }\n if (data.userAgent) {\n // Simplify user agent\n let browser = data.userAgent;\n if (browser.includes('Chrome')) browser = 'Chrome';\n else if (browser.includes('Firefox')) browser = 'Firefox';\n else if (browser.includes('Safari')) browser = 'Safari';\n else if (browser.includes('Edge')) browser = 'Edge';\n lines.push(`Browser: ${browser}`);\n }\n\n // Element info\n if (data.elementInfo) {\n if (data.elementInfo.selector) {\n lines.push(`Element: ${data.elementInfo.selector}`);\n }\n if (data.elementInfo.componentStack?.length) {\n lines.push(`Component: ${data.elementInfo.componentStack.join(' > ')}`);\n }\n if (data.elementInfo.sourceFile) {\n lines.push(`Source: ${data.elementInfo.sourceFile}:${data.elementInfo.lineNumber || ''}`);\n }\n }\n lines.push('');\n\n // Attachments\n const attachments = [];\n if (data.screenshot) attachments.push('Screenshot');\n if (data.video) attachments.push('Screen Recording');\n if (attachments.length > 0) {\n lines.push('ATTACHMENTS');\n lines.push(attachments.join(', ') + ' attached');\n lines.push('');\n }\n\n lines.push('---');\n lines.push('Submitted via React Visual Feedback');\n\n return lines.join('\\n');\n }\n },\n issuetype: {\n key: 'issuetype',\n // Default to 'Task' which exists in most Jira projects\n // Can be overridden via JIRA_ISSUE_TYPE env var or config\n value: 'Task',\n // Map feedback types to Jira issue types (all default to Task for compatibility)\n typeMapping: {\n bug: 'Task',\n feature: 'Task',\n improvement: 'Task',\n question: 'Task',\n other: 'Task'\n },\n transform: (data, config) => {\n // Priority: env var > config value > type mapping > default\n const envIssueType = typeof process !== 'undefined' ? process.env?.JIRA_ISSUE_TYPE : null;\n if (envIssueType) return envIssueType;\n if (config?.value && config.value !== 'Task') return config.value;\n const mapping = config?.typeMapping || DEFAULT_JIRA_FIELDS.issuetype.typeMapping;\n return mapping[data.type] || config?.value || 'Task';\n }\n },\n labels: {\n key: 'labels',\n value: ['user-feedback'],\n transform: (data, config) => {\n const labels = [...(config?.value || ['user-feedback'])];\n if (data.type) labels.push(`type-${data.type}`);\n return labels;\n }\n },\n priority: {\n key: 'priority',\n // Map to Jira priority IDs (user can customize)\n priorityMapping: {\n bug: 'High',\n feature: 'Medium',\n improvement: 'Medium',\n question: 'Low',\n other: 'Low'\n },\n transform: (data, config) => {\n const mapping = config?.priorityMapping || DEFAULT_JIRA_FIELDS.priority.priorityMapping;\n return mapping[data.type] || 'Medium';\n }\n }\n};\n\n// ============================================\n// JIRA STATUS MAPPING (Bidirectional sync)\n// ============================================\n\nexport const DEFAULT_JIRA_STATUS_MAPPING = {\n // Our status -> Jira status\n toJira: {\n new: 'To Do',\n open: 'To Do',\n inProgress: 'In Progress',\n underReview: 'In Review',\n onHold: 'On Hold',\n resolved: 'Done',\n closed: 'Done',\n wontFix: 'Won\\'t Do'\n },\n // Jira status -> Our status\n fromJira: {\n 'To Do': 'open',\n 'Open': 'open',\n 'In Progress': 'inProgress',\n 'In Review': 'underReview',\n 'On Hold': 'onHold',\n 'Done': 'resolved',\n 'Closed': 'closed',\n 'Won\\'t Do': 'wontFix',\n 'Resolved': 'resolved'\n }\n};\n\n// ============================================\n// INTEGRATION TYPES\n// ============================================\n\nexport const INTEGRATION_TYPES = {\n JIRA: {\n SERVER: 'server', // Our server handler\n AUTOMATION: 'jira-automation', // Jira's built-in webhooks\n ZAPIER: 'zapier' // Zapier webhook\n },\n SHEETS: {\n SERVER: 'server', // Our server handler (Service Account)\n OAUTH: 'oauth', // OAuth with refresh\n APPS_SCRIPT: 'google-apps-script', // Google Apps Script\n ZAPIER: 'zapier' // Zapier webhook\n }\n};\n\n// ============================================\n// HELPER FUNCTIONS\n// ============================================\n\n/**\n * Merge user config with defaults\n */\nexport function mergeSheetColumns(userColumns = {}, columnOrder = null) {\n const merged = { ...DEFAULT_SHEET_COLUMNS };\n\n // Apply user overrides\n Object.entries(userColumns).forEach(([key, value]) => {\n if (value === null || value === false) {\n // Remove column\n delete merged[key];\n } else if (typeof value === 'object') {\n // Merge with default\n merged[key] = { ...merged[key], ...value };\n }\n });\n\n // Determine column order\n const order = columnOrder || Object.keys(merged).filter(k =>\n DEFAULT_SHEET_COLUMN_ORDER.includes(k) || userColumns[k]\n );\n\n return { columns: merged, order };\n}\n\n/**\n * Merge user Jira config with defaults\n */\nexport function mergeJiraFields(userFields = {}) {\n const merged = { ...DEFAULT_JIRA_FIELDS };\n\n Object.entries(userFields).forEach(([key, value]) => {\n if (value === null || value === false) {\n delete merged[key];\n } else if (typeof value === 'object') {\n merged[key] = { ...merged[key], ...value };\n }\n });\n\n return merged;\n}\n\n/**\n * Transform feedback data to sheet row\n */\nexport function feedbackToSheetRow(feedbackData, config = {}) {\n const { columns, order } = mergeSheetColumns(config.columns, config.columnOrder);\n\n const row = order.map(key => {\n const col = columns[key];\n if (!col) return '';\n\n const rawValue = feedbackData[col.field];\n if (col.transform) {\n return col.transform(rawValue) || '';\n }\n return rawValue || '';\n });\n\n return row;\n}\n\n/**\n * Get sheet headers\n */\nexport function getSheetHeaders(config = {}) {\n const { columns, order } = mergeSheetColumns(config.columns, config.columnOrder);\n return order.map(key => columns[key]?.header || key);\n}\n\n/**\n * Transform feedback data to Jira issue\n */\nexport function feedbackToJiraIssue(feedbackData, config = {}) {\n const fields = mergeJiraFields(config.fields);\n\n // Get plain text description and convert to ADF\n const plainDescription = fields.description.transform(feedbackData, fields.description);\n const adfDescription = textToADF(plainDescription);\n\n const issue = {\n fields: {\n project: { key: config.projectKey },\n summary: fields.summary.transform(feedbackData, fields.summary),\n description: adfDescription,\n issuetype: { name: fields.issuetype.transform(feedbackData, fields.issuetype) }\n }\n };\n\n // Add labels if configured\n if (fields.labels) {\n issue.fields.labels = fields.labels.transform(feedbackData, fields.labels);\n }\n\n // Add priority if configured and user wants it\n if (config.includePriority && fields.priority) {\n issue.fields.priority = { name: fields.priority.transform(feedbackData, fields.priority) };\n }\n\n // Add custom fields\n if (config.customFields) {\n Object.entries(config.customFields).forEach(([fieldId, fieldConfig]) => {\n if (typeof fieldConfig === 'string') {\n issue.fields[fieldId] = feedbackData[fieldConfig];\n } else if (fieldConfig.transform) {\n issue.fields[fieldId] = fieldConfig.transform(feedbackData);\n } else if (fieldConfig.value) {\n issue.fields[fieldId] = fieldConfig.value;\n }\n });\n }\n\n return issue;\n}\n\n/**\n * Map Jira status to our status\n */\nexport function mapJiraStatusToLocal(jiraStatus, customMapping = {}) {\n const mapping = { ...DEFAULT_JIRA_STATUS_MAPPING.fromJira, ...customMapping };\n return mapping[jiraStatus] || 'open';\n}\n\n/**\n * Map our status to Jira status\n */\nexport function mapLocalStatusToJira(localStatus, customMapping = {}) {\n const mapping = { ...DEFAULT_JIRA_STATUS_MAPPING.toJira, ...customMapping };\n return mapping[localStatus] || 'To Do';\n}\n","/**\n * Jira Integration Server Handler\n *\n * Supports:\n * - Creating issues with attachments\n * - Bidirectional status sync\n * - Custom field mapping\n *\n * Usage (Next.js App Router):\n * export { POST } from 'react-visual-feedback/server/jira';\n *\n * Usage (Express):\n * app.post('/api/jira', jiraHandler({ projectKey: 'BUG' }));\n */\n\nimport {\n feedbackToJiraIssue,\n mapLocalStatusToJira,\n mapJiraStatusToLocal,\n DEFAULT_JIRA_STATUS_MAPPING\n} from './config.js';\n\n// ============================================\n// HELPER FUNCTIONS\n// ============================================\n\n/**\n * Format event logs as a readable text file\n */\nfunction formatEventLogs(eventLogs) {\n if (!eventLogs || eventLogs.length === 0) {\n return 'No event logs recorded.';\n }\n\n const lines = [\n '═══════════════════════════════════════════════════════════════',\n ' SESSION EVENT LOGS',\n '═══════════════════════════════════════════════════════════════',\n `Generated: ${new Date().toISOString()}`,\n `Total Events: ${eventLogs.length}`,\n '═══════════════════════════════════════════════════════════════',\n ''\n ];\n\n eventLogs.forEach((event, index) => {\n const timestamp = event.timestamp ? `[${(event.timestamp / 1000).toFixed(2)}s]` : '[--]';\n\n switch (event.type) {\n case 'console':\n lines.push(`${timestamp} [CONSOLE.${(event.level || 'log').toUpperCase()}]`);\n lines.push(` ${event.message || 'No message'}`);\n break;\n\n case 'network':\n const status = event.status || 'pending';\n const duration = event.duration ? `(${event.duration}ms)` : '';\n lines.push(`${timestamp} [NETWORK] ${event.method || 'GET'} ${event.url}`);\n lines.push(` Status: ${status} ${duration}`);\n if (event.request?.body && event.request.body !== 'null' && event.request.body !== 'undefined') {\n lines.push(` Request: ${event.request.body.substring(0, 200)}${event.request.body.length > 200 ? '...' : ''}`);\n }\n if (event.response?.body && event.response.body !== 'null' && event.response.body !== 'undefined') {\n lines.push(` Response: ${event.response.body.substring(0, 200)}${event.response.body.length > 200 ? '...' : ''}`);\n }\n break;\n\n case 'storage':\n lines.push(`${timestamp} [${(event.storageType || 'storage').toUpperCase()}] ${event.action}`);\n if (event.key) lines.push(` Key: ${event.key}`);\n if (event.value) lines.push(` Value: ${event.value.substring(0, 100)}${event.value.length > 100 ? '...' : ''}`);\n break;\n\n case 'indexedDB':\n lines.push(`${timestamp} [INDEXEDDB] ${event.action} on ${event.dbName || 'unknown'}${event.storeName ? '.' + event.storeName : ''}`);\n if (event.data) lines.push(` Data: ${event.data.substring(0, 100)}${event.data.length > 100 ? '...' : ''}`);\n break;\n\n default:\n lines.push(`${timestamp} [${(event.type || 'EVENT').toUpperCase()}]`);\n lines.push(` ${JSON.stringify(event).substring(0, 200)}`);\n }\n\n lines.push(''); // Empty line between events\n });\n\n lines.push('═══════════════════════════════════════════════════════════════');\n lines.push(' END OF LOGS');\n lines.push('═══════════════════════════════════════════════════════════════');\n\n return lines.join('\\n');\n}\n\n// ============================================\n// JIRA API CLIENT\n// ============================================\n\nclass JiraClient {\n constructor(config) {\n let domain = config.domain || process.env.JIRA_DOMAIN;\n this.email = config.email || process.env.JIRA_EMAIL;\n this.apiToken = config.apiToken || process.env.JIRA_API_TOKEN;\n this.projectKey = config.projectKey || process.env.JIRA_PROJECT_KEY;\n\n if (!domain || !this.email || !this.apiToken) {\n throw new Error(\n 'Jira configuration missing. Required: JIRA_DOMAIN, JIRA_EMAIL, JIRA_API_TOKEN'\n );\n }\n\n // Strip protocol and trailing slashes from domain\n this.domain = domain.replace(/^https?:\\/\\//, '').replace(/\\/+$/, '');\n this.baseUrl = `https://${this.domain}/rest/api/3`;\n this.authHeader = 'Basic ' + Buffer.from(`${this.email}:${this.apiToken}`).toString('base64');\n }\n\n async request(endpoint, options = {}) {\n const url = `${this.baseUrl}${endpoint}`;\n\n const response = await fetch(url, {\n ...options,\n headers: {\n 'Authorization': this.authHeader,\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n ...options.headers\n }\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Jira API error (${response.status}): ${error}`);\n }\n\n // Some endpoints return empty response\n const text = await response.text();\n return text ? JSON.parse(text) : null;\n }\n\n /**\n * Create a new issue\n */\n async createIssue(issueData) {\n return this.request('/issue', {\n method: 'POST',\n body: JSON.stringify(issueData)\n });\n }\n\n /**\n * Get issue details\n */\n async getIssue(issueKey) {\n return this.request(`/issue/${issueKey}`);\n }\n\n /**\n * Update issue status via transition\n */\n async transitionIssue(issueKey, transitionName) {\n // First get available transitions\n const transitions = await this.request(`/issue/${issueKey}/transitions`);\n\n const transition = transitions.transitions.find(\n t => t.name.toLowerCase() === transitionName.toLowerCase() ||\n t.to.name.toLowerCase() === transitionName.toLowerCase()\n );\n\n if (!transition) {\n throw new Error(`Transition \"${transitionName}\" not found for issue ${issueKey}`);\n }\n\n await this.request(`/issue/${issueKey}/transitions`, {\n method: 'POST',\n body: JSON.stringify({\n transition: { id: transition.id }\n })\n });\n\n return { success: true, transitionId: transition.id };\n }\n\n /**\n * Add attachment to issue\n */\n async addAttachment(issueKey, filename, content, contentType) {\n const url = `${this.baseUrl}/issue/${issueKey}/attachments`;\n\n // Convert content to buffer\n let buffer;\n\n if (Buffer.isBuffer(content)) {\n // Already a buffer\n buffer = content;\n } else if (typeof content === 'string') {\n if (content.startsWith('data:')) {\n // Data URL format: data:video/webm;base64,AAAA...\n const commaIndex = content.indexOf(',');\n if (commaIndex !== -1) {\n const base64Data = content.substring(commaIndex + 1);\n buffer = Buffer.from(base64Data, 'base64');\n } else {\n throw new Error('Invalid data URL format - missing comma separator');\n }\n } else {\n // Assume raw base64 string\n buffer = Buffer.from(content, 'base64');\n }\n } else if (content instanceof Uint8Array) {\n buffer = Buffer.from(content);\n } else {\n throw new Error(`Unsupported content type: ${typeof content}`);\n }\n\n // Validate buffer has content\n if (!buffer || buffer.length === 0) {\n throw new Error('Attachment content is empty');\n }\n\n // Create form data manually for Node.js\n const boundary = '----FormBoundary' + Math.random().toString(36).substring(2);\n const formData = Buffer.concat([\n Buffer.from(\n `--${boundary}\\r\\n` +\n `Content-Disposition: form-data; name=\"file\"; filename=\"${filename}\"\\r\\n` +\n `Content-Type: ${contentType}\\r\\n\\r\\n`\n ),\n buffer,\n Buffer.from(`\\r\\n--${boundary}--\\r\\n`)\n ]);\n\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Authorization': this.authHeader,\n 'X-Atlassian-Token': 'no-check',\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n },\n body: formData\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to upload attachment (${response.status}): ${error}`);\n }\n\n return response.json();\n }\n\n /**\n * Add comment to issue\n */\n async addComment(issueKey, comment) {\n return this.request(`/issue/${issueKey}/comment`, {\n method: 'POST',\n body: JSON.stringify({\n body: {\n type: 'doc',\n version: 1,\n content: [{\n type: 'paragraph',\n content: [{\n type: 'text',\n text: comment\n }]\n }]\n }\n })\n });\n }\n\n /**\n * Get issue status\n */\n async getIssueStatus(issueKey) {\n const issue = await this.getIssue(issueKey);\n return issue.fields.status.name;\n }\n}\n\n// ============================================\n// REQUEST HANDLERS\n// ============================================\n\n/**\n * Parse multipart form data from request\n * Works with Next.js App Router, Pages Router, and Express\n */\nasync function parseFormData(req) {\n // Next.js App Router - req is a Request object\n if (typeof req.json === 'function' || typeof req.formData === 'function') {\n // Check Content-Type to determine how to parse\n const contentType = req.headers?.get?.('content-type') || req.headers?.['content-type'] || '';\n\n // Handle JSON requests (e.g., getStatus, updateStatus)\n if (contentType.includes('application/json')) {\n const body = await req.json();\n return {\n action: body.action || 'create',\n feedbackData: body.feedbackData || body,\n issueKey: body.issueKey,\n status: body.status,\n comment: body.comment\n };\n }\n\n // Handle FormData requests (e.g., create with attachments)\n if (typeof req.formData === 'function') {\n const formData = await req.formData();\n const action = formData.get('action') || 'create';\n const metadataStr = formData.get('metadata');\n const metadata = metadataStr ? JSON.parse(metadataStr) : {};\n\n // Get files\n const screenshot = formData.get('screenshot');\n const video = formData.get('video');\n const eventLogs = formData.get('eventLogs');\n\n // Convert files to buffers\n const feedbackData = { ...metadata };\n\n if (screenshot && screenshot instanceof Blob) {\n const arrayBuffer = await screenshot.arrayBuffer();\n feedbackData.screenshotBuffer = Buffer.from(arrayBuffer);\n feedbackData.screenshotType = screenshot.type || 'image/png';\n }\n\n if (video && video instanceof Blob) {\n const arrayBuffer = await video.arrayBuffer();\n feedbackData.videoBuffer = Buffer.from(arrayBuffer);\n feedbackData.videoType = video.type || 'video/webm';\n feedbackData.videoSize = video.size;\n }\n\n if (eventLogs && eventLogs instanceof Blob) {\n const text = await eventLogs.text();\n try {\n feedbackData.eventLogs = JSON.parse(text);\n } catch (e) {\n feedbackData.eventLogs = [];\n }\n }\n\n return { action, feedbackData };\n }\n }\n\n // Express/Pages Router with body already parsed (JSON)\n if (req.body) {\n const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;\n return {\n action: body.action || 'create',\n feedbackData: body.feedbackData || body,\n issueKey: body.issueKey,\n status: body.status,\n comment: body.comment\n };\n }\n\n throw new Error('Unable to parse request body');\n}\n\n/**\n * Create Jira handler with configuration\n */\nexport function createJiraHandler(config = {}) {\n const handler = async (req, res) => {\n try {\n // Parse body - supports both JSON and FormData\n const { action = 'create', feedbackData, issueKey, status, comment } = await parseFormData(req);\n\n const client = new JiraClient(config);\n\n let result;\n\n switch (action) {\n case 'create':\n result = await handleCreate(client, feedbackData, config);\n break;\n\n case 'updateStatus':\n result = await handleStatusUpdate(client, issueKey, status, config);\n break;\n\n case 'getStatus':\n result = await handleGetStatus(client, issueKey, config);\n break;\n\n case 'addComment':\n result = await handleAddComment(client, issueKey, comment);\n break;\n\n default:\n throw new Error(`Unknown action: ${action}`);\n }\n\n // Send response based on environment\n if (res?.json) {\n res.status(200).json(result);\n } else {\n return new Response(JSON.stringify(result), {\n status: 200,\n headers: { 'Content-Type': 'application/json' }\n });\n }\n } catch (error) {\n const errorResponse = {\n success: false,\n error: error.message\n };\n\n if (res?.json) {\n res.status(500).json(errorResponse);\n } else {\n return new Response(JSON.stringify(errorResponse), {\n status: 500,\n headers: { 'Content-Type': 'application/json' }\n });\n }\n }\n };\n\n return handler;\n}\n\n/**\n * Handle issue creation\n */\nasync function handleCreate(client, feedbackData, config) {\n // Transform feedback to Jira issue format\n const issueData = feedbackToJiraIssue(feedbackData, {\n projectKey: config.projectKey || client.projectKey,\n fields: config.fields,\n customFields: config.customFields,\n includePriority: config.includePriority\n });\n\n // Create the issue\n const issue = await client.createIssue(issueData);\n const issueKey = issue.key;\n\n // Upload attachments\n const attachments = [];\n\n // Handle screenshot - support both Buffer (from FormData) and base64 string\n if (config.uploadAttachments !== false) {\n if (feedbackData.screenshotBuffer) {\n // Screenshot came as Buffer from FormData\n try {\n const result = await client.addAttachment(\n issueKey,\n `screenshot-${feedbackData.id || Date.now()}.png`,\n feedbackData.screenshotBuffer,\n feedbackData.screenshotType || 'image/png'\n );\n attachments.push({ type: 'screenshot', ...result[0] });\n } catch (err) {\n attachments.push({ type: 'screenshot', error: err.message });\n }\n } else if (feedbackData.screenshot && typeof feedbackData.screenshot === 'string') {\n // Screenshot is base64 string (legacy JSON format)\n try {\n const result = await client.addAttachment(\n issueKey,\n `screenshot-${feedbackData.id || Date.now()}.png`,\n feedbackData.screenshot,\n 'image/png'\n );\n attachments.push({ type: 'screenshot', ...result[0] });\n } catch (err) {\n attachments.push({ type: 'screenshot', error: err.message });\n }\n }\n }\n\n // Handle video - support both Buffer (from FormData) and base64 string\n if (config.uploadAttachments !== false) {\n if (feedbackData.videoBuffer) {\n // Video came as Buffer from FormData - most efficient!\n try {\n const videoType = feedbackData.videoType || 'video/webm';\n const extension = videoType.includes('mp4') ? 'mp4' : 'webm';\n\n const result = await client.addAttachment(\n issueKey,\n `recording-${feedbackData.id || Date.now()}.${extension}`,\n feedbackData.videoBuffer,\n videoType\n );\n attachments.push({\n type: 'video',\n size: feedbackData.videoSize || feedbackData.videoBuffer.length,\n ...result[0]\n });\n } catch (err) {\n attachments.push({ type: 'video', error: err.message });\n }\n } else if (feedbackData.video && typeof feedbackData.video === 'string') {\n // Video is base64 string (legacy JSON format)\n try {\n const videoData = feedbackData.video;\n\n if (!videoData.startsWith('data:')) {\n throw new Error('Video data is not a valid data URL');\n }\n\n if (videoData.length < 1000) {\n throw new Error(`Video data appears truncated (only ${videoData.length} chars)`);\n }\n\n let videoType = 'video/webm';\n let extension = 'webm';\n if (videoData.includes('video/mp4')) {\n videoType = 'video/mp4';\n extension = 'mp4';\n }\n\n const result = await client.addAttachment(\n issueKey,\n `recording-${feedbackData.id || Date.now()}.${extension}`,\n videoData,\n videoType\n );\n attachments.push({ type: 'video', ...result[0] });\n } catch (err) {\n attachments.push({ type: 'video', error: err.message });\n }\n }\n }\n\n // Upload event logs as a formatted text file\n if (feedbackData.eventLogs && feedbackData.eventLogs.length > 0 && config.uploadAttachments !== false) {\n try {\n const logsText = formatEventLogs(feedbackData.eventLogs);\n const logsBuffer = Buffer.from(logsText, 'utf-8');\n const result = await client.addAttachment(\n issueKey,\n `session-logs-${feedbackData.id || Date.now()}.txt`,\n logsBuffer,\n 'text/plain'\n );\n attachments.push({ type: 'logs', ...result[0] });\n } catch (err) {\n attachments.push({ type: 'logs', error: err.message });\n }\n }\n\n // Include debug info\n const debugInfo = {\n videoBufferReceived: !!feedbackData.videoBuffer,\n videoBufferSize: feedbackData.videoBuffer ? feedbackData.videoBuffer.length : 0,\n videoBase64Received: !!feedbackData.video,\n videoBase64Length: feedbackData.video ? feedbackData.video.length : 0,\n screenshotBufferReceived: !!feedbackData.screenshotBuffer,\n eventLogsCount: feedbackData.eventLogs ? feedbackData.eventLogs.length : 0\n };\n\n return {\n success: true,\n issueKey,\n issueId: issue.id,\n issueUrl: `https://${client.domain}/browse/${issueKey}`,\n attachments,\n debug: debugInfo\n };\n}\n\n/**\n * Handle status update (local -> Jira)\n */\nasync function handleStatusUpdate(client, issueKey, localStatus, config) {\n const jiraStatus = mapLocalStatusToJira(localStatus, config.statusMapping?.toJira);\n\n await client.transitionIssue(issueKey, jiraStatus);\n\n return {\n success: true,\n issueKey,\n newStatus: jiraStatus\n };\n}\n\n/**\n * Handle get status (Jira -> local)\n */\nasync function handleGetStatus(client, issueKey, config) {\n const jiraStatus = await client.getIssueStatus(issueKey);\n const localStatus = mapJiraStatusToLocal(jiraStatus, config.statusMapping?.fromJira);\n\n return {\n success: true,\n issueKey,\n jiraStatus,\n localStatus\n };\n}\n\n/**\n * Handle add comment\n */\nasync function handleAddComment(client, issueKey, comment) {\n await client.addComment(issueKey, comment);\n\n return {\n success: true,\n issueKey\n };\n}\n\n// ============================================\n// FRAMEWORK-SPECIFIC EXPORTS\n// ============================================\n\n/**\n * Next.js App Router handler\n * Returns a function that can be directly exported as POST\n */\nexport function createNextAppHandler(config = {}) {\n const handler = createJiraHandler(config);\n\n return async (request) => {\n // Pass the request directly - parseFormData handles both FormData and JSON\n return handler(request, null);\n };\n}\n\n/**\n * Next.js Pages Router handler\n */\nexport function createNextPagesHandler(config = {}) {\n return createJiraHandler(config);\n}\n\n/**\n * Express middleware\n */\nexport function createExpressMiddleware(config = {}) {\n const handler = createJiraHandler(config);\n\n return async (req, res, next) => {\n try {\n await handler(req, res);\n } catch (error) {\n next(error);\n }\n };\n}\n\n/**\n * Generic handler for any framework\n */\nexport function createGenericHandler(config = {}) {\n return createJiraHandler(config);\n}\n\n// ============================================\n// WEBHOOK HANDLERS (For Jira Automation / Zapier)\n// ============================================\n\n/**\n * Format feedback for Jira Automation webhook\n */\nexport function formatForJiraAutomation(feedbackData, config = {}) {\n return {\n summary: `[Feedback] ${(feedbackData.feedback || '').substring(0, 200)}`,\n description: feedbackToJiraIssue(feedbackData, config).fields.description,\n type: feedbackData.type || 'bug',\n userName: feedbackData.userName || 'Anonymous',\n userEmail: feedbackData.userEmail || '',\n url: feedbackData.url || '',\n hasScreenshot: !!feedbackData.screenshot,\n hasVideo: !!feedbackData.video,\n timestamp: feedbackData.timestamp || new Date().toISOString()\n };\n}\n\n/**\n * Format feedback for Zapier webhook\n */\nexport function formatForZapier(feedbackData) {\n return {\n id: feedbackData.id,\n feedback: feedbackData.feedback,\n type: feedbackData.type,\n status: feedbackData.status,\n user_name: feedbackData.userName,\n user_email: feedbackData.userEmail,\n page_url: feedbackData.url,\n viewport: feedbackData.viewport ? `${feedbackData.viewport.width}x${feedbackData.viewport.height}` : '',\n has_screenshot: !!feedbackData.screenshot,\n has_video: !!feedbackData.video,\n element_selector: feedbackData.elementInfo?.selector || '',\n component_name: (feedbackData.elementInfo?.componentStack || [])[0] || '',\n source_file: feedbackData.elementInfo?.sourceFile || '',\n timestamp: feedbackData.timestamp || new Date().toISOString()\n };\n}\n\n// Default export for easy importing\nexport default createJiraHandler;\n"],"names":["textToADF","text","lines","split","content","currentParagraph","flushParagraph","length","push","type","forEach","line","index","match","trim","attrs","level","version","DEFAULT_JIRA_FIELDS","summary","key","source","maxLength","prefix","transform","data","feedback","maxLen","substring","description","concat","status","userName","userEmail","url","viewport","width","height","userAgent","browser","includes","elementInfo","_data$elementInfo$com","selector","componentStack","join","sourceFile","lineNumber","attachments","screenshot","video","issuetype","value","typeMapping","bug","feature","improvement","question","other","config","_process$env","envIssueType","process","env","JIRA_ISSUE_TYPE","mapping","labels","_toConsumableArray","priority","priorityMapping","DEFAULT_JIRA_STATUS_MAPPING","toJira","open","inProgress","underReview","onHold","resolved","closed","wontFix","fromJira","mergeJiraFields","userFields","arguments","undefined","merged","_objectSpread","Object","entries","_ref3","_ref4","_slicedToArray","_typeof","feedbackToJiraIssue","feedbackData","fields","plainDescription","adfDescription","issue","project","projectKey","name","includePriority","customFields","_ref5","_ref6","fieldId","fieldConfig","mapJiraStatusToLocal","jiraStatus","customMapping","mapLocalStatusToJira","localStatus","formatEventLogs","eventLogs","Date","toISOString","event","_event$request","_event$response","timestamp","toFixed","toUpperCase","message","duration","method","request","body","response","storageType","action","dbName","storeName","JSON","stringify","JiraClient","_classCallCheck","domain","JIRA_DOMAIN","email","JIRA_EMAIL","apiToken","JIRA_API_TOKEN","JIRA_PROJECT_KEY","Error","replace","baseUrl","authHeader","Buffer","from","toString","_createClass","_request","_asyncToGenerator","_regenerator","m","_callee","endpoint","options","error","_args","w","_context","n","fetch","headers","v","ok","a","parse","_x","apply","_createIssue","_callee2","issueData","_context2","createIssue","_x2","_getIssue","_callee3","issueKey","_context3","getIssue","_x3","_transitionIssue","_callee4","transitionName","transitions","transition","_context4","find","t","toLowerCase","to","id","success","transitionId","transitionIssue","_x4","_x5","_addAttachment","_callee5","filename","contentType","buffer","commaIndex","base64Data","boundary","formData","_context5","isBuffer","startsWith","indexOf","Uint8Array","Math","random","json","addAttachment","_x6","_x7","_x8","_x9","_addComment","_callee6","comment","_context6","addComment","_x0","_x1","_getIssueStatus","_callee7","_context7","getIssueStatus","_x10","parseFormData","_x11","_parseFormData","_callee1","req","_req$headers","_req$headers$get","_req$headers2","metadataStr","metadata","arrayBuffer","_arrayBuffer","_body","_context1","get","call","Blob","screenshotBuffer","screenshotType","videoBuffer","videoType","videoSize","size","e","createJiraHandler","handler","_ref","_callee8","res","_yield$parseFormData","_yield$parseFormData$","client","result","errorResponse","_t","_t2","_context8","p","handleCreate","handleStatusUpdate","handleGetStatus","handleAddComment","Response","_x12","_x13","_x14","_x15","_x16","_handleCreate","_callee10","_result","extension","_result2","videoData","_videoType","_extension","_result3","logsText","logsBuffer","_result4","debugInfo","_t4","_t5","_t6","_t7","_t8","_context10","uploadAttachments","now","videoBufferReceived","videoBufferSize","videoBase64Received","videoBase64Length","screenshotBufferReceived","eventLogsCount","issueId","issueUrl","debug","_x17","_x18","_x19","_x20","_handleStatusUpdate","_callee11","_config$statusMapping","_context11","statusMapping","newStatus","_x21","_x22","_x23","_handleGetStatus","_callee12","_config$statusMapping2","_context12","_x24","_x25","_x26","_handleAddComment","_callee13","_context13","createNextAppHandler","_ref2","_callee9","_context9","_x27","createNextPagesHandler","createExpressMiddleware","_callee0","next","_t3","_context0","_x28","_x29","_x30","createGenericHandler","formatForJiraAutomation","hasScreenshot","hasVideo","formatForZapier","_feedbackData$element","_feedbackData$element2","_feedbackData$element3","user_name","user_email","page_url","has_screenshot","has_video","element_selector","component_name","source_file"],"mappings":"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"}