ida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-128536","MarcaId":"4597192000236136380","user":"igrimaldo@arochilindner.com"} [b296d0b5-e983-400c-a266-806ef5f4553e](2025-02-18 12:28:58) - Tokens generados: 1000.e948667237e683a0bf87c71e22ac01d2.c9fce179943cd64e1dd568713373b921 [b296d0b5-e983-400c-a266-806ef5f4553e](2025-02-18 12:28:58) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [b296d0b5-e983-400c-a266-806ef5f4553e](2025-02-18 12:28:58) - Imagen guardada localmente de manera exitosa [b296d0b5-e983-400c-a266-806ef5f4553e](2025-02-18 12:29:00) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2025-02-18T12:28:59-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2025-02-18T12:28:49-06:00", "id": "4597192000236136380", "Created_By": { "name": "Irving Grimaldo Galan", "id": "4597192000093922734" } }, "message": "record updated", "status": "success" } ] } [b296d0b5-e983-400c-a266-806ef5f4553e](2025-02-18 12:29:00) - Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/MAR-128536.png [75cb4d37-fb70-4f60-b738-d874960bd5fc](2025-02-18 12:29:47) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-128537","MarcaId":"4597192000236136435","user":"igrimaldo@arochilindner.com"} [75cb4d37-fb70-4f60-b738-d874960bd5fc](2025-02-18 12:29:54) - Tokens generados: 1000.e948667237e683a0bf87c71e22ac01d2.c9fce179943cd64e1dd568713373b921 [75cb4d37-fb70-4f60-b738-d874960bd5fc](2025-02-18 12:29:55) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [75cb4d37-fb70-4f60-b738-d874960bd5fc](2025-02-18 12:29:55) - Imagen guardada localmente de manera exitosa [75cb4d37-fb70-4f60-b738-d874960bd5fc](2025-02-18 12:29:56) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2025-02-18T12:29:55-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "2025-02-18T12:29:45-06:00", "id": "4597192000236136435", "Created_By": { "name": "Irving Grimaldo Galan", "id": "4597192000093922734" } }, "message": "record updated", "status": "success" } ] } [75cb4d37-fb70-4f60-b738-d874960bd5fc](2025-02-18 12:29:56) - Proceso finalizado exitosamente, URL: https://aptuslegal.app/imagenesAptusLegal/arochi/LogosArochi/MAR-128537.png [826c39c3-b519-4cb8-849a-dadc29eda1fd](2025-02-18 12:30:54) - Proceso de subida de imagen iniciado, data: {"source":"webhook","RefAL":"MAR-128538","MarcaId":"4597192000236136490","user":"igrimaldo@arochilindner.com"} [826c39c3-b519-4cb8-849a-dadc29eda1fd](2025-02-18 12:31:01) - Tokens generados: 1000.e948667237e683a0bf87c71e22ac01d2.c9fce179943cd64e1dd568713373b921 [826c39c3-b519-4cb8-849a-dadc29eda1fd](2025-02-18 12:31:02) - Intento 0 para obtener imagen de marca de CRM, respuesta: 200 [826c39c3-b519-4cb8-849a-dadc29eda1fd](2025-02-18 12:31:02) - Imagen guardada localmente de manera exitosa [826c39c3-b519-4cb8-849a-dadc29eda1fd](2025-02-18 12:31:03) - Intento 0 para actualizar CRM con datos de url de marca: { "data": [ { "code": "SUCCESS", "details": { "Modified_Time": "2025-02-18T12:31:03-06:00", "Modified_By": { "name": "Aptus Legal Administrator", "id": "4597192000000287001" }, "Created_Time": "{\n if (currentWidth === spec.actualCellSize.width && currentHeight === spec.actualCellSize.height) {\n return;\n }\n const { width: originalWidth, height: originalHeight } = spec.origCellSize;\n if (currentWidth === originalWidth && currentHeight === originalHeight) {\n spec.actual = spec.orig;\n spec.actualCellSize.width = originalWidth;\n spec.actualCellSize.height = originalHeight;\n return;\n }\n const canvas = ImageRenderer.createCanvas(\n this.document,\n Math.ceil(spec.orig!.width * currentWidth / originalWidth),\n Math.ceil(spec.orig!.height * currentHeight / originalHeight)\n );\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.drawImage(spec.orig!, 0, 0, canvas.width, canvas.height);\n spec.actual = canvas;\n spec.actualCellSize.width = currentWidth;\n spec.actualCellSize.height = currentHeight;\n }\n }\n\n /**\n * Lazy init for the renderer.\n */\n private _open(): void {\n this._renderService = this._terminal._core._renderService;\n this._oldSetRenderer = this._renderService.setRenderer.bind(this._renderService);\n this._renderService.setRenderer = (renderer: any) => {\n this.removeLayerFromDom();\n this._oldSetRenderer?.call(this._renderService, renderer);\n };\n }\n\n public insertLayerToDom(): void {\n // make sure that the terminal is attached to a document and to DOM\n if (this.document && this._terminal._core.screenElement) {\n if (!this.canvas) {\n this.canvas = ImageRenderer.createCanvas(\n this.document, this.dimensions?.css.canvas.width || 0,\n this.dimensions?.css.canvas.height || 0\n );\n this.canvas.classList.add('xterm-image-layer');\n this._terminal._core.screenElement.appendChild(this.canvas);\n this._ctx = this.canvas.getContext('2d', { alpha: true, desynchronized: true });\n this.clearAll();\n }\n } else {\n console.warn('image addon: cannot insert output canvas to DOM, missing document or screenElement');\n }\n }\n\n public removeLayerFromDom(): void {\n if (this.canvas) {\n this._ctx = undefined;\n this.canvas.remove();\n this.canvas = undefined;\n }\n }\n\n private _createPlaceHolder(height: number = PLACEHOLDER_HEIGHT): void {\n this._placeholderBitmap?.close();\n this._placeholderBitmap = undefined;\n\n // create blueprint to fill placeholder with\n const bWidth = 32; // must be 2^n\n const blueprint = ImageRenderer.createCanvas(this.document, bWidth, height);\n const ctx = blueprint.getContext('2d', { alpha: false });\n if (!ctx) return;\n const imgData = ImageRenderer.createImageData(ctx, bWidth, height);\n const d32 = new Uint32Array(imgData.data.buffer);\n const black = toRGBA8888(0, 0, 0);\n const white = toRGBA8888(255, 255, 255);\n d32.fill(black);\n for (let y = 0; y < height; ++y) {\n const shift = y % 2;\n const offset = y * bWidth;\n for (let x = 0; x < bWidth; x += 2) {\n d32[offset + x + shift] = white;\n }\n }\n ctx.putImageData(imgData, 0, 0);\n\n // create placeholder line, width aligned to blueprint width\n const width = (screen.width + bWidth - 1) & ~(bWidth - 1) || PLACEHOLDER_LENGTH;\n this._placeholder = ImageRenderer.createCanvas(this.document, width, height);\n const ctx2 = this._placeholder.getContext('2d', { alpha: false });\n if (!ctx2) {\n this._placeholder = undefined;\n return;\n }\n for (let i = 0; i < width; i += bWidth) {\n ctx2.drawImage(blueprint, i, 0);\n }\n ImageRenderer.createImageBitmap(this._placeholder).then(bitmap => this._placeholderBitmap = bitmap);\n }\n\n public get document(): Document | undefined {\n return this._terminal._core._coreBrowserService?.window.document;\n }\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\nexport interface ErrorListenerCallback {\n\t(error: any): void;\n}\n\nexport interface ErrorListenerUnbind {\n\t(): void;\n}\n\n// Avoid circular dependency on EventEmitter by implementing a subset of the interface.\nexport class ErrorHandler {\n\tprivate unexpectedErrorHandler: (e: any) => void;\n\tprivate listeners: ErrorListenerCallback[];\n\n\tconstructor() {\n\n\t\tthis.listeners = [];\n\n\t\tthis.unexpectedErrorHandler = function (e: any) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (e.stack) {\n\t\t\t\t\tif (ErrorNoTelemetry.isErrorNoTelemetry(e)) {\n\t\t\t\t\t\tthrow new ErrorNoTelemetry(e.message + '\\n\\n' + e.stack);\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow new Error(e.message + '\\n\\n' + e.stack);\n\t\t\t\t}\n\n\t\t\t\tthrow e;\n\t\t\t}, 0);\n\t\t};\n\t}\n\n\taddListener(listener: ErrorListenerCallback): ErrorListenerUnbind {\n\t\tthis.listeners.push(listener);\n\n\t\treturn () => {\n\t\t\tthis._removeListener(listener);\n\t\t};\n\t}\n\n\tprivate emit(e: any): void {\n\t\tthis.listeners.forEach((listener) => {\n\t\t\tlistener(e);\n\t\t});\n\t}\n\n\tprivate _removeListener(listener: ErrorListenerCallback): void {\n\t\tthis.listeners.splice(this.listeners.indexOf(listener), 1);\n\t}\n\n\tsetUnexpectedErrorHandler(newUnexpectedErrorHandler: (e: any) => void): void {\n\t\tthis.unexpectedErrorHandler = newUnexpectedErrorHandler;\n\t}\n\n\tgetUnexpectedErrorHandler(): (e: any) => void {\n\t\treturn this.unexpectedErrorHandler;\n\t}\n\n\tonUnexpectedError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t\tthis.emit(e);\n\t}\n\n\t// For external errors, we don't want the listeners to be called\n\tonUnexpectedExternalError(e: any): void {\n\t\tthis.unexpectedErrorHandler(e);\n\t}\n}\n\nexport const errorHandler = new ErrorHandler();\n\n/** @skipMangle */\nexport function setUnexpectedErrorHandler(newUnexpectedErrorHandler: (e: any) => void): void {\n\terrorHandler.setUnexpectedErrorHandler(newUnexpectedErrorHandler);\n}\n\n/**\n * Returns if the error is a SIGPIPE error. SIGPIPE errors should generally be\n * logged at most once, to avoid a loop.\n *\n * @see https://github.com/microsoft/vscode-remote-release/issues/6481\n */\nexport function isSigPipeError(e: unknown): e is Error {\n\tif (!e || typeof e !== 'object') {\n\t\treturn false;\n\t}\n\n\tconst cast = e as Record;\n\treturn cast.code === 'EPIPE' && cast.syscall?.toUpperCase() === 'WRITE';\n}\n\nexport function onUnexpectedError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedError(e);\n\t}\n\treturn undefined;\n}\n\nexport function onUnexpectedExternalError(e: any): undefined {\n\t// ignore errors from cancelled promises\n\tif (!isCancellationError(e)) {\n\t\terrorHandler.onUnexpectedExternalError(e);\n\t}\n\treturn undefined;\n}\n\nexport interface SerializedError {\n\treadonly $isError: true;\n\treadonly name: string;\n\treadonly message: string;\n\treadonly stack: string;\n\treadonly noTelemetry: boolean;\n}\n\nexport function transformErrorForSerialization(error: Error): SerializedError;\nexport function transformErrorForSerialization(error: any): any;\nexport function transformErrorForSerialization(error: any): any {\n\tif (error instanceof Error) {\n\t\tconst { name, message } = error;\n\t\tconst stack: string = (error).stacktrace || (error).stack;\n\t\treturn {\n\t\t\t$isError: true,\n\t\t\tname,\n\t\t\tmessage,\n\t\t\tstack,\n\t\t\tnoTelemetry: ErrorNoTelemetry.isErrorNoTelemetry(error)\n\t\t};\n\t}\n\n\t// return as is\n\treturn error;\n}\n\nexport function transformErrorFromSerialization(data: SerializedError): Error {\n\tlet error: Error;\n\tif (data.noTelemetry) {\n\t\terror = new ErrorNoTelemetry();\n\t} else {\n\t\terror = new Error();\n\t\terror.name = data.name;\n\t}\n\terror.message = data.message;\n\terror.stack = data.stack;\n\treturn error;\n}\n\n// see https://github.com/v8/v8/wiki