@arcblock/did-connect-service 4.1.37 → 4.1.39

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 (111) hide show
  1. package/dist/_generated/asset-bytes.js +1 -1
  2. package/dist/_generated/asset-manifest.js +5 -5
  3. package/dist/_generated/header-bundle-string.d.ts +1 -1
  4. package/dist/_generated/header-bundle-string.d.ts.map +1 -1
  5. package/dist/_generated/header-bundle-string.js +1 -1
  6. package/dist/_generated/header-bundle-string.js.map +1 -1
  7. package/dist/_generated/login-bundle-string.d.ts +1 -1
  8. package/dist/_generated/login-bundle-string.d.ts.map +1 -1
  9. package/dist/_generated/login-bundle-string.js +1 -1
  10. package/dist/_generated/login-bundle-string.js.map +1 -1
  11. package/dist/assets/{admin-extra.979f5e56.js → admin-extra.c7a0720f.js} +3 -3
  12. package/dist/assets/{admin.f5f577f9.css → admin.ab0009f2.css} +22 -2
  13. package/dist/assets/{header.94d9e46b.js → header.8703ab26.js} +5 -5
  14. package/dist/assets/login.60fd0777.js +731 -0
  15. package/dist/assets/{login.7b12c6dc.css → login.a9c8b434.css} +11 -0
  16. package/dist/handler-errors.d.ts +868 -3
  17. package/dist/handler-errors.d.ts.map +1 -1
  18. package/dist/handler-errors.js +1067 -26
  19. package/dist/handler-errors.js.map +1 -1
  20. package/dist/handlers/access-key-connect-handler.d.ts.map +1 -1
  21. package/dist/handlers/access-key-connect-handler.js +20 -11
  22. package/dist/handlers/access-key-connect-handler.js.map +1 -1
  23. package/dist/handlers/access-key-handler.d.ts.map +1 -1
  24. package/dist/handlers/access-key-handler.js +18 -7
  25. package/dist/handlers/access-key-handler.js.map +1 -1
  26. package/dist/handlers/account-merge-handler.d.ts +2 -0
  27. package/dist/handlers/account-merge-handler.d.ts.map +1 -1
  28. package/dist/handlers/account-merge-handler.js +34 -29
  29. package/dist/handlers/account-merge-handler.js.map +1 -1
  30. package/dist/handlers/admin-instance-handler.d.ts.map +1 -1
  31. package/dist/handlers/admin-instance-handler.js +21 -17
  32. package/dist/handlers/admin-instance-handler.js.map +1 -1
  33. package/dist/handlers/auth-handler.d.ts.map +1 -1
  34. package/dist/handlers/auth-handler.js +14 -10
  35. package/dist/handlers/auth-handler.js.map +1 -1
  36. package/dist/handlers/blocklet-js-handler.d.ts.map +1 -1
  37. package/dist/handlers/blocklet-js-handler.js +2 -1
  38. package/dist/handlers/blocklet-js-handler.js.map +1 -1
  39. package/dist/handlers/branding-handler.d.ts +1 -0
  40. package/dist/handlers/branding-handler.d.ts.map +1 -1
  41. package/dist/handlers/branding-handler.js +15 -8
  42. package/dist/handlers/branding-handler.js.map +1 -1
  43. package/dist/handlers/did-connect-handler.d.ts +1 -0
  44. package/dist/handlers/did-connect-handler.d.ts.map +1 -1
  45. package/dist/handlers/did-connect-handler.js +40 -18
  46. package/dist/handlers/did-connect-handler.js.map +1 -1
  47. package/dist/handlers/email-login-handler.d.ts +81 -0
  48. package/dist/handlers/email-login-handler.d.ts.map +1 -1
  49. package/dist/handlers/email-login-handler.js +124 -23
  50. package/dist/handlers/email-login-handler.js.map +1 -1
  51. package/dist/handlers/federation-admin-handler.js +2 -2
  52. package/dist/handlers/federation-admin-handler.js.map +1 -1
  53. package/dist/handlers/oauth-handler.d.ts +1 -0
  54. package/dist/handlers/oauth-handler.d.ts.map +1 -1
  55. package/dist/handlers/oauth-handler.js +42 -53
  56. package/dist/handlers/oauth-handler.js.map +1 -1
  57. package/dist/handlers/passkey-handler.d.ts +1 -0
  58. package/dist/handlers/passkey-handler.d.ts.map +1 -1
  59. package/dist/handlers/passkey-handler.js +51 -37
  60. package/dist/handlers/passkey-handler.js.map +1 -1
  61. package/dist/handlers/team-handler.d.ts +2 -0
  62. package/dist/handlers/team-handler.d.ts.map +1 -1
  63. package/dist/handlers/team-handler.js +57 -35
  64. package/dist/handlers/team-handler.js.map +1 -1
  65. package/dist/locale.d.ts +40 -4
  66. package/dist/locale.d.ts.map +1 -1
  67. package/dist/locale.js +109 -34
  68. package/dist/locale.js.map +1 -1
  69. package/dist/pages/admin/i18n.d.ts.map +1 -1
  70. package/dist/pages/admin/i18n.js +1411 -6
  71. package/dist/pages/admin/i18n.js.map +1 -1
  72. package/dist/pages/admin/index.d.ts.map +1 -1
  73. package/dist/pages/admin/index.js +9 -5
  74. package/dist/pages/admin/index.js.map +1 -1
  75. package/dist/pages/admin/styles.d.ts +1 -1
  76. package/dist/pages/admin/styles.d.ts.map +1 -1
  77. package/dist/pages/admin/styles.js +22 -2
  78. package/dist/pages/admin/styles.js.map +1 -1
  79. package/dist/pages/admin/tab-branding.d.ts.map +1 -1
  80. package/dist/pages/admin/tab-branding.js +4 -6
  81. package/dist/pages/admin/tab-branding.js.map +1 -1
  82. package/dist/pages/admin-instances-page.d.ts +218 -0
  83. package/dist/pages/admin-instances-page.d.ts.map +1 -1
  84. package/dist/pages/admin-instances-page.js +133 -24
  85. package/dist/pages/admin-instances-page.js.map +1 -1
  86. package/dist/pages/error-page.d.ts +37 -0
  87. package/dist/pages/error-page.d.ts.map +1 -1
  88. package/dist/pages/error-page.js +33 -1
  89. package/dist/pages/error-page.js.map +1 -1
  90. package/dist/pages/gen-access-key-page.d.ts +126 -0
  91. package/dist/pages/gen-access-key-page.d.ts.map +1 -1
  92. package/dist/pages/gen-access-key-page.js +72 -20
  93. package/dist/pages/gen-access-key-page.js.map +1 -1
  94. package/dist/pages/homepage.d.ts +98 -0
  95. package/dist/pages/homepage.d.ts.map +1 -1
  96. package/dist/pages/homepage.js +66 -15
  97. package/dist/pages/homepage.js.map +1 -1
  98. package/dist/pages/invite-page.d.ts +90 -0
  99. package/dist/pages/invite-page.d.ts.map +1 -1
  100. package/dist/pages/invite-page.js +66 -17
  101. package/dist/pages/invite-page.js.map +1 -1
  102. package/dist/pages/login-page.d.ts +8 -0
  103. package/dist/pages/login-page.d.ts.map +1 -1
  104. package/dist/pages/login-page.js +12 -2
  105. package/dist/pages/login-page.js.map +1 -1
  106. package/dist/pages/oauth-callback-page.d.ts +52 -1
  107. package/dist/pages/oauth-callback-page.d.ts.map +1 -1
  108. package/dist/pages/oauth-callback-page.js +85 -8
  109. package/dist/pages/oauth-callback-page.js.map +1 -1
  110. package/package.json +3 -3
  111. package/dist/assets/login.566f858e.js +0 -720
