alfred masked email workflow
diff --git a/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/icon.png b/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/icon.png
new file mode 100644
index 00000000..58f73b1a
Binary files /dev/null and b/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/icon.png differ
diff --git a/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/info.plist b/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/info.plist
new file mode 100644
index 00000000..83cca0da
--- /dev/null
+++ b/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/info.plist
@@ -0,0 +1,335 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>bundleid</key>
+ <string>dev.kejadlen.alfred.masked-email</string>
+ <key>category</key>
+ <string>Internet</string>
+ <key>connections</key>
+ <dict>
+ <key>3276268B-EDEE-48F0-8440-C5CB858486B0</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>73EBC7BD-517E-41C0-9B33-3247550B2949</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ <key>46A82CB4-415B-479C-B0F9-51967AB308FA</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>90400CCE-3198-4260-B29C-C8315F95C393</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ <key>73EBC7BD-517E-41C0-9B33-3247550B2949</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>90400CCE-3198-4260-B29C-C8315F95C393</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>sourceoutputuid</key>
+ <string>934C5965-C662-43ED-B954-CB67EE9221F0</string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>destinationuid</key>
+ <string>46A82CB4-415B-479C-B0F9-51967AB308FA</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ <key>90400CCE-3198-4260-B29C-C8315F95C393</key>
+ <array>
+ <dict>
+ <key>destinationuid</key>
+ <string>A0F6FCB7-FFBB-46F4-BEA0-0BA1B31B498F</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>destinationuid</key>
+ <string>C48A42DA-CE50-40FB-BF8A-9E131D7F6B09</string>
+ <key>modifiers</key>
+ <integer>0</integer>
+ <key>modifiersubtext</key>
+ <string></string>
+ <key>vitoclose</key>
+ <false/>
+ </dict>
+ </array>
+ </dict>
+ <key>createdby</key>
+ <string>Alpha Chen</string>
+ <key>description</key>
+ <string></string>
+ <key>disabled</key>
+ <false/>
+ <key>name</key>
+ <string>Masked Email</string>
+ <key>objects</key>
+ <array>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>autopaste</key>
+ <true/>
+ <key>clipboardtext</key>
+ <string>{query}</string>
+ <key>ignoredynamicplaceholders</key>
+ <false/>
+ <key>transient</key>
+ <false/>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.output.clipboard</string>
+ <key>uid</key>
+ <string>A0F6FCB7-FFBB-46F4-BEA0-0BA1B31B498F</string>
+ <key>version</key>
+ <integer>3</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>concurrently</key>
+ <false/>
+ <key>escaping</key>
+ <integer>0</integer>
+ <key>script</key>
+ <string></string>
+ <key>scriptargtype</key>
+ <integer>1</integer>
+ <key>scriptfile</key>
+ <string>masked-email</string>
+ <key>type</key>
+ <integer>8</integer>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.action.script</string>
+ <key>uid</key>
+ <string>90400CCE-3198-4260-B29C-C8315F95C393</string>
+ <key>version</key>
+ <integer>2</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>argumenttype</key>
+ <integer>1</integer>
+ <key>keyword</key>
+ <string>masked-email</string>
+ <key>subtext</key>
+ <string></string>
+ <key>text</key>
+ <string>Generate Masked Email</string>
+ <key>withspace</key>
+ <false/>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.input.keyword</string>
+ <key>uid</key>
+ <string>3276268B-EDEE-48F0-8440-C5CB858486B0</string>
+ <key>version</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>conditions</key>
+ <array>
+ <dict>
+ <key>inputstring</key>
+ <string></string>
+ <key>matchcasesensitive</key>
+ <false/>
+ <key>matchmode</key>
+ <integer>1</integer>
+ <key>matchstring</key>
+ <string></string>
+ <key>outputlabel</key>
+ <string></string>
+ <key>uid</key>
+ <string>934C5965-C662-43ED-B954-CB67EE9221F0</string>
+ </dict>
+ </array>
+ <key>elselabel</key>
+ <string>else</string>
+ <key>hideelse</key>
+ <false/>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.utility.conditional</string>
+ <key>uid</key>
+ <string>73EBC7BD-517E-41C0-9B33-3247550B2949</string>
+ <key>version</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>alignment</key>
+ <integer>0</integer>
+ <key>backgroundcolor</key>
+ <string></string>
+ <key>fadespeed</key>
+ <integer>0</integer>
+ <key>fillmode</key>
+ <integer>0</integer>
+ <key>font</key>
+ <string></string>
+ <key>ignoredynamicplaceholders</key>
+ <false/>
+ <key>largetypetext</key>
+ <string>{query}</string>
+ <key>textcolor</key>
+ <string></string>
+ <key>wrapat</key>
+ <integer>50</integer>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.output.largetype</string>
+ <key>uid</key>
+ <string>C48A42DA-CE50-40FB-BF8A-9E131D7F6B09</string>
+ <key>version</key>
+ <integer>3</integer>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>argument</key>
+ <string>{clipboard}</string>
+ <key>passthroughargument</key>
+ <false/>
+ <key>variables</key>
+ <dict/>
+ </dict>
+ <key>type</key>
+ <string>alfred.workflow.utility.argument</string>
+ <key>uid</key>
+ <string>46A82CB4-415B-479C-B0F9-51967AB308FA</string>
+ <key>version</key>
+ <integer>1</integer>
+ </dict>
+ </array>
+ <key>readme</key>
+ <string></string>
+ <key>uidata</key>
+ <dict>
+ <key>3276268B-EDEE-48F0-8440-C5CB858486B0</key>
+ <dict>
+ <key>xpos</key>
+ <real>105</real>
+ <key>ypos</key>
+ <real>195</real>
+ </dict>
+ <key>46A82CB4-415B-479C-B0F9-51967AB308FA</key>
+ <dict>
+ <key>xpos</key>
+ <real>435</real>
+ <key>ypos</key>
+ <real>300</real>
+ </dict>
+ <key>73EBC7BD-517E-41C0-9B33-3247550B2949</key>
+ <dict>
+ <key>xpos</key>
+ <real>305</real>
+ <key>ypos</key>
+ <real>215</real>
+ </dict>
+ <key>90400CCE-3198-4260-B29C-C8315F95C393</key>
+ <dict>
+ <key>xpos</key>
+ <real>565</real>
+ <key>ypos</key>
+ <real>180</real>
+ </dict>
+ <key>A0F6FCB7-FFBB-46F4-BEA0-0BA1B31B498F</key>
+ <dict>
+ <key>xpos</key>
+ <real>815</real>
+ <key>ypos</key>
+ <real>95</real>
+ </dict>
+ <key>C48A42DA-CE50-40FB-BF8A-9E131D7F6B09</key>
+ <dict>
+ <key>xpos</key>
+ <real>820</real>
+ <key>ypos</key>
+ <real>255</real>
+ </dict>
+ </dict>
+ <key>userconfigurationconfig</key>
+ <array>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>default</key>
+ <string></string>
+ <key>placeholder</key>
+ <string></string>
+ <key>required</key>
+ <true/>
+ <key>trim</key>
+ <true/>
+ </dict>
+ <key>description</key>
+ <string></string>
+ <key>label</key>
+ <string>Fastmail API Token</string>
+ <key>type</key>
+ <string>textfield</string>
+ <key>variable</key>
+ <string>api_token</string>
+ </dict>
+ <dict>
+ <key>config</key>
+ <dict>
+ <key>default</key>
+ <string></string>
+ <key>placeholder</key>
+ <string></string>
+ <key>required</key>
+ <false/>
+ <key>trim</key>
+ <true/>
+ </dict>
+ <key>description</key>
+ <string></string>
+ <key>label</key>
+ <string>Fastmail Account ID</string>
+ <key>type</key>
+ <string>textfield</string>
+ <key>variable</key>
+ <string>account_id</string>
+ </dict>
+ </array>
+ <key>version</key>
+ <string></string>
+ <key>webaddress</key>
+ <string>https://git.kejadlen.dev/alpha/masked-email.alfredworkflow</string>
+</dict>
+</plist>
diff --git a/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/masked-email b/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/masked-email
new file mode 100755
index 00000000..c6300de7
Binary files /dev/null and b/macos/Alfred.alfredpreferences/workflows/user.workflow.9BE698DA-32FC-4A5B-817E-E76B49D65EDF/masked-email differ