From ef34068ac4898bc6fee58c94656f6484e0ea11ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Thu, 25 Jan 2024 18:50:41 +0300 Subject: [PATCH 1/2] feat(formatter): add string to base64 action --- .../backend/src/apps/formatter/actions/text/index.js | 3 +++ .../actions/text/transformers/string-to-base64.js | 8 ++++++++ .../dynamic-fields/list-transform-options/index.js | 2 ++ .../list-transform-options/text/string-to-base64.js | 12 ++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 packages/backend/src/apps/formatter/actions/text/transformers/string-to-base64.js create mode 100644 packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/string-to-base64.js diff --git a/packages/backend/src/apps/formatter/actions/text/index.js b/packages/backend/src/apps/formatter/actions/text/index.js index 7e63846e..b9926438 100644 --- a/packages/backend/src/apps/formatter/actions/text/index.js +++ b/packages/backend/src/apps/formatter/actions/text/index.js @@ -8,6 +8,7 @@ import lowercase from './transformers/lowercase.js'; import markdownToHtml from './transformers/markdown-to-html.js'; import pluralize from './transformers/pluralize.js'; import replace from './transformers/replace.js'; +import stringToBase64 from './transformers/string-to-base64.js'; import trimWhitespace from './transformers/trim-whitespace.js'; import useDefaultValue from './transformers/use-default-value.js'; @@ -20,6 +21,7 @@ const transformers = { markdownToHtml, pluralize, replace, + stringToBase64, trimWhitespace, useDefaultValue, }; @@ -45,6 +47,7 @@ export default defineAction({ { label: 'Lowercase', value: 'lowercase' }, { label: 'Pluralize', value: 'pluralize' }, { label: 'Replace', value: 'replace' }, + { label: 'String to Base64', value: 'stringToBase64' }, { label: 'Trim Whitespace', value: 'trimWhitespace' }, { label: 'Use Default Value', value: 'useDefaultValue' }, ], diff --git a/packages/backend/src/apps/formatter/actions/text/transformers/string-to-base64.js b/packages/backend/src/apps/formatter/actions/text/transformers/string-to-base64.js new file mode 100644 index 00000000..0b7052fe --- /dev/null +++ b/packages/backend/src/apps/formatter/actions/text/transformers/string-to-base64.js @@ -0,0 +1,8 @@ +const stringtoBase64 = ($) => { + const input = $.step.parameters.input; + const base64String = Buffer.from(input).toString('base64'); + + return base64String; +}; + +export default stringtoBase64; diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js index 64ed7d56..4e78b01d 100644 --- a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js @@ -6,6 +6,7 @@ import lowercase from './text/lowercase.js'; import markdownToHtml from './text/markdown-to-html.js'; import pluralize from './text/pluralize.js'; import replace from './text/replace.js'; +import stringToBase64 from './text/string-to-base64.js'; import trimWhitespace from './text/trim-whitespace.js'; import useDefaultValue from './text/use-default-value.js'; import performMathOperation from './numbers/perform-math-operation.js'; @@ -23,6 +24,7 @@ const options = { markdownToHtml, pluralize, replace, + stringToBase64, trimWhitespace, useDefaultValue, performMathOperation, diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/string-to-base64.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/string-to-base64.js new file mode 100644 index 00000000..1fb56951 --- /dev/null +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/string-to-base64.js @@ -0,0 +1,12 @@ +const stringToBase64 = [ + { + label: 'Input', + key: 'input', + type: 'string', + required: true, + description: 'Text that will be converted to Base64.', + variables: true, + }, +]; + +export default stringToBase64; From 4c7d09c3d862d730c00824bdfcdef53e2ff75d44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C4=B1dvan=20Akca?= Date: Fri, 26 Jan 2024 12:21:19 +0300 Subject: [PATCH 2/2] feat(formatter): add base64 to string action --- .../backend/src/apps/formatter/actions/text/index.js | 3 +++ .../actions/text/transformers/base64-to-string.js | 8 ++++++++ .../dynamic-fields/list-transform-options/index.js | 2 ++ .../list-transform-options/text/base64-to-string.js | 12 ++++++++++++ 4 files changed, 25 insertions(+) create mode 100644 packages/backend/src/apps/formatter/actions/text/transformers/base64-to-string.js create mode 100644 packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/base64-to-string.js diff --git a/packages/backend/src/apps/formatter/actions/text/index.js b/packages/backend/src/apps/formatter/actions/text/index.js index b9926438..d3f0980a 100644 --- a/packages/backend/src/apps/formatter/actions/text/index.js +++ b/packages/backend/src/apps/formatter/actions/text/index.js @@ -1,5 +1,6 @@ import defineAction from '../../../../helpers/define-action.js'; +import base64ToString from './transformers/base64-to-string.js'; import capitalize from './transformers/capitalize.js'; import extractEmailAddress from './transformers/extract-email-address.js'; import extractNumber from './transformers/extract-number.js'; @@ -13,6 +14,7 @@ import trimWhitespace from './transformers/trim-whitespace.js'; import useDefaultValue from './transformers/use-default-value.js'; const transformers = { + base64ToString, capitalize, extractEmailAddress, extractNumber, @@ -39,6 +41,7 @@ export default defineAction({ required: true, variables: true, options: [ + { label: 'Base64 to String', value: 'base64ToString' }, { label: 'Capitalize', value: 'capitalize' }, { label: 'Convert HTML to Markdown', value: 'htmlToMarkdown' }, { label: 'Convert Markdown to HTML', value: 'markdownToHtml' }, diff --git a/packages/backend/src/apps/formatter/actions/text/transformers/base64-to-string.js b/packages/backend/src/apps/formatter/actions/text/transformers/base64-to-string.js new file mode 100644 index 00000000..7e4e397f --- /dev/null +++ b/packages/backend/src/apps/formatter/actions/text/transformers/base64-to-string.js @@ -0,0 +1,8 @@ +const base64ToString = ($) => { + const input = $.step.parameters.input; + const decodedString = Buffer.from(input, 'base64').toString('utf8'); + + return decodedString; +}; + +export default base64ToString; diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js index 4e78b01d..f4aab425 100644 --- a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/index.js @@ -1,3 +1,4 @@ +import base64ToString from './text/base64-to-string.js'; import capitalize from './text/capitalize.js'; import extractEmailAddress from './text/extract-email-address.js'; import extractNumber from './text/extract-number.js'; @@ -16,6 +17,7 @@ import formatPhoneNumber from './numbers/format-phone-number.js'; import formatDateTime from './date-time/format-date-time.js'; const options = { + base64ToString, capitalize, extractEmailAddress, extractNumber, diff --git a/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/base64-to-string.js b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/base64-to-string.js new file mode 100644 index 00000000..f96def87 --- /dev/null +++ b/packages/backend/src/apps/formatter/dynamic-fields/list-transform-options/text/base64-to-string.js @@ -0,0 +1,12 @@ +const base64ToString = [ + { + label: 'Input', + key: 'input', + type: 'string', + required: true, + description: 'Text that will be converted from Base64 to string.', + variables: true, + }, +]; + +export default base64ToString;