@@ -31,5 +31,131 @@ export interface GenAccessKeyPageOptions {
31
31
  */
32
32
  oauthConsent?: OAuthConsentDisplay;
33
33
  }
34
+ export declare const GEN_ACCESS_KEY_I18N: {
35
+ readonly en: {
36
+ readonly title: "Authorize Access";
37
+ readonly defaultDesc: "An application is requesting access to your account";
38
+ readonly requestingAccessWithApp: "{appName} is requesting access to your account";
39
+ readonly appLabel: "App";
40
+ readonly thisService: "This service";
41
+ readonly accessLevel: "Access level";
42
+ readonly cancel: "Cancel";
43
+ readonly authorize: "Authorize";
44
+ readonly accessGranted: "Access Granted";
45
+ readonly autoClose: "This window will close automatically.";
46
+ readonly securedBy: "Secured by DID Connect";
47
+ readonly defaultAppName: "Access Key Authorization";
48
+ readonly sessionExpiresIn: "Session expires in {seconds}s";
49
+ readonly sessionExpired: "Session expired — please start over.";
50
+ readonly closeTabManually: "You can close this tab manually.";
51
+ readonly authorizationFailed: "Authorization failed";
52
+ readonly networkError: "Network error";
53
+ readonly roles: {
54
+ readonly owner: "Owner";
55
+ readonly admin: "Admin";
56
+ readonly member: "Member";
57
+ readonly guest: "Guest";
58
+ };
59
+ readonly credentialsGoTo: "Credentials go to";
60
+ readonly requestingAccess: "wants access to your account";
61
+ readonly onThisDevice: "on this device";
62
+ readonly unverifiedClient: "Unverified — this name is self-reported";
63
+ readonly verifiedDomain: "Verified domain";
64
+ readonly operatorApproved: "Approved by this service";
65
+ };
66
+ readonly zh: {
67
+ readonly title: "授权访问";
68
+ readonly defaultDesc: "一个应用正在请求访问您的账户";
69
+ readonly requestingAccessWithApp: "{appName} 正在请求访问您的账户";
70
+ readonly appLabel: "应用";
71
+ readonly thisService: "本服务";
72
+ readonly accessLevel: "访问级别";
73
+ readonly cancel: "取消";
74
+ readonly authorize: "授权";
75
+ readonly accessGranted: "已授权";
76
+ readonly autoClose: "此窗口将自动关闭。";
77
+ readonly securedBy: "由 DID Connect 保护";
78
+ readonly defaultAppName: "访问密钥授权";
79
+ readonly sessionExpiresIn: "会话将在 {seconds} 秒后过期";
80
+ readonly sessionExpired: "会话已过期,请重新开始。";
81
+ readonly closeTabManually: "您可以手动关闭此标签页。";
82
+ readonly authorizationFailed: "授权失败";
83
+ readonly networkError: "网络错误";
84
+ readonly roles: {
85
+ readonly owner: "所有者";
86
+ readonly admin: "管理员";
87
+ readonly member: "成员";
88
+ readonly guest: "访客";
89
+ };
90
+ readonly credentialsGoTo: "凭证将发送至";
91
+ readonly requestingAccess: "正在请求访问您的账户";
92
+ readonly onThisDevice: "本机";
93
+ readonly unverifiedClient: "未验证 —— 该名称由应用自行声明";
94
+ readonly verifiedDomain: "已验证域名";
95
+ readonly operatorApproved: "本服务已批准";
96
+ };
97
+ readonly "zh-TW": {
98
+ readonly title: "授權存取";
99
+ readonly defaultDesc: "有應用程式正在要求存取您的帳號";
100
+ readonly requestingAccessWithApp: "{appName} 正在要求存取您的帳號";
101
+ readonly appLabel: "應用程式";
102
+ readonly thisService: "本服務";
103
+ readonly accessLevel: "存取層級";
104
+ readonly cancel: "取消";
105
+ readonly authorize: "授權";
106
+ readonly accessGranted: "已授權";
107
+ readonly autoClose: "此視窗將自動關閉。";
108
+ readonly securedBy: "由 DID Connect 保護";
109
+ readonly defaultAppName: "存取金鑰授權";
110
+ readonly sessionExpiresIn: "工作階段將在 {seconds} 秒後到期";
111
+ readonly sessionExpired: "工作階段已到期,請重新開始。";
112
+ readonly closeTabManually: "您可以手動關閉此分頁。";
113
+ readonly authorizationFailed: "授權失敗";
114
+ readonly networkError: "網路錯誤";
115
+ readonly roles: {
116
+ readonly owner: "擁有者";
117
+ readonly admin: "管理員";
118
+ readonly member: "成員";
119
+ readonly guest: "訪客";
120
+ };
121
+ readonly credentialsGoTo: "憑證將傳送至";
122
+ readonly requestingAccess: "要求存取您的帳號";
123
+ readonly onThisDevice: "這部裝置";
124
+ readonly unverifiedClient: "未驗證 —— 此名稱由應用程式自行申報";
125
+ readonly verifiedDomain: "已驗證網域";
126
+ readonly operatorApproved: "本服務已核准";
127
+ };
128
+ readonly ja: {
129
+ readonly title: "アクセスを許可";
130
+ readonly defaultDesc: "アプリケーションがあなたのアカウントへのアクセスを要求しています";
131
+ readonly requestingAccessWithApp: "{appName} があなたのアカウントへのアクセスを要求しています";
132
+ readonly appLabel: "アプリ";
133
+ readonly thisService: "このサービス";
134
+ readonly accessLevel: "アクセスレベル";
135
+ readonly cancel: "キャンセル";
136
+ readonly authorize: "許可";
137
+ readonly accessGranted: "アクセスを許可しました";
138
+ readonly autoClose: "このウィンドウは自動的に閉じます。";
139
+ readonly securedBy: "DID Connect により保護されています";
140
+ readonly defaultAppName: "アクセスキーの許可";
141
+ readonly sessionExpiresIn: "セッションは {seconds} 秒後に期限切れになります";
142
+ readonly sessionExpired: "セッションの期限が切れました。最初からやり直してください。";
143
+ readonly closeTabManually: "このタブは手動で閉じることができます。";
144
+ readonly authorizationFailed: "許可に失敗しました";
145
+ readonly networkError: "ネットワークエラー";
146
+ readonly roles: {
147
+ readonly owner: "オーナー";
148
+ readonly admin: "管理者";
149
+ readonly member: "メンバー";
150
+ readonly guest: "ゲスト";
151
+ };
152
+ readonly credentialsGoTo: "認証情報の送信先";
153
+ readonly requestingAccess: "あなたのアカウントへのアクセスを要求しています";
154
+ readonly onThisDevice: "このデバイス";
155
+ readonly unverifiedClient: "未確認 — この名前は自己申告です";
156
+ readonly verifiedDomain: "確認済みドメイン";
157
+ readonly operatorApproved: "このサービスが承認しました";
158
+ };
159
+ };
34
160
  export declare function buildGenAccessKeyPageHTML(options?: GenAccessKeyPageOptions, locale?: string): string;
