@arcblock/did-connect-service 4.1.33 → 4.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/_generated/asset-bytes.js +1 -1
  2. package/dist/_generated/asset-manifest.js +4 -4
  3. package/dist/_generated/login-bundle-string.d.ts +1 -1
  4. package/dist/_generated/login-bundle-string.d.ts.map +1 -1
  5. package/dist/_generated/login-bundle-string.js +1 -1
  6. package/dist/_generated/login-bundle-string.js.map +1 -1
  7. package/dist/assets/{admin-core.16704b2e.js → admin-core.69147606.js} +80 -2
  8. package/dist/assets/{admin-extra.8243c7f4.js → admin-extra.979f5e56.js} +57 -14
  9. package/dist/assets/{admin.7c5d5f04.css → admin.76aa0931.css} +11 -0
  10. package/dist/assets/{login.fb0bf7b4.js → login.566f858e.js} +1 -1
  11. package/dist/blocklet-service.d.ts +8 -1
  12. package/dist/blocklet-service.d.ts.map +1 -1
  13. package/dist/blocklet-service.js +6 -1
  14. package/dist/blocklet-service.js.map +1 -1
  15. package/dist/handlers/auth-handler.d.ts +7 -0
  16. package/dist/handlers/auth-handler.d.ts.map +1 -1
  17. package/dist/handlers/auth-handler.js +7 -2
  18. package/dist/handlers/auth-handler.js.map +1 -1
  19. package/dist/handlers/avatar-handler.d.ts.map +1 -1
  20. package/dist/handlers/avatar-handler.js +6 -0
  21. package/dist/handlers/avatar-handler.js.map +1 -1
  22. package/dist/handlers/did-connect-handler.d.ts +2 -0
  23. package/dist/handlers/did-connect-handler.d.ts.map +1 -1
  24. package/dist/handlers/did-connect-handler.js +2 -2
  25. package/dist/handlers/did-connect-handler.js.map +1 -1
  26. package/dist/handlers/email-login-handler.d.ts +2 -0
  27. package/dist/handlers/email-login-handler.d.ts.map +1 -1
  28. package/dist/handlers/email-login-handler.js +2 -2
  29. package/dist/handlers/email-login-handler.js.map +1 -1
  30. package/dist/handlers/oauth-handler.d.ts +2 -0
  31. package/dist/handlers/oauth-handler.d.ts.map +1 -1
  32. package/dist/handlers/oauth-handler.js +3 -4
  33. package/dist/handlers/oauth-handler.js.map +1 -1
  34. package/dist/handlers/passkey-handler.d.ts +1 -0
  35. package/dist/handlers/passkey-handler.d.ts.map +1 -1
  36. package/dist/handlers/passkey-handler.js +5 -4
  37. package/dist/handlers/passkey-handler.js.map +1 -1
  38. package/dist/handlers/ticket-handler.d.ts +2 -0
  39. package/dist/handlers/ticket-handler.d.ts.map +1 -1
  40. package/dist/handlers/ticket-handler.js +2 -2
  41. package/dist/handlers/ticket-handler.js.map +1 -1
  42. package/dist/identity/session-cookie.d.ts +11 -0
  43. package/dist/identity/session-cookie.d.ts.map +1 -0
  44. package/dist/identity/session-cookie.js +17 -0
  45. package/dist/identity/session-cookie.js.map +1 -0
  46. package/dist/pages/admin/scripts/dialog.d.ts +1 -1
  47. package/dist/pages/admin/scripts/dialog.d.ts.map +1 -1
  48. package/dist/pages/admin/scripts/dialog.js +29 -2
  49. package/dist/pages/admin/scripts/dialog.js.map +1 -1
  50. package/dist/pages/admin/scripts/utils.d.ts +1 -1
  51. package/dist/pages/admin/scripts/utils.d.ts.map +1 -1
  52. package/dist/pages/admin/scripts/utils.js +35 -0
  53. package/dist/pages/admin/scripts/utils.js.map +1 -1
  54. package/dist/pages/admin/styles.d.ts +1 -1
  55. package/dist/pages/admin/styles.d.ts.map +1 -1
  56. package/dist/pages/admin/styles.js +11 -0
  57. package/dist/pages/admin/styles.js.map +1 -1
  58. package/dist/pages/admin/tab-access.d.ts.map +1 -1
  59. package/dist/pages/admin/tab-access.js +6 -0
  60. package/dist/pages/admin/tab-access.js.map +1 -1
  61. package/dist/pages/admin/tab-appearance.d.ts.map +1 -1
  62. package/dist/pages/admin/tab-appearance.js +4 -0
  63. package/dist/pages/admin/tab-appearance.js.map +1 -1
  64. package/dist/pages/admin/tab-branding.d.ts.map +1 -1
  65. package/dist/pages/admin/tab-branding.js +4 -0
  66. package/dist/pages/admin/tab-branding.js.map +1 -1
  67. package/dist/pages/admin/tab-federation.d.ts +1 -1
  68. package/dist/pages/admin/tab-federation.d.ts.map +1 -1
  69. package/dist/pages/admin/tab-federation.js +21 -11
  70. package/dist/pages/admin/tab-federation.js.map +1 -1
  71. package/dist/pages/admin/tab-invitations.d.ts +1 -1
  72. package/dist/pages/admin/tab-invitations.d.ts.map +1 -1
  73. package/dist/pages/admin/tab-invitations.js +4 -0
  74. package/dist/pages/admin/tab-invitations.js.map +1 -1
  75. package/dist/pages/admin/tab-members.d.ts +1 -1
  76. package/dist/pages/admin/tab-members.d.ts.map +1 -1
  77. package/dist/pages/admin/tab-members.js +7 -0
  78. package/dist/pages/admin/tab-members.js.map +1 -1
  79. package/dist/pages/admin/tab-profile-accounts.d.ts.map +1 -1
  80. package/dist/pages/admin/tab-profile-accounts.js +10 -0
  81. package/dist/pages/admin/tab-profile-accounts.js.map +1 -1
  82. package/dist/pages/admin/tab-profile.d.ts +1 -1
  83. package/dist/pages/admin/tab-profile.d.ts.map +1 -1
  84. package/dist/pages/admin/tab-profile.js +6 -0
  85. package/dist/pages/admin/tab-profile.js.map +1 -1
  86. package/dist/pages/admin/tab-settings.d.ts.map +1 -1
  87. package/dist/pages/admin/tab-settings.js +11 -3
  88. package/dist/pages/admin/tab-settings.js.map +1 -1
  89. package/dist/pages/admin-instances-page.d.ts.map +1 -1
  90. package/dist/pages/admin-instances-page.js +5 -1
  91. package/dist/pages/admin-instances-page.js.map +1 -1
  92. package/dist/types.d.ts +6 -0
  93. package/dist/types.d.ts.map +1 -1
  94. package/package.json +3 -3
  95. package/dist/assets/admin-core.1fc3260c.js +0 -1623
  96. package/dist/assets/admin-core.5a2d69b0.js +0 -2067
  97. package/dist/assets/admin-core.9fff6042.js +0 -2083
  98. package/dist/assets/admin-core.a13c2729.js +0 -1461
  99. package/dist/assets/admin-core.a63bbc69.js +0 -1464
  100. package/dist/assets/admin-core.c0b5af61.js +0 -1393
  101. package/dist/assets/admin-core.cbbdbe6d.js +0 -1465
  102. package/dist/assets/admin-core.e83fd379.js +0 -1397
  103. package/dist/assets/admin-extra.143b5774.js +0 -2543
  104. package/dist/assets/admin-extra.35b91f98.js +0 -2543
  105. package/dist/assets/admin-extra.531b187f.js +0 -2552
  106. package/dist/assets/admin-extra.5b309e5e.js +0 -2547
  107. package/dist/assets/admin-extra.7ca9c16b.js +0 -2529
  108. package/dist/assets/admin-extra.841b2bbe.js +0 -2530
  109. package/dist/assets/admin-extra.afcb3651.js +0 -2528
  110. package/dist/assets/admin-extra.d12f05bb.js +0 -2553
  111. package/dist/assets/admin.c26bb17a.css +0 -2219
  112. package/dist/assets/admin.dfeedbe4.css +0 -2229
  113. package/dist/assets/login.0bf3d739.js +0 -720
  114. package/dist/assets/login.4404e695.js +0 -720
  115. package/dist/assets/login.76c483c2.js +0 -720
  116. package/dist/assets/login.bb9f8b03.js +0 -720
  117. package/dist/assets/login.d3f05790.js +0 -720
  118. package/dist/assets/login.fa25f37a.js +0 -720
