capacitor-gleap-plugin 19.0.1 → 19.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.
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.cjs.js","sources":["esm/logs/format.js","esm/logs/consoleCapture.js","esm/logs/body.js","esm/logs/redaction.js","esm/logs/zone.js","esm/logs/networkCapture.js","esm/logs/webViewLogs.js","esm/index.js","esm/web.js"],"sourcesContent":["export const MAX_LOG_LENGTH = 1000;\nexport const MAX_ERROR_LOG_LENGTH = 5000;\nexport const TRUNCATED_SUFFIX = '… [truncated]';\nconst MAX_DEPTH = 5;\nconst MAX_KEYS = 50;\nconst MAX_ITEMS = 50;\n/** Keeps the head of a log line so the result (incl. the suffix) fits max chars. */\nexport function truncateLog(text, max) {\n if (text.length <= max) {\n return text;\n }\n let end = Math.max(0, max - TRUNCATED_SUFFIX.length);\n const last = text.charCodeAt(end - 1);\n if (last >= 0xd800 && last <= 0xdbff) {\n end--;\n }\n return text.slice(0, end) + TRUNCATED_SUFFIX;\n}\n/**\n * Formats console arguments like the browser console does (printf-style %s %d %i %f %o %O %c in\n * the first string), with objects as depth-limited JSON. Stops early once the text exceeds the\n * budget, so logging a huge object stays cheap.\n */\nexport function formatConsoleArgs(args, budget) {\n if (!args || args.length === 0) {\n return '';\n }\n let out = '';\n let index = 0;\n const first = args[0];\n if (typeof first === 'string' && first.indexOf('%') > -1 && args.length > 1) {\n index = 1;\n for (let i = 0; i < first.length && out.length <= budget; i++) {\n const char = first[i];\n if (char !== '%' || i + 1 >= first.length) {\n out += char;\n continue;\n }\n const specifier = first[i + 1];\n if (specifier === '%') {\n out += '%';\n i++;\n continue;\n }\n if ('sdifoOc'.indexOf(specifier) < 0 || index >= args.length) {\n out += char;\n continue;\n }\n const arg = args[index++];\n i++;\n switch (specifier) {\n case 's':\n out += typeof arg === 'string' ? arg : formatValue(arg, budget);\n break;\n case 'd':\n case 'i':\n out += formatInteger(arg);\n break;\n case 'f':\n out += formatFloat(arg);\n break;\n case 'o':\n case 'O':\n out += formatValue(arg, budget);\n break;\n default:\n // %c (CSS) consumes its argument and prints nothing.\n break;\n }\n }\n }\n for (; index < args.length && out.length <= budget; index++) {\n const arg = args[index];\n const text = typeof arg === 'string' ? arg : formatValue(arg, budget);\n out = out.length > 0 ? `${out} ${text}` : text;\n }\n return out;\n}\nfunction formatInteger(value) {\n if (typeof value === 'number') {\n return String(value < 0 ? Math.ceil(value) : Math.floor(value));\n }\n if (typeof value === 'bigint') {\n return String(value);\n }\n if (typeof value === 'string') {\n return String(parseInt(value, 10));\n }\n return 'NaN';\n}\nfunction formatFloat(value) {\n if (typeof value === 'number') {\n return String(value);\n }\n if (typeof value === 'string') {\n return String(parseFloat(value));\n }\n return 'NaN';\n}\n/** A single value as text: strings as they are, errors with their stack, objects as JSON. */\nexport function formatValue(value, budget) {\n try {\n if (typeof value === 'string') {\n return value;\n }\n if (isError(value)) {\n return formatError(value);\n }\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return formatPrimitive(value);\n }\n const serializer = new Serializer(budget);\n serializer.write(value, 0);\n return serializer.result();\n }\n catch (e) {\n return '[unserializable value]';\n }\n}\n/** \"Name: message\" followed by the stack (V8 stacks already start with that line). */\nexport function formatError(error) {\n try {\n const err = error;\n const name = typeof err.name === 'string' && err.name ? err.name : 'Error';\n const message = typeof err.message === 'string' ? err.message : '';\n const head = message ? `${name}: ${message}` : name;\n const stack = typeof err.stack === 'string' ? err.stack.trim() : '';\n if (!stack) {\n return head;\n }\n if (stack.indexOf(head) === 0) {\n return stack;\n }\n return `${head}\\n${stack}`;\n }\n catch (e) {\n return 'Error';\n }\n}\nexport function isError(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n if (typeof Error !== 'undefined' && value instanceof Error) {\n return true;\n }\n const candidate = value;\n return (typeof candidate.message === 'string' && typeof candidate.stack === 'string' && typeof candidate.name === 'string');\n}\nfunction formatPrimitive(value) {\n if (typeof value === 'bigint') {\n return `${value}n`;\n }\n if (typeof value === 'symbol') {\n return value.toString();\n }\n return String(value);\n}\nfunction describeFunction(value) {\n const name = value.name;\n return `[Function: ${typeof name === 'string' && name ? name : 'anonymous'}]`;\n}\nfunction describeNode(value) {\n if (typeof Node === 'undefined' || !(value instanceof Node)) {\n return null;\n }\n if (typeof Element !== 'undefined' && value instanceof Element) {\n let text = `<${value.tagName.toLowerCase()}`;\n if (value.id) {\n text += `#${value.id}`;\n }\n const className = value.getAttribute('class');\n if (className) {\n text += `.${className.trim().split(/\\s+/).join('.')}`;\n }\n return `${text}>`;\n }\n return value.nodeName;\n}\nfunction constructorName(value) {\n try {\n const proto = Object.getPrototypeOf(value);\n if (!proto) {\n return '';\n }\n const ctor = proto.constructor;\n const name = ctor && typeof ctor.name === 'string' ? ctor.name : '';\n return name === 'Object' ? '' : name;\n }\n catch (e) {\n return '';\n }\n}\n/** JSON-like serialiser with depth, key and length limits and circular protection. */\nclass Serializer {\n constructor(budget) {\n this.budget = budget;\n this.parts = [];\n this.length = 0;\n this.ancestors = [];\n }\n result() {\n return this.parts.join('');\n }\n isFull() {\n return this.length > this.budget;\n }\n push(text) {\n if (this.isFull()) {\n return;\n }\n this.parts.push(text);\n this.length += text.length;\n }\n write(value, depth) {\n if (this.isFull()) {\n return;\n }\n if (value === null || value === undefined) {\n this.push(String(value));\n return;\n }\n switch (typeof value) {\n case 'string':\n this.push(JSON.stringify(value));\n return;\n case 'number':\n case 'boolean':\n case 'bigint':\n case 'symbol':\n this.push(formatPrimitive(value));\n return;\n case 'function':\n this.push(describeFunction(value));\n return;\n default:\n break;\n }\n this.writeObject(value, depth);\n }\n writeObject(value, depth) {\n if (this.ancestors.indexOf(value) > -1) {\n this.push('[Circular]');\n return;\n }\n if (isError(value)) {\n this.push(JSON.stringify(formatError(value).split('\\n')[0]));\n return;\n }\n if (value instanceof Date) {\n this.push(isNaN(value.getTime()) ? '\"Invalid Date\"' : JSON.stringify(value.toISOString()));\n return;\n }\n if (value instanceof RegExp) {\n this.push(String(value));\n return;\n }\n const node = describeNode(value);\n if (node !== null) {\n this.push(node);\n return;\n }\n if (typeof window !== 'undefined' && value === window) {\n this.push('[Window]');\n return;\n }\n if (typeof ArrayBuffer !== 'undefined') {\n if (value instanceof ArrayBuffer) {\n this.push(`[ArrayBuffer(${value.byteLength})]`);\n return;\n }\n if (ArrayBuffer.isView(value)) {\n const length = value.length;\n this.push(`[${constructorName(value) || 'ArrayBufferView'}(${typeof length === 'number' ? length : value.byteLength})]`);\n return;\n }\n }\n if (typeof Promise !== 'undefined' && value instanceof Promise) {\n this.push('[Promise]');\n return;\n }\n const isArray = Array.isArray(value);\n if (depth >= MAX_DEPTH) {\n this.push(isArray ? `[Array(${value.length})]` : '[Object]');\n return;\n }\n this.ancestors.push(value);\n try {\n if (isArray) {\n this.writeArray(value, depth);\n }\n else if (typeof Map !== 'undefined' && value instanceof Map) {\n this.writeMap(value, depth);\n }\n else if (typeof Set !== 'undefined' && value instanceof Set) {\n this.writeSet(value, depth);\n }\n else {\n this.writePlainObject(value, depth);\n }\n }\n finally {\n this.ancestors.pop();\n }\n }\n writeArray(value, depth) {\n this.push('[');\n const count = Math.min(value.length, MAX_ITEMS);\n for (let i = 0; i < count && !this.isFull(); i++) {\n if (i > 0) {\n this.push(',');\n }\n this.write(value[i], depth + 1);\n }\n if (value.length > MAX_ITEMS) {\n this.push(`,\"… ${value.length - MAX_ITEMS} more\"`);\n }\n this.push(']');\n }\n writeMap(value, depth) {\n this.push(`Map(${value.size}) {`);\n let count = 0;\n value.forEach((item, key) => {\n if (count >= MAX_ITEMS || this.isFull()) {\n return;\n }\n if (count > 0) {\n this.push(', ');\n }\n this.write(key, depth + 1);\n this.push(' => ');\n this.write(item, depth + 1);\n count++;\n });\n this.push('}');\n }\n writeSet(value, depth) {\n this.push(`Set(${value.size}) {`);\n let count = 0;\n value.forEach((item) => {\n if (count >= MAX_ITEMS || this.isFull()) {\n return;\n }\n if (count > 0) {\n this.push(', ');\n }\n this.write(item, depth + 1);\n count++;\n });\n this.push('}');\n }\n writePlainObject(value, depth) {\n const record = value;\n if (typeof record.toJSON === 'function') {\n let converted;\n try {\n converted = record.toJSON();\n }\n catch (e) {\n converted = undefined;\n }\n if (converted !== undefined && converted !== value) {\n this.write(converted, depth + 1);\n return;\n }\n }\n const name = constructorName(value);\n if (name) {\n this.push(`${name} `);\n }\n this.push('{');\n const keys = Object.keys(record);\n const count = Math.min(keys.length, MAX_KEYS);\n for (let i = 0; i < count && !this.isFull(); i++) {\n if (i > 0) {\n this.push(',');\n }\n this.push(`${JSON.stringify(keys[i])}:`);\n let child;\n try {\n child = record[keys[i]];\n }\n catch (e) {\n child = '[getter threw]';\n }\n this.write(child, depth + 1);\n }\n if (keys.length > MAX_KEYS) {\n this.push(`,\"…\":\"${keys.length - MAX_KEYS} more keys\"`);\n }\n this.push('}');\n }\n}\n//# sourceMappingURL=format.js.map","import { MAX_ERROR_LOG_LENGTH, MAX_LOG_LENGTH, formatConsoleArgs, formatError, formatValue, isError, truncateLog, } from './format';\nexport const MAX_CONSOLE_ENTRIES = 500;\nconst PATCHED_METHODS = {\n log: 'INFO',\n info: 'INFO',\n debug: 'INFO',\n warn: 'WARNING',\n error: 'ERROR',\n};\n/**\n * Records the WebView console. Methods are patched in place on the existing console object (never\n * replaced) and always call through to what was there before.\n */\nexport class ConsoleCapture {\n constructor(win, onChange) {\n this.win = win;\n this.onChange = onChange;\n this.entries = [];\n this.patched = [];\n this.active = false;\n this.isRecording = false;\n this.errorListener = null;\n this.rejectionListener = null;\n }\n install() {\n if (this.active) {\n return;\n }\n this.active = true;\n this.patchConsole();\n this.listenForUncaughtErrors();\n }\n /** Restores the console methods that are still ours, stops listening and drops what was recorded. */\n uninstall() {\n this.active = false;\n const console = this.win.console;\n for (const method of this.patched) {\n try {\n if (console[method.name] === method.wrapper) {\n console[method.name] = method.original;\n }\n }\n catch (e) {\n // The inactive wrapper keeps calling through.\n }\n }\n this.patched = [];\n if (this.errorListener) {\n this.win.removeEventListener('error', this.errorListener);\n this.errorListener = null;\n }\n if (this.rejectionListener) {\n this.win.removeEventListener('unhandledrejection', this.rejectionListener);\n this.rejectionListener = null;\n }\n this.entries = [];\n }\n getEntries() {\n return this.entries.slice();\n }\n record(priority, text) {\n if (!this.active || !text) {\n return;\n }\n this.entries.push({\n date: new Date().toISOString(),\n priority,\n log: truncateLog(text, priority === 'ERROR' ? MAX_ERROR_LOG_LENGTH : MAX_LOG_LENGTH),\n });\n if (this.entries.length > MAX_CONSOLE_ENTRIES) {\n this.entries.splice(0, this.entries.length - MAX_CONSOLE_ENTRIES);\n }\n this.onChange();\n }\n /** Formats and records; re-entrant calls (a getter that logs while being formatted) are dropped. */\n recordArgs(priority, args, prefix = '') {\n if (!this.active || this.isRecording) {\n return;\n }\n this.isRecording = true;\n try {\n const budget = priority === 'ERROR' ? MAX_ERROR_LOG_LENGTH : MAX_LOG_LENGTH;\n const text = formatConsoleArgs(args, budget);\n this.record(priority, prefix ? (text ? `${prefix} ${text}` : prefix) : text);\n }\n catch (e) {\n // Logging must never break the app.\n }\n finally {\n this.isRecording = false;\n }\n }\n patchConsole() {\n const console = this.win.console;\n if (!console) {\n return;\n }\n const capture = this;\n for (const name of Object.keys(PATCHED_METHODS)) {\n const priority = PATCHED_METHODS[name];\n this.patchMethod(console, name, function (original, args) {\n capture.recordArgs(priority, args);\n return original.apply(this, args);\n });\n }\n this.patchMethod(console, 'assert', function (original, args) {\n if (!args[0]) {\n capture.recordArgs('ERROR', args.slice(1), 'Assertion failed:');\n }\n return original.apply(this, args);\n });\n }\n patchMethod(console, name, body) {\n const original = console[name];\n if (typeof original !== 'function') {\n return;\n }\n const target = console;\n const wrapper = function (...args) {\n return body.call(this === undefined ? target : this, original, args);\n };\n try {\n console[name] = wrapper;\n }\n catch (e) {\n return;\n }\n if (console[name] === wrapper) {\n this.patched.push({\n name,\n original: original,\n wrapper,\n });\n }\n }\n listenForUncaughtErrors() {\n this.errorListener = (event) => {\n try {\n const errorEvent = event;\n if (typeof ErrorEvent !== 'undefined' && !(event instanceof ErrorEvent) && !errorEvent.error) {\n // Resource load errors are plain Events.\n return;\n }\n this.recordUncaughtError(errorEvent);\n }\n catch (e) {\n // Ignore.\n }\n };\n this.rejectionListener = (event) => {\n try {\n const reason = event.reason;\n const text = isError(reason) ? formatError(reason) : formatValue(reason, MAX_ERROR_LOG_LENGTH);\n this.recordGuarded(`Unhandled promise rejection: ${text}`);\n }\n catch (e) {\n // Ignore.\n }\n };\n this.win.addEventListener('error', this.errorListener);\n this.win.addEventListener('unhandledrejection', this.rejectionListener);\n }\n recordUncaughtError(event) {\n let text;\n if (event.error && isError(event.error)) {\n text = formatError(event.error);\n }\n else {\n text = event.message || formatValue(event.error, MAX_ERROR_LOG_LENGTH);\n if (event.filename) {\n text += ` (${event.filename}:${event.lineno || 0}:${event.colno || 0})`;\n }\n }\n this.recordGuarded(text.indexOf('Uncaught') === 0 ? text : `Uncaught ${text}`);\n }\n recordGuarded(text) {\n if (this.isRecording) {\n return;\n }\n this.isRecording = true;\n try {\n this.record('ERROR', text);\n }\n finally {\n this.isRecording = false;\n }\n }\n}\n//# sourceMappingURL=consoleCapture.js.map","/** Maximum captured size per body (request payload or response text). */\nexport const MAX_BODY_SIZE = 150000;\nexport const BINARY_BODY_OMITTED = '[binary body omitted]';\nexport const STREAMING_BODY_OMITTED = '[streaming body omitted]';\nexport const BODY_NOT_CAPTURED = '[body not captured]';\nexport const BODY_PENDING = '[body pending]';\nconst STREAMING_TYPES = [\n 'text/event-stream',\n 'application/x-ndjson',\n 'application/stream+json',\n 'multipart/x-mixed-replace',\n 'grpc',\n];\nconst TEXT_TYPES = ['json', 'xml', 'text/', 'javascript', 'x-www-form-urlencoded', 'graphql'];\nexport function classifyContentType(contentType) {\n if (typeof contentType !== 'string' || contentType.trim() === '') {\n return 'unknown';\n }\n const lower = contentType.toLowerCase();\n for (const type of STREAMING_TYPES) {\n if (lower.indexOf(type) > -1) {\n return 'streaming';\n }\n }\n for (const type of TEXT_TYPES) {\n if (lower.indexOf(type) > -1) {\n return 'text';\n }\n }\n return 'binary';\n}\nexport function markerForKind(kind) {\n if (kind === 'streaming') {\n return STREAMING_BODY_OMITTED;\n }\n if (kind === 'binary') {\n return BINARY_BODY_OMITTED;\n }\n return null;\n}\n/** UTF-8 byte length without allocating an encoded copy. */\nexport function utf8ByteLength(text) {\n let bytes = 0;\n for (let i = 0; i < text.length; i++) {\n const code = text.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n }\n else if (code < 0x800) {\n bytes += 2;\n }\n else if (code >= 0xd800 && code <= 0xdbff && i + 1 < text.length) {\n bytes += 4;\n i++;\n }\n else {\n bytes += 3;\n }\n }\n return bytes;\n}\n/** Cuts a string at max chars without splitting a surrogate pair. */\nexport function sliceHead(text, max) {\n if (text.length <= max) {\n return text;\n }\n let end = max;\n const last = text.charCodeAt(end - 1);\n if (last >= 0xd800 && last <= 0xdbff) {\n end--;\n }\n return text.slice(0, end);\n}\nexport function truncationMarker(totalBytes) {\n return `\\n… [truncated, ${totalBytes !== null && totalBytes > MAX_BODY_SIZE ? totalBytes : `more than ${MAX_BODY_SIZE}`} bytes]`;\n}\n/** Caps a text body at MAX_BODY_SIZE chars: keeps the head and appends the truncation marker. */\nexport function capBodyText(text) {\n if (text.length <= MAX_BODY_SIZE) {\n return text;\n }\n return sliceHead(text, MAX_BODY_SIZE) + truncationMarker(utf8ByteLength(text));\n}\n/**\n * Decodes bytes as UTF-8. With fatal (unknown content type) invalid UTF-8 yields null, so the caller\n * can mark the body as binary. A cut-off (incomplete) body keeps a split trailing character pending\n * instead of failing on it.\n */\nexport function decodeUtf8(bytes, fatal, complete) {\n if (typeof TextDecoder === 'undefined') {\n return null;\n }\n try {\n return new TextDecoder('utf-8', { fatal }).decode(bytes, {\n stream: !complete,\n });\n }\n catch (e) {\n return null;\n }\n}\n/**\n * Turns (at most MAX_BODY_SIZE) bytes into the logged text: decoded, capped, marked as truncated\n * when the body was longer, or the binary marker when it is not UTF-8 text.\n */\nexport function bytesToBodyText(bytes, kind, complete, totalBytes) {\n const head = bytes.byteLength > MAX_BODY_SIZE ? bytes.subarray(0, MAX_BODY_SIZE) : bytes;\n const cut = !complete || bytes.byteLength > MAX_BODY_SIZE;\n const text = decodeUtf8(head, kind === 'unknown', !cut);\n if (text === null) {\n return kind === 'unknown' ? BINARY_BODY_OMITTED : BODY_NOT_CAPTURED;\n }\n return cut ? text + truncationMarker(totalBytes) : text;\n}\n/**\n * Reads at most MAX_BODY_SIZE bytes (plus the rest of the chunk that crossed it) and cancels the\n * stream after that, so an endless or huge body is never read into memory.\n */\nexport async function readStreamHead(stream) {\n const reader = stream.getReader();\n const chunks = [];\n let received = 0;\n let complete = false;\n try {\n while (received <= MAX_BODY_SIZE) {\n const result = await reader.read();\n if (result.done) {\n complete = true;\n break;\n }\n const chunk = result.value;\n if (chunk && chunk.byteLength > 0) {\n chunks.push(chunk);\n received += chunk.byteLength;\n }\n }\n }\n finally {\n if (!complete) {\n try {\n reader.cancel().catch(() => undefined);\n }\n catch (e) {\n // Ignore.\n }\n }\n }\n const bytes = new Uint8Array(Math.min(received, MAX_BODY_SIZE + 1));\n let offset = 0;\n for (const chunk of chunks) {\n if (offset >= bytes.byteLength) {\n break;\n }\n const part = chunk.subarray(0, bytes.byteLength - offset);\n bytes.set(part, offset);\n offset += part.byteLength;\n }\n return { bytes, complete };\n}\n/** Reads the head of a blob (never the whole blob) and turns it into the logged text. */\nexport async function readBlobHead(blob, kind) {\n const head = blob.slice(0, MAX_BODY_SIZE);\n if (typeof head.arrayBuffer !== 'function') {\n return BODY_NOT_CAPTURED;\n }\n const buffer = await head.arrayBuffer();\n const complete = blob.size <= MAX_BODY_SIZE;\n return bytesToBodyText(new Uint8Array(buffer), kind, complete, complete ? null : blob.size);\n}\nexport function isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\nexport function isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\nexport function isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\nexport function isReadableStream(value) {\n return typeof ReadableStream !== 'undefined' && value instanceof ReadableStream;\n}\nexport function isDocument(value) {\n return typeof Document !== 'undefined' && value instanceof Document;\n}\n/** Byte view of an ArrayBuffer or ArrayBufferView, or null for anything else. */\nexport function toBytes(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return null;\n }\n if (value instanceof ArrayBuffer) {\n return new Uint8Array(value);\n }\n if (ArrayBuffer.isView(value)) {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n return null;\n}\n/**\n * The logged request payload for a fetch/XHR body. Strings and buffers are captured synchronously;\n * blobs are read asynchronously (head only). Form data, streams and documents are not captured.\n */\nexport function captureRequestBody(body, kind) {\n if (body === undefined || body === null) {\n return '';\n }\n if (isReadableStream(body)) {\n return STREAMING_BODY_OMITTED;\n }\n const marker = markerForKind(kind);\n if (marker) {\n return marker;\n }\n if (typeof body === 'string') {\n return capBodyText(body);\n }\n if (isUrlSearchParams(body)) {\n return capBodyText(body.toString());\n }\n if (isFormData(body) || isDocument(body)) {\n return BODY_NOT_CAPTURED;\n }\n if (isBlob(body)) {\n const blobKind = kind === 'unknown' ? classifyContentType(body.type) : kind;\n const blobMarker = markerForKind(blobKind);\n if (blobMarker) {\n return blobMarker;\n }\n return readBlobHead(body, blobKind).catch(() => BODY_NOT_CAPTURED);\n }\n const bytes = toBytes(body);\n if (bytes) {\n return bytesToBodyText(bytes, kind, bytes.byteLength <= MAX_BODY_SIZE, bytes.byteLength);\n }\n try {\n return capBodyText(String(body));\n }\n catch (e) {\n return BODY_NOT_CAPTURED;\n }\n}\n/**\n * JSON.stringify for a parsed JSON value (XHR responseType \"json\") that stops once the output\n * exceeds MAX_BODY_SIZE, so a huge response is not serialised in full.\n */\nexport function stringifyJsonHead(value) {\n const parts = [];\n let length = 0;\n let full = false;\n const push = (text) => {\n if (full) {\n return;\n }\n parts.push(text);\n length += text.length;\n if (length > MAX_BODY_SIZE) {\n full = true;\n }\n };\n const write = (node) => {\n if (full) {\n return;\n }\n if (node === null || typeof node !== 'object') {\n const text = JSON.stringify(node);\n push(text === undefined ? 'null' : text);\n return;\n }\n if (Array.isArray(node)) {\n push('[');\n for (let i = 0; i < node.length && !full; i++) {\n if (i > 0) {\n push(',');\n }\n write(node[i]);\n }\n push(']');\n return;\n }\n push('{');\n let first = true;\n const record = node;\n for (const key of Object.keys(record)) {\n if (full) {\n break;\n }\n const child = record[key];\n if (child === undefined || typeof child === 'function') {\n continue;\n }\n push(`${first ? '' : ','}${JSON.stringify(key)}:`);\n first = false;\n write(child);\n }\n push('}');\n };\n write(value);\n const text = parts.join('');\n if (!full) {\n return text;\n }\n return sliceHead(text, MAX_BODY_SIZE) + truncationMarker(null);\n}\n//# sourceMappingURL=body.js.map","/** URLs containing one of these are never logged, in addition to the configured blacklist. */\nexport const DEFAULT_NETWORK_LOG_BLACKLIST = ['gleap.io', 'gleap.ai'];\nexport const REDACTED_VALUE = '[REDACTED]';\nexport const BODY_NOT_CAPTURED = '[body not captured]';\n/** Credential headers whose value is always masked (the header itself is kept). */\nconst ALWAYS_MASKED_HEADERS = ['authorization', 'proxy-authorization', 'cookie', 'set-cookie'];\n/**\n * Builds the redaction rules from the props to ignore and the blacklist (remote config and local\n * setter calls combined by the caller). Entries are trimmed, lowercased and deduplicated.\n */\nexport function createRedactionRules(propsToIgnore, blacklist) {\n const props = new Set();\n const paths = [];\n for (const raw of propsToIgnore || []) {\n if (typeof raw !== 'string') {\n continue;\n }\n const prop = raw.trim().toLowerCase();\n if (!prop || props.has(prop)) {\n continue;\n }\n props.add(prop);\n if (prop.indexOf('.') > -1) {\n const segments = prop.split('.').filter((segment) => segment.length > 0);\n if (segments.length > 1) {\n paths.push(segments);\n }\n }\n }\n const blacklistEntries = [];\n for (const raw of [...DEFAULT_NETWORK_LOG_BLACKLIST, ...(blacklist || [])]) {\n if (typeof raw !== 'string') {\n continue;\n }\n const entry = raw.trim().toLowerCase();\n if (entry && blacklistEntries.indexOf(entry) < 0) {\n blacklistEntries.push(entry);\n }\n }\n return { props, paths, blacklist: blacklistEntries };\n}\n/** Substring match (case-insensitive) against the blacklist, incl. the default Gleap hosts. */\nexport function isBlacklistedUrl(url, rules) {\n if (typeof url !== 'string') {\n return false;\n }\n const lowerUrl = url.toLowerCase();\n for (const entry of rules.blacklist) {\n if (lowerUrl.indexOf(entry) > -1) {\n return true;\n }\n }\n return false;\n}\n/**\n * Removes headers named like a prop (case-insensitive) and masks the credential headers.\n * Returns a new object; the input is not modified.\n */\nexport function redactHeaders(headers, rules) {\n if (!headers || typeof headers !== 'object') {\n return headers;\n }\n const result = {};\n for (const name of Object.keys(headers)) {\n const lowerName = name.toLowerCase();\n if (rules.props.has(lowerName)) {\n continue;\n }\n result[name] = ALWAYS_MASKED_HEADERS.indexOf(lowerName) > -1 ? REDACTED_VALUE : headers[name];\n }\n return result;\n}\n/**\n * Removes matching keys from a JSON body: every key equal to a prop at any depth (objects inside\n * arrays too), and dotted props additionally as a path from the root, then re-serialises compactly.\n * A body that looks like JSON but does not parse (e.g. cut at the size limit) gets the values of\n * matching keys masked in the text instead. Returns the body untouched when nothing matched.\n */\nexport function redactJsonBody(body, rules) {\n if (!body || rules.props.size === 0) {\n return body;\n }\n const firstChar = firstNonWhitespaceChar(body);\n if (firstChar !== '{' && firstChar !== '[') {\n return body;\n }\n let parsed;\n try {\n parsed = JSON.parse(body);\n }\n catch (e) {\n return maskJsonKeysInText(body, rules);\n }\n let changed = removeKeysAtAnyDepth(parsed, rules.props);\n for (const path of rules.paths) {\n if (removePath(parsed, path, 0)) {\n changed = true;\n }\n }\n return changed ? JSON.stringify(parsed) : body;\n}\n/**\n * Removes form fields (application/x-www-form-urlencoded) named like a prop. Kept fields keep their\n * original encoding; the body is returned untouched when nothing matched.\n */\nexport function redactFormBody(body, rules) {\n if (!body || rules.props.size === 0) {\n return body;\n }\n const filtered = filterParams(body, rules);\n return filtered === null ? body : filtered;\n}\n/** Removes query parameters named like a prop. The URL is returned untouched when nothing matched. */\nexport function redactUrl(url, rules) {\n if (typeof url !== 'string' || rules.props.size === 0) {\n return url;\n }\n const hashIndex = url.indexOf('#');\n const main = hashIndex > -1 ? url.slice(0, hashIndex) : url;\n const hash = hashIndex > -1 ? url.slice(hashIndex) : '';\n const queryIndex = main.indexOf('?');\n if (queryIndex < 0) {\n return url;\n }\n const filtered = filterParams(main.slice(queryIndex + 1), rules);\n if (filtered === null) {\n return url;\n }\n return main.slice(0, queryIndex) + (filtered ? `?${filtered}` : '') + hash;\n}\n/** Redacts one entry. Returns a new entry; the input is not modified. */\nexport function redactNetworkLogEntry(entry, rules) {\n const result = Object.assign({}, entry);\n result.url = redactUrl(entry.url, rules);\n if (entry.request) {\n const request = Object.assign({}, entry.request);\n const contentType = getHeader(entry.request.headers, 'content-type');\n request.headers = redactHeaders(entry.request.headers, rules);\n if (typeof request.payload === 'string') {\n request.payload = redactBody(request.payload, contentType, rules);\n }\n result.request = request;\n }\n if (entry.response) {\n const response = Object.assign({}, entry.response);\n const contentType = getHeader(entry.response.headers, 'content-type');\n if (response.headers) {\n response.headers = redactHeaders(response.headers, rules);\n }\n if (typeof response.responseText === 'string') {\n response.responseText = redactBody(response.responseText, contentType, rules);\n }\n result.response = response;\n }\n return result;\n}\n/**\n * Drops blacklisted entries and redacts the rest. An entry that cannot be redacted (e.g. JSON nested\n * too deeply) is sent without bodies, headers and query instead of unredacted.\n */\nexport function redactNetworkLogs(entries, rules) {\n const result = [];\n for (const entry of entries) {\n if (!entry || isBlacklistedUrl(entry.url, rules)) {\n continue;\n }\n result.push(redactNetworkLogEntryOrStrip(entry, rules));\n }\n return result;\n}\n/** Like redactNetworkLogEntry, but never throws: falls back to an entry without any content. */\nexport function redactNetworkLogEntryOrStrip(entry, rules) {\n try {\n return redactNetworkLogEntry(entry, rules);\n }\n catch (e) {\n return stripNetworkLogEntry(entry);\n }\n}\n/** Keeps method, URL (without query), timing and status; drops headers and bodies. */\nexport function stripNetworkLogEntry(entry) {\n const url = typeof entry.url === 'string' ? entry.url.split(/[?#]/)[0] : '';\n const stripped = {\n date: entry.date,\n type: entry.type,\n url,\n duration: entry.duration,\n success: entry.success,\n request: { headers: {}, payload: BODY_NOT_CAPTURED },\n };\n if (entry.response) {\n stripped.response =\n typeof entry.response.errorText === 'string'\n ? { errorText: entry.response.errorText }\n : {\n status: entry.response.status,\n statusText: entry.response.statusText,\n headers: {},\n responseText: BODY_NOT_CAPTURED,\n };\n }\n return stripped;\n}\nfunction redactBody(body, contentType, rules) {\n if (!body || rules.props.size === 0) {\n return body;\n }\n const json = redactJsonBody(body, rules);\n if (json !== body) {\n return json;\n }\n const lowerContentType = (contentType || '').toLowerCase();\n if (lowerContentType.indexOf('x-www-form-urlencoded') > -1 || (!lowerContentType && looksLikeFormBody(body))) {\n return redactFormBody(body, rules);\n }\n return body;\n}\nfunction looksLikeFormBody(body) {\n return /^[^\\s=&]+=[^\\s&]*(?:&[^\\s=&]*(?:=[^\\s&]*)?)*$/.test(body);\n}\nfunction getHeader(headers, name) {\n if (!headers || typeof headers !== 'object') {\n return undefined;\n }\n for (const key of Object.keys(headers)) {\n if (key.toLowerCase() === name) {\n return headers[key];\n }\n }\n return undefined;\n}\nfunction firstNonWhitespaceChar(text) {\n const match = /\\S/.exec(text);\n return match ? match[0] : '';\n}\n/**\n * Masks the values of matching keys in JSON text that does not parse: every prop as a whole plus the\n * last segment of each dotted prop, case-insensitive. A string cut off at the end is masked too;\n * object and array values are left alone (their inner keys are matched on their own).\n */\nfunction maskJsonKeysInText(body, rules) {\n const keys = new Set(rules.props);\n for (const path of rules.paths) {\n keys.add(path[path.length - 1]);\n }\n let result = body;\n keys.forEach((key) => {\n // A JSON string never contains a raw line break, so a string cut at the end stops before the\n // \"\\n… [truncated\" marker instead of swallowing it.\n const pattern = new RegExp(`\"(${escapeRegExp(key)})\"(\\\\s*:\\\\s*)(\"(?:[^\"\\\\\\\\\\\\r\\\\n]|\\\\\\\\.)*\"?|-?\\\\d[0-9.eE+-]*|true|false|null)`, 'gi');\n result = result.replace(pattern, `\"$1\"$2\"${REDACTED_VALUE}\"`);\n });\n return result === body ? body : result;\n}\nfunction escapeRegExp(text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n/** Removes every key equal to a prop at any depth. Iterative, so deep JSON cannot overflow the stack. */\nfunction removeKeysAtAnyDepth(root, props) {\n let changed = false;\n const stack = [root];\n while (stack.length > 0) {\n const node = stack.pop();\n if (Array.isArray(node)) {\n for (const item of node) {\n if (item && typeof item === 'object') {\n stack.push(item);\n }\n }\n }\n else if (node && typeof node === 'object') {\n const record = node;\n for (const key of Object.keys(record)) {\n if (props.has(key.toLowerCase())) {\n delete record[key];\n changed = true;\n }\n else {\n const child = record[key];\n if (child && typeof child === 'object') {\n stack.push(child);\n }\n }\n }\n }\n }\n return changed;\n}\n/** Removes a dotted path from the root; arrays on the way are applied to each element. */\nfunction removePath(node, segments, index) {\n if (Array.isArray(node)) {\n let changed = false;\n for (const item of node) {\n if (removePath(item, segments, index)) {\n changed = true;\n }\n }\n return changed;\n }\n if (!node || typeof node !== 'object') {\n return false;\n }\n const record = node;\n const segment = segments[index];\n const isLast = index === segments.length - 1;\n let changed = false;\n for (const key of Object.keys(record)) {\n if (key.toLowerCase() !== segment) {\n continue;\n }\n if (isLast) {\n delete record[key];\n changed = true;\n }\n else if (removePath(record[key], segments, index + 1)) {\n changed = true;\n }\n }\n return changed;\n}\n/**\n * Filters an urlencoded parameter list (query string or form body). Returns null when nothing was\n * removed, so callers can keep the original string.\n */\nfunction filterParams(params, rules) {\n const parts = params.split('&');\n const kept = [];\n let changed = false;\n for (const part of parts) {\n const equalsIndex = part.indexOf('=');\n const rawName = equalsIndex > -1 ? part.slice(0, equalsIndex) : part;\n if (rawName && paramNameMatches(decodeParamName(rawName), rules)) {\n changed = true;\n continue;\n }\n kept.push(part);\n }\n return changed ? kept.join('&') : null;\n}\nfunction decodeParamName(rawName) {\n try {\n return decodeURIComponent(rawName.replace(/\\+/g, ' '));\n }\n catch (e) {\n return rawName;\n }\n}\n/**\n * A param matches when its whole name equals a prop. Bracket names (user[password]) are treated like\n * nested JSON keys: any segment equal to a prop, or a dotted prop matching the leading segments.\n */\nfunction paramNameMatches(name, rules) {\n const lowerName = name.toLowerCase();\n if (rules.props.has(lowerName)) {\n return true;\n }\n if (lowerName.indexOf('[') < 0) {\n return false;\n }\n const segments = lowerName\n .replace(/\\]/g, '')\n .split('[')\n .filter((segment) => segment.length > 0);\n if (segments.length < 2) {\n return false;\n }\n for (const segment of segments) {\n if (rules.props.has(segment)) {\n return true;\n }\n }\n for (const path of rules.paths) {\n if (path.length <= segments.length) {\n let matches = true;\n for (let i = 0; i < path.length; i++) {\n if (path[i] !== segments[i]) {\n matches = false;\n break;\n }\n }\n if (matches) {\n return true;\n }\n }\n }\n return false;\n}\n//# sourceMappingURL=redaction.js.map","/**\n * Runs fn in zone.js' root zone when zone.js is loaded (Angular / Ionic apps), so the plugin's\n * timers and body reads do not trigger Angular change detection. Without zone.js it just runs fn.\n */\nexport function runOutsideZone(fn) {\n const zone = typeof globalThis !== 'undefined'\n ? globalThis.Zone\n : undefined;\n const root = zone === null || zone === void 0 ? void 0 : zone.root;\n if (root && typeof root.run === 'function') {\n return root.run(fn);\n }\n return fn();\n}\n//# sourceMappingURL=zone.js.map","import { BINARY_BODY_OMITTED, BODY_NOT_CAPTURED, BODY_PENDING, MAX_BODY_SIZE, STREAMING_BODY_OMITTED, bytesToBodyText, capBodyText, captureRequestBody, classifyContentType, isBlob, isUrlSearchParams, markerForKind, readBlobHead, readStreamHead, stringifyJsonHead, toBytes, } from './body';\nimport { DEFAULT_NETWORK_LOG_BLACKLIST } from './redaction';\nimport { runOutsideZone } from './zone';\nexport const MAX_NETWORK_ENTRIES = 30;\nconst now = () => typeof performance !== 'undefined' && typeof performance.now === 'function' ? performance.now() : Date.now();\n/**\n * Records fetch and XMLHttpRequest calls made inside the WebView. The hooks never alter or delay the\n * request: they only read what the app passes in and what comes back, and every hook is guarded so\n * a logging failure cannot break the app's networking.\n */\nexport class NetworkCapture {\n constructor(win, onChange) {\n this.win = win;\n this.onChange = onChange;\n this.records = [];\n this.nextId = 1;\n this.active = false;\n this.isInstalled = false;\n this.xhrStates = new WeakMap();\n this.xhrsWithListeners = new WeakSet();\n }\n /** Installs the hooks inactive: nothing is recorded until setActive(true). */\n install() {\n if (this.isInstalled) {\n return;\n }\n this.isInstalled = true;\n try {\n this.patchFetch();\n }\n catch (e) {\n // Ignore.\n }\n try {\n this.patchXhr();\n }\n catch (e) {\n // Ignore.\n }\n }\n /** Inactive: the hooks stay in place but only call through, and the buffer is dropped. */\n setActive(active) {\n this.active = active;\n if (!active) {\n this.records = [];\n }\n }\n getSnapshots() {\n return this.records.map((record) => ({\n id: record.id,\n version: record.version,\n entry: record.entry,\n }));\n }\n // ---------------------------------------------------------------- fetch\n patchFetch() {\n const win = this.win;\n const originalFetch = win.fetch;\n if (typeof originalFetch !== 'function') {\n return;\n }\n const capture = this;\n win.fetch = function gleapFetch() {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n let record = null;\n if (capture.active) {\n try {\n record = capture.startFetch(args[0], args[1]);\n }\n catch (e) {\n record = null;\n }\n }\n let result;\n try {\n result = originalFetch.apply(this, args);\n }\n catch (error) {\n if (record) {\n capture.fail(record, error);\n }\n throw error;\n }\n const promise = result;\n if (!record || !promise || typeof promise.then !== 'function') {\n return result;\n }\n const tracked = record;\n return promise.then((response) => {\n capture.completeFetch(tracked, response);\n return response;\n }, (error) => {\n capture.fail(tracked, error);\n throw error;\n });\n };\n }\n startFetch(input, init) {\n const url = this.resolveUrl(isRequest(input) ? input.url : isUrl(input) ? input.href : input);\n if (!this.shouldCapture(url)) {\n return null;\n }\n const request = isRequest(input) ? input : null;\n const options = init && typeof init === 'object' ? init : undefined;\n const method = String((options === null || options === void 0 ? void 0 : options.method) || (request === null || request === void 0 ? void 0 : request.method) || 'GET').toUpperCase();\n const headers = normalizeHeaders((options === null || options === void 0 ? void 0 : options.headers) !== undefined ? options.headers : request ? request.headers : undefined);\n let payload = '';\n if ((options === null || options === void 0 ? void 0 : options.body) !== undefined && (options === null || options === void 0 ? void 0 : options.body) !== null) {\n payload = this.requestPayload(options.body, headers);\n }\n else if (request && method !== 'GET' && method !== 'HEAD') {\n payload = this.requestObjectPayload(request, headers);\n }\n return this.createRecord(method, url, headers, payload);\n }\n /** The body of a Request object: read from a clone (made before fetch consumes it), head only. */\n requestObjectPayload(request, headers) {\n const kind = classifyContentType(headers['content-type']);\n const marker = markerForKind(kind);\n if (marker) {\n return marker;\n }\n if (typeof Request === 'undefined' || !('body' in Request.prototype)) {\n return BODY_NOT_CAPTURED;\n }\n if (request.body === null) {\n return '';\n }\n let copy;\n try {\n copy = request.clone();\n }\n catch (e) {\n return BODY_NOT_CAPTURED;\n }\n const stream = copy.body;\n if (!stream || typeof stream.getReader !== 'function') {\n return BODY_NOT_CAPTURED;\n }\n return runOutsideZone(() => readStreamHead(stream).then(({ bytes, complete }) => bytesToBodyText(bytes, kind, complete, null), () => BODY_NOT_CAPTURED));\n }\n completeFetch(record, response) {\n try {\n const headers = normalizeHeaders(response.headers);\n this.update(record, (entry) => {\n entry.duration = Math.round(now() - record.startedAt);\n entry.success = true;\n entry.response = {\n status: response.status,\n statusText: response.statusText || '',\n headers,\n responseText: BODY_PENDING,\n };\n });\n this.setResponseText(record, this.fetchResponseBody(response, headers));\n }\n catch (e) {\n // Ignore.\n }\n }\n /**\n * Streaming and binary responses are never cloned. Text responses are cloned synchronously (before\n * the app sees the response) and only the head of the clone is read, then the clone is cancelled.\n */\n fetchResponseBody(response, headers) {\n const kind = classifyContentType(headers['content-type']);\n const marker = markerForKind(kind);\n if (marker) {\n return marker;\n }\n if (response.type === 'opaque' || response.type === 'opaqueredirect') {\n return BODY_NOT_CAPTURED;\n }\n const body = response.body;\n if (body === null) {\n return '';\n }\n if (!body || typeof body.getReader !== 'function' || typeof response.clone !== 'function') {\n return BODY_NOT_CAPTURED;\n }\n let copy;\n try {\n copy = response.clone();\n }\n catch (e) {\n return BODY_NOT_CAPTURED;\n }\n const stream = copy.body;\n if (!stream) {\n return '';\n }\n const totalBytes = identityContentLength(headers);\n return runOutsideZone(() => readStreamHead(stream).then(({ bytes, complete }) => bytesToBodyText(bytes, kind, complete, complete ? null : totalBytes), () => BODY_NOT_CAPTURED));\n }\n // ------------------------------------------------------------------ XHR\n patchXhr() {\n const win = this.win;\n const Xhr = win.XMLHttpRequest;\n if (typeof Xhr !== 'function' || !Xhr || !Xhr.prototype) {\n return;\n }\n const capacitorXhr = win.CapacitorWebXMLHttpRequest;\n if ((capacitorXhr === null || capacitorXhr === void 0 ? void 0 : capacitorXhr.fullObject) && Xhr !== capacitorXhr.fullObject) {\n // CapacitorHttp replaced the constructor and re-assigns the prototype methods on every\n // construction, so the methods are hooked per instance instead.\n this.wrapXhrConstructor(Xhr);\n return;\n }\n const proto = Xhr.prototype;\n const originals = {\n open: proto.open,\n send: proto.send,\n setRequestHeader: proto.setRequestHeader,\n };\n if (typeof originals.open !== 'function' ||\n typeof originals.send !== 'function' ||\n typeof originals.setRequestHeader !== 'function') {\n return;\n }\n this.hookXhrMethods(proto, (_xhr, name) => originals[name]);\n }\n wrapXhrConstructor(Factory) {\n const capture = this;\n const Wrapped = function GleapXMLHttpRequest() {\n const xhr = new Factory();\n try {\n capture.hookXhrMethods(xhr, (instance, name) => Object.getPrototypeOf(instance)[name]);\n }\n catch (e) {\n // Ignore.\n }\n return xhr;\n };\n try {\n Object.assign(Wrapped, Factory);\n }\n catch (e) {\n // Ignore.\n }\n Wrapped.prototype = Factory.prototype;\n this.win.XMLHttpRequest = Wrapped;\n }\n hookXhrMethods(target, original) {\n const capture = this;\n target.open = function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n try {\n capture.onXhrOpen(this, args[0], args[1]);\n }\n catch (e) {\n // Ignore.\n }\n return original(this, 'open').apply(this, args);\n };\n target.setRequestHeader = function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n try {\n capture.onXhrHeader(this, args[0], args[1]);\n }\n catch (e) {\n // Ignore.\n }\n return original(this, 'setRequestHeader').apply(this, args);\n };\n target.send = function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n let record = null;\n try {\n record = capture.onXhrSend(this, args[0]);\n }\n catch (e) {\n record = null;\n }\n try {\n return original(this, 'send').apply(this, args);\n }\n catch (error) {\n if (record) {\n capture.fail(record, error);\n const state = capture.xhrStates.get(this);\n if (state && state.record === record) {\n state.record = null;\n }\n }\n throw error;\n }\n };\n }\n onXhrOpen(xhr, method, url) {\n this.xhrStates.set(xhr, {\n method: String(method || 'GET').toUpperCase(),\n url: this.resolveUrl(isUrl(url) ? url.href : url),\n headers: {},\n record: null,\n headersAt: null,\n failure: null,\n loaded: false,\n });\n }\n onXhrHeader(xhr, name, value) {\n const state = this.xhrStates.get(xhr);\n if (state && typeof name === 'string') {\n addHeader(state.headers, name, String(value));\n }\n }\n onXhrSend(xhr, body) {\n if (!this.active) {\n return null;\n }\n const state = this.xhrStates.get(xhr);\n if (!state || !this.shouldCapture(state.url)) {\n return null;\n }\n this.listenToXhr(xhr);\n state.failure = null;\n state.loaded = false;\n state.headersAt = null;\n const headers = Object.assign({}, state.headers);\n const payload = state.method === 'GET' || state.method === 'HEAD' ? '' : this.requestPayload(body, headers);\n state.record = this.createRecord(state.method, state.url, headers, payload);\n return state.record;\n }\n listenToXhr(xhr) {\n if (this.xhrsWithListeners.has(xhr)) {\n return;\n }\n this.xhrsWithListeners.add(xhr);\n const state = () => this.xhrStates.get(xhr);\n const guard = (fn) => () => {\n try {\n const current = state();\n if (current === null || current === void 0 ? void 0 : current.record) {\n fn(current);\n }\n }\n catch (e) {\n // Ignore.\n }\n };\n xhr.addEventListener('readystatechange', guard((current) => {\n if (current.headersAt === null && xhr.readyState >= 2) {\n current.headersAt = now();\n }\n }));\n xhr.addEventListener('load', guard((current) => (current.loaded = true)));\n xhr.addEventListener('abort', guard((current) => (current.failure = 'abort')));\n xhr.addEventListener('timeout', guard((current) => (current.failure = 'timeout')));\n xhr.addEventListener('error', guard((current) => (current.failure = 'error')));\n xhr.addEventListener('loadend', guard((current) => this.onXhrLoadEnd(xhr, current)));\n }\n onXhrLoadEnd(xhr, state) {\n const record = state.record;\n if (!record) {\n return;\n }\n state.record = null;\n const finishedAt = now();\n if (state.failure || !state.loaded) {\n let errorText = 'Network request failed';\n if (state.failure === 'abort') {\n errorText = 'Request aborted';\n }\n else if (state.failure === 'timeout') {\n errorText = xhr.timeout > 0 ? `Request timed out after ${xhr.timeout} ms` : 'Request timed out';\n }\n this.update(record, (entry) => {\n entry.duration = Math.round(finishedAt - record.startedAt);\n entry.success = false;\n entry.response = { errorText };\n });\n return;\n }\n let rawHeaders = '';\n try {\n rawHeaders = xhr.getAllResponseHeaders();\n }\n catch (e) {\n rawHeaders = '';\n }\n const headers = parseRawHeaders(rawHeaders);\n this.update(record, (entry) => {\n entry.duration = Math.round((state.headersAt !== null ? state.headersAt : finishedAt) - record.startedAt);\n entry.success = true;\n entry.response = {\n status: xhr.status,\n statusText: xhr.statusText || '',\n headers,\n responseText: BODY_PENDING,\n };\n });\n let body;\n try {\n body = this.xhrResponseBody(xhr, headers);\n }\n catch (e) {\n body = BODY_NOT_CAPTURED;\n }\n this.setResponseText(record, body);\n }\n /** The response is already in memory; only a bounded part of it is turned into text. */\n xhrResponseBody(xhr, headers) {\n const kind = classifyContentType(headers['content-type']);\n if (kind === 'streaming') {\n return STREAMING_BODY_OMITTED;\n }\n const responseType = xhr.responseType || '';\n if (kind === 'binary') {\n return BINARY_BODY_OMITTED;\n }\n if (responseType === '' || responseType === 'text') {\n const text = xhr.responseText;\n if (typeof text !== 'string') {\n return text === null || text === undefined ? '' : stringifyJsonHead(text);\n }\n if (kind === 'unknown' && text.indexOf('�') > -1) {\n // The browser had to replace invalid UTF-8: not a text body.\n return BINARY_BODY_OMITTED;\n }\n return capBodyText(text);\n }\n if (responseType === 'json') {\n const value = xhr.response;\n if (value === null || value === undefined) {\n return BODY_NOT_CAPTURED;\n }\n return typeof value === 'string' ? capBodyText(value) : stringifyJsonHead(value);\n }\n if (responseType === 'arraybuffer') {\n const bytes = toBytes(xhr.response);\n if (!bytes) {\n return BODY_NOT_CAPTURED;\n }\n return bytesToBodyText(bytes, kind, bytes.byteLength <= MAX_BODY_SIZE, bytes.byteLength);\n }\n if (responseType === 'blob') {\n const blob = xhr.response;\n if (!isBlob(blob)) {\n return BODY_NOT_CAPTURED;\n }\n return runOutsideZone(() => readBlobHead(blob, kind).catch(() => BODY_NOT_CAPTURED));\n }\n return BODY_NOT_CAPTURED;\n }\n // --------------------------------------------------------------- shared\n requestPayload(body, headers) {\n if (isUrlSearchParams(body) && !hasOwn(headers, 'content-type')) {\n // Sent with this content type by the browser; recorded so form fields can be redacted.\n headers['content-type'] = 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n const kind = classifyContentType(headers['content-type']);\n return runOutsideZone(() => captureRequestBody(body, kind));\n }\n createRecord(method, url, headers, payload) {\n const record = {\n id: this.nextId++,\n version: 0,\n startedAt: now(),\n entry: {\n date: new Date().toISOString(),\n type: method,\n url,\n request: {\n headers,\n payload: typeof payload === 'string' ? payload : BODY_PENDING,\n },\n },\n };\n if (typeof payload !== 'string') {\n const setPayload = (text) => this.update(record, (entry) => {\n if (entry.request) {\n entry.request.payload = text;\n }\n });\n runOutsideZone(() => payload.then(setPayload, () => setPayload(BODY_NOT_CAPTURED)));\n }\n this.records.push(record);\n if (this.records.length > MAX_NETWORK_ENTRIES) {\n this.records.splice(0, this.records.length - MAX_NETWORK_ENTRIES);\n }\n this.onChange();\n return record;\n }\n setResponseText(record, body) {\n const apply = (text) => this.update(record, (entry) => {\n if (entry.response && entry.response.errorText === undefined) {\n entry.response.responseText = text;\n }\n });\n if (typeof body === 'string') {\n apply(body);\n return;\n }\n runOutsideZone(() => body.then(apply, () => apply(BODY_NOT_CAPTURED)));\n }\n fail(record, error) {\n try {\n this.update(record, (entry) => {\n entry.duration = Math.round(now() - record.startedAt);\n entry.success = false;\n entry.response = { errorText: describeError(error) };\n });\n }\n catch (e) {\n // Ignore.\n }\n }\n update(record, mutate) {\n try {\n mutate(record.entry);\n }\n catch (e) {\n // Ignore.\n }\n record.version++;\n if (this.active && this.records.indexOf(record) > -1) {\n this.onChange();\n }\n }\n resolveUrl(url) {\n const raw = typeof url === 'string' ? url : String(url);\n try {\n const doc = this.win.document;\n const base = (doc === null || doc === void 0 ? void 0 : doc.baseURI) || this.win.location.href;\n return new URL(raw, base).href;\n }\n catch (e) {\n return raw;\n }\n }\n /**\n * Only real network traffic: http(s) URLs that are not Gleap's own and not the app's bundled files\n * served by Capacitor's local server (http(s)://localhost on Android; capacitor:// on iOS).\n */\n shouldCapture(url) {\n const lower = url.toLowerCase();\n if (lower.indexOf('http://') !== 0 && lower.indexOf('https://') !== 0) {\n return false;\n }\n for (const host of DEFAULT_NETWORK_LOG_BLACKLIST) {\n if (lower.indexOf(host) > -1) {\n return false;\n }\n }\n try {\n const location = this.win.location;\n if (location.hostname === 'localhost' && !location.port) {\n return new URL(url).origin !== location.origin;\n }\n }\n catch (e) {\n // Ignore.\n }\n return true;\n }\n}\nfunction isRequest(value) {\n return typeof Request !== 'undefined' && value instanceof Request;\n}\nfunction isUrl(value) {\n return typeof URL !== 'undefined' && value instanceof URL;\n}\nfunction hasOwn(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nfunction addHeader(headers, name, value) {\n const key = name.trim().toLowerCase();\n if (!key || key === '__proto__') {\n return;\n }\n headers[key] = hasOwn(headers, key) ? `${headers[key]}, ${value}` : value;\n}\n/** Headers | [name, value][] | record -> { lowercased name: value }, repeated names joined with \", \". */\nexport function normalizeHeaders(headers) {\n const result = {};\n if (!headers) {\n return result;\n }\n try {\n if (typeof Headers !== 'undefined' && headers instanceof Headers) {\n headers.forEach((value, name) => addHeader(result, name, value));\n return result;\n }\n if (Array.isArray(headers)) {\n for (const pair of headers) {\n if (pair && pair.length >= 2) {\n addHeader(result, String(pair[0]), String(pair[1]));\n }\n }\n return result;\n }\n if (typeof headers === 'object') {\n const record = headers;\n for (const name of Object.keys(record)) {\n const value = record[name];\n if (value !== undefined && value !== null) {\n addHeader(result, name, String(value));\n }\n }\n }\n }\n catch (e) {\n // Ignore.\n }\n return result;\n}\nfunction parseRawHeaders(raw) {\n const result = {};\n if (typeof raw !== 'string') {\n return result;\n }\n for (const line of raw.split(/\\r?\\n/)) {\n const index = line.indexOf(':');\n if (index > 0) {\n addHeader(result, line.slice(0, index), line.slice(index + 1).trim());\n }\n }\n return result;\n}\n/** content-length when it describes the decoded body (no content-encoding), else null. */\nfunction identityContentLength(headers) {\n const encoding = (headers['content-encoding'] || '').trim().toLowerCase();\n if (encoding && encoding !== 'identity') {\n return null;\n }\n const length = parseInt(headers['content-length'] || '', 10);\n return isFinite(length) && length >= 0 ? length : null;\n}\nfunction describeError(error) {\n try {\n if (error && typeof error === 'object') {\n const { name, message } = error;\n const text = typeof message === 'string' ? message : '';\n if (name === 'AbortError') {\n return text ? `Request aborted (${text})` : 'Request aborted';\n }\n if (name === 'TimeoutError') {\n return text ? `Request timed out (${text})` : 'Request timed out';\n }\n if (text) {\n return typeof name === 'string' && name ? `${name}: ${text}` : text;\n }\n }\n const text = String(error);\n return text && text !== 'undefined' ? text : 'Request failed';\n }\n catch (e) {\n return 'Request failed';\n }\n}\n//# sourceMappingURL=networkCapture.js.map","import { Capacitor } from '@capacitor/core';\nimport { ConsoleCapture } from './consoleCapture';\nimport { NetworkCapture } from './networkCapture';\nimport { createRedactionRules, isBlacklistedUrl, redactNetworkLogEntryOrStrip } from './redaction';\nimport { runOutsideZone } from './zone';\n/** Pushes are batched: at most one per channel every PUSH_DELAY_MS. */\nexport const PUSH_DELAY_MS = 500;\n/** A channel stops pushing after this many failed pushes in a row (e.g. an outdated native plugin). */\nconst MAX_FAILED_PUSHES = 3;\nconst GLOBAL_KEY = '__gleapWebViewLogCapture';\n/** Plugin calls that can lead to a report: the latest logs are pushed right before them. */\nconst FLUSH_BEFORE_METHODS = [\n 'sendSilentCrashReport',\n 'open',\n 'startFeedbackFlow',\n 'startClassicForm',\n 'startConversation',\n 'openConversation',\n 'openConversations',\n 'startBot',\n];\nconst createChannel = (name) => ({\n name,\n isDirty: false,\n timer: null,\n failures: 0,\n isStopped: false,\n hasPushedLogs: false,\n});\nconst toStringArray = (value) => Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];\n/**\n * Captures console output and fetch/XHR traffic inside the WebView of a native (iOS / Android) app\n * and hands them to the native SDK, which attaches them to tickets. The native SDKs cannot see\n * either: WebView requests do not go through URLSession / OkHttp, and console output only reaches\n * the native log in debug builds.\n */\nexport class WebViewLogCapture {\n constructor(win, target, platform) {\n this.win = win;\n this.target = target;\n this.platform = platform;\n this.consoleCapture = null;\n this.consoleChannel = createChannel('console');\n this.networkChannel = createChannel('network');\n this.isNetworkEnabled = false;\n this.remoteProps = [];\n this.localProps = [];\n this.remoteBlacklist = [];\n this.localBlacklist = [];\n this.rules = createRedactionRules([], []);\n this.rulesVersion = 0;\n this.redactedEntries = new Map();\n this.networkCapture = new NetworkCapture(win, () => this.markDirty(this.networkChannel));\n }\n start() {\n if (!this.nativeLogsConsole()) {\n this.consoleCapture = new ConsoleCapture(this.win, () => this.markDirty(this.consoleChannel));\n this.consoleCapture.install();\n }\n // The hooks go in now, but requests are only recorded once the project config says network\n // logs are enabled (like the JavaScript SDK), so nothing is held in memory before that.\n this.networkCapture.install();\n this.listenForConfig();\n }\n /**\n * Android debug builds (Capacitor's loggingBehavior) write the WebView console to logcat, which the\n * Android SDK already reads: capturing it here too would log every line twice. On iOS, Capacitor\n * prints it to stdout as \"⚡️ [level] - message\"; the iOS SDK drops those lines for Capacitor apps\n * (application type CAPACITOR, set in initialize), so iOS always captures here.\n */\n nativeLogsConsole() {\n const capacitor = this.win.Capacitor;\n return this.platform === 'android' && !!capacitor && capacitor.isLoggingEnabled === true;\n }\n listenForConfig() {\n try {\n const handle = this.target.addListener('logConfigLoaded', (config) => this.applyRemoteConfig(config));\n if (handle && typeof handle.catch === 'function') {\n handle.catch(() => undefined);\n }\n }\n catch (e) {\n // The native side predates the event: network logs stay off.\n }\n }\n applyRemoteConfig(config) {\n try {\n if (!config || typeof config !== 'object') {\n return;\n }\n this.remoteProps = toStringArray(config.networkLogPropsToIgnore);\n this.remoteBlacklist = toStringArray(config.networkLogBlacklist);\n this.updateRules();\n this.isNetworkEnabled = config.enableNetworkLogs === true;\n this.networkCapture.setActive(this.isNetworkEnabled);\n this.markDirty(this.networkChannel);\n }\n catch (e) {\n // Ignore.\n }\n }\n setLocalPropsToIgnore(props) {\n this.localProps = toStringArray(props);\n this.updateRules();\n }\n setLocalBlacklist(blacklist) {\n this.localBlacklist = toStringArray(blacklist);\n this.updateRules();\n }\n /** disableConsoleLogOverwrite(): restore the console and drop what was recorded (also natively). */\n disableConsole() {\n try {\n if (this.consoleCapture) {\n this.consoleCapture.uninstall();\n this.consoleCapture = null;\n }\n this.markDirty(this.consoleChannel);\n this.flushChannel(this.consoleChannel);\n }\n catch (e) {\n // Ignore.\n }\n }\n onInitialize() {\n this.markDirty(this.consoleChannel);\n this.markDirty(this.networkChannel);\n }\n /** Pushes pending changes now (before a plugin call that can produce a report). */\n flushNow() {\n try {\n this.flushChannel(this.consoleChannel);\n this.flushChannel(this.networkChannel);\n }\n catch (e) {\n // Ignore.\n }\n }\n updateRules() {\n this.rules = createRedactionRules([...this.remoteProps, ...this.localProps], [...this.remoteBlacklist, ...this.localBlacklist]);\n this.rulesVersion++;\n this.markDirty(this.networkChannel);\n }\n canPush(channel) {\n if (channel.isStopped) {\n return false;\n }\n if (channel.name === 'network') {\n return this.isNetworkEnabled || channel.hasPushedLogs;\n }\n return true;\n }\n markDirty(channel) {\n channel.isDirty = true;\n if (channel.timer !== null || !this.canPush(channel)) {\n return;\n }\n try {\n channel.timer = runOutsideZone(() => setTimeout(() => {\n channel.timer = null;\n this.flushChannel(channel);\n }, PUSH_DELAY_MS));\n }\n catch (e) {\n channel.timer = null;\n }\n }\n flushChannel(channel) {\n if (channel.timer !== null) {\n clearTimeout(channel.timer);\n channel.timer = null;\n }\n if (!channel.isDirty || !this.canPush(channel)) {\n return;\n }\n channel.isDirty = false;\n let push;\n if (channel.name === 'console') {\n const logs = this.consoleCapture ? this.consoleCapture.getEntries() : [];\n if (logs.length === 0 && !channel.hasPushedLogs) {\n return;\n }\n channel.hasPushedLogs = logs.length > 0;\n push = runOutsideZone(() => this.target.attachConsoleLogs({ logs }));\n }\n else {\n const logs = this.isNetworkEnabled ? this.buildNetworkLogs() : [];\n if (logs.length === 0 && !channel.hasPushedLogs) {\n return;\n }\n channel.hasPushedLogs = logs.length > 0;\n push = runOutsideZone(() => this.target.attachNetworkLogs({ logs }));\n }\n try {\n Promise.resolve(push).then(() => {\n channel.failures = 0;\n }, () => this.onPushFailed(channel));\n }\n catch (e) {\n this.onPushFailed(channel);\n }\n }\n onPushFailed(channel) {\n channel.failures++;\n if (channel.failures >= MAX_FAILED_PUSHES) {\n channel.isStopped = true;\n return;\n }\n this.markDirty(channel);\n }\n /** Redacted copies of the buffered entries; unchanged entries reuse their previous copy. */\n buildNetworkLogs() {\n const logs = [];\n const cache = new Map();\n for (const snapshot of this.networkCapture.getSnapshots()) {\n let cached = this.redactedEntries.get(snapshot.id);\n if (!cached || cached.version !== snapshot.version || cached.rulesVersion !== this.rulesVersion) {\n cached = {\n version: snapshot.version,\n rulesVersion: this.rulesVersion,\n entry: isBlacklistedUrl(snapshot.entry.url, this.rules)\n ? null\n : redactNetworkLogEntryOrStrip(snapshot.entry, this.rules),\n };\n }\n cache.set(snapshot.id, cached);\n if (cached.entry) {\n logs.push(cached.entry);\n }\n }\n this.redactedEntries = cache;\n return logs;\n }\n}\n/**\n * Starts the WebView log capture on iOS and Android (not on web, where the JavaScript SDK records\n * the console and network itself). Safe to call more than once.\n */\nexport function installWebViewLogCapture(target) {\n try {\n if (typeof window === 'undefined' || !Capacitor.isNativePlatform()) {\n return null;\n }\n const win = window;\n const existing = win[GLOBAL_KEY];\n if (existing) {\n return existing;\n }\n const capture = new WebViewLogCapture(window, target, Capacitor.getPlatform());\n win[GLOBAL_KEY] = capture;\n capture.start();\n return capture;\n }\n catch (e) {\n return null;\n }\n}\n/**\n * Wraps the registered plugin so the calls that affect the WebView capture reach it before they go\n * to native. Every other call passes through unchanged.\n */\nexport function wrapPluginWithLogCapture(plugin, capture) {\n return new Proxy(plugin, {\n get(target, property, receiver) {\n const value = Reflect.get(target, property, receiver);\n if (typeof property !== 'string' || typeof value !== 'function') {\n return value;\n }\n const method = value;\n const before = (hook) => (...args) => {\n try {\n const options = args[0];\n hook(options && typeof options === 'object' ? options : {});\n }\n catch (e) {\n // Never break the plugin call.\n }\n return method(...args);\n };\n switch (property) {\n case 'initialize':\n return before(() => capture.onInitialize());\n case 'setNetworkLogPropsToIgnore':\n return before((options) => capture.setLocalPropsToIgnore(options.propsToIgnore));\n case 'setNetworkLogsBlacklist':\n return before((options) => capture.setLocalBlacklist(options.blacklist));\n case 'disableConsoleLogOverwrite':\n return before(() => capture.disableConsole());\n default:\n if (FLUSH_BEFORE_METHODS.indexOf(property) > -1) {\n return before(() => capture.flushNow());\n }\n return value;\n }\n },\n });\n}\n//# sourceMappingURL=webViewLogs.js.map","import { registerPlugin } from '@capacitor/core';\nimport { installWebViewLogCapture, wrapPluginWithLogCapture, } from './logs/webViewLogs';\nconst GleapNative = registerPlugin('Gleap', {\n web: () => import('./web').then(m => new m.GleapWeb()),\n});\n// On iOS and Android, record the WebView's console from the moment the plugin is imported (and its\n// fetch/XHR traffic once the project config enables network logs), and hand both to the native SDK,\n// which cannot see either on its own.\nconst webViewLogCapture = installWebViewLogCapture(GleapNative);\nconst Gleap = webViewLogCapture\n ? wrapPluginWithLogCapture(GleapNative, webViewLogCapture)\n : GleapNative;\nconst registeredAgentTools = {};\nlet agentToolListenerAttached = false;\n/**\n * Registers the handler for a Frontend tool defined on your AI agent in the\n * Gleap dashboard. The agent calls the handler with the configured parameters\n * and waits for the returned result (string or object, which gets\n * stringified).\n */\nconst registerAgentTool = async (name, handler) => {\n if (!name || typeof handler !== 'function') {\n return;\n }\n registeredAgentTools[name] = handler;\n if (!agentToolListenerAttached) {\n agentToolListenerAttached = true;\n await Gleap.addListener('agentToolExecution', async (data) => {\n var _a;\n try {\n const { executionId, name: toolName, params } = data !== null && data !== void 0 ? data : {};\n if (!executionId || !toolName) {\n return;\n }\n let result;\n const toolHandler = registeredAgentTools[toolName];\n if (!toolHandler) {\n result = `No handler registered for tool '${toolName}' in the app. Register one via Gleap.registerAgentTool('${toolName}', handler).`;\n }\n else {\n try {\n const handlerResult = await toolHandler(params !== null && params !== void 0 ? params : {});\n result =\n typeof handlerResult === 'string'\n ? handlerResult\n : JSON.stringify(handlerResult !== null && handlerResult !== void 0 ? handlerResult : '');\n if (!result) {\n result = 'The action completed without returning a result.';\n }\n }\n catch (error) {\n result = `Tool execution failed: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : 'unknown error'}`;\n }\n }\n await Gleap.sendAgentToolResult({ executionId, result });\n }\n catch (exp) {\n // Ignore.\n }\n });\n }\n await Gleap.registerAgentTool({ name });\n};\nexport * from './definitions';\nexport { Gleap, registerAgentTool };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport Gleap from 'gleap';\nexport class GleapWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.pendingAgentToolExecutions = {};\n }\n async initialize(options) {\n if (GleapWeb.initialized) {\n return { initialized: true };\n }\n Gleap.initialize(options.API_KEY);\n GleapWeb.initialized = true;\n this.registerCallbackListeners();\n return { initialized: true };\n }\n async setRegion(options) {\n if (!(options === null || options === void 0 ? void 0 : options.region)) {\n throw new Error('No region provided');\n }\n Gleap.setRegion(options.region);\n return { region: options.region };\n }\n async setApiUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setApiUrl(options.url);\n return { url: options.url };\n }\n async setWSApiUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setWSApiUrl(options.url);\n return { url: options.url };\n }\n async setRealtimeHost(options) {\n if (!(options === null || options === void 0 ? void 0 : options.host)) {\n throw new Error('No host provided');\n }\n Gleap.setRealtimeHost(options.host);\n return { host: options.host };\n }\n async setFrameUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setFrameUrl(options.url);\n return { url: options.url };\n }\n async setBannerUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setBannerUrl(options.url);\n return { url: options.url };\n }\n async setModalUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setModalUrl(options.url);\n return { url: options.url };\n }\n registerCallbackListeners() {\n Gleap.on('open', () => {\n this.notifyCallbacks('open', {});\n });\n Gleap.on('initialized', () => {\n this.notifyCallbacks('initialized', {});\n });\n Gleap.on('close', () => {\n this.notifyCallbacks('close', {});\n });\n Gleap.on('feedback-sent', formData => {\n this.notifyCallbacks('feedback-sent', formData);\n });\n Gleap.on('outbound-sent', formData => {\n this.notifyCallbacks('outbound-sent', formData);\n });\n Gleap.on('tool-execution', toolExecution => {\n this.notifyCallbacks('tool-execution', toolExecution);\n });\n Gleap.on('flow-started', flow => {\n this.notifyCallbacks('flow-started', flow);\n });\n Gleap.on('error-while-sending', () => {\n this.notifyCallbacks('error-while-sending', {});\n });\n Gleap.on('unregister-pushmessage-group', groupName => {\n this.notifyCallbacks('unregister-pushmessage-group', groupName);\n });\n Gleap.on('register-pushmessage-group', groupName => {\n this.notifyCallbacks('register-pushmessage-group', groupName);\n });\n Gleap.on('unread-count-changed', groupName => {\n this.notifyCallbacks('notification-count-updated', groupName);\n });\n Gleap.registerCustomAction(customAction => {\n this.notifyCallbacks('custom-action-called', customAction);\n });\n }\n async registerAgentTool(options) {\n const gleapSdk = Gleap;\n if (typeof gleapSdk.registerAgentTool !== 'function') {\n console.warn('Gleap: registerAgentTool requires a newer version of the Gleap JS SDK.');\n return;\n }\n gleapSdk.registerAgentTool(options.name, (params) => new Promise(resolve => {\n const executionId = `web-${++GleapWeb.agentToolExecutionCounter}`;\n this.pendingAgentToolExecutions[executionId] = resolve;\n this.notifyListeners('agentToolExecution', {\n executionId,\n name: options.name,\n params: params !== null && params !== void 0 ? params : {},\n });\n }));\n }\n async sendAgentToolResult(options) {\n const resolve = this.pendingAgentToolExecutions[options.executionId];\n if (resolve) {\n delete this.pendingAgentToolExecutions[options.executionId];\n resolve(options.result);\n }\n }\n async setTicketAttribute(options) {\n Gleap.setTicketAttribute(options.key, options.value);\n return { setTicketAttribute: true };\n }\n async unsetTicketAttribute(options) {\n Gleap.unsetTicketAttribute(options.key);\n return { unsetTicketAttribute: true };\n }\n async clearTicketAttributes() {\n Gleap.clearTicketAttributes();\n return { clearTicketAttributes: true };\n }\n notifyCallbacks(event, data) {\n if (!GleapWeb.callbacks) {\n return;\n }\n for (var callbackId in GleapWeb.callbacks) {\n GleapWeb.callbacks[callbackId]({\n name: event,\n data,\n });\n }\n }\n async startClassicForm(options) {\n var _a;\n Gleap.startClassicForm((_a = options.formId) !== null && _a !== void 0 ? _a : '', options.showBackButton);\n return { classicFormStarted: true };\n }\n async startConversation(options) {\n Gleap.startConversation(options.showBackButton);\n return { conversationStarted: true };\n }\n async openConversation(options) {\n Gleap.openConversations(options.showBackButton);\n return { conversationsOpened: true };\n }\n async openConversations(options) {\n Gleap.openConversations(options.showBackButton);\n return { conversationsOpened: true };\n }\n // The JavaScript SDK opens `?gleapFile=` links itself on page load.\n async openProtectedFileFromUrl(_options) {\n return { opened: false };\n }\n async showSurvey(options) {\n Gleap.showSurvey(options.surveyId, options.format);\n return { opened: true };\n }\n async showFeedbackButton(options) {\n Gleap.showFeedbackButton(options.show ? true : false);\n return { feedbackButtonShown: true };\n }\n async setDisableInAppNotifications(options) {\n var _a;\n Gleap.setDisableInAppNotifications((_a = options.disableInAppNotifications) !== null && _a !== void 0 ? _a : false);\n return { inAppNotificationsDisabled: true };\n }\n async setDisableEnvData(options) {\n var _a;\n Gleap.setDisableEnvData((_a = options.disableEnvData) !== null && _a !== void 0 ? _a : false);\n return { envDataDisabled: true };\n }\n async setColorScheme(options) {\n if (!(options === null || options === void 0 ? void 0 : options.colorScheme)) {\n throw new Error('No colorScheme provided');\n }\n Gleap.setColorScheme(options.colorScheme, {\n lightBackgroundColor: options.lightBackgroundColor,\n darkBackgroundColor: options.darkBackgroundColor,\n });\n return { colorScheme: options.colorScheme };\n }\n async identify(options) {\n var userData = {\n name: options.name,\n email: options.email,\n phone: options.phone,\n companyId: options.companyId,\n companyName: options.companyName,\n avatar: options.avatar,\n sla: options.sla,\n plan: options.plan,\n value: options.value,\n customData: options.customData,\n };\n if (options.userHash) {\n Gleap.identify(options.userId, userData, options.userHash);\n }\n else {\n Gleap.identify(options.userId, userData);\n }\n return { identify: true };\n }\n async updateContact(options) {\n Gleap.updateContact(options);\n return { identify: true };\n }\n async setNetworkLogsBlacklist(options) {\n Gleap.setNetworkLogsBlacklist(options.blacklist);\n return { blacklistSet: true };\n }\n async setNetworkLogPropsToIgnore(options) {\n Gleap.setNetworkLogPropsToIgnore(options.propsToIgnore);\n return { propsToIgnoreSet: true };\n }\n async attachNetworkLogs() {\n // The JavaScript SDK records the page's requests itself on web.\n return { networkLogsAttached: false };\n }\n async attachConsoleLogs() {\n // The JavaScript SDK records the page's console itself on web.\n return { consoleLogsAttached: false };\n }\n async setEnvDataPropsToIgnore(options) {\n Gleap.setEnvDataPropsToIgnore(options.propsToIgnore);\n return { envDataPropsToIgnoreSet: true };\n }\n async setTags(options) {\n Gleap.setTags(options.tags);\n return { tagsSet: true };\n }\n async clearIdentity() {\n Gleap.clearIdentity();\n return { clearIdentity: true };\n }\n async getIdentity() {\n return { identity: Gleap.getIdentity() };\n }\n async isUserIdentified() {\n return { isUserIdentified: Gleap.isUserIdentified() };\n }\n async attachCustomData(options) {\n Gleap.attachCustomData(options.data);\n return { attachedCustomData: true };\n }\n async setCustomData(options) {\n Gleap.setCustomData(options.key, options.value);\n return { setCustomData: true };\n }\n async removeCustomData(options) {\n Gleap.removeCustomData(options.key);\n return { removedCustomData: true };\n }\n async clearCustomData() {\n Gleap.clearCustomData();\n return { clearedCustomData: true };\n }\n async trackEvent(options) {\n Gleap.trackEvent(options.name, options.data);\n return { loggedEvent: true };\n }\n async trackPage(options) {\n Gleap.trackEvent('pageView', {\n page: options.pageName,\n });\n return { trackedPage: true };\n }\n async startFeedbackFlow(options) {\n var _a;\n if (!options.feedbackFlow) {\n }\n Gleap.startFeedbackFlow((_a = options.feedbackFlow) !== null && _a !== void 0 ? _a : 'bugreporting', options.showBackButton);\n return { startedFeedbackFlow: true };\n }\n async startBot(options) {\n var _a;\n if (!options.botId) {\n }\n Gleap.startBot((_a = options.botId) !== null && _a !== void 0 ? _a : '', options.showBackButton);\n return { startedBot: true };\n }\n async setLanguage(options) {\n Gleap.setLanguage(options.languageCode);\n return { setLanguage: options.languageCode };\n }\n async log(options) {\n Gleap.log(options.message, options.logLevel);\n return { logged: true };\n }\n async setEventCallback(callback) {\n var callbackId = this.makeid(10);\n GleapWeb.callbacks[callbackId] = callback;\n return callbackId;\n }\n async sendSilentCrashReport(options) {\n Gleap.sendSilentCrashReport(options.description, options.severity, options.dataExclusion);\n return { sentSilentBugReport: true };\n }\n async open() {\n Gleap.open();\n return { openedWidget: true };\n }\n async openChecklists(options) {\n Gleap.openChecklists(options.showBackButton);\n return { opened: true };\n }\n async openChecklist(options) {\n Gleap.openChecklist(options.checklistId, options.showBackButton);\n return { opened: true };\n }\n async startChecklist(options) {\n Gleap.startChecklist(options.outboundId, options.showBackButton);\n return { opened: true };\n }\n async openFeatureRequests(options) {\n Gleap.openFeatureRequests(options.showBackButton);\n return { openedFeatureRequests: true };\n }\n async openNews(options) {\n Gleap.openNews(options.showBackButton);\n return { openedNews: true };\n }\n async openNewsArticle(options) {\n Gleap.openNewsArticle(options.articleId, options.showBackButton);\n return { opened: true };\n }\n async openHelpCenter(options) {\n Gleap.openHelpCenter(options.showBackButton);\n return { opened: true };\n }\n async openHelpCenterArticle(options) {\n Gleap.openHelpCenterArticle(options.articleId, options.showBackButton);\n return { opened: true };\n }\n async askAI(options) {\n Gleap.askAI(options.question, options.showBackButton);\n return { opened: true };\n }\n async openHelpCenterCollection(options) {\n Gleap.openHelpCenterCollection(options.collectionId, options.showBackButton);\n return { opened: true };\n }\n async searchHelpCenter(options) {\n Gleap.searchHelpCenter(options.term, options.showBackButton);\n return { opened: true };\n }\n async close() {\n Gleap.close();\n return { closedWidget: true };\n }\n async isOpened() {\n return { isOpened: Gleap.isOpened() };\n }\n async disableConsoleLogOverwrite() {\n Gleap.disableConsoleLogOverwrite();\n return { consoleLogDisabled: true };\n }\n async enableDebugConsoleLog() {\n return { debugConsoleLogEnabled: true };\n }\n async preFillForm(options) {\n Gleap.preFillForm(options.data);\n return { preFilledForm: true };\n }\n async addAttachment(_options) {\n throw this.unavailable('addAttachment not available for browsers');\n }\n async removeAllAttachments() {\n throw this.unavailable('removeAllAttachments not available for browsers');\n }\n async setNotificationContainerOffset(_options) {\n return { notificationContainerOffsetSet: true };\n }\n makeid(length) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n }\n}\nGleapWeb.callbacks = {};\nGleapWeb.initialized = false;\nGleapWeb.agentToolExecutionCounter = 0;\n//# sourceMappingURL=web.js.map"],"names":["BODY_NOT_CAPTURED","Capacitor","registerPlugin","WebPlugin","Gleap"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.cjs.js","sources":["esm/logs/format.js","esm/logs/consoleCapture.js","esm/logs/body.js","esm/logs/redaction.js","esm/logs/zone.js","esm/logs/networkCapture.js","esm/logs/webViewLogs.js","esm/index.js","esm/web.js"],"sourcesContent":["export const MAX_LOG_LENGTH = 1000;\nexport const MAX_ERROR_LOG_LENGTH = 5000;\nexport const TRUNCATED_SUFFIX = '… [truncated]';\nconst MAX_DEPTH = 5;\nconst MAX_KEYS = 50;\nconst MAX_ITEMS = 50;\n/** Keeps the head of a log line so the result (incl. the suffix) fits max chars. */\nexport function truncateLog(text, max) {\n if (text.length <= max) {\n return text;\n }\n let end = Math.max(0, max - TRUNCATED_SUFFIX.length);\n const last = text.charCodeAt(end - 1);\n if (last >= 0xd800 && last <= 0xdbff) {\n end--;\n }\n return text.slice(0, end) + TRUNCATED_SUFFIX;\n}\n/**\n * Formats console arguments like the browser console does (printf-style %s %d %i %f %o %O %c in\n * the first string), with objects as depth-limited JSON. Stops early once the text exceeds the\n * budget, so logging a huge object stays cheap.\n */\nexport function formatConsoleArgs(args, budget) {\n if (!args || args.length === 0) {\n return '';\n }\n let out = '';\n let index = 0;\n const first = args[0];\n if (typeof first === 'string' && first.indexOf('%') > -1 && args.length > 1) {\n index = 1;\n for (let i = 0; i < first.length && out.length <= budget; i++) {\n const char = first[i];\n if (char !== '%' || i + 1 >= first.length) {\n out += char;\n continue;\n }\n const specifier = first[i + 1];\n if (specifier === '%') {\n out += '%';\n i++;\n continue;\n }\n if ('sdifoOc'.indexOf(specifier) < 0 || index >= args.length) {\n out += char;\n continue;\n }\n const arg = args[index++];\n i++;\n switch (specifier) {\n case 's':\n out += typeof arg === 'string' ? arg : formatValue(arg, budget);\n break;\n case 'd':\n case 'i':\n out += formatInteger(arg);\n break;\n case 'f':\n out += formatFloat(arg);\n break;\n case 'o':\n case 'O':\n out += formatValue(arg, budget);\n break;\n default:\n // %c (CSS) consumes its argument and prints nothing.\n break;\n }\n }\n }\n for (; index < args.length && out.length <= budget; index++) {\n const arg = args[index];\n const text = typeof arg === 'string' ? arg : formatValue(arg, budget);\n out = out.length > 0 ? `${out} ${text}` : text;\n }\n return out;\n}\nfunction formatInteger(value) {\n if (typeof value === 'number') {\n return String(value < 0 ? Math.ceil(value) : Math.floor(value));\n }\n if (typeof value === 'bigint') {\n return String(value);\n }\n if (typeof value === 'string') {\n return String(parseInt(value, 10));\n }\n return 'NaN';\n}\nfunction formatFloat(value) {\n if (typeof value === 'number') {\n return String(value);\n }\n if (typeof value === 'string') {\n return String(parseFloat(value));\n }\n return 'NaN';\n}\n/** A single value as text: strings as they are, errors with their stack, objects as JSON. */\nexport function formatValue(value, budget) {\n try {\n if (typeof value === 'string') {\n return value;\n }\n if (isError(value)) {\n return formatError(value);\n }\n if (value === null || (typeof value !== 'object' && typeof value !== 'function')) {\n return formatPrimitive(value);\n }\n const serializer = new Serializer(budget);\n serializer.write(value, 0);\n return serializer.result();\n }\n catch (e) {\n return '[unserializable value]';\n }\n}\n/** \"Name: message\" followed by the stack (V8 stacks already start with that line). */\nexport function formatError(error) {\n try {\n const err = error;\n const name = typeof err.name === 'string' && err.name ? err.name : 'Error';\n const message = typeof err.message === 'string' ? err.message : '';\n const head = message ? `${name}: ${message}` : name;\n const stack = typeof err.stack === 'string' ? err.stack.trim() : '';\n if (!stack) {\n return head;\n }\n if (stack.indexOf(head) === 0) {\n return stack;\n }\n return `${head}\\n${stack}`;\n }\n catch (e) {\n return 'Error';\n }\n}\nexport function isError(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n if (typeof Error !== 'undefined' && value instanceof Error) {\n return true;\n }\n const candidate = value;\n return (typeof candidate.message === 'string' && typeof candidate.stack === 'string' && typeof candidate.name === 'string');\n}\nfunction formatPrimitive(value) {\n if (typeof value === 'bigint') {\n return `${value}n`;\n }\n if (typeof value === 'symbol') {\n return value.toString();\n }\n return String(value);\n}\nfunction describeFunction(value) {\n const name = value.name;\n return `[Function: ${typeof name === 'string' && name ? name : 'anonymous'}]`;\n}\nfunction describeNode(value) {\n if (typeof Node === 'undefined' || !(value instanceof Node)) {\n return null;\n }\n if (typeof Element !== 'undefined' && value instanceof Element) {\n let text = `<${value.tagName.toLowerCase()}`;\n if (value.id) {\n text += `#${value.id}`;\n }\n const className = value.getAttribute('class');\n if (className) {\n text += `.${className.trim().split(/\\s+/).join('.')}`;\n }\n return `${text}>`;\n }\n return value.nodeName;\n}\nfunction constructorName(value) {\n try {\n const proto = Object.getPrototypeOf(value);\n if (!proto) {\n return '';\n }\n const ctor = proto.constructor;\n const name = ctor && typeof ctor.name === 'string' ? ctor.name : '';\n return name === 'Object' ? '' : name;\n }\n catch (e) {\n return '';\n }\n}\n/** JSON-like serialiser with depth, key and length limits and circular protection. */\nclass Serializer {\n constructor(budget) {\n this.budget = budget;\n this.parts = [];\n this.length = 0;\n this.ancestors = [];\n }\n result() {\n return this.parts.join('');\n }\n isFull() {\n return this.length > this.budget;\n }\n push(text) {\n if (this.isFull()) {\n return;\n }\n this.parts.push(text);\n this.length += text.length;\n }\n write(value, depth) {\n if (this.isFull()) {\n return;\n }\n if (value === null || value === undefined) {\n this.push(String(value));\n return;\n }\n switch (typeof value) {\n case 'string':\n this.push(JSON.stringify(value));\n return;\n case 'number':\n case 'boolean':\n case 'bigint':\n case 'symbol':\n this.push(formatPrimitive(value));\n return;\n case 'function':\n this.push(describeFunction(value));\n return;\n default:\n break;\n }\n this.writeObject(value, depth);\n }\n writeObject(value, depth) {\n if (this.ancestors.indexOf(value) > -1) {\n this.push('[Circular]');\n return;\n }\n if (isError(value)) {\n this.push(JSON.stringify(formatError(value).split('\\n')[0]));\n return;\n }\n if (value instanceof Date) {\n this.push(isNaN(value.getTime()) ? '\"Invalid Date\"' : JSON.stringify(value.toISOString()));\n return;\n }\n if (value instanceof RegExp) {\n this.push(String(value));\n return;\n }\n const node = describeNode(value);\n if (node !== null) {\n this.push(node);\n return;\n }\n if (typeof window !== 'undefined' && value === window) {\n this.push('[Window]');\n return;\n }\n if (typeof ArrayBuffer !== 'undefined') {\n if (value instanceof ArrayBuffer) {\n this.push(`[ArrayBuffer(${value.byteLength})]`);\n return;\n }\n if (ArrayBuffer.isView(value)) {\n const length = value.length;\n this.push(`[${constructorName(value) || 'ArrayBufferView'}(${typeof length === 'number' ? length : value.byteLength})]`);\n return;\n }\n }\n if (typeof Promise !== 'undefined' && value instanceof Promise) {\n this.push('[Promise]');\n return;\n }\n const isArray = Array.isArray(value);\n if (depth >= MAX_DEPTH) {\n this.push(isArray ? `[Array(${value.length})]` : '[Object]');\n return;\n }\n this.ancestors.push(value);\n try {\n if (isArray) {\n this.writeArray(value, depth);\n }\n else if (typeof Map !== 'undefined' && value instanceof Map) {\n this.writeMap(value, depth);\n }\n else if (typeof Set !== 'undefined' && value instanceof Set) {\n this.writeSet(value, depth);\n }\n else {\n this.writePlainObject(value, depth);\n }\n }\n finally {\n this.ancestors.pop();\n }\n }\n writeArray(value, depth) {\n this.push('[');\n const count = Math.min(value.length, MAX_ITEMS);\n for (let i = 0; i < count && !this.isFull(); i++) {\n if (i > 0) {\n this.push(',');\n }\n this.write(value[i], depth + 1);\n }\n if (value.length > MAX_ITEMS) {\n this.push(`,\"… ${value.length - MAX_ITEMS} more\"`);\n }\n this.push(']');\n }\n writeMap(value, depth) {\n this.push(`Map(${value.size}) {`);\n let count = 0;\n value.forEach((item, key) => {\n if (count >= MAX_ITEMS || this.isFull()) {\n return;\n }\n if (count > 0) {\n this.push(', ');\n }\n this.write(key, depth + 1);\n this.push(' => ');\n this.write(item, depth + 1);\n count++;\n });\n this.push('}');\n }\n writeSet(value, depth) {\n this.push(`Set(${value.size}) {`);\n let count = 0;\n value.forEach((item) => {\n if (count >= MAX_ITEMS || this.isFull()) {\n return;\n }\n if (count > 0) {\n this.push(', ');\n }\n this.write(item, depth + 1);\n count++;\n });\n this.push('}');\n }\n writePlainObject(value, depth) {\n const record = value;\n if (typeof record.toJSON === 'function') {\n let converted;\n try {\n converted = record.toJSON();\n }\n catch (e) {\n converted = undefined;\n }\n if (converted !== undefined && converted !== value) {\n this.write(converted, depth + 1);\n return;\n }\n }\n const name = constructorName(value);\n if (name) {\n this.push(`${name} `);\n }\n this.push('{');\n const keys = Object.keys(record);\n const count = Math.min(keys.length, MAX_KEYS);\n for (let i = 0; i < count && !this.isFull(); i++) {\n if (i > 0) {\n this.push(',');\n }\n this.push(`${JSON.stringify(keys[i])}:`);\n let child;\n try {\n child = record[keys[i]];\n }\n catch (e) {\n child = '[getter threw]';\n }\n this.write(child, depth + 1);\n }\n if (keys.length > MAX_KEYS) {\n this.push(`,\"…\":\"${keys.length - MAX_KEYS} more keys\"`);\n }\n this.push('}');\n }\n}\n//# sourceMappingURL=format.js.map","import { MAX_ERROR_LOG_LENGTH, MAX_LOG_LENGTH, formatConsoleArgs, formatError, formatValue, isError, truncateLog, } from './format';\nexport const MAX_CONSOLE_ENTRIES = 500;\nconst PATCHED_METHODS = {\n log: 'INFO',\n info: 'INFO',\n debug: 'INFO',\n warn: 'WARNING',\n error: 'ERROR',\n};\n/**\n * Records the WebView console. Methods are patched in place on the existing console object (never\n * replaced) and always call through to what was there before.\n */\nexport class ConsoleCapture {\n constructor(win, onChange) {\n this.win = win;\n this.onChange = onChange;\n this.entries = [];\n this.patched = [];\n this.active = false;\n this.isRecording = false;\n this.errorListener = null;\n this.rejectionListener = null;\n }\n install() {\n if (this.active) {\n return;\n }\n this.active = true;\n this.patchConsole();\n this.listenForUncaughtErrors();\n }\n /** Restores the console methods that are still ours, stops listening and drops what was recorded. */\n uninstall() {\n this.active = false;\n const console = this.win.console;\n for (const method of this.patched) {\n try {\n if (console[method.name] === method.wrapper) {\n console[method.name] = method.original;\n }\n }\n catch (e) {\n // The inactive wrapper keeps calling through.\n }\n }\n this.patched = [];\n if (this.errorListener) {\n this.win.removeEventListener('error', this.errorListener);\n this.errorListener = null;\n }\n if (this.rejectionListener) {\n this.win.removeEventListener('unhandledrejection', this.rejectionListener);\n this.rejectionListener = null;\n }\n this.entries = [];\n }\n getEntries() {\n return this.entries.slice();\n }\n record(priority, text) {\n if (!this.active || !text) {\n return;\n }\n this.entries.push({\n date: new Date().toISOString(),\n priority,\n log: truncateLog(text, priority === 'ERROR' ? MAX_ERROR_LOG_LENGTH : MAX_LOG_LENGTH),\n });\n if (this.entries.length > MAX_CONSOLE_ENTRIES) {\n this.entries.splice(0, this.entries.length - MAX_CONSOLE_ENTRIES);\n }\n this.onChange();\n }\n /** Formats and records; re-entrant calls (a getter that logs while being formatted) are dropped. */\n recordArgs(priority, args, prefix = '') {\n if (!this.active || this.isRecording) {\n return;\n }\n this.isRecording = true;\n try {\n const budget = priority === 'ERROR' ? MAX_ERROR_LOG_LENGTH : MAX_LOG_LENGTH;\n const text = formatConsoleArgs(args, budget);\n this.record(priority, prefix ? (text ? `${prefix} ${text}` : prefix) : text);\n }\n catch (e) {\n // Logging must never break the app.\n }\n finally {\n this.isRecording = false;\n }\n }\n patchConsole() {\n const console = this.win.console;\n if (!console) {\n return;\n }\n const capture = this;\n for (const name of Object.keys(PATCHED_METHODS)) {\n const priority = PATCHED_METHODS[name];\n this.patchMethod(console, name, function (original, args) {\n capture.recordArgs(priority, args);\n return original.apply(this, args);\n });\n }\n this.patchMethod(console, 'assert', function (original, args) {\n if (!args[0]) {\n capture.recordArgs('ERROR', args.slice(1), 'Assertion failed:');\n }\n return original.apply(this, args);\n });\n }\n patchMethod(console, name, body) {\n const original = console[name];\n if (typeof original !== 'function') {\n return;\n }\n const target = console;\n const wrapper = function (...args) {\n return body.call(this === undefined ? target : this, original, args);\n };\n try {\n console[name] = wrapper;\n }\n catch (e) {\n return;\n }\n if (console[name] === wrapper) {\n this.patched.push({\n name,\n original: original,\n wrapper,\n });\n }\n }\n listenForUncaughtErrors() {\n this.errorListener = (event) => {\n try {\n const errorEvent = event;\n if (typeof ErrorEvent !== 'undefined' && !(event instanceof ErrorEvent) && !errorEvent.error) {\n // Resource load errors are plain Events.\n return;\n }\n this.recordUncaughtError(errorEvent);\n }\n catch (e) {\n // Ignore.\n }\n };\n this.rejectionListener = (event) => {\n try {\n const reason = event.reason;\n const text = isError(reason) ? formatError(reason) : formatValue(reason, MAX_ERROR_LOG_LENGTH);\n this.recordGuarded(`Unhandled promise rejection: ${text}`);\n }\n catch (e) {\n // Ignore.\n }\n };\n this.win.addEventListener('error', this.errorListener);\n this.win.addEventListener('unhandledrejection', this.rejectionListener);\n }\n recordUncaughtError(event) {\n let text;\n if (event.error && isError(event.error)) {\n text = formatError(event.error);\n }\n else {\n text = event.message || formatValue(event.error, MAX_ERROR_LOG_LENGTH);\n if (event.filename) {\n text += ` (${event.filename}:${event.lineno || 0}:${event.colno || 0})`;\n }\n }\n this.recordGuarded(text.indexOf('Uncaught') === 0 ? text : `Uncaught ${text}`);\n }\n recordGuarded(text) {\n if (this.isRecording) {\n return;\n }\n this.isRecording = true;\n try {\n this.record('ERROR', text);\n }\n finally {\n this.isRecording = false;\n }\n }\n}\n//# sourceMappingURL=consoleCapture.js.map","/** Maximum captured size per body (request payload or response text). */\nexport const MAX_BODY_SIZE = 150000;\nexport const BINARY_BODY_OMITTED = '[binary body omitted]';\nexport const STREAMING_BODY_OMITTED = '[streaming body omitted]';\nexport const BODY_NOT_CAPTURED = '[body not captured]';\nexport const BODY_PENDING = '[body pending]';\nconst STREAMING_TYPES = [\n 'text/event-stream',\n 'application/x-ndjson',\n 'application/stream+json',\n 'multipart/x-mixed-replace',\n 'grpc',\n];\nconst TEXT_TYPES = ['json', 'xml', 'text/', 'javascript', 'x-www-form-urlencoded', 'graphql'];\nexport function classifyContentType(contentType) {\n if (typeof contentType !== 'string' || contentType.trim() === '') {\n return 'unknown';\n }\n const lower = contentType.toLowerCase();\n for (const type of STREAMING_TYPES) {\n if (lower.indexOf(type) > -1) {\n return 'streaming';\n }\n }\n for (const type of TEXT_TYPES) {\n if (lower.indexOf(type) > -1) {\n return 'text';\n }\n }\n return 'binary';\n}\nexport function markerForKind(kind) {\n if (kind === 'streaming') {\n return STREAMING_BODY_OMITTED;\n }\n if (kind === 'binary') {\n return BINARY_BODY_OMITTED;\n }\n return null;\n}\n/** UTF-8 byte length without allocating an encoded copy. */\nexport function utf8ByteLength(text) {\n let bytes = 0;\n for (let i = 0; i < text.length; i++) {\n const code = text.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n }\n else if (code < 0x800) {\n bytes += 2;\n }\n else if (code >= 0xd800 && code <= 0xdbff && i + 1 < text.length) {\n bytes += 4;\n i++;\n }\n else {\n bytes += 3;\n }\n }\n return bytes;\n}\n/** Cuts a string at max chars without splitting a surrogate pair. */\nexport function sliceHead(text, max) {\n if (text.length <= max) {\n return text;\n }\n let end = max;\n const last = text.charCodeAt(end - 1);\n if (last >= 0xd800 && last <= 0xdbff) {\n end--;\n }\n return text.slice(0, end);\n}\nexport function truncationMarker(totalBytes) {\n return `\\n… [truncated, ${totalBytes !== null && totalBytes > MAX_BODY_SIZE ? totalBytes : `more than ${MAX_BODY_SIZE}`} bytes]`;\n}\n/** Caps a text body at MAX_BODY_SIZE chars: keeps the head and appends the truncation marker. */\nexport function capBodyText(text) {\n if (text.length <= MAX_BODY_SIZE) {\n return text;\n }\n return sliceHead(text, MAX_BODY_SIZE) + truncationMarker(utf8ByteLength(text));\n}\n/**\n * Decodes bytes as UTF-8. With fatal (unknown content type) invalid UTF-8 yields null, so the caller\n * can mark the body as binary. A cut-off (incomplete) body keeps a split trailing character pending\n * instead of failing on it.\n */\nexport function decodeUtf8(bytes, fatal, complete) {\n if (typeof TextDecoder === 'undefined') {\n return null;\n }\n try {\n return new TextDecoder('utf-8', { fatal }).decode(bytes, {\n stream: !complete,\n });\n }\n catch (e) {\n return null;\n }\n}\n/**\n * Turns (at most MAX_BODY_SIZE) bytes into the logged text: decoded, capped, marked as truncated\n * when the body was longer, or the binary marker when it is not UTF-8 text.\n */\nexport function bytesToBodyText(bytes, kind, complete, totalBytes) {\n const head = bytes.byteLength > MAX_BODY_SIZE ? bytes.subarray(0, MAX_BODY_SIZE) : bytes;\n const cut = !complete || bytes.byteLength > MAX_BODY_SIZE;\n const text = decodeUtf8(head, kind === 'unknown', !cut);\n if (text === null) {\n return kind === 'unknown' ? BINARY_BODY_OMITTED : BODY_NOT_CAPTURED;\n }\n return cut ? text + truncationMarker(totalBytes) : text;\n}\n/**\n * Reads at most MAX_BODY_SIZE bytes (plus the rest of the chunk that crossed it) and cancels the\n * stream after that, so an endless or huge body is never read into memory.\n */\nexport async function readStreamHead(stream) {\n const reader = stream.getReader();\n const chunks = [];\n let received = 0;\n let complete = false;\n try {\n while (received <= MAX_BODY_SIZE) {\n const result = await reader.read();\n if (result.done) {\n complete = true;\n break;\n }\n const chunk = result.value;\n if (chunk && chunk.byteLength > 0) {\n chunks.push(chunk);\n received += chunk.byteLength;\n }\n }\n }\n finally {\n if (!complete) {\n try {\n reader.cancel().catch(() => undefined);\n }\n catch (e) {\n // Ignore.\n }\n }\n }\n const bytes = new Uint8Array(Math.min(received, MAX_BODY_SIZE + 1));\n let offset = 0;\n for (const chunk of chunks) {\n if (offset >= bytes.byteLength) {\n break;\n }\n const part = chunk.subarray(0, bytes.byteLength - offset);\n bytes.set(part, offset);\n offset += part.byteLength;\n }\n return { bytes, complete };\n}\n/** Reads the head of a blob (never the whole blob) and turns it into the logged text. */\nexport async function readBlobHead(blob, kind) {\n const head = blob.slice(0, MAX_BODY_SIZE);\n if (typeof head.arrayBuffer !== 'function') {\n return BODY_NOT_CAPTURED;\n }\n const buffer = await head.arrayBuffer();\n const complete = blob.size <= MAX_BODY_SIZE;\n return bytesToBodyText(new Uint8Array(buffer), kind, complete, complete ? null : blob.size);\n}\nexport function isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\nexport function isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\nexport function isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\nexport function isReadableStream(value) {\n return typeof ReadableStream !== 'undefined' && value instanceof ReadableStream;\n}\nexport function isDocument(value) {\n return typeof Document !== 'undefined' && value instanceof Document;\n}\n/** Byte view of an ArrayBuffer or ArrayBufferView, or null for anything else. */\nexport function toBytes(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return null;\n }\n if (value instanceof ArrayBuffer) {\n return new Uint8Array(value);\n }\n if (ArrayBuffer.isView(value)) {\n return new Uint8Array(value.buffer, value.byteOffset, value.byteLength);\n }\n return null;\n}\n/**\n * The logged request payload for a fetch/XHR body. Strings and buffers are captured synchronously;\n * blobs are read asynchronously (head only). Form data, streams and documents are not captured.\n */\nexport function captureRequestBody(body, kind) {\n if (body === undefined || body === null) {\n return '';\n }\n if (isReadableStream(body)) {\n return STREAMING_BODY_OMITTED;\n }\n const marker = markerForKind(kind);\n if (marker) {\n return marker;\n }\n if (typeof body === 'string') {\n return capBodyText(body);\n }\n if (isUrlSearchParams(body)) {\n return capBodyText(body.toString());\n }\n if (isFormData(body) || isDocument(body)) {\n return BODY_NOT_CAPTURED;\n }\n if (isBlob(body)) {\n const blobKind = kind === 'unknown' ? classifyContentType(body.type) : kind;\n const blobMarker = markerForKind(blobKind);\n if (blobMarker) {\n return blobMarker;\n }\n return readBlobHead(body, blobKind).catch(() => BODY_NOT_CAPTURED);\n }\n const bytes = toBytes(body);\n if (bytes) {\n return bytesToBodyText(bytes, kind, bytes.byteLength <= MAX_BODY_SIZE, bytes.byteLength);\n }\n try {\n return capBodyText(String(body));\n }\n catch (e) {\n return BODY_NOT_CAPTURED;\n }\n}\n/**\n * JSON.stringify for a parsed JSON value (XHR responseType \"json\") that stops once the output\n * exceeds MAX_BODY_SIZE, so a huge response is not serialised in full.\n */\nexport function stringifyJsonHead(value) {\n const parts = [];\n let length = 0;\n let full = false;\n const push = (text) => {\n if (full) {\n return;\n }\n parts.push(text);\n length += text.length;\n if (length > MAX_BODY_SIZE) {\n full = true;\n }\n };\n const write = (node) => {\n if (full) {\n return;\n }\n if (node === null || typeof node !== 'object') {\n const text = JSON.stringify(node);\n push(text === undefined ? 'null' : text);\n return;\n }\n if (Array.isArray(node)) {\n push('[');\n for (let i = 0; i < node.length && !full; i++) {\n if (i > 0) {\n push(',');\n }\n write(node[i]);\n }\n push(']');\n return;\n }\n push('{');\n let first = true;\n const record = node;\n for (const key of Object.keys(record)) {\n if (full) {\n break;\n }\n const child = record[key];\n if (child === undefined || typeof child === 'function') {\n continue;\n }\n push(`${first ? '' : ','}${JSON.stringify(key)}:`);\n first = false;\n write(child);\n }\n push('}');\n };\n write(value);\n const text = parts.join('');\n if (!full) {\n return text;\n }\n return sliceHead(text, MAX_BODY_SIZE) + truncationMarker(null);\n}\n//# sourceMappingURL=body.js.map","/** URLs containing one of these are never logged, in addition to the configured blacklist. */\nexport const DEFAULT_NETWORK_LOG_BLACKLIST = ['gleap.io', 'gleap.ai'];\nexport const REDACTED_VALUE = '[REDACTED]';\nexport const BODY_NOT_CAPTURED = '[body not captured]';\n/** Credential headers whose value is always masked (the header itself is kept). */\nconst ALWAYS_MASKED_HEADERS = ['authorization', 'proxy-authorization', 'cookie', 'set-cookie'];\n/**\n * Builds the redaction rules from the props to ignore and the blacklist (remote config and local\n * setter calls combined by the caller). Entries are trimmed, lowercased and deduplicated.\n */\nexport function createRedactionRules(propsToIgnore, blacklist) {\n const props = new Set();\n const paths = [];\n for (const raw of propsToIgnore || []) {\n if (typeof raw !== 'string') {\n continue;\n }\n const prop = raw.trim().toLowerCase();\n if (!prop || props.has(prop)) {\n continue;\n }\n props.add(prop);\n if (prop.indexOf('.') > -1) {\n const segments = prop.split('.').filter((segment) => segment.length > 0);\n if (segments.length > 1) {\n paths.push(segments);\n }\n }\n }\n const blacklistEntries = [];\n for (const raw of [...DEFAULT_NETWORK_LOG_BLACKLIST, ...(blacklist || [])]) {\n if (typeof raw !== 'string') {\n continue;\n }\n const entry = raw.trim().toLowerCase();\n if (entry && blacklistEntries.indexOf(entry) < 0) {\n blacklistEntries.push(entry);\n }\n }\n return { props, paths, blacklist: blacklistEntries };\n}\n/** Substring match (case-insensitive) against the blacklist, incl. the default Gleap hosts. */\nexport function isBlacklistedUrl(url, rules) {\n if (typeof url !== 'string') {\n return false;\n }\n const lowerUrl = url.toLowerCase();\n for (const entry of rules.blacklist) {\n if (lowerUrl.indexOf(entry) > -1) {\n return true;\n }\n }\n return false;\n}\n/**\n * Removes headers named like a prop (case-insensitive) and masks the credential headers.\n * Returns a new object; the input is not modified.\n */\nexport function redactHeaders(headers, rules) {\n if (!headers || typeof headers !== 'object') {\n return headers;\n }\n const result = {};\n for (const name of Object.keys(headers)) {\n const lowerName = name.toLowerCase();\n if (rules.props.has(lowerName)) {\n continue;\n }\n result[name] = ALWAYS_MASKED_HEADERS.indexOf(lowerName) > -1 ? REDACTED_VALUE : headers[name];\n }\n return result;\n}\n/**\n * Removes matching keys from a JSON body: every key equal to a prop at any depth (objects inside\n * arrays too), and dotted props additionally as a path from the root, then re-serialises compactly.\n * A body that looks like JSON but does not parse (e.g. cut at the size limit) gets the values of\n * matching keys masked in the text instead. Returns the body untouched when nothing matched.\n */\nexport function redactJsonBody(body, rules) {\n if (!body || rules.props.size === 0) {\n return body;\n }\n const firstChar = firstNonWhitespaceChar(body);\n if (firstChar !== '{' && firstChar !== '[') {\n return body;\n }\n let parsed;\n try {\n parsed = JSON.parse(body);\n }\n catch (e) {\n return maskJsonKeysInText(body, rules);\n }\n let changed = removeKeysAtAnyDepth(parsed, rules.props);\n for (const path of rules.paths) {\n if (removePath(parsed, path, 0)) {\n changed = true;\n }\n }\n return changed ? JSON.stringify(parsed) : body;\n}\n/**\n * Removes form fields (application/x-www-form-urlencoded) named like a prop. Kept fields keep their\n * original encoding; the body is returned untouched when nothing matched.\n */\nexport function redactFormBody(body, rules) {\n if (!body || rules.props.size === 0) {\n return body;\n }\n const filtered = filterParams(body, rules);\n return filtered === null ? body : filtered;\n}\n/** Removes query parameters named like a prop. The URL is returned untouched when nothing matched. */\nexport function redactUrl(url, rules) {\n if (typeof url !== 'string' || rules.props.size === 0) {\n return url;\n }\n const hashIndex = url.indexOf('#');\n const main = hashIndex > -1 ? url.slice(0, hashIndex) : url;\n const hash = hashIndex > -1 ? url.slice(hashIndex) : '';\n const queryIndex = main.indexOf('?');\n if (queryIndex < 0) {\n return url;\n }\n const filtered = filterParams(main.slice(queryIndex + 1), rules);\n if (filtered === null) {\n return url;\n }\n return main.slice(0, queryIndex) + (filtered ? `?${filtered}` : '') + hash;\n}\n/** Redacts one entry. Returns a new entry; the input is not modified. */\nexport function redactNetworkLogEntry(entry, rules) {\n const result = Object.assign({}, entry);\n result.url = redactUrl(entry.url, rules);\n if (entry.request) {\n const request = Object.assign({}, entry.request);\n const contentType = getHeader(entry.request.headers, 'content-type');\n request.headers = redactHeaders(entry.request.headers, rules);\n if (typeof request.payload === 'string') {\n request.payload = redactBody(request.payload, contentType, rules);\n }\n result.request = request;\n }\n if (entry.response) {\n const response = Object.assign({}, entry.response);\n const contentType = getHeader(entry.response.headers, 'content-type');\n if (response.headers) {\n response.headers = redactHeaders(response.headers, rules);\n }\n if (typeof response.responseText === 'string') {\n response.responseText = redactBody(response.responseText, contentType, rules);\n }\n result.response = response;\n }\n return result;\n}\n/**\n * Drops blacklisted entries and redacts the rest. An entry that cannot be redacted (e.g. JSON nested\n * too deeply) is sent without bodies, headers and query instead of unredacted.\n */\nexport function redactNetworkLogs(entries, rules) {\n const result = [];\n for (const entry of entries) {\n if (!entry || isBlacklistedUrl(entry.url, rules)) {\n continue;\n }\n result.push(redactNetworkLogEntryOrStrip(entry, rules));\n }\n return result;\n}\n/** Like redactNetworkLogEntry, but never throws: falls back to an entry without any content. */\nexport function redactNetworkLogEntryOrStrip(entry, rules) {\n try {\n return redactNetworkLogEntry(entry, rules);\n }\n catch (e) {\n return stripNetworkLogEntry(entry);\n }\n}\n/** Keeps method, URL (without query), timing and status; drops headers and bodies. */\nexport function stripNetworkLogEntry(entry) {\n const url = typeof entry.url === 'string' ? entry.url.split(/[?#]/)[0] : '';\n const stripped = {\n date: entry.date,\n type: entry.type,\n url,\n duration: entry.duration,\n success: entry.success,\n request: { headers: {}, payload: BODY_NOT_CAPTURED },\n };\n if (entry.response) {\n stripped.response =\n typeof entry.response.errorText === 'string'\n ? { errorText: entry.response.errorText }\n : {\n status: entry.response.status,\n statusText: entry.response.statusText,\n headers: {},\n responseText: BODY_NOT_CAPTURED,\n };\n }\n return stripped;\n}\nfunction redactBody(body, contentType, rules) {\n if (!body || rules.props.size === 0) {\n return body;\n }\n const json = redactJsonBody(body, rules);\n if (json !== body) {\n return json;\n }\n const lowerContentType = (contentType || '').toLowerCase();\n if (lowerContentType.indexOf('x-www-form-urlencoded') > -1 || (!lowerContentType && looksLikeFormBody(body))) {\n return redactFormBody(body, rules);\n }\n return body;\n}\nfunction looksLikeFormBody(body) {\n return /^[^\\s=&]+=[^\\s&]*(?:&[^\\s=&]*(?:=[^\\s&]*)?)*$/.test(body);\n}\nfunction getHeader(headers, name) {\n if (!headers || typeof headers !== 'object') {\n return undefined;\n }\n for (const key of Object.keys(headers)) {\n if (key.toLowerCase() === name) {\n return headers[key];\n }\n }\n return undefined;\n}\nfunction firstNonWhitespaceChar(text) {\n const match = /\\S/.exec(text);\n return match ? match[0] : '';\n}\n/**\n * Masks the values of matching keys in JSON text that does not parse: every prop as a whole plus the\n * last segment of each dotted prop, case-insensitive. A string cut off at the end is masked too;\n * object and array values are left alone (their inner keys are matched on their own).\n */\nfunction maskJsonKeysInText(body, rules) {\n const keys = new Set(rules.props);\n for (const path of rules.paths) {\n keys.add(path[path.length - 1]);\n }\n let result = body;\n keys.forEach((key) => {\n // A JSON string never contains a raw line break, so a string cut at the end stops before the\n // \"\\n… [truncated\" marker instead of swallowing it.\n const pattern = new RegExp(`\"(${escapeRegExp(key)})\"(\\\\s*:\\\\s*)(\"(?:[^\"\\\\\\\\\\\\r\\\\n]|\\\\\\\\.)*\"?|-?\\\\d[0-9.eE+-]*|true|false|null)`, 'gi');\n result = result.replace(pattern, `\"$1\"$2\"${REDACTED_VALUE}\"`);\n });\n return result === body ? body : result;\n}\nfunction escapeRegExp(text) {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n/** Removes every key equal to a prop at any depth. Iterative, so deep JSON cannot overflow the stack. */\nfunction removeKeysAtAnyDepth(root, props) {\n let changed = false;\n const stack = [root];\n while (stack.length > 0) {\n const node = stack.pop();\n if (Array.isArray(node)) {\n for (const item of node) {\n if (item && typeof item === 'object') {\n stack.push(item);\n }\n }\n }\n else if (node && typeof node === 'object') {\n const record = node;\n for (const key of Object.keys(record)) {\n if (props.has(key.toLowerCase())) {\n delete record[key];\n changed = true;\n }\n else {\n const child = record[key];\n if (child && typeof child === 'object') {\n stack.push(child);\n }\n }\n }\n }\n }\n return changed;\n}\n/** Removes a dotted path from the root; arrays on the way are applied to each element. */\nfunction removePath(node, segments, index) {\n if (Array.isArray(node)) {\n let changed = false;\n for (const item of node) {\n if (removePath(item, segments, index)) {\n changed = true;\n }\n }\n return changed;\n }\n if (!node || typeof node !== 'object') {\n return false;\n }\n const record = node;\n const segment = segments[index];\n const isLast = index === segments.length - 1;\n let changed = false;\n for (const key of Object.keys(record)) {\n if (key.toLowerCase() !== segment) {\n continue;\n }\n if (isLast) {\n delete record[key];\n changed = true;\n }\n else if (removePath(record[key], segments, index + 1)) {\n changed = true;\n }\n }\n return changed;\n}\n/**\n * Filters an urlencoded parameter list (query string or form body). Returns null when nothing was\n * removed, so callers can keep the original string.\n */\nfunction filterParams(params, rules) {\n const parts = params.split('&');\n const kept = [];\n let changed = false;\n for (const part of parts) {\n const equalsIndex = part.indexOf('=');\n const rawName = equalsIndex > -1 ? part.slice(0, equalsIndex) : part;\n if (rawName && paramNameMatches(decodeParamName(rawName), rules)) {\n changed = true;\n continue;\n }\n kept.push(part);\n }\n return changed ? kept.join('&') : null;\n}\nfunction decodeParamName(rawName) {\n try {\n return decodeURIComponent(rawName.replace(/\\+/g, ' '));\n }\n catch (e) {\n return rawName;\n }\n}\n/**\n * A param matches when its whole name equals a prop. Bracket names (user[password]) are treated like\n * nested JSON keys: any segment equal to a prop, or a dotted prop matching the leading segments.\n */\nfunction paramNameMatches(name, rules) {\n const lowerName = name.toLowerCase();\n if (rules.props.has(lowerName)) {\n return true;\n }\n if (lowerName.indexOf('[') < 0) {\n return false;\n }\n const segments = lowerName\n .replace(/\\]/g, '')\n .split('[')\n .filter((segment) => segment.length > 0);\n if (segments.length < 2) {\n return false;\n }\n for (const segment of segments) {\n if (rules.props.has(segment)) {\n return true;\n }\n }\n for (const path of rules.paths) {\n if (path.length <= segments.length) {\n let matches = true;\n for (let i = 0; i < path.length; i++) {\n if (path[i] !== segments[i]) {\n matches = false;\n break;\n }\n }\n if (matches) {\n return true;\n }\n }\n }\n return false;\n}\n//# sourceMappingURL=redaction.js.map","/**\n * Runs fn in zone.js' root zone when zone.js is loaded (Angular / Ionic apps), so the plugin's\n * timers and body reads do not trigger Angular change detection. Without zone.js it just runs fn.\n */\nexport function runOutsideZone(fn) {\n const zone = typeof globalThis !== 'undefined'\n ? globalThis.Zone\n : undefined;\n const root = zone === null || zone === void 0 ? void 0 : zone.root;\n if (root && typeof root.run === 'function') {\n return root.run(fn);\n }\n return fn();\n}\n//# sourceMappingURL=zone.js.map","import { BINARY_BODY_OMITTED, BODY_NOT_CAPTURED, BODY_PENDING, MAX_BODY_SIZE, STREAMING_BODY_OMITTED, bytesToBodyText, capBodyText, captureRequestBody, classifyContentType, isBlob, isUrlSearchParams, markerForKind, readBlobHead, readStreamHead, stringifyJsonHead, toBytes, } from './body';\nimport { DEFAULT_NETWORK_LOG_BLACKLIST } from './redaction';\nimport { runOutsideZone } from './zone';\nexport const MAX_NETWORK_ENTRIES = 30;\nconst now = () => typeof performance !== 'undefined' && typeof performance.now === 'function' ? performance.now() : Date.now();\n/**\n * Records fetch and XMLHttpRequest calls made inside the WebView. The hooks never alter or delay the\n * request: they only read what the app passes in and what comes back, and every hook is guarded so\n * a logging failure cannot break the app's networking.\n */\nexport class NetworkCapture {\n constructor(win, onChange) {\n this.win = win;\n this.onChange = onChange;\n this.records = [];\n this.nextId = 1;\n this.active = false;\n this.isInstalled = false;\n this.xhrStates = new WeakMap();\n this.xhrsWithListeners = new WeakSet();\n }\n /** Installs the hooks inactive: nothing is recorded until setActive(true). */\n install() {\n if (this.isInstalled) {\n return;\n }\n this.isInstalled = true;\n try {\n this.patchFetch();\n }\n catch (e) {\n // Ignore.\n }\n try {\n this.patchXhr();\n }\n catch (e) {\n // Ignore.\n }\n }\n /** Inactive: the hooks stay in place but only call through, and the buffer is dropped. */\n setActive(active) {\n this.active = active;\n if (!active) {\n this.records = [];\n }\n }\n getSnapshots() {\n return this.records.map((record) => ({\n id: record.id,\n version: record.version,\n entry: record.entry,\n }));\n }\n // ---------------------------------------------------------------- fetch\n patchFetch() {\n const win = this.win;\n const originalFetch = win.fetch;\n if (typeof originalFetch !== 'function') {\n return;\n }\n const capture = this;\n win.fetch = function gleapFetch() {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n let record = null;\n if (capture.active) {\n try {\n record = capture.startFetch(args[0], args[1]);\n }\n catch (e) {\n record = null;\n }\n }\n let result;\n try {\n result = originalFetch.apply(this, args);\n }\n catch (error) {\n if (record) {\n capture.fail(record, error);\n }\n throw error;\n }\n const promise = result;\n if (!record || !promise || typeof promise.then !== 'function') {\n return result;\n }\n const tracked = record;\n return promise.then((response) => {\n capture.completeFetch(tracked, response);\n return response;\n }, (error) => {\n capture.fail(tracked, error);\n throw error;\n });\n };\n }\n startFetch(input, init) {\n const url = this.resolveUrl(isRequest(input) ? input.url : isUrl(input) ? input.href : input);\n if (!this.shouldCapture(url)) {\n return null;\n }\n const request = isRequest(input) ? input : null;\n const options = init && typeof init === 'object' ? init : undefined;\n const method = String((options === null || options === void 0 ? void 0 : options.method) || (request === null || request === void 0 ? void 0 : request.method) || 'GET').toUpperCase();\n const headers = normalizeHeaders((options === null || options === void 0 ? void 0 : options.headers) !== undefined ? options.headers : request ? request.headers : undefined);\n let payload = '';\n if ((options === null || options === void 0 ? void 0 : options.body) !== undefined && (options === null || options === void 0 ? void 0 : options.body) !== null) {\n payload = this.requestPayload(options.body, headers);\n }\n else if (request && method !== 'GET' && method !== 'HEAD') {\n payload = this.requestObjectPayload(request, headers);\n }\n return this.createRecord(method, url, headers, payload);\n }\n /** The body of a Request object: read from a clone (made before fetch consumes it), head only. */\n requestObjectPayload(request, headers) {\n const kind = classifyContentType(headers['content-type']);\n const marker = markerForKind(kind);\n if (marker) {\n return marker;\n }\n if (typeof Request === 'undefined' || !('body' in Request.prototype)) {\n return BODY_NOT_CAPTURED;\n }\n if (request.body === null) {\n return '';\n }\n let copy;\n try {\n copy = request.clone();\n }\n catch (e) {\n return BODY_NOT_CAPTURED;\n }\n const stream = copy.body;\n if (!stream || typeof stream.getReader !== 'function') {\n return BODY_NOT_CAPTURED;\n }\n return runOutsideZone(() => readStreamHead(stream).then(({ bytes, complete }) => bytesToBodyText(bytes, kind, complete, null), () => BODY_NOT_CAPTURED));\n }\n completeFetch(record, response) {\n try {\n const headers = normalizeHeaders(response.headers);\n this.update(record, (entry) => {\n entry.duration = Math.round(now() - record.startedAt);\n entry.success = true;\n entry.response = {\n status: response.status,\n statusText: response.statusText || '',\n headers,\n responseText: BODY_PENDING,\n };\n });\n this.setResponseText(record, this.fetchResponseBody(response, headers));\n }\n catch (e) {\n // Ignore.\n }\n }\n /**\n * Streaming and binary responses are never cloned. Text responses are cloned synchronously (before\n * the app sees the response) and only the head of the clone is read, then the clone is cancelled.\n */\n fetchResponseBody(response, headers) {\n const kind = classifyContentType(headers['content-type']);\n const marker = markerForKind(kind);\n if (marker) {\n return marker;\n }\n if (response.type === 'opaque' || response.type === 'opaqueredirect') {\n return BODY_NOT_CAPTURED;\n }\n const body = response.body;\n if (body === null) {\n return '';\n }\n if (!body || typeof body.getReader !== 'function' || typeof response.clone !== 'function') {\n return BODY_NOT_CAPTURED;\n }\n let copy;\n try {\n copy = response.clone();\n }\n catch (e) {\n return BODY_NOT_CAPTURED;\n }\n const stream = copy.body;\n if (!stream) {\n return '';\n }\n const totalBytes = identityContentLength(headers);\n return runOutsideZone(() => readStreamHead(stream).then(({ bytes, complete }) => bytesToBodyText(bytes, kind, complete, complete ? null : totalBytes), () => BODY_NOT_CAPTURED));\n }\n // ------------------------------------------------------------------ XHR\n patchXhr() {\n const win = this.win;\n const Xhr = win.XMLHttpRequest;\n if (typeof Xhr !== 'function' || !Xhr || !Xhr.prototype) {\n return;\n }\n const capacitorXhr = win.CapacitorWebXMLHttpRequest;\n if ((capacitorXhr === null || capacitorXhr === void 0 ? void 0 : capacitorXhr.fullObject) && Xhr !== capacitorXhr.fullObject) {\n // CapacitorHttp replaced the constructor and re-assigns the prototype methods on every\n // construction, so the methods are hooked per instance instead.\n this.wrapXhrConstructor(Xhr);\n return;\n }\n const proto = Xhr.prototype;\n const originals = {\n open: proto.open,\n send: proto.send,\n setRequestHeader: proto.setRequestHeader,\n };\n if (typeof originals.open !== 'function' ||\n typeof originals.send !== 'function' ||\n typeof originals.setRequestHeader !== 'function') {\n return;\n }\n this.hookXhrMethods(proto, (_xhr, name) => originals[name]);\n }\n wrapXhrConstructor(Factory) {\n const capture = this;\n const Wrapped = function GleapXMLHttpRequest() {\n const xhr = new Factory();\n try {\n capture.hookXhrMethods(xhr, (instance, name) => Object.getPrototypeOf(instance)[name]);\n }\n catch (e) {\n // Ignore.\n }\n return xhr;\n };\n try {\n Object.assign(Wrapped, Factory);\n }\n catch (e) {\n // Ignore.\n }\n Wrapped.prototype = Factory.prototype;\n this.win.XMLHttpRequest = Wrapped;\n }\n hookXhrMethods(target, original) {\n const capture = this;\n target.open = function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n try {\n capture.onXhrOpen(this, args[0], args[1]);\n }\n catch (e) {\n // Ignore.\n }\n return original(this, 'open').apply(this, args);\n };\n target.setRequestHeader = function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n try {\n capture.onXhrHeader(this, args[0], args[1]);\n }\n catch (e) {\n // Ignore.\n }\n return original(this, 'setRequestHeader').apply(this, args);\n };\n target.send = function () {\n // eslint-disable-next-line prefer-rest-params\n const args = arguments;\n let record = null;\n try {\n record = capture.onXhrSend(this, args[0]);\n }\n catch (e) {\n record = null;\n }\n try {\n return original(this, 'send').apply(this, args);\n }\n catch (error) {\n if (record) {\n capture.fail(record, error);\n const state = capture.xhrStates.get(this);\n if (state && state.record === record) {\n state.record = null;\n }\n }\n throw error;\n }\n };\n }\n onXhrOpen(xhr, method, url) {\n this.xhrStates.set(xhr, {\n method: String(method || 'GET').toUpperCase(),\n url: this.resolveUrl(isUrl(url) ? url.href : url),\n headers: {},\n record: null,\n headersAt: null,\n failure: null,\n loaded: false,\n });\n }\n onXhrHeader(xhr, name, value) {\n const state = this.xhrStates.get(xhr);\n if (state && typeof name === 'string') {\n addHeader(state.headers, name, String(value));\n }\n }\n onXhrSend(xhr, body) {\n if (!this.active) {\n return null;\n }\n const state = this.xhrStates.get(xhr);\n if (!state || !this.shouldCapture(state.url)) {\n return null;\n }\n this.listenToXhr(xhr);\n state.failure = null;\n state.loaded = false;\n state.headersAt = null;\n const headers = Object.assign({}, state.headers);\n const payload = state.method === 'GET' || state.method === 'HEAD' ? '' : this.requestPayload(body, headers);\n state.record = this.createRecord(state.method, state.url, headers, payload);\n return state.record;\n }\n listenToXhr(xhr) {\n if (this.xhrsWithListeners.has(xhr)) {\n return;\n }\n this.xhrsWithListeners.add(xhr);\n const state = () => this.xhrStates.get(xhr);\n const guard = (fn) => () => {\n try {\n const current = state();\n if (current === null || current === void 0 ? void 0 : current.record) {\n fn(current);\n }\n }\n catch (e) {\n // Ignore.\n }\n };\n xhr.addEventListener('readystatechange', guard((current) => {\n if (current.headersAt === null && xhr.readyState >= 2) {\n current.headersAt = now();\n }\n }));\n xhr.addEventListener('load', guard((current) => (current.loaded = true)));\n xhr.addEventListener('abort', guard((current) => (current.failure = 'abort')));\n xhr.addEventListener('timeout', guard((current) => (current.failure = 'timeout')));\n xhr.addEventListener('error', guard((current) => (current.failure = 'error')));\n xhr.addEventListener('loadend', guard((current) => this.onXhrLoadEnd(xhr, current)));\n }\n onXhrLoadEnd(xhr, state) {\n const record = state.record;\n if (!record) {\n return;\n }\n state.record = null;\n const finishedAt = now();\n if (state.failure || !state.loaded) {\n let errorText = 'Network request failed';\n if (state.failure === 'abort') {\n errorText = 'Request aborted';\n }\n else if (state.failure === 'timeout') {\n errorText = xhr.timeout > 0 ? `Request timed out after ${xhr.timeout} ms` : 'Request timed out';\n }\n this.update(record, (entry) => {\n entry.duration = Math.round(finishedAt - record.startedAt);\n entry.success = false;\n entry.response = { errorText };\n });\n return;\n }\n let rawHeaders = '';\n try {\n rawHeaders = xhr.getAllResponseHeaders();\n }\n catch (e) {\n rawHeaders = '';\n }\n const headers = parseRawHeaders(rawHeaders);\n this.update(record, (entry) => {\n entry.duration = Math.round((state.headersAt !== null ? state.headersAt : finishedAt) - record.startedAt);\n entry.success = true;\n entry.response = {\n status: xhr.status,\n statusText: xhr.statusText || '',\n headers,\n responseText: BODY_PENDING,\n };\n });\n let body;\n try {\n body = this.xhrResponseBody(xhr, headers);\n }\n catch (e) {\n body = BODY_NOT_CAPTURED;\n }\n this.setResponseText(record, body);\n }\n /** The response is already in memory; only a bounded part of it is turned into text. */\n xhrResponseBody(xhr, headers) {\n const kind = classifyContentType(headers['content-type']);\n if (kind === 'streaming') {\n return STREAMING_BODY_OMITTED;\n }\n const responseType = xhr.responseType || '';\n if (kind === 'binary') {\n return BINARY_BODY_OMITTED;\n }\n if (responseType === '' || responseType === 'text') {\n const text = xhr.responseText;\n if (typeof text !== 'string') {\n return text === null || text === undefined ? '' : stringifyJsonHead(text);\n }\n if (kind === 'unknown' && text.indexOf('�') > -1) {\n // The browser had to replace invalid UTF-8: not a text body.\n return BINARY_BODY_OMITTED;\n }\n return capBodyText(text);\n }\n if (responseType === 'json') {\n const value = xhr.response;\n if (value === null || value === undefined) {\n return BODY_NOT_CAPTURED;\n }\n return typeof value === 'string' ? capBodyText(value) : stringifyJsonHead(value);\n }\n if (responseType === 'arraybuffer') {\n const bytes = toBytes(xhr.response);\n if (!bytes) {\n return BODY_NOT_CAPTURED;\n }\n return bytesToBodyText(bytes, kind, bytes.byteLength <= MAX_BODY_SIZE, bytes.byteLength);\n }\n if (responseType === 'blob') {\n const blob = xhr.response;\n if (!isBlob(blob)) {\n return BODY_NOT_CAPTURED;\n }\n return runOutsideZone(() => readBlobHead(blob, kind).catch(() => BODY_NOT_CAPTURED));\n }\n return BODY_NOT_CAPTURED;\n }\n // --------------------------------------------------------------- shared\n requestPayload(body, headers) {\n if (isUrlSearchParams(body) && !hasOwn(headers, 'content-type')) {\n // Sent with this content type by the browser; recorded so form fields can be redacted.\n headers['content-type'] = 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n const kind = classifyContentType(headers['content-type']);\n return runOutsideZone(() => captureRequestBody(body, kind));\n }\n createRecord(method, url, headers, payload) {\n const record = {\n id: this.nextId++,\n version: 0,\n startedAt: now(),\n entry: {\n date: new Date().toISOString(),\n type: method,\n url,\n request: {\n headers,\n payload: typeof payload === 'string' ? payload : BODY_PENDING,\n },\n },\n };\n if (typeof payload !== 'string') {\n const setPayload = (text) => this.update(record, (entry) => {\n if (entry.request) {\n entry.request.payload = text;\n }\n });\n runOutsideZone(() => payload.then(setPayload, () => setPayload(BODY_NOT_CAPTURED)));\n }\n this.records.push(record);\n if (this.records.length > MAX_NETWORK_ENTRIES) {\n this.records.splice(0, this.records.length - MAX_NETWORK_ENTRIES);\n }\n this.onChange();\n return record;\n }\n setResponseText(record, body) {\n const apply = (text) => this.update(record, (entry) => {\n if (entry.response && entry.response.errorText === undefined) {\n entry.response.responseText = text;\n }\n });\n if (typeof body === 'string') {\n apply(body);\n return;\n }\n runOutsideZone(() => body.then(apply, () => apply(BODY_NOT_CAPTURED)));\n }\n fail(record, error) {\n try {\n this.update(record, (entry) => {\n entry.duration = Math.round(now() - record.startedAt);\n entry.success = false;\n entry.response = { errorText: describeError(error) };\n });\n }\n catch (e) {\n // Ignore.\n }\n }\n update(record, mutate) {\n try {\n mutate(record.entry);\n }\n catch (e) {\n // Ignore.\n }\n record.version++;\n if (this.active && this.records.indexOf(record) > -1) {\n this.onChange();\n }\n }\n resolveUrl(url) {\n const raw = typeof url === 'string' ? url : String(url);\n try {\n const doc = this.win.document;\n const base = (doc === null || doc === void 0 ? void 0 : doc.baseURI) || this.win.location.href;\n return new URL(raw, base).href;\n }\n catch (e) {\n return raw;\n }\n }\n /**\n * Only real network traffic: http(s) URLs that are not Gleap's own and not the app's bundled files\n * served by Capacitor's local server (http(s)://localhost on Android; capacitor:// on iOS).\n */\n shouldCapture(url) {\n const lower = url.toLowerCase();\n if (lower.indexOf('http://') !== 0 && lower.indexOf('https://') !== 0) {\n return false;\n }\n for (const host of DEFAULT_NETWORK_LOG_BLACKLIST) {\n if (lower.indexOf(host) > -1) {\n return false;\n }\n }\n try {\n const location = this.win.location;\n if (location.hostname === 'localhost' && !location.port) {\n return new URL(url).origin !== location.origin;\n }\n }\n catch (e) {\n // Ignore.\n }\n return true;\n }\n}\nfunction isRequest(value) {\n return typeof Request !== 'undefined' && value instanceof Request;\n}\nfunction isUrl(value) {\n return typeof URL !== 'undefined' && value instanceof URL;\n}\nfunction hasOwn(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nfunction addHeader(headers, name, value) {\n const key = name.trim().toLowerCase();\n if (!key || key === '__proto__') {\n return;\n }\n headers[key] = hasOwn(headers, key) ? `${headers[key]}, ${value}` : value;\n}\n/** Headers | [name, value][] | record -> { lowercased name: value }, repeated names joined with \", \". */\nexport function normalizeHeaders(headers) {\n const result = {};\n if (!headers) {\n return result;\n }\n try {\n if (typeof Headers !== 'undefined' && headers instanceof Headers) {\n headers.forEach((value, name) => addHeader(result, name, value));\n return result;\n }\n if (Array.isArray(headers)) {\n for (const pair of headers) {\n if (pair && pair.length >= 2) {\n addHeader(result, String(pair[0]), String(pair[1]));\n }\n }\n return result;\n }\n if (typeof headers === 'object') {\n const record = headers;\n for (const name of Object.keys(record)) {\n const value = record[name];\n if (value !== undefined && value !== null) {\n addHeader(result, name, String(value));\n }\n }\n }\n }\n catch (e) {\n // Ignore.\n }\n return result;\n}\nfunction parseRawHeaders(raw) {\n const result = {};\n if (typeof raw !== 'string') {\n return result;\n }\n for (const line of raw.split(/\\r?\\n/)) {\n const index = line.indexOf(':');\n if (index > 0) {\n addHeader(result, line.slice(0, index), line.slice(index + 1).trim());\n }\n }\n return result;\n}\n/** content-length when it describes the decoded body (no content-encoding), else null. */\nfunction identityContentLength(headers) {\n const encoding = (headers['content-encoding'] || '').trim().toLowerCase();\n if (encoding && encoding !== 'identity') {\n return null;\n }\n const length = parseInt(headers['content-length'] || '', 10);\n return isFinite(length) && length >= 0 ? length : null;\n}\nfunction describeError(error) {\n try {\n if (error && typeof error === 'object') {\n const { name, message } = error;\n const text = typeof message === 'string' ? message : '';\n if (name === 'AbortError') {\n return text ? `Request aborted (${text})` : 'Request aborted';\n }\n if (name === 'TimeoutError') {\n return text ? `Request timed out (${text})` : 'Request timed out';\n }\n if (text) {\n return typeof name === 'string' && name ? `${name}: ${text}` : text;\n }\n }\n const text = String(error);\n return text && text !== 'undefined' ? text : 'Request failed';\n }\n catch (e) {\n return 'Request failed';\n }\n}\n//# sourceMappingURL=networkCapture.js.map","import { Capacitor } from '@capacitor/core';\nimport { ConsoleCapture } from './consoleCapture';\nimport { NetworkCapture } from './networkCapture';\nimport { createRedactionRules, isBlacklistedUrl, redactNetworkLogEntryOrStrip } from './redaction';\nimport { runOutsideZone } from './zone';\n/** Pushes are batched: at most one per channel every PUSH_DELAY_MS. */\nexport const PUSH_DELAY_MS = 500;\n/** A channel stops pushing after this many failed pushes in a row (e.g. an outdated native plugin). */\nconst MAX_FAILED_PUSHES = 3;\nconst GLOBAL_KEY = '__gleapWebViewLogCapture';\n/** Plugin calls that can lead to a report: the latest logs are pushed right before them. */\nconst FLUSH_BEFORE_METHODS = [\n 'sendSilentCrashReport',\n 'open',\n 'startFeedbackFlow',\n 'startClassicForm',\n 'startConversation',\n 'openConversation',\n 'openConversations',\n 'startBot',\n];\nconst createChannel = (name) => ({\n name,\n isDirty: false,\n timer: null,\n failures: 0,\n isStopped: false,\n hasPushedLogs: false,\n});\nconst toStringArray = (value) => Array.isArray(value) ? value.filter((item) => typeof item === 'string') : [];\n/**\n * Captures console output and fetch/XHR traffic inside the WebView of a native (iOS / Android) app\n * and hands them to the native SDK, which attaches them to tickets. The native SDKs cannot see\n * either: WebView requests do not go through URLSession / OkHttp, and console output only reaches\n * the native log in debug builds.\n */\nexport class WebViewLogCapture {\n constructor(win, target, platform) {\n this.win = win;\n this.target = target;\n this.platform = platform;\n this.consoleCapture = null;\n this.consoleChannel = createChannel('console');\n this.networkChannel = createChannel('network');\n this.isNetworkEnabled = false;\n this.remoteProps = [];\n this.localProps = [];\n this.remoteBlacklist = [];\n this.localBlacklist = [];\n this.rules = createRedactionRules([], []);\n this.rulesVersion = 0;\n this.redactedEntries = new Map();\n this.networkCapture = new NetworkCapture(win, () => this.markDirty(this.networkChannel));\n }\n start() {\n if (!this.nativeLogsConsole()) {\n this.consoleCapture = new ConsoleCapture(this.win, () => this.markDirty(this.consoleChannel));\n this.consoleCapture.install();\n }\n // The hooks go in now, but requests are only recorded once the project config says network\n // logs are enabled (like the JavaScript SDK), so nothing is held in memory before that.\n this.networkCapture.install();\n this.listenForConfig();\n this.listenForFlush();\n }\n /**\n * Android debug builds (Capacitor's loggingBehavior) write the WebView console to logcat, which the\n * Android SDK already reads: capturing it here too would log every line twice. On iOS, Capacitor\n * prints it to stdout as \"⚡️ [level] - message\"; the iOS SDK drops those lines for Capacitor apps\n * (application type CAPACITOR, set in initialize), so iOS always captures here.\n */\n nativeLogsConsole() {\n const capacitor = this.win.Capacitor;\n return this.platform === 'android' && !!capacitor && capacitor.isLoggingEnabled === true;\n }\n listenForConfig() {\n try {\n const handle = this.target.addListener('logConfigLoaded', (config) => this.applyRemoteConfig(config));\n if (handle && typeof handle.catch === 'function') {\n handle.catch(() => undefined);\n }\n }\n catch (e) {\n // The native side predates the event: network logs stay off.\n }\n }\n /**\n * Capture requests: right before the native SDK collects the logs for a request, it asks for what is still\n * buffered here (pushed at most every PUSH_DELAY_MS otherwise) and waits up to 500 ms for the answer.\n */\n listenForFlush() {\n try {\n const handle = this.target.addListener('flushLogs', (data) => {\n const flushId = data && typeof data.flushId === 'string' ? data.flushId : null;\n runOutsideZone(() => this.flushNow().then(() => {\n if (flushId) {\n this.answerFlush(flushId);\n }\n }));\n });\n if (handle && typeof handle.catch === 'function') {\n handle.catch(() => undefined);\n }\n }\n catch (e) {\n // The native side predates the event: nothing asks for flushes.\n }\n }\n answerFlush(flushId) {\n try {\n Promise.resolve(this.target.logsFlushed({ flushId })).catch(() => undefined);\n }\n catch (e) {\n // The native side gives up waiting after 500 ms.\n }\n }\n applyRemoteConfig(config) {\n try {\n if (!config || typeof config !== 'object') {\n return;\n }\n this.remoteProps = toStringArray(config.networkLogPropsToIgnore);\n this.remoteBlacklist = toStringArray(config.networkLogBlacklist);\n this.updateRules();\n this.isNetworkEnabled = config.enableNetworkLogs === true;\n this.networkCapture.setActive(this.isNetworkEnabled);\n this.markDirty(this.networkChannel);\n }\n catch (e) {\n // Ignore.\n }\n }\n setLocalPropsToIgnore(props) {\n this.localProps = toStringArray(props);\n this.updateRules();\n }\n setLocalBlacklist(blacklist) {\n this.localBlacklist = toStringArray(blacklist);\n this.updateRules();\n }\n /** disableConsoleLogOverwrite(): restore the console and drop what was recorded (also natively). */\n disableConsole() {\n try {\n if (this.consoleCapture) {\n this.consoleCapture.uninstall();\n this.consoleCapture = null;\n }\n this.markDirty(this.consoleChannel);\n this.flushChannel(this.consoleChannel);\n }\n catch (e) {\n // Ignore.\n }\n }\n onInitialize() {\n this.markDirty(this.consoleChannel);\n this.markDirty(this.networkChannel);\n }\n /**\n * Pushes pending changes now (before a plugin call that can produce a report, or when the native SDK collects the\n * logs for a capture request). Resolves once the native side took them; never rejects.\n */\n flushNow() {\n const pushes = [];\n try {\n pushes.push(this.flushChannel(this.consoleChannel));\n pushes.push(this.flushChannel(this.networkChannel));\n }\n catch (e) {\n // Ignore.\n }\n return Promise.all(pushes).then(() => undefined, () => undefined);\n }\n updateRules() {\n this.rules = createRedactionRules([...this.remoteProps, ...this.localProps], [...this.remoteBlacklist, ...this.localBlacklist]);\n this.rulesVersion++;\n this.markDirty(this.networkChannel);\n }\n canPush(channel) {\n if (channel.isStopped) {\n return false;\n }\n if (channel.name === 'network') {\n return this.isNetworkEnabled || channel.hasPushedLogs;\n }\n return true;\n }\n markDirty(channel) {\n channel.isDirty = true;\n if (channel.timer !== null || !this.canPush(channel)) {\n return;\n }\n try {\n channel.timer = runOutsideZone(() => setTimeout(() => {\n channel.timer = null;\n this.flushChannel(channel);\n }, PUSH_DELAY_MS));\n }\n catch (e) {\n channel.timer = null;\n }\n }\n /** Resolves once the push it started (if any) was answered; never rejects. */\n flushChannel(channel) {\n if (channel.timer !== null) {\n clearTimeout(channel.timer);\n channel.timer = null;\n }\n if (!channel.isDirty || !this.canPush(channel)) {\n return Promise.resolve();\n }\n channel.isDirty = false;\n let push;\n if (channel.name === 'console') {\n const logs = this.consoleCapture ? this.consoleCapture.getEntries() : [];\n if (logs.length === 0 && !channel.hasPushedLogs) {\n return Promise.resolve();\n }\n channel.hasPushedLogs = logs.length > 0;\n push = runOutsideZone(() => this.target.attachConsoleLogs({ logs }));\n }\n else {\n const logs = this.isNetworkEnabled ? this.buildNetworkLogs() : [];\n if (logs.length === 0 && !channel.hasPushedLogs) {\n return Promise.resolve();\n }\n channel.hasPushedLogs = logs.length > 0;\n push = runOutsideZone(() => this.target.attachNetworkLogs({ logs }));\n }\n try {\n return Promise.resolve(push).then(() => {\n channel.failures = 0;\n }, () => this.onPushFailed(channel));\n }\n catch (e) {\n this.onPushFailed(channel);\n return Promise.resolve();\n }\n }\n onPushFailed(channel) {\n channel.failures++;\n if (channel.failures >= MAX_FAILED_PUSHES) {\n channel.isStopped = true;\n return;\n }\n this.markDirty(channel);\n }\n /** Redacted copies of the buffered entries; unchanged entries reuse their previous copy. */\n buildNetworkLogs() {\n const logs = [];\n const cache = new Map();\n for (const snapshot of this.networkCapture.getSnapshots()) {\n let cached = this.redactedEntries.get(snapshot.id);\n if (!cached || cached.version !== snapshot.version || cached.rulesVersion !== this.rulesVersion) {\n cached = {\n version: snapshot.version,\n rulesVersion: this.rulesVersion,\n entry: isBlacklistedUrl(snapshot.entry.url, this.rules)\n ? null\n : redactNetworkLogEntryOrStrip(snapshot.entry, this.rules),\n };\n }\n cache.set(snapshot.id, cached);\n if (cached.entry) {\n logs.push(cached.entry);\n }\n }\n this.redactedEntries = cache;\n return logs;\n }\n}\n/**\n * Starts the WebView log capture on iOS and Android (not on web, where the JavaScript SDK records\n * the console and network itself). Safe to call more than once.\n */\nexport function installWebViewLogCapture(target) {\n try {\n if (typeof window === 'undefined' || !Capacitor.isNativePlatform()) {\n return null;\n }\n const win = window;\n const existing = win[GLOBAL_KEY];\n if (existing) {\n return existing;\n }\n const capture = new WebViewLogCapture(window, target, Capacitor.getPlatform());\n win[GLOBAL_KEY] = capture;\n capture.start();\n return capture;\n }\n catch (e) {\n return null;\n }\n}\n/**\n * Wraps the registered plugin so the calls that affect the WebView capture reach it before they go\n * to native. Every other call passes through unchanged.\n */\nexport function wrapPluginWithLogCapture(plugin, capture) {\n return new Proxy(plugin, {\n get(target, property, receiver) {\n const value = Reflect.get(target, property, receiver);\n if (typeof property !== 'string' || typeof value !== 'function') {\n return value;\n }\n const method = value;\n const before = (hook) => (...args) => {\n try {\n const options = args[0];\n hook(options && typeof options === 'object' ? options : {});\n }\n catch (e) {\n // Never break the plugin call.\n }\n return method(...args);\n };\n switch (property) {\n case 'initialize':\n return before(() => capture.onInitialize());\n case 'setNetworkLogPropsToIgnore':\n return before((options) => capture.setLocalPropsToIgnore(options.propsToIgnore));\n case 'setNetworkLogsBlacklist':\n return before((options) => capture.setLocalBlacklist(options.blacklist));\n case 'disableConsoleLogOverwrite':\n return before(() => capture.disableConsole());\n default:\n if (FLUSH_BEFORE_METHODS.indexOf(property) > -1) {\n return before(() => capture.flushNow());\n }\n return value;\n }\n },\n });\n}\n//# sourceMappingURL=webViewLogs.js.map","import { registerPlugin } from '@capacitor/core';\nimport { installWebViewLogCapture, wrapPluginWithLogCapture, } from './logs/webViewLogs';\nconst GleapNative = registerPlugin('Gleap', {\n web: () => import('./web').then(m => new m.GleapWeb()),\n});\n// On iOS and Android, record the WebView's console from the moment the plugin is imported (and its\n// fetch/XHR traffic once the project config enables network logs), and hand both to the native SDK,\n// which cannot see either on its own.\nconst webViewLogCapture = installWebViewLogCapture(GleapNative);\nconst Gleap = webViewLogCapture\n ? wrapPluginWithLogCapture(GleapNative, webViewLogCapture)\n : GleapNative;\nconst registeredAgentTools = {};\nlet agentToolListenerAttached = false;\n/**\n * Registers the handler for a Frontend tool defined on your AI agent in the\n * Gleap dashboard. The agent calls the handler with the configured parameters\n * and waits for the returned result (string or object, which gets\n * stringified).\n */\nconst registerAgentTool = async (name, handler) => {\n if (!name || typeof handler !== 'function') {\n return;\n }\n registeredAgentTools[name] = handler;\n if (!agentToolListenerAttached) {\n agentToolListenerAttached = true;\n await Gleap.addListener('agentToolExecution', async (data) => {\n var _a;\n try {\n const { executionId, name: toolName, params } = data !== null && data !== void 0 ? data : {};\n if (!executionId || !toolName) {\n return;\n }\n let result;\n const toolHandler = registeredAgentTools[toolName];\n if (!toolHandler) {\n result = `No handler registered for tool '${toolName}' in the app. Register one via Gleap.registerAgentTool('${toolName}', handler).`;\n }\n else {\n try {\n const handlerResult = await toolHandler(params !== null && params !== void 0 ? params : {});\n result =\n typeof handlerResult === 'string'\n ? handlerResult\n : JSON.stringify(handlerResult !== null && handlerResult !== void 0 ? handlerResult : '');\n if (!result) {\n result = 'The action completed without returning a result.';\n }\n }\n catch (error) {\n result = `Tool execution failed: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : 'unknown error'}`;\n }\n }\n await Gleap.sendAgentToolResult({ executionId, result });\n }\n catch (exp) {\n // Ignore.\n }\n });\n }\n await Gleap.registerAgentTool({ name });\n};\nexport * from './definitions';\nexport { Gleap, registerAgentTool };\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nimport Gleap from 'gleap';\nexport class GleapWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.pendingAgentToolExecutions = {};\n }\n async initialize(options) {\n if (GleapWeb.initialized) {\n return { initialized: true };\n }\n Gleap.initialize(options.API_KEY);\n GleapWeb.initialized = true;\n this.registerCallbackListeners();\n return { initialized: true };\n }\n async setRegion(options) {\n if (!(options === null || options === void 0 ? void 0 : options.region)) {\n throw new Error('No region provided');\n }\n Gleap.setRegion(options.region);\n return { region: options.region };\n }\n async setApiUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setApiUrl(options.url);\n return { url: options.url };\n }\n async setWSApiUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setWSApiUrl(options.url);\n return { url: options.url };\n }\n async setRealtimeHost(options) {\n if (!(options === null || options === void 0 ? void 0 : options.host)) {\n throw new Error('No host provided');\n }\n Gleap.setRealtimeHost(options.host);\n return { host: options.host };\n }\n async setFrameUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setFrameUrl(options.url);\n return { url: options.url };\n }\n async setBannerUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setBannerUrl(options.url);\n return { url: options.url };\n }\n async setModalUrl(options) {\n if (!(options === null || options === void 0 ? void 0 : options.url)) {\n throw new Error('No url provided');\n }\n Gleap.setModalUrl(options.url);\n return { url: options.url };\n }\n registerCallbackListeners() {\n Gleap.on('open', () => {\n this.notifyCallbacks('open', {});\n });\n Gleap.on('initialized', () => {\n this.notifyCallbacks('initialized', {});\n });\n Gleap.on('close', () => {\n this.notifyCallbacks('close', {});\n });\n Gleap.on('feedback-sent', formData => {\n this.notifyCallbacks('feedback-sent', formData);\n });\n Gleap.on('outbound-sent', formData => {\n this.notifyCallbacks('outbound-sent', formData);\n });\n Gleap.on('tool-execution', toolExecution => {\n this.notifyCallbacks('tool-execution', toolExecution);\n });\n Gleap.on('flow-started', flow => {\n this.notifyCallbacks('flow-started', flow);\n });\n Gleap.on('error-while-sending', () => {\n this.notifyCallbacks('error-while-sending', {});\n });\n Gleap.on('unregister-pushmessage-group', groupName => {\n this.notifyCallbacks('unregister-pushmessage-group', groupName);\n });\n Gleap.on('register-pushmessage-group', groupName => {\n this.notifyCallbacks('register-pushmessage-group', groupName);\n });\n Gleap.on('unread-count-changed', groupName => {\n this.notifyCallbacks('notification-count-updated', groupName);\n });\n Gleap.registerCustomAction(customAction => {\n this.notifyCallbacks('custom-action-called', customAction);\n });\n }\n async registerAgentTool(options) {\n const gleapSdk = Gleap;\n if (typeof gleapSdk.registerAgentTool !== 'function') {\n console.warn('Gleap: registerAgentTool requires a newer version of the Gleap JS SDK.');\n return;\n }\n gleapSdk.registerAgentTool(options.name, (params) => new Promise(resolve => {\n const executionId = `web-${++GleapWeb.agentToolExecutionCounter}`;\n this.pendingAgentToolExecutions[executionId] = resolve;\n this.notifyListeners('agentToolExecution', {\n executionId,\n name: options.name,\n params: params !== null && params !== void 0 ? params : {},\n });\n }));\n }\n async sendAgentToolResult(options) {\n const resolve = this.pendingAgentToolExecutions[options.executionId];\n if (resolve) {\n delete this.pendingAgentToolExecutions[options.executionId];\n resolve(options.result);\n }\n }\n async setTicketAttribute(options) {\n Gleap.setTicketAttribute(options.key, options.value);\n return { setTicketAttribute: true };\n }\n async unsetTicketAttribute(options) {\n Gleap.unsetTicketAttribute(options.key);\n return { unsetTicketAttribute: true };\n }\n async clearTicketAttributes() {\n Gleap.clearTicketAttributes();\n return { clearTicketAttributes: true };\n }\n notifyCallbacks(event, data) {\n if (!GleapWeb.callbacks) {\n return;\n }\n for (var callbackId in GleapWeb.callbacks) {\n GleapWeb.callbacks[callbackId]({\n name: event,\n data,\n });\n }\n }\n async startClassicForm(options) {\n var _a;\n Gleap.startClassicForm((_a = options.formId) !== null && _a !== void 0 ? _a : '', options.showBackButton);\n return { classicFormStarted: true };\n }\n async startConversation(options) {\n Gleap.startConversation(options.showBackButton);\n return { conversationStarted: true };\n }\n async openConversation(options) {\n Gleap.openConversations(options.showBackButton);\n return { conversationsOpened: true };\n }\n async openConversations(options) {\n Gleap.openConversations(options.showBackButton);\n return { conversationsOpened: true };\n }\n // The JavaScript SDK opens `?gleapFile=` links itself on page load.\n async openProtectedFileFromUrl(_options) {\n return { opened: false };\n }\n async showSurvey(options) {\n Gleap.showSurvey(options.surveyId, options.format);\n return { opened: true };\n }\n async showFeedbackButton(options) {\n Gleap.showFeedbackButton(options.show ? true : false);\n return { feedbackButtonShown: true };\n }\n async setDisableInAppNotifications(options) {\n var _a;\n Gleap.setDisableInAppNotifications((_a = options.disableInAppNotifications) !== null && _a !== void 0 ? _a : false);\n return { inAppNotificationsDisabled: true };\n }\n async setDisableEnvData(options) {\n var _a;\n Gleap.setDisableEnvData((_a = options.disableEnvData) !== null && _a !== void 0 ? _a : false);\n return { envDataDisabled: true };\n }\n async setColorScheme(options) {\n if (!(options === null || options === void 0 ? void 0 : options.colorScheme)) {\n throw new Error('No colorScheme provided');\n }\n Gleap.setColorScheme(options.colorScheme, {\n lightBackgroundColor: options.lightBackgroundColor,\n darkBackgroundColor: options.darkBackgroundColor,\n });\n return { colorScheme: options.colorScheme };\n }\n async setCaptureEnabled(options) {\n if (typeof (options === null || options === void 0 ? void 0 : options.enabled) !== 'boolean') {\n throw new Error('No enabled value provided');\n }\n // A JavaScript SDK older than capture requests has nothing to switch.\n const jsSdk = Gleap;\n if (typeof jsSdk.setCaptureEnabled === 'function') {\n jsSdk.setCaptureEnabled(options.enabled);\n }\n return { captureEnabled: options.enabled };\n }\n async setRemoteLogCollectionEnabled(options) {\n if (typeof (options === null || options === void 0 ? void 0 : options.enabled) !== 'boolean') {\n throw new Error('No enabled value provided');\n }\n // A JavaScript SDK older than capture requests has nothing to switch.\n const jsSdk = Gleap;\n if (typeof jsSdk.setRemoteLogCollectionEnabled === 'function') {\n jsSdk.setRemoteLogCollectionEnabled(options.enabled);\n }\n return { remoteLogCollectionEnabled: options.enabled };\n }\n async identify(options) {\n var userData = {\n name: options.name,\n email: options.email,\n phone: options.phone,\n companyId: options.companyId,\n companyName: options.companyName,\n avatar: options.avatar,\n sla: options.sla,\n plan: options.plan,\n value: options.value,\n customData: options.customData,\n };\n if (options.userHash) {\n Gleap.identify(options.userId, userData, options.userHash);\n }\n else {\n Gleap.identify(options.userId, userData);\n }\n return { identify: true };\n }\n async updateContact(options) {\n Gleap.updateContact(options);\n return { identify: true };\n }\n async setNetworkLogsBlacklist(options) {\n Gleap.setNetworkLogsBlacklist(options.blacklist);\n return { blacklistSet: true };\n }\n async setNetworkLogPropsToIgnore(options) {\n Gleap.setNetworkLogPropsToIgnore(options.propsToIgnore);\n return { propsToIgnoreSet: true };\n }\n async attachNetworkLogs() {\n // The JavaScript SDK records the page's requests itself on web.\n return { networkLogsAttached: false };\n }\n async logsFlushed() {\n // The JavaScript SDK collects the logs on web itself: nothing is buffered here.\n }\n async attachConsoleLogs() {\n // The JavaScript SDK records the page's console itself on web.\n return { consoleLogsAttached: false };\n }\n async setEnvDataPropsToIgnore(options) {\n Gleap.setEnvDataPropsToIgnore(options.propsToIgnore);\n return { envDataPropsToIgnoreSet: true };\n }\n async setTags(options) {\n Gleap.setTags(options.tags);\n return { tagsSet: true };\n }\n async clearIdentity() {\n Gleap.clearIdentity();\n return { clearIdentity: true };\n }\n async getIdentity() {\n return { identity: Gleap.getIdentity() };\n }\n async isUserIdentified() {\n return { isUserIdentified: Gleap.isUserIdentified() };\n }\n async attachCustomData(options) {\n Gleap.attachCustomData(options.data);\n return { attachedCustomData: true };\n }\n async setCustomData(options) {\n Gleap.setCustomData(options.key, options.value);\n return { setCustomData: true };\n }\n async removeCustomData(options) {\n Gleap.removeCustomData(options.key);\n return { removedCustomData: true };\n }\n async clearCustomData() {\n Gleap.clearCustomData();\n return { clearedCustomData: true };\n }\n async trackEvent(options) {\n Gleap.trackEvent(options.name, options.data);\n return { loggedEvent: true };\n }\n async trackPage(options) {\n Gleap.trackEvent('pageView', {\n page: options.pageName,\n });\n return { trackedPage: true };\n }\n async startFeedbackFlow(options) {\n var _a;\n if (!options.feedbackFlow) {\n }\n Gleap.startFeedbackFlow((_a = options.feedbackFlow) !== null && _a !== void 0 ? _a : 'bugreporting', options.showBackButton);\n return { startedFeedbackFlow: true };\n }\n async startBot(options) {\n var _a;\n if (!options.botId) {\n }\n Gleap.startBot((_a = options.botId) !== null && _a !== void 0 ? _a : '', options.showBackButton);\n return { startedBot: true };\n }\n async setLanguage(options) {\n Gleap.setLanguage(options.languageCode);\n return { setLanguage: options.languageCode };\n }\n async log(options) {\n Gleap.log(options.message, options.logLevel);\n return { logged: true };\n }\n async setEventCallback(callback) {\n var callbackId = this.makeid(10);\n GleapWeb.callbacks[callbackId] = callback;\n return callbackId;\n }\n async sendSilentCrashReport(options) {\n Gleap.sendSilentCrashReport(options.description, options.severity, options.dataExclusion);\n return { sentSilentBugReport: true };\n }\n async open() {\n Gleap.open();\n return { openedWidget: true };\n }\n async openChecklists(options) {\n Gleap.openChecklists(options.showBackButton);\n return { opened: true };\n }\n async openChecklist(options) {\n Gleap.openChecklist(options.checklistId, options.showBackButton);\n return { opened: true };\n }\n async startChecklist(options) {\n Gleap.startChecklist(options.outboundId, options.showBackButton);\n return { opened: true };\n }\n async openFeatureRequests(options) {\n Gleap.openFeatureRequests(options.showBackButton);\n return { openedFeatureRequests: true };\n }\n async openNews(options) {\n Gleap.openNews(options.showBackButton);\n return { openedNews: true };\n }\n async openNewsArticle(options) {\n Gleap.openNewsArticle(options.articleId, options.showBackButton);\n return { opened: true };\n }\n async openHelpCenter(options) {\n Gleap.openHelpCenter(options.showBackButton);\n return { opened: true };\n }\n async openHelpCenterArticle(options) {\n Gleap.openHelpCenterArticle(options.articleId, options.showBackButton);\n return { opened: true };\n }\n async askAI(options) {\n Gleap.askAI(options.question, options.showBackButton);\n return { opened: true };\n }\n async openHelpCenterCollection(options) {\n Gleap.openHelpCenterCollection(options.collectionId, options.showBackButton);\n return { opened: true };\n }\n async searchHelpCenter(options) {\n Gleap.searchHelpCenter(options.term, options.showBackButton);\n return { opened: true };\n }\n async close() {\n Gleap.close();\n return { closedWidget: true };\n }\n async isOpened() {\n return { isOpened: Gleap.isOpened() };\n }\n async disableConsoleLogOverwrite() {\n Gleap.disableConsoleLogOverwrite();\n return { consoleLogDisabled: true };\n }\n async enableDebugConsoleLog() {\n return { debugConsoleLogEnabled: true };\n }\n async preFillForm(options) {\n Gleap.preFillForm(options.data);\n return { preFilledForm: true };\n }\n async addAttachment(_options) {\n throw this.unavailable('addAttachment not available for browsers');\n }\n async removeAllAttachments() {\n throw this.unavailable('removeAllAttachments not available for browsers');\n }\n async setNotificationContainerOffset(_options) {\n return { notificationContainerOffsetSet: true };\n }\n makeid(length) {\n var result = '';\n var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n }\n return result;\n }\n}\nGleapWeb.callbacks = {};\nGleapWeb.initialized = false;\nGleapWeb.agentToolExecutionCounter = 0;\n//# sourceMappingURL=web.js.map"],"names":["BODY_NOT_CAPTURED","Capacitor","registerPlugin","WebPlugin","Gleap"],"mappings":"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"}