From 1ebd3e4fd9077ff9d42ee6683c86fbca87e79935 Mon Sep 17 00:00:00 2001 From: Maciej Moscicki Date: Fri, 24 May 2024 18:13:03 +0200 Subject: [PATCH] add support for debugging filters with all unicode characters (#1856) --- .../useSubscriptionFiltersDebug.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hermes-console/src/composables/subscription/use-subscription-filters-debug/useSubscriptionFiltersDebug.ts b/hermes-console/src/composables/subscription/use-subscription-filters-debug/useSubscriptionFiltersDebug.ts index 43bc147515..35f7045596 100644 --- a/hermes-console/src/composables/subscription/use-subscription-filters-debug/useSubscriptionFiltersDebug.ts +++ b/hermes-console/src/composables/subscription/use-subscription-filters-debug/useSubscriptionFiltersDebug.ts @@ -35,6 +35,15 @@ const toFiltersJSON = ( }; }; +// https://stackoverflow.com/a/30106551 +function b64EncodeUnicode(str: string): string { + return btoa( + encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function (match, p1) { + return String.fromCharCode(parseInt(p1, 16)); + }), + ); +} + export function useSubscriptionFiltersDebug(): UseSubscriptionFiltersDebug { const notificationStore = useNotificationsStore(); const status: Ref = ref(); @@ -52,7 +61,7 @@ export function useSubscriptionFiltersDebug(): UseSubscriptionFiltersDebug { ); const response = ( await verifyFilters(topicName, { - message: btoa(message), + message: b64EncodeUnicode(message), filters: filtersJSON, }) ).data;