From d8eb3ddbd68b11cb363b3dc2836b71444d602ccb Mon Sep 17 00:00:00 2001 From: Peter Maquiran Date: Fri, 20 Sep 2024 11:45:11 +0100 Subject: [PATCH] fix upload picture --- angular.json | 1 + package-lock.json | 135 ++++++++++++------ package.json | 2 + .../distribution-local-repository.ts | 2 +- .../mobile/file-system-mobile.service.ts | 16 ++- .../destribution-local-repository.ts | 4 +- .../room/room-bold-sync-use-case.service.ts | 1 - src/app/services/events.service.ts | 20 ++- src/app/ui/chat/chat.page.ts | 12 +- .../chat/component/messages/messages.page.ts | 1 + .../ui/chat/modal/messages/messages.page.ts | 90 ++++++++---- .../ui/chat/modal/room-info/room-info.page.ts | 1 - src/app/utils/allowedImageExtension.ts | 16 +++ src/firebase-messaging-sw.js | 44 ------ src/main.ts | 129 ++++++++++++++++- version/git-version.ts | 12 +- 16 files changed, 356 insertions(+), 130 deletions(-) create mode 100644 src/app/utils/allowedImageExtension.ts diff --git a/angular.json b/angular.json index faff05a6b..2637cde53 100644 --- a/angular.json +++ b/angular.json @@ -37,6 +37,7 @@ }, "src/manifest.webmanifest", "src/firebase-messaging-sw.js", + "src/firebase-messaging.js", "src/shared-worker.js" ], "styles": [ diff --git a/package-lock.json b/package-lock.json index 0fc37764a..2380128d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,6 +110,7 @@ "@sentry/angular": "^7.73.0", "@sentry/capacitor": "^0.14.0", "@sentry/cli": "^2.33.1", + "@sentry/tracing": "^7.114.0", "@teamhive/capacitor-video-recorder": "^5.0.0", "@tinymce/tinymce-angular": "^4.2.4", "@types/jest-environment-puppeteer": "^5.0.3", @@ -184,7 +185,6 @@ "ngx-indexed-db": "^18.0.0", "ngx-letters-avatar": "^1.0.2", "ngx-socket-io": "^3.2.0", - "path-browserify": "^1.0.1", "pdfjs": "^2.4.6", "pdfjs-dist": "^2.9.359", "puppeteer": "^19.7.1", @@ -195,6 +195,7 @@ "send-intent": "^5.0.0", "sharp": "^0.30.7", "socket.io-client": "^2.3.0", + "source-map-js": "^1.2.1", "swiper": "^11.0.5", "tinymce": "^6.6.0", "ts-jest": "^27.0.3", @@ -8245,10 +8246,22 @@ } } }, + "node_modules/@sentry/capacitor/node_modules/@sentry/tracing": { + "version": "7.73.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.73.0.tgz", + "integrity": "sha512-LOQR6Hkc8ZoflCXWtMlxTbCBEwv0MSOr3vesnRsmlFG8TW1YUIneU+wKnVxToWAZ8fq+6ubclnuIUKHfqTk/Tg==", + "dependencies": { + "@sentry-internal/tracing": "7.73.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@sentry/cli": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.33.1.tgz", "integrity": "sha512-dUlZ4EFh98VFRPJ+f6OW3JEYQ7VvqGNMa0AMcmvk07ePNeK/GicAWmSQE4ZfJTTl80ul6HZw1kY01fGQOQlVRA==", + "dev": true, "hasInstallScript": true, "dependencies": { "https-proxy-agent": "^5.0.0", @@ -8277,6 +8290,7 @@ "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.33.1.tgz", "integrity": "sha512-+4/VIx/E1L2hChj5nGf5MHyEPHUNHJ/HoG5RY+B+vyEutGily1c1+DM2bum7RbD0xs6wKLIyup5F02guzSzG8A==", + "dev": true, "optional": true, "os": [ "darwin" @@ -8292,6 +8306,7 @@ "cpu": [ "arm" ], + "dev": true, "optional": true, "os": [ "linux", @@ -8308,6 +8323,7 @@ "cpu": [ "arm64" ], + "dev": true, "optional": true, "os": [ "linux", @@ -8325,6 +8341,7 @@ "x86", "ia32" ], + "dev": true, "optional": true, "os": [ "linux", @@ -8341,6 +8358,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "linux", @@ -8358,6 +8376,7 @@ "x86", "ia32" ], + "dev": true, "optional": true, "os": [ "win32" @@ -8373,6 +8392,7 @@ "cpu": [ "x64" ], + "dev": true, "optional": true, "os": [ "win32" @@ -13731,15 +13751,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/critters/node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cropperjs": { "version": "1.5.12", "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.12.tgz", @@ -14591,6 +14602,7 @@ "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true, "engines": { "node": ">=4.0" } @@ -17143,7 +17155,8 @@ "node_modules/flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, "node_modules/flatten": { "version": "1.0.3", @@ -26683,6 +26696,7 @@ "version": "6.9.1", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -26698,6 +26712,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -29571,11 +29586,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" - }, "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -31937,6 +31947,15 @@ "node": ">=6.14.4" } }, + "node_modules/postcss/node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/preact": { "version": "10.5.14", "resolved": "https://registry.npmjs.org/preact/-/preact-10.5.14.tgz", @@ -33560,7 +33579,8 @@ "node_modules/rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true }, "node_modules/right-align": { "version": "0.1.3", @@ -35336,10 +35356,9 @@ } }, "node_modules/source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true, + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "engines": { "node": ">=0.10.0" } @@ -35365,6 +35384,15 @@ "webpack": "^5.0.0" } }, + "node_modules/source-map-loader/node_modules/source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", @@ -35730,6 +35758,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, "dependencies": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -35743,6 +35772,7 @@ "version": "4.3.5", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -35759,6 +35789,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -35772,6 +35803,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -35780,6 +35812,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, "engines": { "node": ">= 4.0.0" } @@ -50572,6 +50605,7 @@ "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.33.1.tgz", "integrity": "sha512-dUlZ4EFh98VFRPJ+f6OW3JEYQ7VvqGNMa0AMcmvk07ePNeK/GicAWmSQE4ZfJTTl80ul6HZw1kY01fGQOQlVRA==", + "dev": true, "requires": { "@sentry/cli-darwin": "2.33.1", "@sentry/cli-linux-arm": "2.33.1", @@ -50591,42 +50625,49 @@ "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.33.1.tgz", "integrity": "sha512-+4/VIx/E1L2hChj5nGf5MHyEPHUNHJ/HoG5RY+B+vyEutGily1c1+DM2bum7RbD0xs6wKLIyup5F02guzSzG8A==", + "dev": true, "optional": true }, "@sentry/cli-linux-arm": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.33.1.tgz", "integrity": "sha512-zbxEvQju+tgNvzTOt635le4kS/Fbm2XC2RtYbCTs034Vb8xjrAxLnK0z1bQnStUV8BkeBHtsNVrG+NSQDym2wg==", + "dev": true, "optional": true }, "@sentry/cli-linux-arm64": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.33.1.tgz", "integrity": "sha512-DbGV56PRKOLsAZJX27Jt2uZ11QfQEMmWB4cIvxkKcFVE+LJP4MVA+MGGRUL6p+Bs1R9ZUuGbpKGtj0JiG6CoXw==", + "dev": true, "optional": true }, "@sentry/cli-linux-i686": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.33.1.tgz", "integrity": "sha512-g2LS4oPXkPWOfKWukKzYp4FnXVRRSwBxhuQ9eSw2peeb58ZIObr4YKGOA/8HJRGkooBJIKGaAR2mH2Pk1TKaiA==", + "dev": true, "optional": true }, "@sentry/cli-linux-x64": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.33.1.tgz", "integrity": "sha512-IV3dcYV/ZcvO+VGu9U6kuxSdbsV2kzxaBwWUQxtzxJ+cOa7J8Hn1t0koKGtU53JVZNBa06qJWIcqgl4/pCuKIg==", + "dev": true, "optional": true }, "@sentry/cli-win32-i686": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.33.1.tgz", "integrity": "sha512-F7cJySvkpzIu7fnLKNHYwBzZYYwlhoDbAUnaFX0UZCN+5DNp/5LwTp37a5TWOsmCaHMZT4i9IO4SIsnNw16/zQ==", + "dev": true, "optional": true }, "@sentry/cli-win32-x64": { "version": "2.33.1", "resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.33.1.tgz", "integrity": "sha512-8VyRoJqtb2uQ8/bFRKNuACYZt7r+Xx0k2wXRGTyH05lCjAiVIXn7DiS2BxHFty7M1QEWUCMNsb/UC/x/Cu2wuA==", + "dev": true, "optional": true }, "@sentry/core": { @@ -54840,12 +54881,6 @@ "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true } } }, @@ -55461,7 +55496,8 @@ "date-format": { "version": "4.0.14", "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==" + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "dev": true }, "dayjs": { "version": "1.11.8", @@ -57425,7 +57461,8 @@ "flatted": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==" + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true }, "flatten": { "version": "1.0.3", @@ -64891,6 +64928,7 @@ "version": "6.9.1", "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.9.1.tgz", "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", + "dev": true, "requires": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -64903,6 +64941,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -67159,11 +67198,6 @@ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==" }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" - }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -67463,6 +67497,14 @@ "colorette": "^1.2.2", "nanoid": "^3.1.23", "source-map-js": "^0.6.2" + }, + "dependencies": { + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + } } }, "postcss-attribute-case-insensitive": { @@ -70124,7 +70166,8 @@ "rfdc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "dev": true }, "right-align": { "version": "0.1.3", @@ -71496,10 +71539,9 @@ "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" }, "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==" }, "source-map-loader": { "version": "3.0.0", @@ -71510,6 +71552,14 @@ "abab": "^2.0.5", "iconv-lite": "^0.6.2", "source-map-js": "^0.6.2" + }, + "dependencies": { + "source-map-js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", + "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", + "dev": true + } } }, "source-map-resolve": { @@ -71829,6 +71879,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", + "dev": true, "requires": { "date-format": "^4.0.14", "debug": "^4.3.4", @@ -71839,6 +71890,7 @@ "version": "4.3.5", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -71847,6 +71899,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -71857,6 +71910,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, "requires": { "graceful-fs": "^4.1.6" } @@ -71864,7 +71918,8 @@ "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true } } }, diff --git a/package.json b/package.json index c8349dcb1..2c8e0fae1 100644 --- a/package.json +++ b/package.json @@ -129,6 +129,7 @@ "@sentry/angular": "^7.73.0", "@sentry/capacitor": "^0.14.0", "@sentry/cli": "^2.33.1", + "@sentry/tracing": "^7.114.0", "@teamhive/capacitor-video-recorder": "^5.0.0", "@tinymce/tinymce-angular": "^4.2.4", "@types/jest-environment-puppeteer": "^5.0.3", @@ -213,6 +214,7 @@ "send-intent": "^5.0.0", "sharp": "^0.30.7", "socket.io-client": "^2.3.0", + "source-map-js": "^1.2.1", "swiper": "^11.0.5", "tinymce": "^6.6.0", "ts-jest": "^27.0.3", diff --git a/src/app/core/chat/repository/distribution/distribution-local-repository.ts b/src/app/core/chat/repository/distribution/distribution-local-repository.ts index fc57f24f2..d9593e3d2 100644 --- a/src/app/core/chat/repository/distribution/distribution-local-repository.ts +++ b/src/app/core/chat/repository/distribution/distribution-local-repository.ts @@ -6,4 +6,4 @@ import { DexieRepository } from "src/app/infra/repository/dexie/dexie-repository export abstract class IDistributionLocalRepository extends DexieRepository implements IDistributionLocalRepository { -} \ No newline at end of file +} diff --git a/src/app/infra/file-system/mobile/file-system-mobile.service.ts b/src/app/infra/file-system/mobile/file-system-mobile.service.ts index 519354ac2..a77d7c575 100644 --- a/src/app/infra/file-system/mobile/file-system-mobile.service.ts +++ b/src/app/infra/file-system/mobile/file-system-mobile.service.ts @@ -3,7 +3,7 @@ import { File, IWriteOptions } from '@awesome-cordova-plugins/file/ngx'; import { err, ok, Result } from 'neverthrow'; import { FileOpener } from '@awesome-cordova-plugins/file-opener/ngx'; import { Logger } from 'src/app/services/logger/main/service'; - +import { Filesystem, Directory, Encoding, FilesystemDirectory } from '@capacitor/filesystem'; @Injectable({ providedIn: 'root' @@ -54,4 +54,18 @@ export class FileSystemMobileService { } } + async readFile({resultUrl}) { + try { + const result = await Filesystem.readFile({ + path: resultUrl, + //directory: Directory.Data, + //encoding: Encoding.UTF8, + }) + + return ok(result) + } catch (e) { + return err(e) + } + } + } diff --git a/src/app/module/chat/data/repository/destribution/destribution-local-repository.ts b/src/app/module/chat/data/repository/destribution/destribution-local-repository.ts index 70abfeb63..922f9e7d6 100644 --- a/src/app/module/chat/data/repository/destribution/destribution-local-repository.ts +++ b/src/app/module/chat/data/repository/destribution/destribution-local-repository.ts @@ -1,4 +1,4 @@ -import { DistributionTable, DistributionTableSchema } from "src/app/infra/database/dexie/instance/chat/schema/destribution"; +import { DistributionTable, DistributionTableSchema,DistributionTableColumn } from "src/app/infra/database/dexie/instance/chat/schema/destribution"; import { chatDatabase } from "src/app/infra/database/dexie/service"; import { DexieRepository } from "src/app/infra/repository/dexie/dexie-repository.service"; @@ -11,4 +11,4 @@ export class DistributionLocalRepository extends DexieRepository { + try { this.setHeader() - }) + } catch (e) { + console.log(e) + } + this.changeProfileService.registerCallback(() => { + try { + this.setHeader() + } catch (e) { + console.log(e) + } + }) } async setHeader () { + try { + + this.headers = new HttpHeaders();; this.headersMdOficial = new HttpHeaders();; @@ -380,6 +391,9 @@ export class EventsService { this.onLoadCalendars.forEach(e=> e()); this.loadCalendars = true + } catch (err) { + console.log(err) + } } diff --git a/src/app/ui/chat/chat.page.ts b/src/app/ui/chat/chat.page.ts index bab6efdc3..06821ac2a 100644 --- a/src/app/ui/chat/chat.page.ts +++ b/src/app/ui/chat/chat.page.ts @@ -462,7 +462,10 @@ export class ChatPage implements OnInit { modal.onDidDismiss().then((Data) => { console.log('Data', Data.data) - this.openMessagesToStartDirectConversation(Data.data); + if(Data.data) { + this.openMessagesToStartDirectConversation(Data.data); + } + }); @@ -519,7 +522,12 @@ export class ChatPage implements OnInit { }, }); await modal.present(); - modal.onDidDismiss(); + modal.onDidDismiss().then(e => { + this.roomId = null; + this.selectedRoomId = null; + console.log('RoomSelected', room) + this.RoomSelected = null + }) } diff --git a/src/app/ui/chat/component/messages/messages.page.ts b/src/app/ui/chat/component/messages/messages.page.ts index a8e5c1e43..a16c0c2f1 100644 --- a/src/app/ui/chat/component/messages/messages.page.ts +++ b/src/app/ui/chat/component/messages/messages.page.ts @@ -1081,6 +1081,7 @@ export class MessagesPage implements OnInit, OnChanges, AfterViewInit, OnDestroy this.messages1[this.room.$id].push(Ballon) } + this.messages1[this.room.$id].push(message) setTimeout(() => { this.scrollToBottomClicked() }, 100) diff --git a/src/app/ui/chat/modal/messages/messages.page.ts b/src/app/ui/chat/modal/messages/messages.page.ts index 05b029923..224acbaf5 100644 --- a/src/app/ui/chat/modal/messages/messages.page.ts +++ b/src/app/ui/chat/modal/messages/messages.page.ts @@ -33,7 +33,7 @@ import { CameraService } from 'src/app/infra/camera/camera.service' import { FilePickerMobileService } from 'src/app/infra/file-picker/mobile/file-picker-mobile.service' import { FilePickerWebService } from 'src/app/infra/file-picker/web/file-picker-web.service' import { allowedDocExtension } from 'src/app/utils/allowedDocExtension'; -import { JSFileToDataUrl } from 'src/app/utils/ToBase64'; +import { createDataURL, JSFileToDataUrl } from 'src/app/utils/ToBase64'; import { RoomType } from "src/app/core/chat/entity/group"; import { MessageViewModal } from '../../store/model/message'; import { ChatPopoverPage } from '../chat-popover/chat-popover.page'; @@ -46,6 +46,7 @@ import { RoomViewModel } from '../../store/model/room'; import { RoomStore } from '../../store/roomStore' import { GroupContactsPage, IGroupContactsPageOutPutSchema } from '../group-messages/group-contacts/group-contacts.page'; import { EditGroupPage } from '../edit-group/edit-group.page'; +import { imageMimeTypes } from 'src/app/utils/allowedImageExtension'; const IMAGE_DIR = 'stored-images'; @@ -134,7 +135,7 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { private file: File, private fileOpener: FileOpener, private fileSystemMobileService: FileSystemMobileService, - public RoomStore: RoomStore + public RoomStore: RoomStore, ) { this.room = this.navParams.get('room'); @@ -667,43 +668,78 @@ export class MessagesPage implements OnInit, AfterViewInit, OnDestroy { async pickPicture() { - const file = await this.FilePickerService.getPicture({ - cameraResultType: CameraResultType.Base64 + const result = await this.FilePickerMobileService.getFile({ + types: imageMimeTypes, + multiple: false, + readData: true, }) - if(file.isOk()) { - - var base64 = 'data:image/jpeg;base64,' + file.value.base64String - if (file.value.format == "jpeg" || file.value.format == "png" || file.value.format == "gif") { - - const compressedImage = await compressImageBase64( - base64, - 800, // maxWidth - 800, // maxHeight - 0.9 // quality - ) - - if(compressedImage.isOk()) { + if(result.isOk()) { + const file = result.value.files[0] + if(file) { + let resultUrl = decodeURIComponent(file.path); + const base64 = await this.fileSystemMobileService.readFile({resultUrl}) + if(base64.isOk()) { + // console.log('1', base64.value) + // console.log('base64.value.data', base64.value.data) + // console.log('file', file) + // console.log('3',createDataURL(base64.value.data, file.mimeType)) this.RoomStore.sendMessage('', [{ - file: compressedImage.value, + file: base64.value.data, fileName: "foto", source: MessageAttachmentSource.Device, fileType: MessageAttachmentFileType.Image, - mimeType: 'image/'+file.value.format + mimeType: file.mimeType }]) + } else { + console.log(base64.error) } + } else { + console.log('no file') + } + } else { + console.log('error', result.error) } - } else { - if(file.error.type == 'PERMISSION_DENIED') { - this.toastService._badRequest("Sem acesso a camera") - } - Logger.error('failed to pick picture from the device', { - error: file.error - }) - } + // const file = await this.FilePickerService.getPicture({ + // cameraResultType: CameraResultType.Base64 + // }) + + // if(file.isOk()) { + + // var base64 = 'data:image/jpeg;base64,' + file.value.base64String + // if (file.value.format == "jpeg" || file.value.format == "png" || file.value.format == "gif") { + + // const compressedImage = await compressImageBase64( + // base64, + // 800, // maxWidth + // 800, // maxHeight + // 0.9 // quality + // ) + + // if(compressedImage.isOk()) { + + + // this.RoomStore.sendMessage('', [{ + // file: compressedImage.value, + // fileName: "foto", + // source: MessageAttachmentSource.Device, + // fileType: MessageAttachmentFileType.Image, + // mimeType: 'image/'+file.value.format + // }]) + // } + // } + + // } else { + // if(file.error.type == 'PERMISSION_DENIED') { + // this.toastService._badRequest("Sem acesso a camera") + // } + // Logger.error('failed to pick picture from the device', { + // error: file.error + // }) + // } } diff --git a/src/app/ui/chat/modal/room-info/room-info.page.ts b/src/app/ui/chat/modal/room-info/room-info.page.ts index 2af0a1760..d8ab7697d 100644 --- a/src/app/ui/chat/modal/room-info/room-info.page.ts +++ b/src/app/ui/chat/modal/room-info/room-info.page.ts @@ -43,7 +43,6 @@ export class RoomInfoPage implements OnInit { this.ChatServiceService.getUserPhoto({wxUserId: member.wxUserId, attachmentId: member.userPhoto}).then((result)=> { if(result.isOk()) { - console.log('get photo', result.value) this.ObjectURL[member.wxUserId] = 'data:image/jpeg;base64,'+result.value } }) diff --git a/src/app/utils/allowedImageExtension.ts b/src/app/utils/allowedImageExtension.ts new file mode 100644 index 000000000..11e9b082e --- /dev/null +++ b/src/app/utils/allowedImageExtension.ts @@ -0,0 +1,16 @@ +export const imageMimeTypes = [ + 'image/jpeg', // JPEG/JPG + 'image/png', // PNG + 'image/gif', // GIF + 'image/bmp', // BMP + 'image/webp', // WebP + 'image/tiff', // TIFF + 'image/svg+xml', // SVG + 'image/x-icon', // ICO + 'image/heif', // HEIF + 'image/heic', // HEIC + 'image/avif', // AVIF + 'image/x-xcf', // XCF (GIMP) + 'image/vnd.adobe.photoshop', // PSD (Photoshop) + 'image/x-pict' // PICT +]; diff --git a/src/firebase-messaging-sw.js b/src/firebase-messaging-sw.js index 46c31f74b..01b7c4396 100644 --- a/src/firebase-messaging-sw.js +++ b/src/firebase-messaging-sw.js @@ -1,6 +1,5 @@ importScripts('https://www.gstatic.com/firebasejs/8.2.0/firebase-app.js'); importScripts('https://www.gstatic.com/firebasejs/8.2.0/firebase-messaging.js'); -importScripts('./assets/dexie/dist/dexie.js'); // Initialize the Firebase app in the service worker by passing the generated config var firebaseConfig = { @@ -70,46 +69,3 @@ self.addEventListener('message', function(event){ } }); }); */ - - - - -// Define the schema using a plain object (similar to zod schema in TypeScript) -const tableSharedCalendarSchema = { - wxUserId: 'number', - wxFullName: 'string', - wxeMail: 'string', - role: 'string', - roleId: 'number', - shareType: 'number', - startDate: 'string', - endDate: 'string' -}; - -// Database declaration -const AgendaDataSource = new Dexie('AgendaDataSource'); - -// Define the database schema -AgendaDataSource.version(1).stores({ - shareCalendar: '++wxUserId, wxFullName, wxeMail, role, roleId, shareType, startDate, endDate' -}); - -// Define the table schema using Dexie.js' Table interface (optional) -const shareCalendarTable = AgendaDataSource.table('shareCalendar'); - -(async()=> { - console.log(await shareCalendarTable.toArray()) -})(); - - -// setInterval(()=>{ -// shareCalendarTable.add({ -// wxUserId: new Date().getTime(), -// wxFullName: "3-", -// wxeMail: "SessionStore.user.Email", -// role: "SessionStore.user.RoleDescription", -// roleId: "SessionStore.user.RoleID", -// shareType: 3, -// date: '', -// }) -// }, 1000) diff --git a/src/main.ts b/src/main.ts index 69ba70b53..73682e6a0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -11,7 +11,8 @@ import { SendIntent } from "send-intent"; import { Filesystem } from '@capacitor/filesystem'; import 'src/app/services/shareIntent' import 'src/app/services/monitoring/opentelemetry/matrix'; - +// import { SourceMapConsumer } from 'source-map'; +//import { SourceMapConsumer } from 'source-map-js'; if (environment.production) { enableProdMode(); } @@ -34,7 +35,7 @@ if (environment.production) { ); */ if ('serviceWorker' in navigator) { - navigator.serviceWorker.register('firebase-messaging-sw.js') + navigator.serviceWorker.register('/firebase-messaging-sw.js') .then(registration => { console.log('Service Worker registrado com sucesso:', registration); @@ -60,3 +61,127 @@ platformBrowserDynamic().bootstrapModule(AppModule) // Call the element loader after the platform has been bootstrapped defineCustomElements(window); + + +// const trace = ` +// Error: Uncaught (in promise): TypeError: Cannot set properties of undefined (setting 'Oficial') +// TypeError: Cannot set properties of undefined (setting 'Oficial') +// at main-es2017.251dcec9a0796e6dfef5.js:1:2853300 +// at Generator.next () +// at r (main-es2017.251dcec9a0796e6dfef5.js:1:5152059) +// at s (main-es2017.251dcec9a0796e6dfef5.js:1:5152261) +// at l.invoke (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:6540) +// at Object.onInvoke (main-es2017.251dcec9a0796e6dfef5.js:1:439735) +// at l.invoke (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:6480) +// at t.run (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:1939) +// at polyfills-es2017.7eddec01cc10d4e8cd34.js:1:16627 +// at l.invokeTask (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:7158) +// at Object.onInvokeTask (main-es2017.251dcec9a0796e6dfef5.js:1:439551) +// at l.invokeTask (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:7079) +// at t.runTask (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:2554) +// at m (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:9152) +// at u.invokeTask [as invoke] (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:8237) +// at _ (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:20025) +// at XMLHttpRequest.k (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:20346) +// at Z (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:15821) +// at polyfills-es2017.7eddec01cc10d4e8cd34.js:1:14908 +// at r (main-es2017.251dcec9a0796e6dfef5.js:1:5152094) +// at s (main-es2017.251dcec9a0796e6dfef5.js:1:5152261) +// at l.invoke (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:6540) +// at Object.onInvoke (main-es2017.251dcec9a0796e6dfef5.js:1:439735) +// at l.invoke (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:6480) +// at t.run (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:1939) +// at polyfills-es2017.7eddec01cc10d4e8cd34.js:1:16627 +// at l.invokeTask (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:7158) +// at Object.onInvokeTask (main-es2017.251dcec9a0796e6dfef5.js:1:439551) +// at l.invokeTask (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:7079) +// at t.runTask (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:2554) +// at m (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:9152) +// at u.invokeTask [as invoke] (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:8237) +// at _ (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:20025) +// at XMLHttpRequest.k (polyfills-es2017.7eddec01cc10d4e8cd34.js:1:20346) +// `; + +// const regex = /([a-zA-Z0-9._-]+\.js):(\d+):(\d+)/g; +// const matches = []; +// let match; + +// while ((match = regex.exec(trace)) !== null) { +// matches.push({ +// file: match[1], +// line: parseInt(match[2], 10), +// column: parseInt(match[3], 10) +// }); +// } + +// function parseErrorStack(stack) { +// const lines = stack.split('\n'); + +// const errorMessage = lines.slice(0, 2).join('\n').trim(); +// const fileLocation = lines.find(line => line.includes('.js')); + +// if (fileLocation) { +// const locationMatch = fileLocation.match(/(.*\.js):(\d+):(\d+)/); +// if (locationMatch) { +// const [, filePath, lineNumber, columnNumber] = locationMatch; +// return { +// errorMessage, +// filePath, +// lineNumber, +// columnNumber +// }; +// } +// } + +// return { errorMessage, filePath: null, lineNumber: null, columnNumber: null }; +// } + +// async function fetchAndHandleSourceMap(matches) { +// try { +// const mapResponse = await fetch('https://gd-fo-dev.dyndns.info/main-es2017.7f4c6682bbbe369ef4d8.js.map'); +// const mapContent = await mapResponse.json(); + +// // Create SourceMapConsumer +// const consumer = await new SourceMapConsumer(mapContent); + +// console.log({matches}) +// for (const match of matches) { +// // Use the source map to find the original position +// let originalPosition = consumer.originalPositionFor({ +// line: match.line, +// column: match.column +// }); + +// if (originalPosition.source && originalPosition.source.includes('src')) { +// console.log(`Original file: ${originalPosition.source}, Line: ${originalPosition.line}, Column: ${originalPosition.column}`); + +// // Extract the source content for the original file +// const code = consumer.sourceContentFor(originalPosition.source); + +// // Output the specific line from the source +// const lines = code.split('\n'); +// const lineNumber = originalPosition.line; +// if (lineNumber >= 1 && lineNumber <= lines.length) { +// console.log(`Line ${lineNumber}: ${lines[lineNumber - 1]}`); +// } else { +// console.log(`Line ${lineNumber} is out of range. The code has ${lines.length} lines.`); +// } +// } else { +// console.log(originalPosition) +// } + +// } + + +// } catch (error) { +// console.error('Error handling source map:', error); +// } +// } + +// const parsedError = parseErrorStack(trace); +// console.log('Error Message:', parsedError.errorMessage); +// console.log('File Path:', parsedError.filePath); +// console.log('Line:', parsedError.lineNumber); +// console.log('Column:', parsedError.columnNumber); + +// fetchAndHandleSourceMap(matches); diff --git a/version/git-version.ts b/version/git-version.ts index a34b92a29..101b68615 100644 --- a/version/git-version.ts +++ b/version/git-version.ts @@ -1,11 +1,11 @@ export let versionData = { - "shortSHA": "1f08eb551", - "SHA": "1f08eb5514d617f4e0dbe6e691d740a883c869d0", + "shortSHA": "9da65a1e7", + "SHA": "9da65a1e7be721fb69c0b820b02a19e171b484d2", "branch": "feature/chat-new-api-peter", "lastCommitAuthor": "'Peter Maquiran'", - "lastCommitTime": "'Thu Sep 19 09:16:14 2024 +0100'", - "lastCommitMessage": "mobile create grupo and contact", - "lastCommitNumber": "6084", - "changeStatus": "On branch feature/chat-new-api-peter\nYour branch is ahead of 'origin/feature/chat-new-api-peter' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: src/app/infra/file-system/mobile/file-system-mobile.service.ts\n\tmodified: src/app/module/chat/domain/use-case/room/room-update-name-sync.service.ts\n\tmodified: src/app/ui/chat/chat.page.ts\n\tmodified: src/app/ui/chat/component/messages/messages.page.html\n\tmodified: src/app/ui/chat/component/messages/messages.page.ts\n\tmodified: src/app/ui/chat/modal/chat-popover/chat-popover.page.scss\n\tmodified: src/app/ui/chat/modal/edit-group/edit-group.page.html\n\tmodified: src/app/ui/chat/modal/edit-group/edit-group.page.ts\n\tmodified: src/app/ui/chat/modal/group-messages/group-contacts/group-contacts.page.ts\n\tmodified: src/app/ui/chat/modal/messages/contacts/contacts.page.html\n\tmodified: src/app/ui/chat/modal/messages/messages.page.html\n\tmodified: src/app/ui/chat/modal/messages/messages.page.ts\n\tmodified: src/app/ui/chat/modal/new-group/new-group.page.ts\n\tmodified: src/app/ui/chat/modal/room-info/room-info.page.html\n\tmodified: src/app/ui/chat/modal/room-info/room-info.page.ts\n\tmodified: src/app/ui/chat/modal/set-room-owner/set-room-owner.page.html\n\tmodified: src/app/ui/chat/store/roomStore.ts", + "lastCommitTime": "'Thu Sep 19 23:36:59 2024 +0100'", + "lastCommitMessage": "fix open pdf and member list", + "lastCommitNumber": "6085", + "changeStatus": "On branch feature/chat-new-api-peter\nYour branch is up to date with 'origin/feature/chat-new-api-peter'.\n\nChanges to be committed:\n (use \"git restore --staged ...\" to unstage)\n\tmodified: angular.json\n\tmodified: package-lock.json\n\tmodified: package.json\n\tmodified: src/app/core/chat/repository/distribution/distribution-local-repository.ts\n\tmodified: src/app/infra/file-system/mobile/file-system-mobile.service.ts\n\tmodified: src/app/module/chat/data/repository/destribution/destribution-local-repository.ts\n\tmodified: src/app/module/chat/domain/use-case/room/room-bold-sync-use-case.service.ts\n\tmodified: src/app/services/events.service.ts\n\tmodified: src/app/ui/chat/chat.page.ts\n\tmodified: src/app/ui/chat/component/messages/messages.page.ts\n\tmodified: src/app/ui/chat/modal/messages/messages.page.ts\n\tmodified: src/app/ui/chat/modal/room-info/room-info.page.ts\n\tnew file: src/app/utils/allowedImageExtension.ts\n\tmodified: src/firebase-messaging-sw.js\n\tmodified: src/main.ts\n\tmodified: version/git-version.ts", "changeAuthor": "peter.maquiran" } \ No newline at end of file