@@ -3,6 +3,6 @@
3
3
  */
4
4
  type TFn = (key: string, params?: Record<string, string>) => string;
5
5
  export declare function profileTabHtml(t: TFn): string;
6
- export declare const PROFILE_TAB_SCRIPT = "\nvar profileData = null;\n\nasync function loadProfile() {\n document.getElementById(\"profile-card-skeleton\").style.display = \"\";\n document.getElementById(\"profile-card-content\").style.display = \"none\";\n var data = await api(\"GET\", \"/profile\");\n document.getElementById(\"profile-card-skeleton\").style.display = \"none\";\n document.getElementById(\"profile-card-content\").style.display = \"\";\n if (!data.ok) return;\n profileData = data.user;\n renderProfile(data.user);\n}\n\nfunction renderProfile(user) {\n var avatarEl = document.getElementById(\"profile-avatar\");\n if (user.avatar) {\n avatarEl.innerHTML = '<img src=\"' + escapeHtml(user.avatar) + '\" onerror=\"this.style.display=\\'none\\';this.nextSibling.style.display=\\'flex\\'\">'\n + '<span class=\"avatar-fallback\" style=\"display:none\">' + escapeHtml(initials(user.fullName)) + '</span>'\n + '<div class=\"avatar-overlay\"><span>Edit</span></div>';\n } else {\n avatarEl.innerHTML = '<span class=\"avatar-fallback\">' + escapeHtml(initials(user.fullName)) + '</span>'\n + '<div class=\"avatar-overlay\"><span>Edit</span></div>';\n }\n\n document.getElementById(\"profile-display-name\").textContent = user.fullName || __t(\"profile.unnamed\");\n\n var role = user.role || \"guest\";\n var badge = document.getElementById(\"profile-role-badge\");\n badge.textContent = __t(\"common.\" + role);\n badge.className = \"badge badge-\" + role;\n\n document.getElementById(\"profile-did\").setAttribute(\"did\", user.did);\n\n document.getElementById(\"profile-name\").value = user.fullName || \"\";\n cancelEditName();\n\n document.getElementById(\"profile-email-display\").textContent = user.email || \"\u2014\";\n\n var emailBadge = document.getElementById(\"profile-email-badge\");\n var emailVerifyBtn = document.getElementById(\"profile-email-verify-btn\");\n if (user.email) {\n emailBadge.style.display = \"\";\n if (user.emailVerified) {\n emailBadge.textContent = __t(\"profile.emailVerified\");\n emailBadge.className = \"badge badge-verified\";\n emailVerifyBtn.style.display = \"none\";\n } else {\n emailBadge.textContent = __t(\"profile.emailUnverified\");\n emailBadge.className = \"badge badge-unverified\";\n emailVerifyBtn.style.display = \"\";\n }\n } else {\n emailBadge.style.display = \"none\";\n emailVerifyBtn.style.display = \"none\";\n }\n\n if (user.createdAt) {\n document.getElementById(\"profile-joined-cell\").style.display = \"\";\n document.getElementById(\"profile-joined-value\").textContent = absoluteTime(user.createdAt);\n }\n}\n\nfunction startEditName() {\n document.getElementById(\"profile-header-info-view\").style.display = \"none\";\n document.getElementById(\"profile-name-editor\").style.display = \"\";\n document.getElementById(\"profile-name\").focus();\n}\n\nfunction cancelEditName() {\n document.getElementById(\"profile-name-editor\").style.display = \"none\";\n document.getElementById(\"profile-header-info-view\").style.display = \"\";\n if (profileData) document.getElementById(\"profile-name\").value = profileData.fullName || \"\";\n}\n\nasync function saveProfile() {\n var body = {\n fullName: document.getElementById(\"profile-name\").value.trim(),\n };\n var data = await api(\"PUT\", \"/profile\", body);\n if (data.ok) {\n profileData = data.user;\n renderProfile(data.user);\n showToast(__t(\"profile.updated\"), \"success\");\n var headerName = document.getElementById(\"header-user-name\");\n if (headerName) headerName.textContent = data.user.fullName || truncateDid(data.user.did);\n }\n}\n\nasync function changeEmail() {\n var currentEmail = profileData ? profileData.email || \"\" : \"\";\n var newEmail = await promptDialog({\n title: __t(\"profile.changeEmailTitle\"),\n message: __t(\"profile.changeEmailMsg\"),\n placeholder: __t(\"profile.emailPlaceholder\"),\n defaultValue: currentEmail,\n inputType: \"email\",\n });\n if (!newEmail || newEmail === currentEmail) return;\n var result = await api(\"PUT\", \"/profile/email\", { email: newEmail });\n if (result.ok) {\n profileData = result.user;\n renderProfile(result.user);\n showToast(__t(\"profile.emailUpdated\"), \"success\");\n }\n}\n\nvar _lastVerifySentAt = 0;\n\nfunction verifyEmail() {\n var email = profileData ? profileData.email : \"\";\n if (!email) return;\n\n var verifyBtn = document.getElementById(\"profile-email-verify-btn\");\n verifyBtn.disabled = true;\n\n // Build or reuse dialog\n var d = document.getElementById(\"verify-email-dialog\");\n if (!d) {\n d = document.createElement(\"dialog\");\n d.id = \"verify-email-dialog\";\n d.innerHTML = '<div class=\"dialog-content\">'\n + '<h3 id=\"verify-title\"></h3>'\n + '<p id=\"verify-message\" class=\"dialog-desc\"></p>'\n + '<input class=\"input\" id=\"verify-input\" placeholder=\"000000\" style=\"margin-top:12px;\" />'\n + '</div>'\n + '<div class=\"dialog-actions\">'\n + '<button class=\"btn-text\" id=\"verify-resend\" style=\"margin-right:auto\"></button>'\n + '<button class=\"btn btn-secondary\" id=\"verify-cancel\">' + __t(\"common.cancel\") + '</button>'\n + '<button class=\"btn\" id=\"verify-ok\">' + __t(\"common.confirm\") + '</button>'\n + '</div>';\n document.body.appendChild(d);\n }\n\n var titleEl = document.getElementById(\"verify-title\");\n var msgEl = document.getElementById(\"verify-message\");\n var inputEl = document.getElementById(\"verify-input\");\n var okBtn = document.getElementById(\"verify-ok\");\n var cancelBtn = document.getElementById(\"verify-cancel\");\n var resendBtn = document.getElementById(\"verify-resend\");\n var countdownTimer = null;\n\n titleEl.textContent = __t(\"profile.verifyCode\");\n inputEl.value = \"\";\n\n function cleanup() {\n if (countdownTimer) clearInterval(countdownTimer);\n verifyBtn.disabled = false;\n d.close();\n }\n\n function remainingCooldown() {\n if (!_lastVerifySentAt) return 0;\n return Math.max(0, Math.ceil((60000 - (Date.now() - _lastVerifySentAt)) / 1000));\n }\n\n function syncResendBtn() {\n var remain = remainingCooldown();\n resendBtn.style.display = \"\";\n if (remain > 0) {\n resendBtn.disabled = true;\n resendBtn.textContent = __t(\"profile.emailResendCountdown\", { seconds: remain });\n } else {\n resendBtn.disabled = false;\n resendBtn.textContent = __t(\"profile.emailResendBtn\");\n }\n }\n\n function startCountdown() {\n if (countdownTimer) clearInterval(countdownTimer);\n syncResendBtn();\n countdownTimer = setInterval(function() {\n if (remainingCooldown() <= 0) {\n clearInterval(countdownTimer);\n countdownTimer = null;\n }\n syncResendBtn();\n }, 1000);\n }\n\n function sendCode() {\n msgEl.textContent = __t(\"profile.emailSending\");\n inputEl.disabled = true;\n okBtn.disabled = true;\n resendBtn.style.display = \"none\";\n if (countdownTimer) { clearInterval(countdownTimer); countdownTimer = null; }\n\n api(\"POST\", \"/profile/email/verify\").then(function(sendResult) {\n if (!sendResult.ok) {\n msgEl.textContent = sendResult.error || __t(\"profile.emailSendFailed\");\n // If there's remaining cooldown, show countdown; otherwise show resend\n if (remainingCooldown() > 0) {\n startCountdown();\n } else {\n resendBtn.style.display = \"\";\n resendBtn.disabled = false;\n resendBtn.textContent = __t(\"profile.emailResendBtn\");\n }\n return;\n }\n _lastVerifySentAt = Date.now();\n msgEl.textContent = __t(\"profile.verifyCodeMsg\", { email: email });\n inputEl.disabled = false;\n okBtn.disabled = false;\n inputEl.focus();\n startCountdown();\n });\n }\n\n cancelBtn.onclick = function() { cleanup(); };\n d.onclose = function() {\n if (countdownTimer) clearInterval(countdownTimer);\n verifyBtn.disabled = false;\n };\n\n okBtn.onclick = function() {\n var code = inputEl.value.trim();\n if (!code) return;\n okBtn.disabled = true;\n api(\"PUT\", \"/profile/email/verify\", { code: code }).then(function(result) {\n if (result.ok) {\n cleanup();\n profileData = result.user;\n renderProfile(result.user);\n showToast(__t(\"profile.emailVerifiedSuccess\"), \"success\");\n } else {\n okBtn.disabled = false;\n msgEl.textContent = result.error || __t(\"profile.emailVerifyFailed\");\n }\n });\n };\n\n resendBtn.onclick = function() { sendCode(); };\n\n d.showModal();\n\n // If still in cooldown from a previous send, skip sending and show code input directly\n var remain = remainingCooldown();\n if (remain > 0) {\n msgEl.textContent = __t(\"profile.verifyCodeMsg\", { email: email });\n inputEl.disabled = false;\n okBtn.disabled = false;\n inputEl.focus();\n startCountdown();\n } else {\n sendCode();\n }\n}\n\nfunction triggerAvatarUpload() {\n document.getElementById(\"avatar-file-input\").click();\n}\n\nfunction resizeImage(file, maxSize) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\n img.onload = function() {\n var canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = maxSize;\n var ctx = canvas.getContext(\"2d\");\n var s = Math.min(img.width, img.height);\n var sx = (img.width - s) / 2;\n var sy = (img.height - s) / 2;\n ctx.drawImage(img, sx, sy, s, s, 0, 0, maxSize, maxSize);\n resolve(canvas.toDataURL(\"image/jpeg\", 0.85));\n URL.revokeObjectURL(img.src);\n };\n img.onerror = function() {\n URL.revokeObjectURL(img.src);\n reject(new Error(\"Failed to load image\"));\n };\n img.src = URL.createObjectURL(file);\n });\n}\n\nasync function handleAvatarFile(input) {\n var file = input.files[0];\n if (!file) return;\n if (file.size > 10 * 1024 * 1024) {\n showToast(\"Image must be under 10MB\", \"error\");\n input.value = \"\";\n return;\n }\n try {\n var base64 = await resizeImage(file, 200);\n var data = await api(\"PUT\", \"/profile/avatar\", { avatar: base64 });\n if (data.ok) {\n showToast(\"Avatar updated\", \"success\");\n loadProfile();\n }\n } catch (e) {\n showToast(\"Failed to process image\", \"error\");\n }\n input.value = \"\";\n}\n\nasync function removeAvatar() {\n var ok = await confirmDialog({ title: \"Remove Avatar\", message: \"Remove your avatar? Your profile will show a default avatar.\", confirmLabel: \"Remove\" });\n if (!ok) return;\n var data = await api(\"DELETE\", \"/profile/avatar\");\n if (data.ok) {\n showToast(\"Avatar removed\", \"success\");\n loadProfile();\n }\n}\n\nregisterTab(\"profile\", function() {\n loadProfile();\n if (typeof loadConnectedAccounts === \"function\") loadConnectedAccounts();\n});\n";
6
+ export declare const PROFILE_TAB_SCRIPT = "\nvar profileData = null;\n\nasync function loadProfile() {\n document.getElementById(\"profile-card-skeleton\").style.display = \"\";\n document.getElementById(\"profile-card-content\").style.display = \"none\";\n var data = await api(\"GET\", \"/profile\");\n document.getElementById(\"profile-card-skeleton\").style.display = \"none\";\n document.getElementById(\"profile-card-content\").style.display = \"\";\n if (!data.ok) return;\n profileData = data.user;\n renderProfile(data.user);\n}\n\nfunction renderProfile(user) {\n var avatarEl = document.getElementById(\"profile-avatar\");\n if (user.avatar) {\n avatarEl.innerHTML = '<img src=\"' + escapeHtml(user.avatar) + '\" onerror=\"this.style.display=\\'none\\';this.nextSibling.style.display=\\'flex\\'\">'\n + '<span class=\"avatar-fallback\" style=\"display:none\">' + escapeHtml(initials(user.fullName)) + '</span>'\n + '<div class=\"avatar-overlay\"><span>Edit</span></div>';\n } else {\n avatarEl.innerHTML = '<span class=\"avatar-fallback\">' + escapeHtml(initials(user.fullName)) + '</span>'\n + '<div class=\"avatar-overlay\"><span>Edit</span></div>';\n }\n\n document.getElementById(\"profile-display-name\").textContent = user.fullName || __t(\"profile.unnamed\");\n\n var role = user.role || \"guest\";\n var badge = document.getElementById(\"profile-role-badge\");\n badge.textContent = __t(\"common.\" + role);\n badge.className = \"badge badge-\" + role;\n\n document.getElementById(\"profile-did\").setAttribute(\"did\", user.did);\n\n document.getElementById(\"profile-name\").value = user.fullName || \"\";\n cancelEditName();\n\n document.getElementById(\"profile-email-display\").textContent = user.email || \"\u2014\";\n\n var emailBadge = document.getElementById(\"profile-email-badge\");\n var emailVerifyBtn = document.getElementById(\"profile-email-verify-btn\");\n if (user.email) {\n emailBadge.style.display = \"\";\n if (user.emailVerified) {\n emailBadge.textContent = __t(\"profile.emailVerified\");\n emailBadge.className = \"badge badge-verified\";\n emailVerifyBtn.style.display = \"none\";\n } else {\n emailBadge.textContent = __t(\"profile.emailUnverified\");\n emailBadge.className = \"badge badge-unverified\";\n emailVerifyBtn.style.display = \"\";\n }\n } else {\n emailBadge.style.display = \"none\";\n emailVerifyBtn.style.display = \"none\";\n }\n\n if (user.createdAt) {\n document.getElementById(\"profile-joined-cell\").style.display = \"\";\n document.getElementById(\"profile-joined-value\").textContent = absoluteTime(user.createdAt);\n }\n}\n\nfunction startEditName() {\n document.getElementById(\"profile-header-info-view\").style.display = \"none\";\n document.getElementById(\"profile-name-editor\").style.display = \"\";\n document.getElementById(\"profile-name\").focus();\n}\n\nfunction cancelEditName() {\n document.getElementById(\"profile-name-editor\").style.display = \"none\";\n document.getElementById(\"profile-header-info-view\").style.display = \"\";\n if (profileData) document.getElementById(\"profile-name\").value = profileData.fullName || \"\";\n}\n\nasync function saveProfile() {\n var body = {\n fullName: document.getElementById(\"profile-name\").value.trim(),\n };\n var data = await api(\"PUT\", \"/profile\", body);\n if (data.ok) {\n profileData = data.user;\n renderProfile(data.user);\n showToast(__t(\"profile.updated\"), \"success\");\n var headerName = document.getElementById(\"header-user-name\");\n if (headerName) headerName.textContent = data.user.fullName || truncateDid(data.user.did);\n }\n}\n\nasync function changeEmail() {\n var currentEmail = profileData ? profileData.email || \"\" : \"\";\n var newEmail = await promptDialog({\n title: __t(\"profile.changeEmailTitle\"),\n message: __t(\"profile.changeEmailMsg\"),\n placeholder: __t(\"profile.emailPlaceholder\"),\n defaultValue: currentEmail,\n inputType: \"email\",\n });\n if (!newEmail || newEmail === currentEmail) return;\n var result = await api(\"PUT\", \"/profile/email\", { email: newEmail });\n if (result.ok) {\n profileData = result.user;\n renderProfile(result.user);\n showToast(__t(\"profile.emailUpdated\"), \"success\");\n }\n}\n\nvar _lastVerifySentAt = 0;\n\nfunction verifyEmail() {\n var email = profileData ? profileData.email : \"\";\n if (!email) return;\n\n var verifyBtn = document.getElementById(\"profile-email-verify-btn\");\n verifyBtn.disabled = true;\n\n // Build or reuse dialog\n var d = document.getElementById(\"verify-email-dialog\");\n if (!d) {\n d = document.createElement(\"dialog\");\n d.id = \"verify-email-dialog\";\n d.innerHTML = '<div class=\"dialog-content\">'\n + '<h3 id=\"verify-title\"></h3>'\n + '<p id=\"verify-message\" class=\"dialog-desc\"></p>'\n + '<input class=\"input\" id=\"verify-input\" placeholder=\"000000\" style=\"margin-top:12px;\" />'\n + '</div>'\n + '<div class=\"dialog-actions\">'\n + '<button class=\"btn-text\" id=\"verify-resend\" style=\"margin-right:auto\"></button>'\n + '<button class=\"btn btn-secondary\" id=\"verify-cancel\">' + __t(\"common.cancel\") + '</button>'\n + '<button class=\"btn\" id=\"verify-ok\">' + __t(\"common.confirm\") + '</button>'\n + '</div>';\n document.body.appendChild(d);\n }\n\n var titleEl = document.getElementById(\"verify-title\");\n var msgEl = document.getElementById(\"verify-message\");\n var inputEl = document.getElementById(\"verify-input\");\n var okBtn = document.getElementById(\"verify-ok\");\n var cancelBtn = document.getElementById(\"verify-cancel\");\n var resendBtn = document.getElementById(\"verify-resend\");\n var countdownTimer = null;\n\n titleEl.textContent = __t(\"profile.verifyCode\");\n inputEl.value = \"\";\n\n function cleanup() {\n if (countdownTimer) clearInterval(countdownTimer);\n verifyBtn.disabled = false;\n d.close();\n }\n\n function remainingCooldown() {\n if (!_lastVerifySentAt) return 0;\n return Math.max(0, Math.ceil((60000 - (Date.now() - _lastVerifySentAt)) / 1000));\n }\n\n function syncResendBtn() {\n var remain = remainingCooldown();\n resendBtn.style.display = \"\";\n if (remain > 0) {\n resendBtn.disabled = true;\n resendBtn.textContent = __t(\"profile.emailResendCountdown\", { seconds: remain });\n } else {\n resendBtn.disabled = false;\n resendBtn.textContent = __t(\"profile.emailResendBtn\");\n }\n }\n\n function startCountdown() {\n if (countdownTimer) clearInterval(countdownTimer);\n syncResendBtn();\n countdownTimer = setInterval(function() {\n if (remainingCooldown() <= 0) {\n clearInterval(countdownTimer);\n countdownTimer = null;\n }\n syncResendBtn();\n }, 1000);\n }\n\n function sendCode() {\n msgEl.textContent = __t(\"profile.emailSending\");\n inputEl.disabled = true;\n okBtn.disabled = true;\n resendBtn.style.display = \"none\";\n if (countdownTimer) { clearInterval(countdownTimer); countdownTimer = null; }\n\n api(\"POST\", \"/profile/email/verify\").then(function(sendResult) {\n if (!sendResult.ok) {\n msgEl.textContent = sendResult.error || __t(\"profile.emailSendFailed\");\n // If there's remaining cooldown, show countdown; otherwise show resend\n if (remainingCooldown() > 0) {\n startCountdown();\n } else {\n resendBtn.style.display = \"\";\n resendBtn.disabled = false;\n resendBtn.textContent = __t(\"profile.emailResendBtn\");\n }\n return;\n }\n _lastVerifySentAt = Date.now();\n msgEl.textContent = __t(\"profile.verifyCodeMsg\", { email: email });\n inputEl.disabled = false;\n okBtn.disabled = false;\n inputEl.focus();\n startCountdown();\n });\n }\n\n cancelBtn.onclick = function() { cleanup(); };\n d.onclose = function() {\n if (countdownTimer) clearInterval(countdownTimer);\n verifyBtn.disabled = false;\n };\n\n okBtn.onclick = function() {\n var code = inputEl.value.trim();\n if (!code) return;\n okBtn.disabled = true;\n api(\"PUT\", \"/profile/email/verify\", { code: code }).then(function(result) {\n if (result.ok) {\n cleanup();\n profileData = result.user;\n renderProfile(result.user);\n showToast(__t(\"profile.emailVerifiedSuccess\"), \"success\");\n } else {\n okBtn.disabled = false;\n msgEl.textContent = result.error || __t(\"profile.emailVerifyFailed\");\n }\n });\n };\n\n resendBtn.onclick = function() { sendCode(); };\n\n d.showModal();\n\n // If still in cooldown from a previous send, skip sending and show code input directly\n var remain = remainingCooldown();\n if (remain > 0) {\n msgEl.textContent = __t(\"profile.verifyCodeMsg\", { email: email });\n inputEl.disabled = false;\n okBtn.disabled = false;\n inputEl.focus();\n startCountdown();\n } else {\n sendCode();\n }\n}\n\nfunction triggerAvatarUpload() {\n document.getElementById(\"avatar-file-input\").click();\n}\n\nfunction resizeImage(file, maxSize) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\n img.onload = function() {\n var canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = maxSize;\n var ctx = canvas.getContext(\"2d\");\n var s = Math.min(img.width, img.height);\n var sx = (img.width - s) / 2;\n var sy = (img.height - s) / 2;\n ctx.drawImage(img, sx, sy, s, s, 0, 0, maxSize, maxSize);\n resolve(canvas.toDataURL(\"image/jpeg\", 0.85));\n URL.revokeObjectURL(img.src);\n };\n img.onerror = function() {\n URL.revokeObjectURL(img.src);\n reject(new Error(\"Failed to load image\"));\n };\n img.src = URL.createObjectURL(file);\n });\n}\n\nasync function handleAvatarFile(input) {\n var file = input.files[0];\n if (!file) return;\n if (file.size > 10 * 1024 * 1024) {\n showToast(\"Image must be under 10MB\", \"error\");\n input.value = \"\";\n return;\n }\n try {\n var base64 = await resizeImage(file, 200);\n var data = await api(\"PUT\", \"/profile/avatar\", { avatar: base64 });\n if (data.ok) {\n showToast(\"Avatar updated\", \"success\");\n loadProfile();\n }\n } catch (e) {\n showToast(\"Failed to process image\", \"error\");\n }\n input.value = \"\";\n}\n\nasync function removeAvatar() {\n var ok = await confirmDialog({ title: \"Remove Avatar\", message: \"Remove your avatar? Your profile will show a default avatar.\", confirmLabel: \"Remove\" });\n if (!ok) return;\n var data = await api(\"DELETE\", \"/profile/avatar\");\n if (data.ok) {\n showToast(\"Avatar removed\", \"success\");\n loadProfile();\n }\n}\n\n// Button-driven mutations must not double-submit (submitOnce \u2014 utils.ts).\n// The email verify/resend dialog buttons lock themselves inline above.\nsaveProfile = submitOnce(saveProfile);\nchangeEmail = submitOnce(changeEmail);\nremoveAvatar = submitOnce(removeAvatar);\n\nregisterTab(\"profile\", function() {\n loadProfile();\n if (typeof loadConnectedAccounts === \"function\") loadConnectedAccounts();\n});\n";
7
7
  export {};