35
161
  //# sourceMappingURL=gen-access-key-page.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gen-access-key-page.d.ts","sourceRoot":"","sources":["../../src/pages/gen-access-key-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAG3E,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0BAA0B;IAC1B,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtF,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAkXD,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,uBAAuB,EAAE,MAAM,SAAO,GAAG,MAAM,CAkalG"}
1
+ {"version":3,"file":"gen-access-key-page.d.ts","sourceRoot":"","sources":["../../src/pages/gen-access-key-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAI3E,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,0BAA0B;IAC1B,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACtF,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAiCD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyG8B,CAAC;AAqT/D,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,uBAAuB,EAAE,MAAM,SAAO,GAAG,MAAM,CAualG"}
@@ -9,16 +9,13 @@
9
9
  * Uses same LoginPage bundle and design system as login-page.ts.
10
10
  */
11
11
  import { assetUrl } from "../asset-registry.js";
12
+ import { resolvePageLocale } from "../locale.js";
12
13
  import { brandGlyphFor } from "./brand-icons.js";
13
- /**
14
- * Authorize-page copy, localized. `en` is the default fallback for any unknown
15
- * locale and reproduces the page's original (pre-i18n) strings byte-for-byte.
16
- */
17
- const GEN_ACCESS_KEY_I18N = {
14
+ export const GEN_ACCESS_KEY_I18N = {
18
15
  en: {
19
16
  title: "Authorize Access",
20
17
  defaultDesc: "An application is requesting access to your account",
21
- requestingAccessSuffix: " is requesting access to your account",
18
+ requestingAccessWithApp: "{appName} is requesting access to your account",
22
19
  appLabel: "App",
23
20
  thisService: "This service",
24
21
  accessLevel: "Access level",
@@ -28,8 +25,7 @@ const GEN_ACCESS_KEY_I18N = {
28
25
  autoClose: "This window will close automatically.",
29
26
  securedBy: "Secured by DID Connect",
30
27
  defaultAppName: "Access Key Authorization",
31
- sessionExpiresInPrefix: "Session expires in ",
32
- sessionExpiresInSuffix: "s",
28
+ sessionExpiresIn: "Session expires in {seconds}s",
33
29
  sessionExpired: "Session expired — please start over.",
34
30
  closeTabManually: "You can close this tab manually.",
35
31
  authorizationFailed: "Authorization failed",
@@ -45,7 +41,7 @@ const GEN_ACCESS_KEY_I18N = {
45
41
  zh: {
46
42
  title: "授权访问",
47
43
  defaultDesc: "一个应用正在请求访问您的账户",
48
- requestingAccessSuffix: " 正在请求访问您的账户",
44
+ requestingAccessWithApp: "{appName} 正在请求访问您的账户",
49
45
  appLabel: "应用",
50
46
  thisService: "本服务",
51
47
  accessLevel: "访问级别",
@@ -55,8 +51,7 @@ const GEN_ACCESS_KEY_I18N = {
55
51
  autoClose: "此窗口将自动关闭。",
56
52
  securedBy: "由 DID Connect 保护",
57
53
  defaultAppName: "访问密钥授权",
58
- sessionExpiresInPrefix: "会话将在 ",
59
- sessionExpiresInSuffix: " 秒后过期",
54
+ sessionExpiresIn: "会话将在 {seconds} 秒后过期",
60
55
  sessionExpired: "会话已过期,请重新开始。",
61
56
  closeTabManually: "您可以手动关闭此标签页。",
62
57
  authorizationFailed: "授权失败",
@@ -69,6 +64,58 @@ const GEN_ACCESS_KEY_I18N = {
69
64
  verifiedDomain: "已验证域名",
70
65
  operatorApproved: "本服务已批准",
71
66
  },
67
+ "zh-TW": {
68
+ title: "授權存取",
69
+ defaultDesc: "有應用程式正在要求存取您的帳號",
70
+ requestingAccessWithApp: "{appName} 正在要求存取您的帳號",
71
+ appLabel: "應用程式",
72
+ thisService: "本服務",
73
+ accessLevel: "存取層級",
74
+ cancel: "取消",
75
+ authorize: "授權",
76
+ accessGranted: "已授權",
77
+ autoClose: "此視窗將自動關閉。",
78
+ securedBy: "由 DID Connect 保護",
79
+ defaultAppName: "存取金鑰授權",
80
+ sessionExpiresIn: "工作階段將在 {seconds} 秒後到期",
81
+ sessionExpired: "工作階段已到期,請重新開始。",
82
+ closeTabManually: "您可以手動關閉此分頁。",
83
+ authorizationFailed: "授權失敗",
84
+ networkError: "網路錯誤",
85
+ roles: { owner: "擁有者", admin: "管理員", member: "成員", guest: "訪客" },
86
+ credentialsGoTo: "憑證將傳送至",
87
+ requestingAccess: "要求存取您的帳號",
88
+ onThisDevice: "這部裝置",
89
+ unverifiedClient: "未驗證 —— 此名稱由應用程式自行申報",
90
+ verifiedDomain: "已驗證網域",
91
+ operatorApproved: "本服務已核准",
92
+ },
93
+ ja: {
94
+ title: "アクセスを許可",
95
+ defaultDesc: "アプリケーションがあなたのアカウントへのアクセスを要求しています",
96
+ requestingAccessWithApp: "{appName} があなたのアカウントへのアクセスを要求しています",
97
+ appLabel: "アプリ",
98
+ thisService: "このサービス",
99
+ accessLevel: "アクセスレベル",
100
+ cancel: "キャンセル",
101
+ authorize: "許可",
102
+ accessGranted: "アクセスを許可しました",
103
+ autoClose: "このウィンドウは自動的に閉じます。",
104
+ securedBy: "DID Connect により保護されています",
105
+ defaultAppName: "アクセスキーの許可",
106
+ sessionExpiresIn: "セッションは {seconds} 秒後に期限切れになります",
107
+ sessionExpired: "セッションの期限が切れました。最初からやり直してください。",
108
+ closeTabManually: "このタブは手動で閉じることができます。",
109
+ authorizationFailed: "許可に失敗しました",
110
+ networkError: "ネットワークエラー",
111
+ roles: { owner: "オーナー", admin: "管理者", member: "メンバー", guest: "ゲスト" },
112
+ credentialsGoTo: "認証情報の送信先",
113
+ requestingAccess: "あなたのアカウントへのアクセスを要求しています",
114
+ onThisDevice: "このデバイス",
115
+ unverifiedClient: "未確認 — この名前は自己申告です",
116
+ verifiedDomain: "確認済みドメイン",
117
+ operatorApproved: "このサービスが承認しました",
118
+ },
72
119
  };
73
120
  /**
74
121
  * Escape for HTML text/attribute context. The consent block renders a
@@ -363,8 +410,8 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
363
410
  serverConsent: Boolean(options?.oauthConsent),
364
411
  }));
365
412
  const apiPrefix = options?.apiPrefix || "/.well-known/service/api/did";
366
- const lang = locale === "zh" ? "zh" : "en";
367
- const t = GEN_ACCESS_KEY_I18N[lang];
413
+ const { code, htmlLang } = resolvePageLocale(locale);
414
+ const t = GEN_ACCESS_KEY_I18N[code];
368
415
  const consent = options?.oauthConsent;
369
416
  const consentName = consent ? escapeHtml(consentDisplayName(consent)) : "";
370
417
  const consentTitle = consent ? consentName : t.title;
@@ -380,11 +427,10 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
380
427
  const consentLogo = consent ? renderClientLogo(consent, "") : "";
381
428
  const consentLogoInner = consent ? renderClientLogo(consent, "-inner") : "";
382
429
  const clientI18n = escapeForScript(JSON.stringify({
383
- requestingAccessSuffix: t.requestingAccessSuffix,
430
+ requestingAccessWithApp: t.requestingAccessWithApp,
384
431
  defaultAppName: t.defaultAppName,
385
432
  authorize: t.authorize,
386
- sessionExpiresInPrefix: t.sessionExpiresInPrefix,
387
- sessionExpiresInSuffix: t.sessionExpiresInSuffix,
433
+ sessionExpiresIn: t.sessionExpiresIn,
388
434
  sessionExpired: t.sessionExpired,
389
435
  closeTabManually: t.closeTabManually,
390
436
  authorizationFailed: t.authorizationFailed,
@@ -392,7 +438,7 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
392
438
  roles: t.roles,
393
439
  }));
394
440
  return /* html */ `<!DOCTYPE html>
395
- <html lang="${lang}">
441
+ <html lang="${htmlLang}">
396
442
  <head>
397
443
  <meta charset="utf-8" />
398
444
  <meta name="viewport" content="width=device-width, initial-scale=1" />
@@ -520,6 +566,12 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
520
566
  var apiPrefix = '${escapeForScript(apiPrefix)}';
521
567
 
522
568
  // Sync both source headers (preamble + inner card)
569
+ function fill(template, values) {
570
+ var out = template;
571
+ for (var key in values) out = out.split('{' + key + '}').join(String(values[key]));
572
+ return out;
573
+ }
574
+
523
575
  function setSource(name, desc, logoUrl) {
524
576
  ['', '-inner'].forEach(function(suffix) {
525
577
  if (name) {
@@ -549,7 +601,7 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
549
601
  }
550
602
 
551
603
  if (source) {
552
- setSource(source, source + I18N.requestingAccessSuffix);
604
+ setSource(source, fill(I18N.requestingAccessWithApp, { appName: source }));
553
605
  }
554
606
 
555
607
  // Source info enhancement: fetch app details from appUrl/__blocklet__.js
@@ -558,7 +610,7 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
558
610
  .then(function(r) { return r.json(); })
559
611
  .then(function(info) {
560
612
  if (info.appName) {
561
- setSource(info.appName, info.appName + I18N.requestingAccessSuffix);
613
+ setSource(info.appName, fill(I18N.requestingAccessWithApp, { appName: info.appName }));
562
614
  }
563
615
  if (info.appLogo) {
564
616
  setSource(null, null, info.appLogo);
@@ -685,7 +737,7 @@ export function buildGenAccessKeyPageHTML(options, locale = "en") {
685
737
  var remaining = SESSION_TTL - (Date.now() - startTime);
686
738
  var bar = document.getElementById('timeout-bar');
687
739
  if (remaining <= 60000 && remaining > 0) {
688
- bar.textContent = I18N.sessionExpiresInPrefix + Math.ceil(remaining / 1000) + I18N.sessionExpiresInSuffix;
740
+ bar.textContent = fill(I18N.sessionExpiresIn, { seconds: Math.ceil(remaining / 1000) });
689
741
  bar.className = 'timeout-bar';
690
742
  }
691
743
  if (remaining <= 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"gen-access-key-page.js","sourceRoot":"","sources":["../../src/pages/gen-access-key-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gen-access-key-page.js","sourceRoot":"","sources":["../../src/pages/gen-access-key-page.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,103 @@ export interface HomepageData {
13
13
  version: string;
14
14
  instanceDid?: string;
15
15
  }
16
+ export declare const HOMEPAGE_I18N: {
17
+ readonly en: {
18
+ readonly portal: "Service Portal";
19
+ readonly heroDesc: "Unified authentication & identity service";
20
+ readonly login: "Login";
21
+ readonly signOut: "Sign out";
22
+ readonly loginTitle: "Sign In";
23
+ readonly loginDesc: "Authenticate with passkey, wallet, or OAuth";
24
+ readonly profileTitle: "My Profile";
25
+ readonly profileDesc: "View and edit your personal information";
26
+ readonly securityTitle: "Security & Keys";
27
+ readonly securityDesc: "Manage passkeys, passwords, and access keys";
28
+ readonly teamTitle: "Team Management";
29
+ readonly teamDesc: "Manage members, invitations, and team settings";
30
+ readonly instancesTitle: "Instances";
31
+ readonly instancesDesc: "Register and manage app instances";
32
+ readonly brandingTitle: "Branding";
33
+ readonly brandingDesc: "Customize app appearance and theme";
34
+ readonly statusTitle: "Service Status";
35
+ readonly statusOk: "Healthy";
36
+ readonly statusErr: "Unavailable";
37
+ readonly statusUsers: "Users";
38
+ readonly statusInstances: "Instances";
39
+ readonly footerPowered: "Powered by DID Connect";
40
+ };
41
+ readonly zh: {
42
+ readonly portal: "服务门户";
43
+ readonly heroDesc: "统一身份认证服务";
44
+ readonly login: "登录";
45
+ readonly signOut: "退出";
46
+ readonly loginTitle: "登录";
47
+ readonly loginDesc: "通过 Passkey、钱包或 OAuth 进行身份验证";
48
+ readonly profileTitle: "我的资料";
49
+ readonly profileDesc: "查看和编辑个人信息";
50
+ readonly securityTitle: "安全与密钥";
51
+ readonly securityDesc: "管理 Passkey、密码和访问密钥";
52
+ readonly teamTitle: "团队管理";
53
+ readonly teamDesc: "管理成员、邀请和团队设置";
54
+ readonly instancesTitle: "实例管理";
55
+ readonly instancesDesc: "注册和管理应用实例";
56
+ readonly brandingTitle: "品牌";
57
+ readonly brandingDesc: "自定义应用外观和主题";
58
+ readonly statusTitle: "服务状态";
59
+ readonly statusOk: "正常";
60
+ readonly statusErr: "不可用";
61
+ readonly statusUsers: "用户数";
62
+ readonly statusInstances: "实例数";
63
+ readonly footerPowered: "由 DID Connect 提供支持";
64
+ };
65
+ readonly "zh-TW": {
66
+ readonly portal: "服務入口";
67
+ readonly heroDesc: "統一身分認證服務";
68
+ readonly login: "登入";
69
+ readonly signOut: "登出";
70
+ readonly loginTitle: "登入";
71
+ readonly loginDesc: "透過 Passkey、錢包或 OAuth 進行身分驗證";
72
+ readonly profileTitle: "我的資料";
73
+ readonly profileDesc: "查看並編輯個人資料";
74
+ readonly securityTitle: "安全性與金鑰";
75
+ readonly securityDesc: "管理 Passkey、密碼和存取金鑰";
76
+ readonly teamTitle: "團隊管理";
77
+ readonly teamDesc: "管理成員、邀請和團隊設定";
78
+ readonly instancesTitle: "實例管理";
79
+ readonly instancesDesc: "註冊並管理應用程式實例";
80
+ readonly brandingTitle: "品牌";
81
+ readonly brandingDesc: "自訂應用程式外觀和主題";
82
+ readonly statusTitle: "服務狀態";
83
+ readonly statusOk: "正常";
84
+ readonly statusErr: "無法使用";
85
+ readonly statusUsers: "使用者數";
86
+ readonly statusInstances: "實例數";
87
+ readonly footerPowered: "由 DID Connect 提供支援";
88
+ };
89
+ readonly ja: {
90
+ readonly portal: "サービスポータル";
91
+ readonly heroDesc: "統合認証・アイデンティティサービス";
92
+ readonly login: "ログイン";
93
+ readonly signOut: "ログアウト";
94
+ readonly loginTitle: "ログイン";
95
+ readonly loginDesc: "Passkey、ウォレット、または OAuth で認証します";
96
+ readonly profileTitle: "マイプロフィール";
97
+ readonly profileDesc: "個人情報を表示および編集します";
98
+ readonly securityTitle: "セキュリティとキー";
99
+ readonly securityDesc: "Passkey、パスワード、アクセスキーを管理します";
100
+ readonly teamTitle: "チーム管理";
101
+ readonly teamDesc: "メンバー、招待、チーム設定を管理します";
102
+ readonly instancesTitle: "インスタンス";
103
+ readonly instancesDesc: "アプリのインスタンスを登録および管理します";
104
+ readonly brandingTitle: "ブランディング";
105
+ readonly brandingDesc: "アプリの外観とテーマをカスタマイズします";
106
+ readonly statusTitle: "サービス状態";
107
+ readonly statusOk: "正常";
108
+ readonly statusErr: "利用できません";
109
+ readonly statusUsers: "ユーザー数";
110
+ readonly statusInstances: "インスタンス数";
111
+ readonly footerPowered: "DID Connect により提供されています";
112
+ };
113
+ };
16
114
  export declare function buildHomepageHTML(data: HomepageData): string;
17
115
  //# sourceMappingURL=homepage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../src/pages/homepage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAsQD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA+J5D"}
1
+ {"version":3,"file":"homepage.d.ts","sourceRoot":"","sources":["../../src/pages/homepage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA2GD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGzB,CAAC;AA+MF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CA+J5D"}
@@ -5,6 +5,8 @@
5
5
  * Client-side session detection via fetch to /api/did/session — no loginBundle needed.
6
6
  */
7
7
  import { assetUrl } from "../asset-registry.js";
8
+ import { resolvePageLocale } from "../locale.js";
9
+ // ─── i18n ────────────────────────────────────────────────────────────────
8
10
  const EN = {
9
11
  portal: "Service Portal",
10
12
  heroDesc: "Unified authentication & identity service",
@@ -53,9 +55,58 @@ const ZH = {
53
55
  statusInstances: "实例数",
54
56
  footerPowered: "由 DID Connect 提供支持",
55
57
  };
56
- const I18N = { en: EN, zh: ZH };
58
+ const ZH_TW = {
59
+ portal: "服務入口",
60
+ heroDesc: "統一身分認證服務",
61
+ login: "登入",
62
+ signOut: "登出",
63
+ loginTitle: "登入",
64
+ loginDesc: "透過 Passkey、錢包或 OAuth 進行身分驗證",
65
+ profileTitle: "我的資料",
66
+ profileDesc: "查看並編輯個人資料",
67
+ securityTitle: "安全性與金鑰",
68
+ securityDesc: "管理 Passkey、密碼和存取金鑰",
69
+ teamTitle: "團隊管理",
70
+ teamDesc: "管理成員、邀請和團隊設定",
71
+ instancesTitle: "實例管理",
72
+ instancesDesc: "註冊並管理應用程式實例",
73
+ brandingTitle: "品牌",
74
+ brandingDesc: "自訂應用程式外觀和主題",
75
+ statusTitle: "服務狀態",
76
+ statusOk: "正常",
77
+ statusErr: "無法使用",
78
+ statusUsers: "使用者數",
79
+ statusInstances: "實例數",
80
+ footerPowered: "由 DID Connect 提供支援",
81
+ };
82
+ const JA = {
83
+ portal: "サービスポータル",
84
+ heroDesc: "統合認証・アイデンティティサービス",
85
+ login: "ログイン",
86
+ signOut: "ログアウト",
87
+ loginTitle: "ログイン",
88
+ loginDesc: "Passkey、ウォレット、または OAuth で認証します",
89
+ profileTitle: "マイプロフィール",
90
+ profileDesc: "個人情報を表示および編集します",
91
+ securityTitle: "セキュリティとキー",
92
+ securityDesc: "Passkey、パスワード、アクセスキーを管理します",
93
+ teamTitle: "チーム管理",
94
+ teamDesc: "メンバー、招待、チーム設定を管理します",
95
+ instancesTitle: "インスタンス",
96
+ instancesDesc: "アプリのインスタンスを登録および管理します",
97
+ brandingTitle: "ブランディング",
98
+ brandingDesc: "アプリの外観とテーマをカスタマイズします",
99
+ statusTitle: "サービス状態",
100
+ statusOk: "正常",
101
+ statusErr: "利用できません",
102
+ statusUsers: "ユーザー数",
103
+ statusInstances: "インスタンス数",
104
+ footerPowered: "DID Connect により提供されています",
105
+ };
106
+ export const HOMEPAGE_I18N = { en: EN, zh: ZH, "zh-TW": ZH_TW, ja: JA };
57
107
  function t(key, locale) {
58
- return (I18N[locale] ?? EN)[key] ?? EN[key] ?? key;
108
+ const messages = HOMEPAGE_I18N[resolvePageLocale(locale).code];
109
+ return messages[key] ?? HOMEPAGE_I18N.en[key] ?? key;
59
110
  }
60
111
  // ─── Icons (inline SVG) ──────────────────────────────────────────────────
61
112
  const ICON_LOGIN = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"><path fill="currentColor" d="M11 7L9.6 8.4l2.6 2.6H2v2h10.2l-2.6 2.6L11 17l5-5zm9 12H12v2h8c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-8v2h8z"/></svg>`;
@@ -253,8 +304,8 @@ function escapeForScript(s) {
253
304
  export function buildHomepageHTML(data) {
254
305
  const { locale, theme, appName, appDescription, appLogo, version } = data;
255
306
  const dataThemeAttr = theme === "light" ? ' data-theme="light"' : theme === "auto" ? ' data-theme="auto"' : "";
256
- const lang = locale === "zh" ? "zh" : "en";
257
- const description = appDescription || t("heroDesc", lang);
307
+ const { code, htmlLang } = resolvePageLocale(locale);
308
+ const description = appDescription || t("heroDesc", code);
258
309
  const cards = [
259
310
  // Unauthenticated only: sign-in prompt (controlled by data-guest-only, not role level)
260
311
  { key: "login", icon: ICON_LOGIN, href: "/.well-known/service/login", minRole: "guest", maxRole: "", guestOnly: true },
@@ -270,25 +321,25 @@ export function buildHomepageHTML(data) {
270
321
  .map((c) => `<a href="${c.href}" class="hp-card" data-min-role="${c.minRole}"${c.maxRole ? ` data-max-role="${c.maxRole}"` : ""}${c.guestOnly ? ' data-guest-only="1"' : ""}${c.authOnly ? ' data-auth-only="1"' : ""}>
271
322
  <div class="hp-card-icon">${c.icon}</div>
272
323
  <div class="hp-card-text">
273
- <h3>${escapeHTML(t(`${c.key}Title`, lang))}</h3>
274
- <p>${escapeHTML(t(`${c.key}Desc`, lang))}</p>
324
+ <h3>${escapeHTML(t(`${c.key}Title`, code))}</h3>
325
+ <p>${escapeHTML(t(`${c.key}Desc`, code))}</p>
275
326
  </div>
276
327
  </a>`)
277
328
  .join("\n ");
278
329
  // Embed i18n strings for client-side JS
279
330
  const clientI18n = JSON.stringify({
280
- statusTitle: t("statusTitle", lang),
281
- statusOk: t("statusOk", lang),
282
- statusErr: t("statusErr", lang),
283
- statusUsers: t("statusUsers", lang),
284
- statusInstances: t("statusInstances", lang),
331
+ statusTitle: t("statusTitle", code),
332
+ statusOk: t("statusOk", code),
333
+ statusErr: t("statusErr", code),
334
+ statusUsers: t("statusUsers", code),
335
+ statusInstances: t("statusInstances", code),
285
336
  });
286
337
  return /* html */ `<!DOCTYPE html>
287
- <html lang="${lang}"${dataThemeAttr}>
338
+ <html lang="${htmlLang}"${dataThemeAttr}>
288
339
  <head>
289
340
  <meta charset="utf-8" />
290
341
  <meta name="viewport" content="width=device-width, initial-scale=1" />
291
- <title>${escapeHTML(appName)} — ${escapeHTML(t("portal", lang))}</title>
342
+ <title>${escapeHTML(appName)} — ${escapeHTML(t("portal", code))}</title>
292
343
  <link rel="stylesheet" href="${assetUrl("design.css")}" />
293
344
  <style>${HOMEPAGE_STYLES}</style>
294
345
  <script src="${assetUrl("header.js")}" defer></script>
@@ -300,7 +351,7 @@ export function buildHomepageHTML(data) {
300
351
  app-logo="${escapeHTML(appLogo)}"
301
352
  login-url="/.well-known/service/login"
302
353
  team-url="/.well-known/service/admin"
303
- locale="${lang}"
354
+ locale="${code}"
304
355
  ${theme === "light" ? 'theme="light"' : theme === "dark" ? 'theme="dark"' : ""}
305
356
  ></blocklet-header>
306
357
 
@@ -325,7 +376,7 @@ export function buildHomepageHTML(data) {
325
376
  <!-- Footer -->
326
377
  <footer class="hp-footer">
327
378
  <span>v${escapeHTML(version)}</span>
328
- <span>${escapeHTML(t("footerPowered", lang))}</span>
379
+ <span>${escapeHTML(t("footerPowered", code))}</span>
329
380
  </footer>
330
381
 
331
382
  <script>
@@ -1 +1 @@
1
- {"version":3,"file":"homepage.js","sourceRoot":"","sources":["../../src/pages/homepage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"homepage.js","sourceRoot":"","sources":["../../src/pages/homepage.ts"],"names":[],"mappings":"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"}