feat: oatuh2 email key support jsonpath (#631)

This commit is contained in:
Dream Hunter
2025-04-12 19:57:03 +08:00
committed by GitHub
parent 0894ac0dc9
commit 26995982af
10 changed files with 530 additions and 472 deletions

View File

@@ -11,19 +11,20 @@
"build": "wrangler deploy --dry-run --outdir dist --minify"
},
"devDependencies": {
"@cloudflare/workers-types": "^4.20250409.0",
"@cloudflare/workers-types": "^4.20250412.0",
"@eslint/js": "9.18.0",
"@simplewebauthn/types": "10.0.0",
"eslint": "9.18.0",
"globals": "^15.15.0",
"typescript-eslint": "^8.29.1",
"wrangler": "^4.9.1"
"wrangler": "^4.10.0"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.782.0",
"@aws-sdk/s3-request-presigner": "^3.782.0",
"@aws-sdk/client-s3": "^3.787.0",
"@aws-sdk/s3-request-presigner": "^3.787.0",
"@simplewebauthn/server": "10.0.1",
"hono": "^4.7.6",
"jsonpath-plus": "^10.3.0",
"mimetext": "^3.0.27",
"postal-mime": "^2.4.3",
"resend": "^4.2.0",

268
worker/pnpm-lock.yaml generated
View File

@@ -14,17 +14,20 @@ importers:
.:
dependencies:
'@aws-sdk/client-s3':
specifier: ^3.782.0
version: 3.782.0
specifier: ^3.787.0
version: 3.787.0
'@aws-sdk/s3-request-presigner':
specifier: ^3.782.0
version: 3.782.0
specifier: ^3.787.0
version: 3.787.0
'@simplewebauthn/server':
specifier: 10.0.1
version: 10.0.1
hono:
specifier: ^4.7.6
version: 4.7.6
jsonpath-plus:
specifier: ^10.3.0
version: 10.3.0
mimetext:
specifier: ^3.0.27
version: 3.0.27
@@ -42,8 +45,8 @@ importers:
version: 1.1.1
devDependencies:
'@cloudflare/workers-types':
specifier: ^4.20250409.0
version: 4.20250409.0
specifier: ^4.20250412.0
version: 4.20250412.0
'@eslint/js':
specifier: 9.18.0
version: 9.18.0
@@ -60,8 +63,8 @@ importers:
specifier: ^8.29.1
version: 8.29.1(eslint@9.18.0)(typescript@5.4.5)
wrangler:
specifier: ^4.9.1
version: 4.9.1(@cloudflare/workers-types@4.20250409.0)
specifier: ^4.10.0
version: 4.10.0(@cloudflare/workers-types@4.20250412.0)
packages:
@@ -88,12 +91,12 @@ packages:
'@aws-crypto/util@5.2.0':
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
'@aws-sdk/client-s3@3.782.0':
resolution: {integrity: sha512-V6JR2JAGYQY7J8wk5un5n/ja2nfCUyyoRCF8Du8JL91NGI8i41Mdr/TzuOGwTgFl6RSXb/ge1K1jk30OH4MugQ==}
'@aws-sdk/client-s3@3.787.0':
resolution: {integrity: sha512-eGLCWkN0NlntJ9yPU6OKUggVS4cFvuZJog+cFg1KD5hniLqz7Y0YRtB4uBxW212fK3XCfddgyscEOEeHaTQQTw==}
engines: {node: '>=18.0.0'}
'@aws-sdk/client-sso@3.782.0':
resolution: {integrity: sha512-5GlJBejo8wqMpSSEKb45WE82YxI2k73YuebjLH/eWDNQeE6VI5Bh9lA1YQ7xNkLLH8hIsb0pSfKVuwh0VEzVrg==}
'@aws-sdk/client-sso@3.787.0':
resolution: {integrity: sha512-L8R+Mh258G0DC73ktpSVrG4TT9i2vmDLecARTDR/4q5sRivdDQSL5bUp3LKcK80Bx+FRw3UETIlX6mYMLL9PJQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/core@3.775.0':
@@ -108,24 +111,24 @@ packages:
resolution: {integrity: sha512-PjDQeDH/J1S0yWV32wCj2k5liRo0ssXMseCBEkCsD3SqsU8o5cU82b0hMX4sAib/RkglCSZqGO0xMiN0/7ndww==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-ini@3.782.0':
resolution: {integrity: sha512-wd4KdRy2YjLsE4Y7pz00470Iip06GlRHkG4dyLW7/hFMzEO2o7ixswCWp6J2VGZVAX64acknlv2Q0z02ebjmhw==}
'@aws-sdk/credential-provider-ini@3.787.0':
resolution: {integrity: sha512-hc2taRoDlXn2uuNuHWDJljVWYrp3r9JF1a/8XmOAZhVUNY+ImeeStylHXhXXKEA4JOjW+5PdJj0f1UDkVCHJiQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-node@3.782.0':
resolution: {integrity: sha512-HZiAF+TCEyKjju9dgysjiPIWgt/+VerGaeEp18mvKLNfgKz1d+/82A2USEpNKTze7v3cMFASx3CvL8yYyF7mJw==}
'@aws-sdk/credential-provider-node@3.787.0':
resolution: {integrity: sha512-JioVi44B1vDMaK2CdzqimwvJD3uzvzbQhaEWXsGMBcMcNHajXAXf08EF50JG3ZhLrhhUsT1ObXpbTaPINOhh+g==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-process@3.775.0':
resolution: {integrity: sha512-A6k68H9rQp+2+7P7SGO90Csw6nrUEm0Qfjpn9Etc4EboZhhCLs9b66umUsTsSBHus4FDIe5JQxfCUyt1wgNogg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-sso@3.782.0':
resolution: {integrity: sha512-1y1ucxTtTIGDSNSNxriQY8msinilhe9gGvQpUDYW9gboyC7WQJPDw66imy258V6osdtdi+xoHzVCbCz3WhosMQ==}
'@aws-sdk/credential-provider-sso@3.787.0':
resolution: {integrity: sha512-fHc08bsvwm4+dEMEQKnQ7c1irEQmmxbgS+Fq41y09pPvPh31nAhoMcjBSTWAaPHvvsRbTYvmP4Mf12ZGr8/nfg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/credential-provider-web-identity@3.782.0':
resolution: {integrity: sha512-xCna0opVPaueEbJoclj5C6OpDNi0Gynj+4d7tnuXGgQhTHPyAz8ZyClkVqpi5qvHTgxROdUEDxWqEO5jqRHZHQ==}
'@aws-sdk/credential-provider-web-identity@3.787.0':
resolution: {integrity: sha512-SobmCwNbk6TfEsF283mZPQEI5vV2j6eY5tOCj8Er4Lzraxu9fBPADV+Bib2A8F6jlB1lMPJzOuDCbEasSt/RIw==}
engines: {node: '>=18.0.0'}
'@aws-sdk/middleware-bucket-endpoint@3.775.0':
@@ -136,8 +139,8 @@ packages:
resolution: {integrity: sha512-Apd3owkIeUW5dnk3au9np2IdW2N0zc9NjTjHiH+Mx3zqwSrc+m+ANgJVgk9mnQjMzU/vb7VuxJ0eqdEbp5gYsg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/middleware-flexible-checksums@3.775.0':
resolution: {integrity: sha512-OmHLfRIb7IIXsf9/X/pMOlcSV3gzW/MmtPSZTkrz5jCTKzWXd7eRoyOJqewjsaC6KMAxIpNU77FoAd16jOZ21A==}
'@aws-sdk/middleware-flexible-checksums@3.787.0':
resolution: {integrity: sha512-X71qEwWoixFmwowWzlPoZUR3u1CWJ7iAzU0EzIxqmPhQpQJLFmdL1+SRjqATynDPZQzLs1a5HBtPT++EnZ+Quw==}
engines: {node: '>=18.0.0'}
'@aws-sdk/middleware-host-header@3.775.0':
@@ -164,28 +167,28 @@ packages:
resolution: {integrity: sha512-Iw1RHD8vfAWWPzBBIKaojO4GAvQkHOYIpKdAfis/EUSUmSa79QsnXnRqsdcE0mCB0Ylj23yi+ah4/0wh9FsekA==}
engines: {node: '>=18.0.0'}
'@aws-sdk/middleware-user-agent@3.782.0':
resolution: {integrity: sha512-i32H2R6IItX+bQ2p4+v2gGO2jA80jQoJO2m1xjU9rYWQW3+ErWy4I5YIuQHTBfb6hSdAHbaRfqPDgbv9J2rjEg==}
'@aws-sdk/middleware-user-agent@3.787.0':
resolution: {integrity: sha512-Lnfj8SmPLYtrDFthNIaNj66zZsBCam+E4XiUDr55DIHTGstH6qZ/q6vg0GfbukxwSmUcGMwSR4Qbn8rb8yd77g==}
engines: {node: '>=18.0.0'}
'@aws-sdk/nested-clients@3.782.0':
resolution: {integrity: sha512-QOYC8q7luzHFXrP0xYAqBctoPkynjfV0r9dqntFu4/IWMTyC1vlo1UTxFAjIPyclYw92XJyEkVCVg9v/nQnsUA==}
'@aws-sdk/nested-clients@3.787.0':
resolution: {integrity: sha512-xk03q1xpKNHgbuo+trEf1dFrI239kuMmjKKsqLEsHlAZbuFq4yRGMlHBrVMnKYOPBhVFDS/VineM991XI52fKg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/region-config-resolver@3.775.0':
resolution: {integrity: sha512-40iH3LJjrQS3LKUJAl7Wj0bln7RFPEvUYKFxtP8a+oKFDO0F65F52xZxIJbPn6sHkxWDAnZlGgdjZXM3p2g5wQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/s3-request-presigner@3.782.0':
resolution: {integrity: sha512-Er8hdjc9zkxTh15MjdnMYggtUrGknDiuD1FwdW035kn/kwWop587G9rnRa1crhmyKRjLMn0Ki3fsyFUm/943XA==}
'@aws-sdk/s3-request-presigner@3.787.0':
resolution: {integrity: sha512-WBm0AS3RRURNN0yjYXHaiI692boVwWXGt3RLdI7tYBX58E1Zb5nzC8rlk81O9Xe7ZTgTC1KCr8y4+jcBD+zwJg==}
engines: {node: '>=18.0.0'}
'@aws-sdk/signature-v4-multi-region@3.775.0':
resolution: {integrity: sha512-cnGk8GDfTMJ8p7+qSk92QlIk2bmTmFJqhYxcXZ9PysjZtx0xmfCMxnG3Hjy1oU2mt5boPCVSOptqtWixayM17g==}
engines: {node: '>=18.0.0'}
'@aws-sdk/token-providers@3.782.0':
resolution: {integrity: sha512-4tPuk/3+THPrzKaXW4jE2R67UyGwHLFizZ47pcjJWbhb78IIJAy94vbeqEQ+veS84KF5TXcU7g5jGTXC0D70Wg==}
'@aws-sdk/token-providers@3.787.0':
resolution: {integrity: sha512-d7/NIqxq308Zg0RPMNrmn0QvzniL4Hx8Qdwzr6YZWLYAbUSvZYS2ppLR3BFWSkV6SsTJUx8BuDaj3P8vttkrog==}
engines: {node: '>=18.0.0'}
'@aws-sdk/types@3.775.0':
@@ -196,8 +199,8 @@ packages:
resolution: {integrity: sha512-ZhEfvUwNliOQROcAk34WJWVYTlTa4694kSVhDSjW6lE1bMataPnIN8A0ycukEzBXmd8ZSoBcQLn6lKGl7XIJ5w==}
engines: {node: '>=18.0.0'}
'@aws-sdk/util-endpoints@3.782.0':
resolution: {integrity: sha512-/RJOAO7o7HI6lEa4ASbFFLHGU9iPK876BhsVfnl54MvApPVYWQ9sHO0anOUim2S5lQTwd/6ghuH3rFYSq/+rdw==}
'@aws-sdk/util-endpoints@3.787.0':
resolution: {integrity: sha512-fd3zkiOkwnbdbN0Xp9TsP5SWrmv0SpT70YEdbb8wAj2DWQwiCmFszaSs+YCvhoCdmlR3Wl9Spu0pGpSAGKeYvQ==}
engines: {node: '>=18.0.0'}
'@aws-sdk/util-format-url@3.775.0':
@@ -211,8 +214,8 @@ packages:
'@aws-sdk/util-user-agent-browser@3.775.0':
resolution: {integrity: sha512-txw2wkiJmZKVdDbscK7VBK+u+TJnRtlUjRTLei+elZg2ADhpQxfVAQl436FUeIv6AhB/oRHW6/K/EAGXUSWi0A==}
'@aws-sdk/util-user-agent-node@3.782.0':
resolution: {integrity: sha512-dMFkUBgh2Bxuw8fYZQoH/u3H4afQ12VSkzEi//qFiDTwbKYq+u+RYjc8GLDM6JSK1BShMu5AVR7HD4ap1TYUnA==}
'@aws-sdk/util-user-agent-node@3.787.0':
resolution: {integrity: sha512-mG7Lz8ydfG4SF9e8WSXiPQ/Lsn3n8A5B5jtPROidafi06I3ckV2WxyMLdwG14m919NoS6IOfWHyRGSqWIwbVKA==}
engines: {node: '>=18.0.0'}
peerDependencies:
aws-crt: '>=1.0.0'
@@ -245,45 +248,45 @@ packages:
workerd:
optional: true
'@cloudflare/workerd-darwin-64@1.20250408.0':
resolution: {integrity: sha512-bxhIwBWxaNItZLXDNOKY2dCv0FHjDiDkfJFpwv4HvtvU5MKcrivZHVmmfDzLW85rqzfcDOmKbZeMPVfiKxdBZw==}
'@cloudflare/workerd-darwin-64@1.20250409.0':
resolution: {integrity: sha512-smA9yq77xsdQ1NMLhFz3JZxMHGd01lg0bE+X3dTFmIUs+hHskJ+HJ/IkMFInkCCeEFlUkoL4yO7ilaU/fin/xA==}
engines: {node: '>=16'}
cpu: [x64]
os: [darwin]
'@cloudflare/workerd-darwin-arm64@1.20250408.0':
resolution: {integrity: sha512-5XZ2Oykr8bSo7zBmERtHh18h5BZYC/6H1YFWVxEj3PtalF3+6SHsO4KZsbGvDml9Pu7sHV277jiZE5eny8Hlyw==}
'@cloudflare/workerd-darwin-arm64@1.20250409.0':
resolution: {integrity: sha512-oLVcf+Y5Qun8JHcy1VcR/YnbA5U2ne0czh3XNhDqdHZFK8+vKeC7MnVPX+kEqQA3+uLcMM1/FsIDU1U4Na0h1g==}
engines: {node: '>=16'}
cpu: [arm64]
os: [darwin]
'@cloudflare/workerd-linux-64@1.20250408.0':
resolution: {integrity: sha512-WbgItXWln6G5d7GvYLWcuOzAVwafysZaWunH3UEfsm95wPuRofpYnlDD861gdWJX10IHSVgMStGESUcs7FLerQ==}
'@cloudflare/workerd-linux-64@1.20250409.0':
resolution: {integrity: sha512-D31B4kdC3a0RD5yfpdIa89//kGHbYsYihZmejm1k4S4NHOho3MUDHAEh4aHtafQNXbZdydGHlSyiVYjTdQ9ILQ==}
engines: {node: '>=16'}
cpu: [x64]
os: [linux]
'@cloudflare/workerd-linux-arm64@1.20250408.0':
resolution: {integrity: sha512-pAhEywPPvr92SLylnQfZEPgXz+9pOG9G9haAPLpEatncZwYiYd9yiR6HYWhKp2erzCoNrOqKg9IlQwU3z1IDiw==}
'@cloudflare/workerd-linux-arm64@1.20250409.0':
resolution: {integrity: sha512-Sr59P0TREayil5OQ7kcbjuIn6L6OTSRLI91LKu0D8vi1hss2q9FUwBcwxg0+Yd/x+ty/x7IISiAK5QBkAMeITQ==}
engines: {node: '>=16'}
cpu: [arm64]
os: [linux]
'@cloudflare/workerd-windows-64@1.20250408.0':
resolution: {integrity: sha512-nJ3RjMKGae2aF2rZ/CNeBvQPM+W5V1SUK0FYWG/uomyr7uQ2l4IayHna1ODg/OHHTEgIjwom0Mbn58iXb0WOcQ==}
'@cloudflare/workerd-windows-64@1.20250409.0':
resolution: {integrity: sha512-dK9I8zBX5rR7MtaaP2AhICQTEw3PVzHcsltN8o46w7JsbYlMvFOj27FfYH5dhs3IahgmIfw2e572QXW2o/dbpg==}
engines: {node: '>=16'}
cpu: [x64]
os: [win32]
'@cloudflare/workers-types@4.20250409.0':
resolution: {integrity: sha512-yPxxwE5nr168huEfLNOB6904OsvIWcq0tWT23NMD6jT5SIp2ds3oOGANw7wz39r5y3jZYC2h1OnGwnZXJDDCOg==}
'@cloudflare/workers-types@4.20250412.0':
resolution: {integrity: sha512-ukQE+TRc5HNkM6VvGfTNC9x54TLQKjdcm624F8Qh1ZRe0iJrW2/j1eYgvJABJPexDousYCR7VzCGteShLcBJYQ==}
'@cspotcode/source-map-support@0.8.1':
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
engines: {node: '>=12'}
'@emnapi/runtime@1.4.0':
resolution: {integrity: sha512-64WYIf4UYcdLnbKn/umDlNjQDSS8AgZrI/R9+x5ilkUVFxXcA1Ebl+gQLc/6mERA4407Xof0R7wEyEuj091CVw==}
'@emnapi/runtime@1.4.1':
resolution: {integrity: sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==}
'@esbuild/aix-ppc64@0.24.2':
resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==}
@@ -615,6 +618,18 @@ packages:
'@jridgewell/trace-mapping@0.3.9':
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
'@jsep-plugin/assignment@1.3.0':
resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==}
engines: {node: '>= 10.16.0'}
peerDependencies:
jsep: ^0.4.0||^1.0.0
'@jsep-plugin/regex@1.0.4':
resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==}
engines: {node: '>= 10.16.0'}
peerDependencies:
jsep: ^0.4.0||^1.0.0
'@levischuck/tiny-cbor@0.2.11':
resolution: {integrity: sha512-llBRm4dT4Z89aRsm6u2oEZ8tfwL/2l6BwpZ7JcyieouniDECM5AqNgr/y08zalEIvW3RSK4upYyybDcmjXqAow==}
@@ -1269,6 +1284,10 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
jsep@1.4.0:
resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==}
engines: {node: '>= 10.16.0'}
json-buffer@3.0.1:
resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
@@ -1278,6 +1297,11 @@ packages:
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
jsonpath-plus@10.3.0:
resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==}
engines: {node: '>=18.0.0'}
hasBin: true
keyv@4.5.4:
resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
@@ -1323,8 +1347,8 @@ packages:
mimetext@3.0.27:
resolution: {integrity: sha512-mUhWAsZD1N/K6dbN4+a5Yq78OPnYQw1ubOSMasBntsLQ2S7KVNlvDEA8dwpr4a7PszWMzeslKahAprtwYMgaBA==}
miniflare@4.20250408.0:
resolution: {integrity: sha512-h1FAK1l/RzZyhGAeLKD+XawWBWowY8tjOcj0Yz8RmCpZ5xBfl255O5eGw4Xk1rcpgxyEB0qiaL2CmV9HAyMfhw==}
miniflare@4.20250409.0:
resolution: {integrity: sha512-Hu02dYZvFR+MyrI57O6rSrOUTofcO9EIvcodgq2SAHzAeWSJw2E0oq9lylOrcckFwPMcwxUAb/cQN1LIoCyySw==}
engines: {node: '>=18.0.0'}
hasBin: true
@@ -1591,17 +1615,17 @@ packages:
worker-mailer@1.1.1:
resolution: {integrity: sha512-UPPd48aBMVuAE2j9ha7wDEhBakM23zKBk8wd9lLUhChExPeq8B8cO6C1ur4hMOypmJO7mZ+xTZff1KoCKprvGA==}
workerd@1.20250408.0:
resolution: {integrity: sha512-bBUX+UsvpzAqiWFNeZrlZmDGddiGZdBBbftZJz2wE6iUg/cIAJeVQYTtS/3ahaicguoLBz4nJiDo8luqM9fx1A==}
workerd@1.20250409.0:
resolution: {integrity: sha512-hqjX9swiHvrkOI3jlH9lrZsZRRv9lddUwcMe8Ua76jnyQz+brybWznNjHu8U5oswwcrFwvky1A4CcLjcLY31gQ==}
engines: {node: '>=16'}
hasBin: true
wrangler@4.9.1:
resolution: {integrity: sha512-wBV0OKFp+4Ii4bFIIBRm1JJi1od5KGhzsUjWw+2jtlX/H0n2TkdskMDQtrOdV9ybFKj2h+v93VxhAEBePghAkQ==}
wrangler@4.10.0:
resolution: {integrity: sha512-fTE4hZ79msEUt8+HEjl/8Q72haCyzPLu4PgrU3L81ysmjrMEdiYfUPqnvCkBUVtJvrDNdctTEimkufT1Y0ipNg==}
engines: {node: '>=18.0.0'}
hasBin: true
peerDependencies:
'@cloudflare/workers-types': ^4.20250408.0
'@cloudflare/workers-types': ^4.20250409.0
peerDependenciesMeta:
'@cloudflare/workers-types':
optional: true
@@ -1677,29 +1701,29 @@ snapshots:
'@smithy/util-utf8': 2.3.0
tslib: 2.8.1
'@aws-sdk/client-s3@3.782.0':
'@aws-sdk/client-s3@3.787.0':
dependencies:
'@aws-crypto/sha1-browser': 5.2.0
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
'@aws-sdk/core': 3.775.0
'@aws-sdk/credential-provider-node': 3.782.0
'@aws-sdk/credential-provider-node': 3.787.0
'@aws-sdk/middleware-bucket-endpoint': 3.775.0
'@aws-sdk/middleware-expect-continue': 3.775.0
'@aws-sdk/middleware-flexible-checksums': 3.775.0
'@aws-sdk/middleware-flexible-checksums': 3.787.0
'@aws-sdk/middleware-host-header': 3.775.0
'@aws-sdk/middleware-location-constraint': 3.775.0
'@aws-sdk/middleware-logger': 3.775.0
'@aws-sdk/middleware-recursion-detection': 3.775.0
'@aws-sdk/middleware-sdk-s3': 3.775.0
'@aws-sdk/middleware-ssec': 3.775.0
'@aws-sdk/middleware-user-agent': 3.782.0
'@aws-sdk/middleware-user-agent': 3.787.0
'@aws-sdk/region-config-resolver': 3.775.0
'@aws-sdk/signature-v4-multi-region': 3.775.0
'@aws-sdk/types': 3.775.0
'@aws-sdk/util-endpoints': 3.782.0
'@aws-sdk/util-endpoints': 3.787.0
'@aws-sdk/util-user-agent-browser': 3.775.0
'@aws-sdk/util-user-agent-node': 3.782.0
'@aws-sdk/util-user-agent-node': 3.787.0
'@aws-sdk/xml-builder': 3.775.0
'@smithy/config-resolver': 4.1.0
'@smithy/core': 3.2.0
@@ -1738,7 +1762,7 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/client-sso@3.782.0':
'@aws-sdk/client-sso@3.787.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
@@ -1746,12 +1770,12 @@ snapshots:
'@aws-sdk/middleware-host-header': 3.775.0
'@aws-sdk/middleware-logger': 3.775.0
'@aws-sdk/middleware-recursion-detection': 3.775.0
'@aws-sdk/middleware-user-agent': 3.782.0
'@aws-sdk/middleware-user-agent': 3.787.0
'@aws-sdk/region-config-resolver': 3.775.0
'@aws-sdk/types': 3.775.0
'@aws-sdk/util-endpoints': 3.782.0
'@aws-sdk/util-endpoints': 3.787.0
'@aws-sdk/util-user-agent-browser': 3.775.0
'@aws-sdk/util-user-agent-node': 3.782.0
'@aws-sdk/util-user-agent-node': 3.787.0
'@smithy/config-resolver': 4.1.0
'@smithy/core': 3.2.0
'@smithy/fetch-http-handler': 5.0.2
@@ -1816,15 +1840,15 @@ snapshots:
'@smithy/util-stream': 4.2.0
tslib: 2.8.1
'@aws-sdk/credential-provider-ini@3.782.0':
'@aws-sdk/credential-provider-ini@3.787.0':
dependencies:
'@aws-sdk/core': 3.775.0
'@aws-sdk/credential-provider-env': 3.775.0
'@aws-sdk/credential-provider-http': 3.775.0
'@aws-sdk/credential-provider-process': 3.775.0
'@aws-sdk/credential-provider-sso': 3.782.0
'@aws-sdk/credential-provider-web-identity': 3.782.0
'@aws-sdk/nested-clients': 3.782.0
'@aws-sdk/credential-provider-sso': 3.787.0
'@aws-sdk/credential-provider-web-identity': 3.787.0
'@aws-sdk/nested-clients': 3.787.0
'@aws-sdk/types': 3.775.0
'@smithy/credential-provider-imds': 4.0.2
'@smithy/property-provider': 4.0.2
@@ -1834,14 +1858,14 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-node@3.782.0':
'@aws-sdk/credential-provider-node@3.787.0':
dependencies:
'@aws-sdk/credential-provider-env': 3.775.0
'@aws-sdk/credential-provider-http': 3.775.0
'@aws-sdk/credential-provider-ini': 3.782.0
'@aws-sdk/credential-provider-ini': 3.787.0
'@aws-sdk/credential-provider-process': 3.775.0
'@aws-sdk/credential-provider-sso': 3.782.0
'@aws-sdk/credential-provider-web-identity': 3.782.0
'@aws-sdk/credential-provider-sso': 3.787.0
'@aws-sdk/credential-provider-web-identity': 3.787.0
'@aws-sdk/types': 3.775.0
'@smithy/credential-provider-imds': 4.0.2
'@smithy/property-provider': 4.0.2
@@ -1860,11 +1884,11 @@ snapshots:
'@smithy/types': 4.2.0
tslib: 2.8.1
'@aws-sdk/credential-provider-sso@3.782.0':
'@aws-sdk/credential-provider-sso@3.787.0':
dependencies:
'@aws-sdk/client-sso': 3.782.0
'@aws-sdk/client-sso': 3.787.0
'@aws-sdk/core': 3.775.0
'@aws-sdk/token-providers': 3.782.0
'@aws-sdk/token-providers': 3.787.0
'@aws-sdk/types': 3.775.0
'@smithy/property-provider': 4.0.2
'@smithy/shared-ini-file-loader': 4.0.2
@@ -1873,10 +1897,10 @@ snapshots:
transitivePeerDependencies:
- aws-crt
'@aws-sdk/credential-provider-web-identity@3.782.0':
'@aws-sdk/credential-provider-web-identity@3.787.0':
dependencies:
'@aws-sdk/core': 3.775.0
'@aws-sdk/nested-clients': 3.782.0
'@aws-sdk/nested-clients': 3.787.0
'@aws-sdk/types': 3.775.0
'@smithy/property-provider': 4.0.2
'@smithy/types': 4.2.0
@@ -1901,7 +1925,7 @@ snapshots:
'@smithy/types': 4.2.0
tslib: 2.8.1
'@aws-sdk/middleware-flexible-checksums@3.775.0':
'@aws-sdk/middleware-flexible-checksums@3.787.0':
dependencies:
'@aws-crypto/crc32': 5.2.0
'@aws-crypto/crc32c': 5.2.0
@@ -1966,17 +1990,17 @@ snapshots:
'@smithy/types': 4.2.0
tslib: 2.8.1
'@aws-sdk/middleware-user-agent@3.782.0':
'@aws-sdk/middleware-user-agent@3.787.0':
dependencies:
'@aws-sdk/core': 3.775.0
'@aws-sdk/types': 3.775.0
'@aws-sdk/util-endpoints': 3.782.0
'@aws-sdk/util-endpoints': 3.787.0
'@smithy/core': 3.2.0
'@smithy/protocol-http': 5.1.0
'@smithy/types': 4.2.0
tslib: 2.8.1
'@aws-sdk/nested-clients@3.782.0':
'@aws-sdk/nested-clients@3.787.0':
dependencies:
'@aws-crypto/sha256-browser': 5.2.0
'@aws-crypto/sha256-js': 5.2.0
@@ -1984,12 +2008,12 @@ snapshots:
'@aws-sdk/middleware-host-header': 3.775.0
'@aws-sdk/middleware-logger': 3.775.0
'@aws-sdk/middleware-recursion-detection': 3.775.0
'@aws-sdk/middleware-user-agent': 3.782.0
'@aws-sdk/middleware-user-agent': 3.787.0
'@aws-sdk/region-config-resolver': 3.775.0
'@aws-sdk/types': 3.775.0
'@aws-sdk/util-endpoints': 3.782.0
'@aws-sdk/util-endpoints': 3.787.0
'@aws-sdk/util-user-agent-browser': 3.775.0
'@aws-sdk/util-user-agent-node': 3.782.0
'@aws-sdk/util-user-agent-node': 3.787.0
'@smithy/config-resolver': 4.1.0
'@smithy/core': 3.2.0
'@smithy/fetch-http-handler': 5.0.2
@@ -2028,7 +2052,7 @@ snapshots:
'@smithy/util-middleware': 4.0.2
tslib: 2.8.1
'@aws-sdk/s3-request-presigner@3.782.0':
'@aws-sdk/s3-request-presigner@3.787.0':
dependencies:
'@aws-sdk/signature-v4-multi-region': 3.775.0
'@aws-sdk/types': 3.775.0
@@ -2048,9 +2072,9 @@ snapshots:
'@smithy/types': 4.2.0
tslib: 2.8.1
'@aws-sdk/token-providers@3.782.0':
'@aws-sdk/token-providers@3.787.0':
dependencies:
'@aws-sdk/nested-clients': 3.782.0
'@aws-sdk/nested-clients': 3.787.0
'@aws-sdk/types': 3.775.0
'@smithy/property-provider': 4.0.2
'@smithy/shared-ini-file-loader': 4.0.2
@@ -2068,7 +2092,7 @@ snapshots:
dependencies:
tslib: 2.8.1
'@aws-sdk/util-endpoints@3.782.0':
'@aws-sdk/util-endpoints@3.787.0':
dependencies:
'@aws-sdk/types': 3.775.0
'@smithy/types': 4.2.0
@@ -2093,9 +2117,9 @@ snapshots:
bowser: 2.11.0
tslib: 2.8.1
'@aws-sdk/util-user-agent-node@3.782.0':
'@aws-sdk/util-user-agent-node@3.787.0':
dependencies:
'@aws-sdk/middleware-user-agent': 3.782.0
'@aws-sdk/middleware-user-agent': 3.787.0
'@aws-sdk/types': 3.775.0
'@smithy/node-config-provider': 4.0.2
'@smithy/types': 4.2.0
@@ -2119,34 +2143,34 @@ snapshots:
dependencies:
mime: 3.0.0
'@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250408.0)':
'@cloudflare/unenv-preset@2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0)':
dependencies:
unenv: 2.0.0-rc.15
optionalDependencies:
workerd: 1.20250408.0
workerd: 1.20250409.0
'@cloudflare/workerd-darwin-64@1.20250408.0':
'@cloudflare/workerd-darwin-64@1.20250409.0':
optional: true
'@cloudflare/workerd-darwin-arm64@1.20250408.0':
'@cloudflare/workerd-darwin-arm64@1.20250409.0':
optional: true
'@cloudflare/workerd-linux-64@1.20250408.0':
'@cloudflare/workerd-linux-64@1.20250409.0':
optional: true
'@cloudflare/workerd-linux-arm64@1.20250408.0':
'@cloudflare/workerd-linux-arm64@1.20250409.0':
optional: true
'@cloudflare/workerd-windows-64@1.20250408.0':
'@cloudflare/workerd-windows-64@1.20250409.0':
optional: true
'@cloudflare/workers-types@4.20250409.0': {}
'@cloudflare/workers-types@4.20250412.0': {}
'@cspotcode/source-map-support@0.8.1':
dependencies:
'@jridgewell/trace-mapping': 0.3.9
'@emnapi/runtime@1.4.0':
'@emnapi/runtime@1.4.1':
dependencies:
tslib: 2.8.1
optional: true
@@ -2355,7 +2379,7 @@ snapshots:
'@img/sharp-wasm32@0.33.5':
dependencies:
'@emnapi/runtime': 1.4.0
'@emnapi/runtime': 1.4.1
optional: true
'@img/sharp-win32-ia32@0.33.5':
@@ -2373,6 +2397,14 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.0
'@jsep-plugin/assignment@1.3.0(jsep@1.4.0)':
dependencies:
jsep: 1.4.0
'@jsep-plugin/regex@1.0.4(jsep@1.4.0)':
dependencies:
jsep: 1.4.0
'@levischuck/tiny-cbor@0.2.11': {}
'@nodelib/fs.scandir@2.1.5':
@@ -3225,12 +3257,20 @@ snapshots:
dependencies:
argparse: 2.0.1
jsep@1.4.0: {}
json-buffer@3.0.1: {}
json-schema-traverse@0.4.1: {}
json-stable-stringify-without-jsonify@1.0.1: {}
jsonpath-plus@10.3.0:
dependencies:
'@jsep-plugin/assignment': 1.3.0(jsep@1.4.0)
'@jsep-plugin/regex': 1.0.4(jsep@1.4.0)
jsep: 1.4.0
keyv@4.5.4:
dependencies:
json-buffer: 3.0.1
@@ -3274,7 +3314,7 @@ snapshots:
js-base64: 3.7.7
mime-types: 2.1.35
miniflare@4.20250408.0:
miniflare@4.20250409.0:
dependencies:
'@cspotcode/source-map-support': 0.8.1
acorn: 8.14.0
@@ -3283,7 +3323,7 @@ snapshots:
glob-to-regexp: 0.4.1
stoppable: 1.1.0
undici: 5.29.0
workerd: 1.20250408.0
workerd: 1.20250409.0
ws: 8.18.0
youch: 3.3.4
zod: 3.22.3
@@ -3550,26 +3590,26 @@ snapshots:
worker-mailer@1.1.1: {}
workerd@1.20250408.0:
workerd@1.20250409.0:
optionalDependencies:
'@cloudflare/workerd-darwin-64': 1.20250408.0
'@cloudflare/workerd-darwin-arm64': 1.20250408.0
'@cloudflare/workerd-linux-64': 1.20250408.0
'@cloudflare/workerd-linux-arm64': 1.20250408.0
'@cloudflare/workerd-windows-64': 1.20250408.0
'@cloudflare/workerd-darwin-64': 1.20250409.0
'@cloudflare/workerd-darwin-arm64': 1.20250409.0
'@cloudflare/workerd-linux-64': 1.20250409.0
'@cloudflare/workerd-linux-arm64': 1.20250409.0
'@cloudflare/workerd-windows-64': 1.20250409.0
wrangler@4.9.1(@cloudflare/workers-types@4.20250409.0):
wrangler@4.10.0(@cloudflare/workers-types@4.20250412.0):
dependencies:
'@cloudflare/kv-asset-handler': 0.4.0
'@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250408.0)
'@cloudflare/unenv-preset': 2.3.1(unenv@2.0.0-rc.15)(workerd@1.20250409.0)
blake3-wasm: 2.1.5
esbuild: 0.24.2
miniflare: 4.20250408.0
miniflare: 4.20250409.0
path-to-regexp: 6.3.0
unenv: 2.0.0-rc.15
workerd: 1.20250408.0
workerd: 1.20250409.0
optionalDependencies:
'@cloudflare/workers-types': 4.20250409.0
'@cloudflare/workers-types': 4.20250412.0
fsevents: 2.3.3
sharp: 0.33.5
transitivePeerDependencies:

View File

@@ -57,19 +57,34 @@ export default {
}
const resJson = await res.json();
const { access_token, token_type } = resJson as { access_token: string, token_type?: string };
const user = await fetch(setting.userInfoURL, {
const userRes = await fetch(setting.userInfoURL, {
headers: {
"Authorization": `${token_type || 'Bearer'} ${access_token}`,
"Accept": "application/json",
"User-Agent": "Cloudflare Workers"
}
})
if (!user.ok) {
console.error(`Failed to get user info: ${res.status} ${res.statusText} ${await res.text()}`)
if (!userRes.ok) {
console.error(`Failed to get user info: ${userRes.status} ${userRes.statusText} ${await userRes.text()}`)
return c.text(msgs.Oauth2FailedGetUserInfoMsg, 400);
}
const userInfo = await user.json()
const { [setting.userEmailKey]: email } = userInfo as { [key: string]: string };
const userInfo = await userRes.json<any>()
const email = await (async () => {
if (setting.userEmailKey.startsWith("$")) {
const { JSONPath } = await import('jsonpath-plus');
const email = JSONPath({
path: setting.userEmailKey,
json: userInfo,
})
if (email && Array.isArray(email) && email.length > 0) {
return email[0];
}
}
const { [setting.userEmailKey]: email } = userInfo as { [key: string]: string };
return email;
})()
if (!email) {
return c.text(msgs.Oauth2FailedGetUserEmailMsg, 400);
}