JMAP
All checks were successful
Docker Deploy / build-and-push (push) Successful in 1m22s

This commit is contained in:
Atridad Lahiji 2025-01-23 16:51:27 -06:00
parent ae039f00b6
commit 13f16b6dbb
Signed by: atridad
SSH key fingerprint: SHA256:LGomp8Opq0jz+7kbwNcdfTcuaLRb5Nh0k5AchDDb438
3 changed files with 49 additions and 24 deletions

View file

@ -17,6 +17,7 @@
"tailwindcss": "^3.0.24" "tailwindcss": "^3.0.24"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.10.10",
"daisyui": "^4.12.23" "daisyui": "^4.12.23"
} }
} }

56
pnpm-lock.yaml generated
View file

@ -10,16 +10,16 @@ importers:
dependencies: dependencies:
'@astrojs/node': '@astrojs/node':
specifier: ^9.0.2 specifier: ^9.0.2
version: 9.0.2(astro@5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0)) version: 9.0.2(astro@5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))
'@astrojs/solid-js': '@astrojs/solid-js':
specifier: ^5.0.4 specifier: ^5.0.4
version: 5.0.4(jiti@1.21.7)(solid-js@1.9.4)(yaml@2.7.0) version: 5.0.4(@types/node@22.10.10)(jiti@1.21.7)(solid-js@1.9.4)(yaml@2.7.0)
'@astrojs/tailwind': '@astrojs/tailwind':
specifier: ^5.1.5 specifier: ^5.1.5
version: 5.1.5(astro@5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17) version: 5.1.5(astro@5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17)
astro: astro:
specifier: ^5.1.8 specifier: ^5.1.8
version: 5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0) version: 5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0)
solid-js: solid-js:
specifier: ^1.9.4 specifier: ^1.9.4
version: 1.9.4 version: 1.9.4
@ -27,6 +27,9 @@ importers:
specifier: ^3.0.24 specifier: ^3.0.24
version: 3.4.17 version: 3.4.17
devDependencies: devDependencies:
'@types/node':
specifier: ^22.10.10
version: 22.10.10
daisyui: daisyui:
specifier: ^4.12.23 specifier: ^4.12.23
version: 4.12.23(postcss@8.5.1) version: 4.12.23(postcss@8.5.1)
@ -613,6 +616,9 @@ packages:
'@types/nlcst@2.0.3': '@types/nlcst@2.0.3':
resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==}
'@types/node@22.10.10':
resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==}
'@types/unist@3.0.3': '@types/unist@3.0.3':
resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==}
@ -1821,6 +1827,9 @@ packages:
uncrypto@0.1.3: uncrypto@0.1.3:
resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==}
undici-types@6.20.0:
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
unenv@1.10.0: unenv@1.10.0:
resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==} resolution: {integrity: sha512-wY5bskBQFL9n3Eca5XnhH6KbUo/tfvkwm9OpcdCvLaeA7piBNbavbOKJySEwQ1V0RH6HvNlSAFRTpvTqgKRQXQ==}
@ -2105,9 +2114,9 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
'@astrojs/node@9.0.2(astro@5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))': '@astrojs/node@9.0.2(astro@5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))':
dependencies: dependencies:
astro: 5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0) astro: 5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0)
send: 1.1.0 send: 1.1.0
server-destroy: 1.0.1 server-destroy: 1.0.1
transitivePeerDependencies: transitivePeerDependencies:
@ -2117,11 +2126,11 @@ snapshots:
dependencies: dependencies:
prismjs: 1.29.0 prismjs: 1.29.0
'@astrojs/solid-js@5.0.4(jiti@1.21.7)(solid-js@1.9.4)(yaml@2.7.0)': '@astrojs/solid-js@5.0.4(@types/node@22.10.10)(jiti@1.21.7)(solid-js@1.9.4)(yaml@2.7.0)':
dependencies: dependencies:
solid-js: 1.9.4 solid-js: 1.9.4
vite: 6.0.11(jiti@1.21.7)(yaml@2.7.0) vite: 6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0)
vite-plugin-solid: 2.11.0(solid-js@1.9.4)(vite@6.0.11(jiti@1.21.7)(yaml@2.7.0)) vite-plugin-solid: 2.11.0(solid-js@1.9.4)(vite@6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0))
transitivePeerDependencies: transitivePeerDependencies:
- '@testing-library/jest-dom' - '@testing-library/jest-dom'
- '@types/node' - '@types/node'
@ -2137,9 +2146,9 @@ snapshots:
- tsx - tsx
- yaml - yaml
'@astrojs/tailwind@5.1.5(astro@5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17)': '@astrojs/tailwind@5.1.5(astro@5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0))(tailwindcss@3.4.17)':
dependencies: dependencies:
astro: 5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0) astro: 5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0)
autoprefixer: 10.4.20(postcss@8.5.1) autoprefixer: 10.4.20(postcss@8.5.1)
postcss: 8.5.1 postcss: 8.5.1
postcss-load-config: 4.0.2(postcss@8.5.1) postcss-load-config: 4.0.2(postcss@8.5.1)
@ -2609,6 +2618,10 @@ snapshots:
dependencies: dependencies:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
'@types/node@22.10.10':
dependencies:
undici-types: 6.20.0
'@types/unist@3.0.3': {} '@types/unist@3.0.3': {}
'@ungap/structured-clone@1.2.1': {} '@ungap/structured-clone@1.2.1': {}
@ -2648,7 +2661,7 @@ snapshots:
array-iterate@2.0.1: {} array-iterate@2.0.1: {}
astro@5.1.8(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0): astro@5.1.8(@types/node@22.10.10)(jiti@1.21.7)(rollup@4.31.0)(typescript@5.7.3)(yaml@2.7.0):
dependencies: dependencies:
'@astrojs/compiler': 2.10.3 '@astrojs/compiler': 2.10.3
'@astrojs/internal-helpers': 0.4.2 '@astrojs/internal-helpers': 0.4.2
@ -2700,8 +2713,8 @@ snapshots:
unist-util-visit: 5.0.0 unist-util-visit: 5.0.0
unstorage: 1.14.4 unstorage: 1.14.4
vfile: 6.0.3 vfile: 6.0.3
vite: 6.0.11(jiti@1.21.7)(yaml@2.7.0) vite: 6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0)
vitefu: 1.0.5(vite@6.0.11(jiti@1.21.7)(yaml@2.7.0)) vitefu: 1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0))
which-pm: 3.0.0 which-pm: 3.0.0
xxhash-wasm: 1.1.0 xxhash-wasm: 1.1.0
yargs-parser: 21.1.1 yargs-parser: 21.1.1
@ -4179,6 +4192,8 @@ snapshots:
uncrypto@0.1.3: {} uncrypto@0.1.3: {}
undici-types@6.20.0: {}
unenv@1.10.0: unenv@1.10.0:
dependencies: dependencies:
consola: 3.4.0 consola: 3.4.0
@ -4275,7 +4290,7 @@ snapshots:
'@types/unist': 3.0.3 '@types/unist': 3.0.3
vfile-message: 4.0.2 vfile-message: 4.0.2
vite-plugin-solid@2.11.0(solid-js@1.9.4)(vite@6.0.11(jiti@1.21.7)(yaml@2.7.0)): vite-plugin-solid@2.11.0(solid-js@1.9.4)(vite@6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0)):
dependencies: dependencies:
'@babel/core': 7.26.0 '@babel/core': 7.26.0
'@types/babel__core': 7.20.5 '@types/babel__core': 7.20.5
@ -4283,24 +4298,25 @@ snapshots:
merge-anything: 5.1.7 merge-anything: 5.1.7
solid-js: 1.9.4 solid-js: 1.9.4
solid-refresh: 0.6.3(solid-js@1.9.4) solid-refresh: 0.6.3(solid-js@1.9.4)
vite: 6.0.11(jiti@1.21.7)(yaml@2.7.0) vite: 6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0)
vitefu: 1.0.5(vite@6.0.11(jiti@1.21.7)(yaml@2.7.0)) vitefu: 1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0))
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
vite@6.0.11(jiti@1.21.7)(yaml@2.7.0): vite@6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0):
dependencies: dependencies:
esbuild: 0.24.2 esbuild: 0.24.2
postcss: 8.5.1 postcss: 8.5.1
rollup: 4.31.0 rollup: 4.31.0
optionalDependencies: optionalDependencies:
'@types/node': 22.10.10
fsevents: 2.3.3 fsevents: 2.3.3
jiti: 1.21.7 jiti: 1.21.7
yaml: 2.7.0 yaml: 2.7.0
vitefu@1.0.5(vite@6.0.11(jiti@1.21.7)(yaml@2.7.0)): vitefu@1.0.5(vite@6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0)):
optionalDependencies: optionalDependencies:
vite: 6.0.11(jiti@1.21.7)(yaml@2.7.0) vite: 6.0.11(@types/node@22.10.10)(jiti@1.21.7)(yaml@2.7.0)
web-namespaces@2.0.1: {} web-namespaces@2.0.1: {}