8
8
  //# sourceMappingURL=tab-profile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tab-profile.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/tab-profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAEpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAkE7C;AAED,eAAO,MAAM,kBAAkB,20VAsT9B,CAAC"}
1
+ {"version":3,"file":"tab-profile.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/tab-profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAEpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAkE7C;AAED,eAAO,MAAM,kBAAkB,imWA4T9B,CAAC"}
@@ -375,6 +375,12 @@ async function removeAvatar() {
375
375
  }
376
376
  }
377
377
 
378
+ // Button-driven mutations must not double-submit (submitOnce — utils.ts).
379
+ // The email verify/resend dialog buttons lock themselves inline above.
380
+ saveProfile = submitOnce(saveProfile);
381
+ changeEmail = submitOnce(changeEmail);
382
+ removeAvatar = submitOnce(removeAvatar);
383
+
378
384
  registerTab("profile", function() {
379
385
  loadProfile();
380
386
  if (typeof loadConnectedAccounts === "function") loadConnectedAccounts();
@@ -1 +1 @@
1
- {"version":3,"file":"tab-profile.js","sourceRoot":"","sources":["../../../src/pages/admin/tab-profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAItE,MAAM,UAAU,cAAc,CAAC,CAAM;IACnC,OAAO,UAAU,CAAC;;8BAEU,CAAC,CAAC,eAAe,CAAC;4BACpB,CAAC,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA8BgB,CAAC,CAAC,aAAa,CAAC;;;oGAGuB,CAAC,CAAC,iBAAiB,CAAC;2DAC7D,CAAC,CAAC,aAAa,CAAC;mGACwB,CAAC,CAAC,eAAe,CAAC;;;;;;;;6CAQxE,CAAC,CAAC,eAAe,CAAC;;;;+DAIA,CAAC,CAAC,qBAAqB,CAAC;kHAC2B,CAAC,CAAC,qBAAqB,CAAC;;;;6CAI7F,CAAC,CAAC,gBAAgB,CAAC;;;;;;;IAO5D,yBAAyB,CAAC,CAAC,CAAC;;CAE/B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsT1C,CAAC"}
1
+ {"version":3,"file":"tab-profile.js","sourceRoot":"","sources":["../../../src/pages/admin/tab-profile.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAItE,MAAM,UAAU,cAAc,CAAC,CAAM;IACnC,OAAO,UAAU,CAAC;;8BAEU,CAAC,CAAC,eAAe,CAAC;4BACpB,CAAC,CAAC,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6DA8BgB,CAAC,CAAC,aAAa,CAAC;;;oGAGuB,CAAC,CAAC,iBAAiB,CAAC;2DAC7D,CAAC,CAAC,aAAa,CAAC;mGACwB,CAAC,CAAC,eAAe,CAAC;;;;;;;;6CAQxE,CAAC,CAAC,eAAe,CAAC;;;;+DAIA,CAAC,CAAC,qBAAqB,CAAC;kHAC2B,CAAC,CAAC,qBAAqB,CAAC;;;;6CAI7F,CAAC,CAAC,gBAAgB,CAAC;;;;;;;IAO5D,yBAAyB,CAAC,CAAC,CAAC;;CAE/B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4T1C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tab-settings.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/tab-settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAgBpE,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CA0J9C;AAID,eAAO,MAAM,mBAAmB,QA0T5B,CAAC"}
1
+ {"version":3,"file":"tab-settings.d.ts","sourceRoot":"","sources":["../../../src/pages/admin/tab-settings.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;AAgBpE,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CA0J9C;AAID,eAAO,MAAM,mBAAmB,QAkU5B,CAAC"}
@@ -381,7 +381,7 @@ function saveOAuthProvider() {
381
381
  body.domain = document.getElementById("st-oauth-domain").value;
382
382
  }
383
383
 
384
- api("PUT", "/settings/oauth/" + provider, body).then(function(data) {
384
+ return api("PUT", "/settings/oauth/" + provider, body).then(function(data) {
385
385
  if (data.ok) {
386
386
  closeDialog("st-oauth-dialog");
387
387
  showToast(__t("settings.oauthSaved"), "success");
@@ -456,7 +456,7 @@ function renderSessionConfig() {
456
456
 
457
457
  function saveSessionConfig() {
458
458
  var ttl = parseInt(document.getElementById("st-session-ttl").value, 10);
459
- api("PUT", "/settings/session", { jwtTtlDays: ttl }).then(function(data) {
459
+ return api("PUT", "/settings/session", { jwtTtlDays: ttl }).then(function(data) {
460
460
  if (data.ok) showToast(__t("settings.sessionSaved"), "success");
461
461
  });
462
462
  }
@@ -475,7 +475,7 @@ function saveEmailConfig() {
475
475
  resendApiKey: document.getElementById("st-email-apikey").value,
476
476
  fromAddress: document.getElementById("st-email-from").value,
477
477
  };
478
- api("PUT", "/settings/email", body).then(function(data) {
478
+ return api("PUT", "/settings/email", body).then(function(data) {
479
479
  if (data.ok) {
480
480
  showToast(__t("settings.emailSaved"), "success");
481
481
  // Re-render builtin providers to update email toggle state
@@ -484,6 +484,14 @@ function saveEmailConfig() {
484
484
  });
485
485
  }
486
486
 
487
+ // Button-driven mutations must not double-submit (submitOnce — utils.ts).
488
+ // saveBuiltinProviders is a checkbox onchange: dropping a toggle would desync
489
+ // the UI from the server, so it stays unwrapped.
490
+ saveOAuthProvider = submitOnce(saveOAuthProvider);
491
+ deleteOAuthProvider = submitOnce(deleteOAuthProvider);
492
+ saveSessionConfig = submitOnce(saveSessionConfig);
493
+ saveEmailConfig = submitOnce(saveEmailConfig);
494
+
487
495
  registerTab("settings", loadSettings);
488
496
 
489
497
  ${FEDERATION_SECTION_SCRIPT}
@@ -1 +1 @@
1
- {"version":3,"file":"tab-settings.js","sourceRoot":"","sources":["../../../src/pages/admin/tab-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tab-settings.js","sourceRoot":"","sources":["../../../src/pages/admin/tab-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-instances-page.d.ts","sourceRoot":"","sources":["../../src/pages/admin-instances-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsTH,wBAAgB,2BAA2B,CAAC,MAAM,SAAO,GAAG,MAAM,CAwWjE"}
1
+ {"version":3,"file":"admin-instances-page.d.ts","sourceRoot":"","sources":["../../src/pages/admin-instances-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAsTH,wBAAgB,2BAA2B,CAAC,MAAM,SAAO,GAAG,MAAM,CA4WjE"}
@@ -592,8 +592,11 @@ export function buildAdminInstancesPageHTML(locale = "en") {
592
592
  });
593
593
  }
594
594
 
595
+ var deleting = null; // instanceDid whose DELETE is in flight — a second click must not resend
595
596
  window.deleteInstance = function(did) {
597
+ if (deleting) return;
596
598
  if (!confirm(I18N.confirmDeletePrefix + did + '?')) return;
599
+ deleting = did;
597
600
  fetch(adminApi + '/' + encodeURIComponent(did), {
598
601
  method: 'DELETE',
599
602
  credentials: 'include',
@@ -603,7 +606,8 @@ export function buildAdminInstancesPageHTML(locale = "en") {
603
606
  if (data.ok) loadInstances();
604
607
  else alert(data.error || I18N.deleteFailed);
605
608
  })
606
- .catch(function(err) { alert(err.message); });
609
+ .catch(function(err) { alert(err.message); })
610
+ .finally(function() { deleting = null; });
607
611
  };
608
612
 
609
613
  window.editInstance = function(did) {
@@ -1 +1 @@
1
- {"version":3,"file":"admin-instances-page.js","sourceRoot":"","sources":["../../src/pages/admin-instances-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-instances-page.js","sourceRoot":"","sources":["../../src/pages/admin-instances-page.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD,uEAAuE;AACvE,SAAS,eAAe,CAAC,CAAS;IAChC,OAAO,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG;IAC3B,EAAE,EAAE;QACF,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,eAAe;QAC5B,eAAe,EAAE,mBAAmB;QACpC,WAAW,EAAE,kCAAkC;QAC/C,iBAAiB,EAAE,sBAAsB;QACzC,UAAU,EAAE,4CAA4C;QACxD,gBAAgB,EAAE,6BAA6B;QAC/C,qBAAqB,EAAE,kCAAkC;QACzD,UAAU,EAAE,+BAA+B;QAC3C,gBAAgB,EAAE,4BAA4B;QAC9C,UAAU,EAAE,yBAAyB;QACrC,gBAAgB,EAAE,2CAA2C;QAC7D,SAAS,EACP,2FAA2F;QAC7F,YAAY,EAAE,UAAU;QACxB,kBAAkB,EAAE,uBAAuB;QAC3C,aAAa,EAAE,WAAW;QAC1B,mBAAmB,EAAE,oBAAoB;QACzC,YAAY,EAAE,qDAAqD;QACnE,UAAU,EAAE,OAAO;QACnB,gBAAgB,EAAE,mEAAmE;QACrF,SAAS,EAAE,qFAAqF;QAChG,WAAW,EAAE,mBAAmB;QAChC,iBAAiB,EAAE,sBAAsB;QACzC,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,iBAAiB;QAC9B,gBAAgB,EAAE,UAAU;QAC5B,sBAAsB,EAAE,cAAc;QACtC,cAAc,EAAE,6BAA6B;QAC7C,sBAAsB,EAAE,6BAA6B;QACrD,eAAe,EAAE,gCAAgC;QACjD,cAAc,EAAE,yBAAyB;QACzC,oBAAoB,EAAE,+CAA+C;QACrE,aAAa,EAAE,uDAAuD;QACtE,iBAAiB,EAAE,WAAW;QAC9B,uBAAuB,EAAE,qBAAqB;QAC9C,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,MAAM;QACZ,gDAAgD;QAChD,aAAa,EAAE,wBAAwB;QACvC,WAAW,EAAE,0BAA0B;QACvC,OAAO,EAAE,WAAW;QACpB,oBAAoB,EAAE,cAAc;QACpC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,2BAA2B;QACzC,sBAAsB,EAAE,cAAc;QACtC,kBAAkB,EAAE,qBAAqB;QACzC,YAAY,EAAE,eAAe;QAC7B,mBAAmB,EAAE,kBAAkB;QACvC,YAAY,EAAE,eAAe;QAC7B,SAAS,EAAE,qBAAqB;QAChC,YAAY,EAAE,eAAe;KAC9B;IACD,EAAE,EAAE;QACF,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,QAAQ;QACrB,eAAe,EAAE,MAAM;QACvB,WAAW,EAAE,gBAAgB;QAC7B,iBAAiB,EAAE,MAAM;QACzB,UAAU,EAAE,gBAAgB;QAC5B,gBAAgB,EAAE,cAAc;QAChC,qBAAqB,EAAE,uBAAuB;QAC9C,UAAU,EAAE,eAAe;QAC3B,gBAAgB,EAAE,QAAQ;QAC1B,UAAU,EAAE,cAAc;QAC1B,gBAAgB,EAAE,0BAA0B;QAC5C,SAAS,EAAE,mDAAmD;QAC9D,YAAY,EAAE,MAAM;QACpB,kBAAkB,EAAE,SAAS;QAC7B,aAAa,EAAE,WAAW;QAC1B,mBAAmB,EAAE,eAAe;QACpC,YAAY,EAAE,4BAA4B;QAC1C,UAAU,EAAE,OAAO;QACnB,gBAAgB,EAAE,6CAA6C;QAC/D,SAAS,EAAE,wCAAwC;QACnD,WAAW,EAAE,MAAM;QACnB,iBAAiB,EAAE,QAAQ;QAC3B,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,OAAO;QACpB,gBAAgB,EAAE,MAAM;QACxB,sBAAsB,EAAE,MAAM;QAC9B,cAAc,EAAE,cAAc;QAC9B,sBAAsB,EAAE,UAAU;QAClC,eAAe,EAAE,eAAe;QAChC,cAAc,EAAE,cAAc;QAC9B,oBAAoB,EAAE,6BAA6B;QACnD,aAAa,EAAE,6BAA6B;QAC5C,iBAAiB,EAAE,WAAW;QAC9B,uBAAuB,EAAE,OAAO;QAChC,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,UAAU;QACzB,WAAW,EAAE,WAAW;QACxB,OAAO,EAAE,OAAO;QAChB,oBAAoB,EAAE,OAAO;QAC7B,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,SAAS;QACvB,sBAAsB,EAAE,MAAM;QAC9B,kBAAkB,EAAE,MAAM;QAC1B,YAAY,EAAE,MAAM;QACpB,mBAAmB,EAAE,OAAO;QAC5B,YAAY,EAAE,MAAM;QACpB,SAAS,EAAE,YAAY;QACvB,YAAY,EAAE,MAAM;KACrB;CACO,CAAC;AAEX,MAAM,WAAW,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmL7B,CAAC;AAEF,MAAM,UAAU,2BAA2B,CAAC,MAAM,GAAG,IAAI;IACvD,MAAM,SAAS,GAAG,8BAA8B,CAAC;IACjD,MAAM,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3C,MAAM,CAAC,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,aAAa,EAAE,CAAC,CAAC,aAAa;QAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;QAC5C,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,sBAAsB,EAAE,CAAC,CAAC,sBAAsB;QAChD,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;QACxC,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,mBAAmB,EAAE,CAAC,CAAC,mBAAmB;QAC1C,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,YAAY,EAAE,CAAC,CAAC,YAAY;QAC5B,qBAAqB,EAAE,CAAC,CAAC,qBAAqB;KAC/C,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;cACN,IAAI;;;;WAIP,CAAC,CAAC,KAAK;iCACe,QAAQ,CAAC,WAAW,CAAC;;MAEhD,WAAW;;;;;;;;;;;;;UAaP,CAAC,CAAC,WAAW;;;;;cAKT,CAAC,CAAC,eAAe;;;kCAGG,CAAC,CAAC,WAAW;iFACkC,CAAC,CAAC,iBAAiB;gCACpE,CAAC,CAAC,UAAU;;;qBAGvB,CAAC,CAAC,gBAAgB;wDACiB,CAAC,CAAC,qBAAqB;;;iCAG9C,CAAC,CAAC,UAAU;+EACkC,CAAC,CAAC,gBAAgB;;;iCAGhE,CAAC,CAAC,UAAU;sEACyB,CAAC,CAAC,gBAAgB;gCACxD,CAAC,CAAC,SAAS;;;mCAGR,CAAC,CAAC,YAAY;0EACyB,CAAC,CAAC,kBAAkB;;;oCAG1D,CAAC,CAAC,aAAa;4EACyB,CAAC,CAAC,mBAAmB;gCACjE,CAAC,CAAC,YAAY;;;iCAGb,CAAC,CAAC,UAAU;sEACyB,CAAC,CAAC,gBAAgB;gCACxD,CAAC,CAAC,SAAS;;gEAEqB,CAAC,CAAC,WAAW;;;;;;;cAO/D,CAAC,CAAC,iBAAiB;;qCAEI,CAAC,CAAC,OAAO;;;;;;;;;YASlC,CAAC,CAAC,WAAW;;;oCAGW,CAAC,CAAC,gBAAgB;4DACM,CAAC,CAAC,sBAAsB;;;kCAGlD,CAAC,CAAC,cAAc;0DACQ,CAAC,CAAC,sBAAsB;;;mCAG/C,CAAC,CAAC,eAAe;2DACO,CAAC,CAAC,sBAAsB;;;kCAGjD,CAAC,CAAC,cAAc;0DACQ,CAAC,CAAC,oBAAoB;4BACpD,CAAC,CAAC,aAAa;;;qCAGN,CAAC,CAAC,iBAAiB;6DACK,CAAC,CAAC,uBAAuB;;;;gEAItB,CAAC,CAAC,MAAM;qDACnB,CAAC,CAAC,IAAI;;;;;eAK5C,QAAQ,CAAC,gBAAgB,CAAC;eAC1B,QAAQ,CAAC,UAAU,CAAC;;;;qBAId,eAAe,CAAC,SAAS,CAAC;;eAEhC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgOjB,CAAC;AACT,CAAC"}
package/dist/types.d.ts CHANGED
@@ -12,6 +12,12 @@ export interface AuthOptions {
12
12
  * Use a string for static rpID (e.g. "example.com" for cross-subdomain passkeys),
13
13
  * or a function for dynamic resolution based on the request. */
14
14
  rpID?: string | ((request: Request) => string);
15
+ /**
16
+ * Omit the Domain attribute on session cookies (issue and clear).
17
+ * Independent of rpID: a function rpID still supplies the WebAuthn RP ID
18
+ * and, when this is false, the passkey cookie domain. Default false.
19
+ */
20
+ hostOnlyCookie?: boolean;
15
21
  /** JWT expiration in seconds (default: 7 days). */
16
22
  jwtExpiresIn?: number;
17
23
  /** Cookie name for the auth JWT (default: "login_token"). */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcblock/did-connect-service",
3
- "version": "4.1.33",
3
+ "version": "4.1.35",
4
4
  "description": "Multi-runtime authentication service framework — Passkey, DID Connect, OAuth, Email, Team, RBAC",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -61,8 +61,8 @@
61
61
  "sharp": "^0.35.4",
62
62
  "ufo": "^1.6.4",
63
63
  "valibot": "^1.4.2",
64
- "@arcblock/did-connect-core": "^4.1.33",
65
- "@arcblock/did-connect-js": "^4.1.33"
64
+ "@arcblock/did-connect-core": "^4.1.35",
65
+ "@arcblock/did-connect-js": "^4.1.35"
66
66
  },
67
67
  "optionalDependencies": {
68
68
  "@aigne/afs": "^1.11.0-beta.13"