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.
- package/README.md +89 -3
- package/dist/index.esm.js +2 -2
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/config.js +664 -0
- package/dist/integrations/config.js.map +1 -0
- package/dist/integrations/index.js +4 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/server/index.js +2907 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/jira.js +1565 -0
- package/dist/server/jira.js.map +1 -0
- package/dist/server/sheets.js +1448 -0
- package/dist/server/sheets.js.map +1 -0
- package/package.json +30 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/integrations/config.js","../../src/integrations/jira.js","../../src/integrations/sheets.js","../../src/integrations/server/index.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","/**\n * Google Sheets Integration Server Handler\n *\n * Supports:\n * - Service Account authentication (recommended for servers)\n * - OAuth 2.0 with automatic token refresh\n * - Google Apps Script (no server needed)\n *\n * Usage (Next.js App Router):\n * export { POST } from 'react-visual-feedback/server/sheets';\n *\n * Usage (Express):\n * app.post('/api/sheets', sheetsHandler({ spreadsheetId: '...' }));\n */\n\nimport {\n feedbackToSheetRow,\n getSheetHeaders,\n mergeSheetColumns,\n DEFAULT_SHEET_COLUMN_ORDER\n} from './config.js';\n\n// ============================================\n// GOOGLE SHEETS CLIENT (Service Account)\n// ============================================\n\nclass SheetsClient {\n constructor(config) {\n this.spreadsheetId = config.spreadsheetId || process.env.GOOGLE_SPREADSHEET_ID;\n this.sheetName = config.sheetName || 'Feedback';\n\n // Service Account credentials\n const credentials = config.credentials || process.env.GOOGLE_SERVICE_ACCOUNT;\n\n if (!credentials) {\n throw new Error(\n 'Google credentials missing. Set GOOGLE_SERVICE_ACCOUNT environment variable.'\n );\n }\n\n this.credentials = typeof credentials === 'string'\n ? JSON.parse(credentials)\n : credentials;\n\n if (!this.spreadsheetId) {\n throw new Error(\n 'Spreadsheet ID missing. Set GOOGLE_SPREADSHEET_ID environment variable.'\n );\n }\n\n this.accessToken = null;\n this.tokenExpiry = null;\n }\n\n /**\n * Get access token using Service Account JWT\n */\n async getAccessToken() {\n // Return cached token if still valid\n if (this.accessToken && this.tokenExpiry && Date.now() < this.tokenExpiry) {\n return this.accessToken;\n }\n\n const { client_email, private_key } = this.credentials;\n\n // Create JWT\n const header = {\n alg: 'RS256',\n typ: 'JWT'\n };\n\n const now = Math.floor(Date.now() / 1000);\n const payload = {\n iss: client_email,\n scope: 'https://www.googleapis.com/auth/spreadsheets',\n aud: 'https://oauth2.googleapis.com/token',\n exp: now + 3600,\n iat: now\n };\n\n const jwt = await this.createJWT(header, payload, private_key);\n\n // Exchange JWT for access token\n const response = await fetch('https://oauth2.googleapis.com/token', {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams({\n grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer',\n assertion: jwt\n })\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to get access token: ${error}`);\n }\n\n const data = await response.json();\n this.accessToken = data.access_token;\n this.tokenExpiry = Date.now() + (data.expires_in - 60) * 1000; // Refresh 1 min early\n\n return this.accessToken;\n }\n\n /**\n * Create JWT for Service Account auth\n */\n async createJWT(header, payload, privateKey) {\n const encoder = new TextEncoder();\n\n const headerB64 = this.base64UrlEncode(JSON.stringify(header));\n const payloadB64 = this.base64UrlEncode(JSON.stringify(payload));\n const signatureInput = `${headerB64}.${payloadB64}`;\n\n // Import private key\n const pemHeader = '-----BEGIN PRIVATE KEY-----';\n const pemFooter = '-----END PRIVATE KEY-----';\n const pemContents = privateKey\n .replace(pemHeader, '')\n .replace(pemFooter, '')\n .replace(/\\s/g, '');\n\n const binaryKey = Buffer.from(pemContents, 'base64');\n\n // Use Node.js crypto for signing\n const crypto = await import('crypto');\n const sign = crypto.createSign('RSA-SHA256');\n sign.update(signatureInput);\n sign.end();\n\n const signature = sign.sign({\n key: privateKey,\n padding: crypto.constants.RSA_PKCS1_PADDING\n });\n\n const signatureB64 = this.base64UrlEncode(signature);\n\n return `${signatureInput}.${signatureB64}`;\n }\n\n base64UrlEncode(data) {\n const str = typeof data === 'string' ? data : Buffer.from(data).toString('base64');\n return Buffer.from(data)\n .toString('base64')\n .replace(/\\+/g, '-')\n .replace(/\\//g, '_')\n .replace(/=/g, '');\n }\n\n /**\n * Make authenticated request to Sheets API\n */\n async request(endpoint, options = {}) {\n const token = await this.getAccessToken();\n const baseUrl = 'https://sheets.googleapis.com/v4/spreadsheets';\n\n const response = await fetch(`${baseUrl}/${this.spreadsheetId}${endpoint}`, {\n ...options,\n headers: {\n 'Authorization': `Bearer ${token}`,\n 'Content-Type': 'application/json',\n ...options.headers\n }\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Sheets API error (${response.status}): ${error}`);\n }\n\n const text = await response.text();\n return text ? JSON.parse(text) : null;\n }\n\n /**\n * Append row to sheet\n */\n async appendRow(values, sheetName = null) {\n const range = `${sheetName || this.sheetName}!A:Z`;\n\n return this.request(`/values/${encodeURIComponent(range)}:append`, {\n method: 'POST',\n body: JSON.stringify({\n values: [values],\n majorDimension: 'ROWS'\n }) + '?valueInputOption=RAW&insertDataOption=INSERT_ROWS'\n });\n }\n\n /**\n * Get sheet values\n */\n async getValues(range) {\n return this.request(`/values/${encodeURIComponent(range)}`);\n }\n\n /**\n * Update specific cell/range\n */\n async updateValues(range, values) {\n return this.request(`/values/${encodeURIComponent(range)}?valueInputOption=RAW`, {\n method: 'PUT',\n body: JSON.stringify({\n values,\n majorDimension: 'ROWS'\n })\n });\n }\n\n /**\n * Check if headers exist, create if not\n */\n async ensureHeaders(headers) {\n try {\n const existing = await this.getValues(`${this.sheetName}!1:1`);\n\n if (!existing.values || existing.values.length === 0) {\n // No headers, add them\n await this.updateValues(`${this.sheetName}!A1`, [headers]);\n return { created: true };\n }\n\n return { created: false, existing: existing.values[0] };\n } catch (error) {\n // Sheet might not exist, try to create headers anyway\n try {\n await this.updateValues(`${this.sheetName}!A1`, [headers]);\n return { created: true };\n } catch (e) {\n throw new Error(`Failed to set up headers: ${e.message}`);\n }\n }\n }\n\n /**\n * Find row by feedback ID\n */\n async findRowByFeedbackId(feedbackId, idColumn = 'B') {\n const values = await this.getValues(`${this.sheetName}!${idColumn}:${idColumn}`);\n\n if (!values.values) return null;\n\n const rowIndex = values.values.findIndex(row => row[0] === feedbackId);\n return rowIndex >= 0 ? rowIndex + 1 : null; // 1-indexed\n }\n\n /**\n * Update feedback status in sheet\n */\n async updateStatus(feedbackId, newStatus, statusColumn = 'E') {\n const rowNumber = await this.findRowByFeedbackId(feedbackId);\n\n if (!rowNumber) {\n throw new Error(`Feedback ${feedbackId} not found in sheet`);\n }\n\n await this.updateValues(\n `${this.sheetName}!${statusColumn}${rowNumber}`,\n [[newStatus]]\n );\n\n return { success: true, row: rowNumber };\n }\n}\n\n// ============================================\n// OAUTH CLIENT (User Authentication)\n// ============================================\n\nclass SheetsOAuthClient extends SheetsClient {\n constructor(config) {\n super({ spreadsheetId: config.spreadsheetId, sheetName: config.sheetName, credentials: { client_email: '', private_key: '' } });\n\n this.clientId = config.clientId || process.env.GOOGLE_CLIENT_ID;\n this.clientSecret = config.clientSecret || process.env.GOOGLE_CLIENT_SECRET;\n this.redirectUri = config.redirectUri || process.env.GOOGLE_REDIRECT_URI;\n\n // Token storage (user must provide storage mechanism)\n this.getStoredTokens = config.getStoredTokens;\n this.saveTokens = config.saveTokens;\n\n if (!this.clientId || !this.clientSecret) {\n throw new Error('OAuth configuration missing. Required: GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET');\n }\n }\n\n /**\n * Get OAuth authorization URL\n */\n getAuthUrl(state = '') {\n const params = new URLSearchParams({\n client_id: this.clientId,\n redirect_uri: this.redirectUri,\n response_type: 'code',\n scope: 'https://www.googleapis.com/auth/spreadsheets',\n access_type: 'offline',\n prompt: 'consent',\n state\n });\n\n return `https://accounts.google.com/o/oauth2/v2/auth?${params}`;\n }\n\n /**\n * Exchange authorization code for tokens\n */\n async exchangeCode(code) {\n const response = await fetch('https://oauth2.googleapis.com/token', {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams({\n client_id: this.clientId,\n client_secret: this.clientSecret,\n code,\n grant_type: 'authorization_code',\n redirect_uri: this.redirectUri\n })\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to exchange code: ${error}`);\n }\n\n const tokens = await response.json();\n\n // Save tokens\n if (this.saveTokens) {\n await this.saveTokens({\n access_token: tokens.access_token,\n refresh_token: tokens.refresh_token,\n expiry: Date.now() + tokens.expires_in * 1000\n });\n }\n\n return tokens;\n }\n\n /**\n * Refresh access token using refresh token\n */\n async refreshAccessToken(refreshToken) {\n const response = await fetch('https://oauth2.googleapis.com/token', {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n body: new URLSearchParams({\n client_id: this.clientId,\n client_secret: this.clientSecret,\n refresh_token: refreshToken,\n grant_type: 'refresh_token'\n })\n });\n\n if (!response.ok) {\n const error = await response.text();\n throw new Error(`Failed to refresh token: ${error}`);\n }\n\n const data = await response.json();\n\n // Save new access token\n if (this.saveTokens) {\n const stored = await this.getStoredTokens();\n await this.saveTokens({\n access_token: data.access_token,\n refresh_token: stored.refresh_token, // Keep existing refresh token\n expiry: Date.now() + data.expires_in * 1000\n });\n }\n\n return data.access_token;\n }\n\n /**\n * Override getAccessToken to use OAuth\n */\n async getAccessToken() {\n if (!this.getStoredTokens) {\n throw new Error('Token storage not configured. Provide getStoredTokens and saveTokens functions.');\n }\n\n const stored = await this.getStoredTokens();\n\n if (!stored || !stored.refresh_token) {\n throw new Error('Not authenticated. User needs to complete OAuth flow.');\n }\n\n // Check if access token is still valid\n if (stored.access_token && stored.expiry && Date.now() < stored.expiry - 60000) {\n return stored.access_token;\n }\n\n // Refresh the token\n return this.refreshAccessToken(stored.refresh_token);\n }\n}\n\n// ============================================\n// REQUEST HANDLERS\n// ============================================\n\n/**\n * Create Sheets handler with configuration\n */\nexport function createSheetsHandler(config = {}) {\n const handler = async (req, res) => {\n try {\n const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;\n const { action = 'append', feedbackData, feedbackId, status, row } = body;\n\n // Choose client type based on config\n const ClientClass = config.oauth ? SheetsOAuthClient : SheetsClient;\n const client = new ClientClass(config);\n\n let result;\n\n switch (action) {\n case 'append':\n result = await handleAppend(client, feedbackData, config);\n break;\n\n case 'updateStatus':\n result = await handleUpdateStatus(client, feedbackId, status, config);\n break;\n\n case 'updateRow':\n result = await handleUpdateRow(client, row, feedbackData, config);\n break;\n\n case 'getHeaders':\n result = { headers: getSheetHeaders(config) };\n break;\n\n case 'ensureHeaders':\n const headers = getSheetHeaders(config);\n result = await client.ensureHeaders(headers);\n break;\n\n // OAuth specific actions\n case 'getAuthUrl':\n if (!(client instanceof SheetsOAuthClient)) {\n throw new Error('OAuth not configured');\n }\n result = { url: client.getAuthUrl(body.state) };\n break;\n\n case 'exchangeCode':\n if (!(client instanceof SheetsOAuthClient)) {\n throw new Error('OAuth not configured');\n }\n result = await client.exchangeCode(body.code);\n break;\n\n default:\n throw new Error(`Unknown action: ${action}`);\n }\n\n // Send response\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 append row\n */\nasync function handleAppend(client, feedbackData, config) {\n // Ensure headers exist\n const headers = getSheetHeaders(config);\n await client.ensureHeaders(headers);\n\n // Transform feedback to row\n const row = feedbackToSheetRow(feedbackData, config);\n\n // Append row\n const result = await client.appendRow(row);\n\n return {\n success: true,\n updatedRange: result?.updates?.updatedRange,\n rowNumber: result?.updates?.updatedRange?.match(/:(\\d+)$/)?.[1]\n };\n}\n\n/**\n * Handle status update\n */\nasync function handleUpdateStatus(client, feedbackId, status, config) {\n // Find status column\n const { columns, order } = mergeSheetColumns(config.columns, config.columnOrder);\n const statusIndex = order.indexOf('status');\n const statusColumn = String.fromCharCode(65 + statusIndex); // A, B, C...\n\n const result = await client.updateStatus(feedbackId, status, statusColumn);\n\n return result;\n}\n\n/**\n * Handle row update\n */\nasync function handleUpdateRow(client, rowNumber, feedbackData, config) {\n const row = feedbackToSheetRow(feedbackData, config);\n const range = `${config.sheetName || 'Feedback'}!A${rowNumber}`;\n\n await client.updateValues(range, [row]);\n\n return { success: true, row: rowNumber };\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 = createSheetsHandler(config);\n\n return async (request) => {\n const body = await request.json();\n return handler({ body }, null);\n };\n}\n\n/**\n * Next.js Pages Router handler\n */\nexport function createNextPagesHandler(config = {}) {\n return createSheetsHandler(config);\n}\n\n/**\n * Express middleware\n */\nexport function createExpressMiddleware(config = {}) {\n const handler = createSheetsHandler(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// GOOGLE APPS SCRIPT TEMPLATE\n// ============================================\n\n/**\n * Returns the Google Apps Script code that users paste into their sheet\n */\nexport function getAppsScriptTemplate(config = {}) {\n const headers = getSheetHeaders(config);\n\n return `\n/**\n * React Visual Feedback - Google Apps Script Handler\n *\n * Setup:\n * 1. Open your Google Sheet\n * 2. Extensions > Apps Script\n * 3. Paste this code\n * 4. Deploy > New deployment > Web app\n * 5. Execute as: Me, Who has access: Anyone\n * 6. Copy the URL and use in your React app\n */\n\n// Sheet configuration\nconst SHEET_NAME = '${config.sheetName || 'Feedback'}';\nconst HEADERS = ${JSON.stringify(headers)};\n\n/**\n * Handle POST requests\n */\nfunction doPost(e) {\n try {\n const data = JSON.parse(e.postData.contents);\n const action = data.action || 'append';\n\n let result;\n\n switch (action) {\n case 'append':\n result = appendFeedback(data.feedbackData);\n break;\n case 'updateStatus':\n result = updateStatus(data.feedbackId, data.status);\n break;\n case 'getRows':\n result = getRows(data.limit || 100);\n break;\n default:\n throw new Error('Unknown action: ' + action);\n }\n\n return ContentService\n .createTextOutput(JSON.stringify(result))\n .setMimeType(ContentService.MimeType.JSON);\n\n } catch (error) {\n return ContentService\n .createTextOutput(JSON.stringify({ success: false, error: error.message }))\n .setMimeType(ContentService.MimeType.JSON);\n }\n}\n\n/**\n * Handle GET requests (for testing)\n */\nfunction doGet(e) {\n return ContentService\n .createTextOutput(JSON.stringify({ status: 'ok', message: 'Feedback API ready' }))\n .setMimeType(ContentService.MimeType.JSON);\n}\n\n/**\n * Append feedback to sheet\n */\nfunction appendFeedback(feedbackData) {\n const sheet = getOrCreateSheet();\n\n const row = [\n new Date().toISOString(), // Timestamp\n feedbackData.id || '', // ID\n feedbackData.feedback || '', // Feedback\n feedbackData.type || 'bug', // Type\n feedbackData.status || 'new', // Status\n feedbackData.userName || 'Anonymous', // User Name\n feedbackData.userEmail || '', // User Email\n feedbackData.url || '', // Page URL\n feedbackData.viewport ? feedbackData.viewport.width + 'x' + feedbackData.viewport.height : '', // Viewport\n feedbackData.screenshot ? 'Yes' : 'No', // Screenshot\n feedbackData.video ? 'Yes' : 'No', // Video\n feedbackData.jiraKey || '' // Jira Key\n ];\n\n sheet.appendRow(row);\n\n return {\n success: true,\n row: sheet.getLastRow()\n };\n}\n\n/**\n * Update feedback status\n */\nfunction updateStatus(feedbackId, newStatus) {\n const sheet = getOrCreateSheet();\n const data = sheet.getDataRange().getValues();\n\n // Find row with matching ID (column B, index 1)\n for (let i = 1; i < data.length; i++) {\n if (data[i][1] === feedbackId) {\n // Update status (column E, index 4)\n sheet.getRange(i + 1, 5).setValue(newStatus);\n return { success: true, row: i + 1 };\n }\n }\n\n return { success: false, error: 'Feedback not found' };\n}\n\n/**\n * Get rows from sheet\n */\nfunction getRows(limit) {\n const sheet = getOrCreateSheet();\n const data = sheet.getDataRange().getValues();\n\n const rows = data.slice(1, limit + 1).map((row, index) => ({\n rowNumber: index + 2,\n timestamp: row[0],\n id: row[1],\n feedback: row[2],\n type: row[3],\n status: row[4],\n userName: row[5],\n userEmail: row[6],\n url: row[7],\n viewport: row[8],\n hasScreenshot: row[9] === 'Yes',\n hasVideo: row[10] === 'Yes',\n jiraKey: row[11]\n }));\n\n return { success: true, rows };\n}\n\n/**\n * Get or create the feedback sheet\n */\nfunction getOrCreateSheet() {\n const ss = SpreadsheetApp.getActiveSpreadsheet();\n let sheet = ss.getSheetByName(SHEET_NAME);\n\n if (!sheet) {\n sheet = ss.insertSheet(SHEET_NAME);\n sheet.appendRow(HEADERS);\n\n // Format headers\n const headerRange = sheet.getRange(1, 1, 1, HEADERS.length);\n headerRange.setFontWeight('bold');\n headerRange.setBackground('#4285f4');\n headerRange.setFontColor('#ffffff');\n }\n\n return sheet;\n}\n\n/**\n * Update Jira key for a feedback item\n */\nfunction updateJiraKey(feedbackId, jiraKey) {\n const sheet = getOrCreateSheet();\n const data = sheet.getDataRange().getValues();\n\n for (let i = 1; i < data.length; i++) {\n if (data[i][1] === feedbackId) {\n // Update Jira key (column L, index 11)\n sheet.getRange(i + 1, 12).setValue(jiraKey);\n return { success: true, row: i + 1 };\n }\n }\n\n return { success: false, error: 'Feedback not found' };\n}\n`.trim();\n}\n\n// ============================================\n// ZAPIER / WEBHOOK FORMATTERS\n// ============================================\n\n/**\n * Format feedback for Zapier webhook\n */\nexport function formatForZapier(feedbackData) {\n return {\n timestamp: new Date().toISOString(),\n id: feedbackData.id,\n feedback: feedbackData.feedback,\n type: feedbackData.type || 'bug',\n status: feedbackData.status || 'new',\n user_name: feedbackData.userName || 'Anonymous',\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 };\n}\n\n// Default export\nexport default createSheetsHandler;\n","/**\n * React Visual Feedback - Server Integrations\n *\n * This module provides server-side handlers for Jira and Google Sheets integrations.\n * Import from 'react-visual-feedback/server' in your API routes.\n *\n * Quick Start:\n *\n * Next.js App Router:\n * // app/api/feedback/jira/route.js\n * import { createJiraHandler } from 'react-visual-feedback/server';\n * const handler = createJiraHandler({ projectKey: 'BUG' });\n * export const POST = (req) => handler({ body: await req.json() });\n *\n * Next.js Pages Router:\n * // pages/api/feedback/jira.js\n * import { createJiraHandler } from 'react-visual-feedback/server';\n * export default createJiraHandler({ projectKey: 'BUG' });\n *\n * Express:\n * import { createJiraMiddleware } from 'react-visual-feedback/server';\n * app.post('/api/feedback/jira', createJiraMiddleware({ projectKey: 'BUG' }));\n */\n\n// ============================================\n// JIRA EXPORTS\n// ============================================\n\nexport {\n default as createJiraHandler,\n createNextAppHandler as createJiraNextAppHandler,\n createNextPagesHandler as createJiraNextPagesHandler,\n createExpressMiddleware as createJiraMiddleware,\n createGenericHandler as createJiraGenericHandler,\n formatForJiraAutomation,\n formatForZapier as formatJiraForZapier\n} from '../jira.js';\n\n// ============================================\n// GOOGLE SHEETS EXPORTS\n// ============================================\n\nexport {\n default as createSheetsHandler,\n createNextAppHandler as createSheetsNextAppHandler,\n createNextPagesHandler as createSheetsNextPagesHandler,\n createExpressMiddleware as createSheetsMiddleware,\n getAppsScriptTemplate,\n formatForZapier as formatSheetsForZapier\n} from '../sheets.js';\n\n// ============================================\n// CONFIG EXPORTS\n// ============================================\n\nexport {\n // Sheet column configuration\n DEFAULT_SHEET_COLUMNS,\n DEFAULT_SHEET_COLUMN_ORDER,\n mergeSheetColumns,\n feedbackToSheetRow,\n getSheetHeaders,\n\n // Jira field configuration\n DEFAULT_JIRA_FIELDS,\n DEFAULT_JIRA_STATUS_MAPPING,\n mergeJiraFields,\n feedbackToJiraIssue,\n mapJiraStatusToLocal,\n mapLocalStatusToJira,\n\n // Integration types\n INTEGRATION_TYPES\n} from '../config.js';\n\n// ============================================\n// CONVENIENCE HANDLERS\n// ============================================\n\n/**\n * Create both Jira and Sheets handlers with shared config\n */\nexport async function createIntegrationHandlers(config = {}) {\n const handlers = {};\n\n if (config.jira) {\n const { default: createJiraHandler } = await import('../jira.js');\n handlers.jira = createJiraHandler(config.jira);\n }\n\n if (config.sheets) {\n const { default: createSheetsHandler } = await import('../sheets.js');\n handlers.sheets = createSheetsHandler(config.sheets);\n }\n\n return handlers;\n}\n\n/**\n * Create a combined handler that routes to Jira or Sheets based on request\n */\nexport function createCombinedHandler(config = {}) {\n const handlers = createIntegrationHandlers(config);\n\n return async (req, res) => {\n const body = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;\n const { integration } = body;\n\n if (!integration || !handlers[integration]) {\n const error = { success: false, error: `Unknown integration: ${integration}` };\n if (res?.json) {\n return res.status(400).json(error);\n }\n return new Response(JSON.stringify(error), { status: 400 });\n }\n\n return handlers[integration](req, res);\n };\n}\n"],"names":["textToADF","text","lines","split","content","currentParagraph","flushParagraph","length","push","type","forEach","line","index","match","trim","attrs","level","version","DEFAULT_SHEET_COLUMNS","timestamp","key","header","field","transform","value","Date","toISOString","id","feedback","status","userName","userEmail","url","viewport","concat","width","height","userAgent","includes","substring","screenshot","video","elementSelector","selector","componentName","_value$componentStack","componentStack","sourceFile","jiraKey","DEFAULT_SHEET_COLUMN_ORDER","DEFAULT_JIRA_FIELDS","summary","source","maxLength","prefix","data","maxLen","description","browser","elementInfo","_data$elementInfo$com","join","lineNumber","attachments","issuetype","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","INTEGRATION_TYPES","JIRA","SERVER","AUTOMATION","ZAPIER","SHEETS","OAUTH","APPS_SCRIPT","mergeSheetColumns","userColumns","arguments","undefined","columnOrder","merged","_objectSpread","Object","entries","_ref","_ref2","_slicedToArray","_typeof","order","keys","filter","k","columns","mergeJiraFields","userFields","_ref3","_ref4","feedbackToSheetRow","feedbackData","_mergeSheetColumns","row","map","col","rawValue","getSheetHeaders","_mergeSheetColumns2","_columns$key","feedbackToJiraIssue","fields","plainDescription","adfDescription","issue","project","projectKey","name","includePriority","customFields","_ref5","_ref6","fieldId","fieldConfig","mapJiraStatusToLocal","jiraStatus","customMapping","mapLocalStatusToJira","localStatus","formatEventLogs","eventLogs","event","_event$request","_event$response","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","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","_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","_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","SheetsClient","spreadsheetId","GOOGLE_SPREADSHEET_ID","sheetName","credentials","GOOGLE_SERVICE_ACCOUNT","accessToken","tokenExpiry","_getAccessToken","_this$credentials","client_email","private_key","payload","jwt","alg","typ","floor","iss","scope","aud","exp","iat","createJWT","URLSearchParams","grant_type","assertion","access_token","expires_in","getAccessToken","_createJWT","privateKey","headerB64","payloadB64","signatureInput","pemHeader","pemFooter","pemContents","crypto","sign","signature","signatureB64","encoder","TextEncoder","base64UrlEncode","createSign","update","end","padding","constants","RSA_PKCS1_PADDING","token","_args3","_appendRow","values","range","_args4","encodeURIComponent","majorDimension","appendRow","_getValues","getValues","_updateValues","updateValues","_ensureHeaders","existing","created","ensureHeaders","_findRowByFeedbackId","feedbackId","idColumn","rowIndex","_args8","findIndex","findRowByFeedbackId","_updateStatus","statusColumn","rowNumber","_args9","updateStatus","SheetsOAuthClient","_SheetsClient","_this","_callSuper","clientId","GOOGLE_CLIENT_ID","clientSecret","GOOGLE_CLIENT_SECRET","redirectUri","GOOGLE_REDIRECT_URI","getStoredTokens","saveTokens","_inherits","getAuthUrl","state","params","client_id","redirect_uri","response_type","access_type","prompt","_exchangeCode","code","tokens","client_secret","refresh_token","expiry","exchangeCode","_refreshAccessToken","refreshToken","stored","refreshAccessToken","_getAccessToken2","createSheetsHandler","_body$action","ClientClass","oauth","handleAppend","handleUpdateStatus","handleUpdateRow","_handleAppend","_callee14","_result$updates","_result$updates2","_context14","updatedRange","updates","_handleUpdateStatus","_callee15","statusIndex","_context15","String","fromCharCode","_handleUpdateRow","_callee16","_context16","getAppsScriptTemplate","createIntegrationHandlers","_createIntegrationHandlers","handlers","_yield$import","_yield$import2","_args2","jira","sheets","createCombinedHandler","integration"],"mappings":"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"}
|