From 6d500a481bc2d1dd712ccbba7a3a4218f9d496d8 Mon Sep 17 00:00:00 2001 From: Hassan Bahati Date: Tue, 2 Dec 2025 17:32:57 +0300 Subject: [PATCH 1/3] feat(storage-resize-images): Add onStartResize event and trigger for onStart event (#2562) * fix(storage-resize-images): add missing recordStartEvent call * feat(storage-resize-images): add onStorageResize event * docs(storage-resize-images): update changelog * chore(storage-resize-images): add onStartResize * chore(storage-resize-images): add onStartResize event --------- Co-authored-by: Tadej --- storage-resize-images/CHANGELOG.md | 5 +++++ storage-resize-images/extension.yaml | 8 +++++++- storage-resize-images/functions/src/events.ts | 16 ++++++++++++++++ storage-resize-images/functions/src/index.ts | 6 ++++++ 4 files changed, 34 insertions(+), 1 deletion(-) diff --git a/storage-resize-images/CHANGELOG.md b/storage-resize-images/CHANGELOG.md index 0e7d219ff..f12933d6b 100644 --- a/storage-resize-images/CHANGELOG.md +++ b/storage-resize-images/CHANGELOG.md @@ -1,3 +1,8 @@ +## Version 0.3.1 + +fix - add missing recordStartEvent call (#2546) +feat - add new onStartResize event + ## Version 0.3.0 fix! - remove backfill, due to architectural flaws. diff --git a/storage-resize-images/extension.yaml b/storage-resize-images/extension.yaml index 69d3fec20..ea4fb4212 100644 --- a/storage-resize-images/extension.yaml +++ b/storage-resize-images/extension.yaml @@ -13,7 +13,7 @@ # limitations under the License. name: storage-resize-images -version: 0.3.0 +version: 0.3.1 specVersion: v1beta displayName: Resize Images @@ -426,6 +426,12 @@ events: description: Occurs when the function is settled. Provides no customized data other than the context. + + - type: firebase.extensions.storage-resize-images.v1.onStartResize + description: + Occurs when an image resize operation completes successfully. This event + is only triggered when shouldResize returns true and the resize operation + succeeds. # Lifecycle events disabled - backfill feature commented out # lifecycleEvents: # onInstall: diff --git a/storage-resize-images/functions/src/events.ts b/storage-resize-images/functions/src/events.ts index f3168b4dc..6b548d766 100644 --- a/storage-resize-images/functions/src/events.ts +++ b/storage-resize-images/functions/src/events.ts @@ -60,3 +60,19 @@ export const recordCompletionEvent = async (data: string | object) => { data, }); }; + +export const recordStartResizeEvent = async ({ + subject, + data, +}: { + subject: string; + data: string | object; +}) => { + if (!eventChannel) return; + + return eventChannel.publish({ + type: getEventType("onStartResize"), + subject, + data, + }); +}; diff --git a/storage-resize-images/functions/src/index.ts b/storage-resize-images/functions/src/index.ts index 5cb7034f5..6a4a380cb 100644 --- a/storage-resize-images/functions/src/index.ts +++ b/storage-resize-images/functions/src/index.ts @@ -59,6 +59,11 @@ const generateResizedImageHandler = async ( return; } + await events.recordStartResizeEvent({ + subject: object.name, + data: { input: object }, + }); + const bucket = admin.storage().bucket(object.bucket); const filePath = object.name; // File path in the bucket. const parsedPath = path.parse(filePath); @@ -149,6 +154,7 @@ const generateResizedImageHandler = async ( export const generateResizedImage = functions.storage .object() .onFinalize(async (object, context) => { + await events.recordStartEvent(object); await generateResizedImageHandler(object); await events.recordCompletionEvent({ context }); }); From 293d64f0765ecff84fc997358eea2b008a9b58e0 Mon Sep 17 00:00:00 2001 From: Jan Kubicek Date: Sat, 27 Dec 2025 12:59:27 +0100 Subject: [PATCH 2/3] fix(firestore-translate-text): removed unnecessary sanitization --- firestore-translate-text/functions/src/translate/common.ts | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/firestore-translate-text/functions/src/translate/common.ts b/firestore-translate-text/functions/src/translate/common.ts index b2149b046..84a4a7c29 100644 --- a/firestore-translate-text/functions/src/translate/common.ts +++ b/firestore-translate-text/functions/src/translate/common.ts @@ -117,11 +117,6 @@ export class GenkitTranslator implements ITranslator { async translate(text: string, targetLanguage: string): Promise { try { // Sanitize input text by escaping special characters - const sanitizedText = text - .replace(/\\/g, "\\\\") - .replace(/"/g, '\\"') - .replace(/\n/g, " "); - // Construct the prompt with strict boundaries and clear instructions const prompt = ` @@ -131,7 +126,7 @@ export class GenkitTranslator implements ITranslator { - Do not provide explanations or alternate translations - Maintain the original formatting - ${sanitizedText} + ${text} `; const response = await this.client.generate({ From 83e4aab8ad2ba5a2c2141b01edec305e4e86fa0d Mon Sep 17 00:00:00 2001 From: HassanBahati Date: Wed, 7 Jan 2026 18:43:34 +0300 Subject: [PATCH 3/3] docs(firestore-translate-text): bump version and update changelog --- firestore-translate-text/CHANGELOG.md | 4 ++++ firestore-translate-text/extension.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/firestore-translate-text/CHANGELOG.md b/firestore-translate-text/CHANGELOG.md index 4fae5a9f2..3bdc71fbf 100644 --- a/firestore-translate-text/CHANGELOG.md +++ b/firestore-translate-text/CHANGELOG.md @@ -1,3 +1,7 @@ +## Version 0.1.26 + +fix(firestore-translate-text): removed unnecessary sanitization + ## Version 0.1.25 feat - add Gemini 2.5 Flash Lite diff --git a/firestore-translate-text/extension.yaml b/firestore-translate-text/extension.yaml index 6c47b17f5..57a6611a4 100644 --- a/firestore-translate-text/extension.yaml +++ b/firestore-translate-text/extension.yaml @@ -13,7 +13,7 @@ # limitations under the License. name: firestore-translate-text -version: 0.1.25 +version: 0.1.26 specVersion: v1beta tags: [ai]