View file

@ -9,10 +9,18 @@ const sendEmailViaJMAP = async ({
subject: string; subject: string;
message: string; message: string;
}) => { }) => {
const accessToken = import.meta.env.JMAP_ACCESS_TOKEN; const accessToken = process.env.JMAP_ACCESS_TOKEN
const accountId = import.meta.env.JMAP_ACCOUNT_ID; ? process.env.JMAP_ACCESS_TOKEN
const fromEmail = import.meta.env.FROM_EMAIL; : import.meta.env.JMAP_ACCESS_TOKEN;
const toEmail = import.meta.env.TO_EMAIL; const accountId = process.env.JMAP_ACCOUNT_ID
? process.env.JMAP_ACCOUNT_ID
: import.meta.env.JMAP_ACCOUNT_ID;
const fromEmail = process.env.FROM_EMAIL
? process.env.FROM_EMAIL
: import.meta.env.FROM_EMAIL;
const toEmail = process.env.TO_EMAIL
? process.env.TO_EMAIL
: import.meta.env.TO_EMAIL;
const apiUrl = "https://api.fastmail.com/jmap/api/"; const apiUrl = "https://api.fastmail.com/jmap/api/";
if (!accessToken || !accountId || !fromEmail || !toEmail) { if (!accessToken || !accountId || !fromEmail || !toEmail) {