@arcblock/did-connect-service 4.0.5 → 4.0.6

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 (190) hide show
  1. package/assets/fonts/noto-sans-sc-regular.otf +0 -0
  2. package/dist/embedded.d.ts +32 -0
  3. package/dist/embedded.d.ts.map +1 -1
  4. package/dist/embedded.js +3 -0
  5. package/dist/embedded.js.map +1 -1
  6. package/dist/handlers/auth-handler.d.ts +5 -0
  7. package/dist/handlers/auth-handler.d.ts.map +1 -1
  8. package/dist/handlers/auth-handler.js +1 -22
  9. package/dist/handlers/auth-handler.js.map +1 -1
  10. package/dist/handlers/branding-handler.d.ts +17 -0
  11. package/dist/handlers/branding-handler.d.ts.map +1 -1
  12. package/dist/handlers/branding-handler.js +107 -5
  13. package/dist/handlers/branding-handler.js.map +1 -1
  14. package/dist/identity/gravatar.d.ts +0 -2
  15. package/dist/identity/gravatar.d.ts.map +1 -1
  16. package/dist/identity/gravatar.js +0 -9
  17. package/dist/identity/gravatar.js.map +1 -1
  18. package/dist/og/emoji.d.ts +12 -0
  19. package/dist/og/emoji.d.ts.map +1 -0
  20. package/dist/og/emoji.js +71 -0
  21. package/dist/og/emoji.js.map +1 -0
  22. package/dist/og/generator.d.ts +3 -0
  23. package/dist/og/generator.d.ts.map +1 -0
  24. package/dist/og/generator.js +338 -0
  25. package/dist/og/generator.js.map +1 -0
  26. package/dist/og/index.d.ts +6 -0
  27. package/dist/og/index.d.ts.map +1 -0
  28. package/dist/og/index.js +4 -0
  29. package/dist/og/index.js.map +1 -0
  30. package/dist/og/passport-svg.d.ts +52 -0
  31. package/dist/og/passport-svg.d.ts.map +1 -0
  32. package/dist/og/passport-svg.js +157 -0
  33. package/dist/og/passport-svg.js.map +1 -0
  34. package/dist/og/ssrf-guard.d.ts +38 -0
  35. package/dist/og/ssrf-guard.d.ts.map +1 -0
  36. package/dist/og/ssrf-guard.js +188 -0
  37. package/dist/og/ssrf-guard.js.map +1 -0
  38. package/dist/og/templates.d.ts +26 -0
  39. package/dist/og/templates.d.ts.map +1 -0
  40. package/dist/og/templates.js +302 -0
  41. package/dist/og/templates.js.map +1 -0
  42. package/dist/og/types.d.ts +74 -0
  43. package/dist/og/types.d.ts.map +1 -0
  44. package/dist/og/types.js +14 -0
  45. package/dist/og/types.js.map +1 -0
  46. package/package.json +18 -4
  47. package/dist/access-key-handler.d.ts +0 -37
  48. package/dist/access-key-handler.d.ts.map +0 -1
  49. package/dist/access-key-handler.js +0 -316
  50. package/dist/access-key-handler.js.map +0 -1
  51. package/dist/access-key-util.d.ts +0 -19
  52. package/dist/access-key-util.d.ts.map +0 -1
  53. package/dist/access-key-util.js +0 -45
  54. package/dist/access-key-util.js.map +0 -1
  55. package/dist/access-policy.d.ts +0 -53
  56. package/dist/access-policy.d.ts.map +0 -1
  57. package/dist/access-policy.js +0 -153
  58. package/dist/access-policy.js.map +0 -1
  59. package/dist/auth-client.d.ts +0 -20
  60. package/dist/auth-client.d.ts.map +0 -1
  61. package/dist/auth-client.js +0 -42
  62. package/dist/auth-client.js.map +0 -1
  63. package/dist/auth-entrypoint.d.ts +0 -45
  64. package/dist/auth-entrypoint.d.ts.map +0 -1
  65. package/dist/auth-entrypoint.js +0 -31
  66. package/dist/auth-entrypoint.js.map +0 -1
  67. package/dist/auth-handler.d.ts +0 -136
  68. package/dist/auth-handler.d.ts.map +0 -1
  69. package/dist/auth-handler.js +0 -408
  70. package/dist/auth-handler.js.map +0 -1
  71. package/dist/auth-rpc-types.d.ts +0 -139
  72. package/dist/auth-rpc-types.d.ts.map +0 -1
  73. package/dist/auth-rpc-types.js +0 -11
  74. package/dist/auth-rpc-types.js.map +0 -1
  75. package/dist/auth-rpc.d.ts +0 -80
  76. package/dist/auth-rpc.d.ts.map +0 -1
  77. package/dist/auth-rpc.js +0 -257
  78. package/dist/auth-rpc.js.map +0 -1
  79. package/dist/auth-worker.d.ts +0 -42
  80. package/dist/auth-worker.d.ts.map +0 -1
  81. package/dist/auth-worker.js +0 -120
  82. package/dist/auth-worker.js.map +0 -1
  83. package/dist/blocklet-js-handler.d.ts +0 -22
  84. package/dist/blocklet-js-handler.d.ts.map +0 -1
  85. package/dist/blocklet-js-handler.js +0 -205
  86. package/dist/blocklet-js-handler.js.map +0 -1
  87. package/dist/branding-handler.d.ts +0 -42
  88. package/dist/branding-handler.d.ts.map +0 -1
  89. package/dist/branding-handler.js +0 -326
  90. package/dist/branding-handler.js.map +0 -1
  91. package/dist/d1-token-storage.d.ts +0 -31
  92. package/dist/d1-token-storage.d.ts.map +0 -1
  93. package/dist/d1-token-storage.js +0 -83
  94. package/dist/d1-token-storage.js.map +0 -1
  95. package/dist/did-connect-handler.d.ts +0 -57
  96. package/dist/did-connect-handler.d.ts.map +0 -1
  97. package/dist/did-connect-handler.js +0 -182
  98. package/dist/did-connect-handler.js.map +0 -1
  99. package/dist/did.d.ts +0 -14
  100. package/dist/did.d.ts.map +0 -1
  101. package/dist/did.js +0 -17
  102. package/dist/did.js.map +0 -1
  103. package/dist/email-login-handler.d.ts +0 -50
  104. package/dist/email-login-handler.d.ts.map +0 -1
  105. package/dist/email-login-handler.js +0 -238
  106. package/dist/email-login-handler.js.map +0 -1
  107. package/dist/federation-utils.d.ts +0 -23
  108. package/dist/federation-utils.d.ts.map +0 -1
  109. package/dist/federation-utils.js +0 -25
  110. package/dist/federation-utils.js.map +0 -1
  111. package/dist/handler.d.ts +0 -90
  112. package/dist/handler.d.ts.map +0 -1
  113. package/dist/handler.js +0 -591
  114. package/dist/handler.js.map +0 -1
  115. package/dist/identity/invitation-util.d.ts +0 -7
  116. package/dist/identity/invitation-util.d.ts.map +0 -1
  117. package/dist/identity/invitation-util.js +0 -66
  118. package/dist/identity/invitation-util.js.map +0 -1
  119. package/dist/instance-role.d.ts +0 -10
  120. package/dist/instance-role.d.ts.map +0 -1
  121. package/dist/instance-role.js +0 -20
  122. package/dist/instance-role.js.map +0 -1
  123. package/dist/jwt.d.ts +0 -7
  124. package/dist/jwt.d.ts.map +0 -1
  125. package/dist/jwt.js +0 -72
  126. package/dist/jwt.js.map +0 -1
  127. package/dist/login-entry.d.ts +0 -9
  128. package/dist/login-entry.d.ts.map +0 -1
  129. package/dist/login-entry.js +0 -9
  130. package/dist/login-entry.js.map +0 -1
  131. package/dist/membership-handler.d.ts +0 -27
  132. package/dist/membership-handler.d.ts.map +0 -1
  133. package/dist/membership-handler.js +0 -111
  134. package/dist/membership-handler.js.map +0 -1
  135. package/dist/oauth-callback-page.d.ts +0 -9
  136. package/dist/oauth-callback-page.d.ts.map +0 -1
  137. package/dist/oauth-callback-page.js +0 -31
  138. package/dist/oauth-callback-page.js.map +0 -1
  139. package/dist/oauth-handler.d.ts +0 -72
  140. package/dist/oauth-handler.d.ts.map +0 -1
  141. package/dist/oauth-handler.js +0 -423
  142. package/dist/oauth-handler.js.map +0 -1
  143. package/dist/page.d.ts +0 -33
  144. package/dist/page.d.ts.map +0 -1
  145. package/dist/page.js +0 -59
  146. package/dist/page.js.map +0 -1
  147. package/dist/pages/auth-script.d.ts +0 -18
  148. package/dist/pages/auth-script.d.ts.map +0 -1
  149. package/dist/pages/auth-script.js +0 -185
  150. package/dist/pages/auth-script.js.map +0 -1
  151. package/dist/pages/design-tokens.d.ts +0 -86
  152. package/dist/pages/design-tokens.d.ts.map +0 -1
  153. package/dist/pages/design-tokens.js +0 -159
  154. package/dist/pages/design-tokens.js.map +0 -1
  155. package/dist/pages/did-connect-script.d.ts +0 -16
  156. package/dist/pages/did-connect-script.d.ts.map +0 -1
  157. package/dist/pages/did-connect-script.js +0 -105
  158. package/dist/pages/did-connect-script.js.map +0 -1
  159. package/dist/pages/shared-styles.d.ts +0 -6
  160. package/dist/pages/shared-styles.d.ts.map +0 -1
  161. package/dist/pages/shared-styles.js +0 -109
  162. package/dist/pages/shared-styles.js.map +0 -1
  163. package/dist/rbac.d.ts +0 -19
  164. package/dist/rbac.d.ts.map +0 -1
  165. package/dist/rbac.js +0 -76
  166. package/dist/rbac.js.map +0 -1
  167. package/dist/session-context.d.ts +0 -35
  168. package/dist/session-context.d.ts.map +0 -1
  169. package/dist/session-context.js +0 -39
  170. package/dist/session-context.js.map +0 -1
  171. package/dist/store.d.ts +0 -222
  172. package/dist/store.d.ts.map +0 -1
  173. package/dist/store.js +0 -1366
  174. package/dist/store.js.map +0 -1
  175. package/dist/team-handler.d.ts +0 -90
  176. package/dist/team-handler.d.ts.map +0 -1
  177. package/dist/team-handler.js +0 -1225
  178. package/dist/team-handler.js.map +0 -1
  179. package/dist/ticket-handler.d.ts +0 -28
  180. package/dist/ticket-handler.d.ts.map +0 -1
  181. package/dist/ticket-handler.js +0 -74
  182. package/dist/ticket-handler.js.map +0 -1
  183. package/dist/wallet-identity.d.ts +0 -32
  184. package/dist/wallet-identity.d.ts.map +0 -1
  185. package/dist/wallet-identity.js +0 -43
  186. package/dist/wallet-identity.js.map +0 -1
  187. package/dist/webauthn.d.ts +0 -65
  188. package/dist/webauthn.d.ts.map +0 -1
  189. package/dist/webauthn.js +0 -112
  190. package/dist/webauthn.js.map +0 -1
@@ -1,185 +0,0 @@
1
- /**
2
- * Shared passkey auth script — extracted from login page for reuse.
3
- *
4
- * Exposes `runPasskeyAuth(options)` which handles the full passkey flow:
5
- * 1. GET /auth → authentication challenge options
6
- * 2. Try credentials.get() (authentication)
7
- * 3. Fallback: GET /register → registration challenge options
8
- * 4. credentials.create() (registration)
9
- * 5. POST /auth or POST /register to verify
10
- *
11
- * Used by invite page (inline JS string for SSR).
12
- *
13
- * @deprecated Use `runPasskeyAuth` from `@arcblock/did-connect-core/ui` instead.
14
- * This inline JS string is kept for invite-page.ts backward compatibility.
15
- * The canonical TS module is `packages/connect-core/src/ui/webauthn-browser.ts`.
16
- */
17
- export const AUTH_SCRIPT = /* js */ `
18
- function b64urlEncode(buf) {
19
- const bytes = new Uint8Array(buf);
20
- let str = "";
21
- for (let i = 0; i < bytes.length; i++) str += String.fromCharCode(bytes[i]);
22
- return btoa(str).replace(/\\+/g, "-").replace(/\\//g, "_").replace(/=+$/, "");
23
- }
24
-
25
- function b64urlDecode(str) {
26
- str = str.replace(/-/g, "+").replace(/_/g, "/");
27
- const bin = atob(str);
28
- const arr = new Uint8Array(bin.length);
29
- for (let i = 0; i < bin.length; i++) arr[i] = bin.charCodeAt(i);
30
- return arr.buffer;
31
- }
32
-
33
- function serializeRegistration(cred) {
34
- return {
35
- id: cred.id,
36
- rawId: b64urlEncode(cred.rawId),
37
- type: cred.type,
38
- response: {
39
- attestationObject: b64urlEncode(cred.response.attestationObject),
40
- clientDataJSON: b64urlEncode(cred.response.clientDataJSON),
41
- },
42
- clientExtensionResults: cred.getClientExtensionResults(),
43
- authenticatorAttachment: cred.authenticatorAttachment,
44
- };
45
- }
46
-
47
- function serializeAuthentication(cred) {
48
- return {
49
- id: cred.id,
50
- rawId: b64urlEncode(cred.rawId),
51
- type: cred.type,
52
- response: {
53
- authenticatorData: b64urlEncode(cred.response.authenticatorData),
54
- clientDataJSON: b64urlEncode(cred.response.clientDataJSON),
55
- signature: b64urlEncode(cred.response.signature),
56
- userHandle: cred.response.userHandle ? b64urlEncode(cred.response.userHandle) : undefined,
57
- },
58
- clientExtensionResults: cred.getClientExtensionResults(),
59
- authenticatorAttachment: cred.authenticatorAttachment,
60
- };
61
- }
62
-
63
- /**
64
- * Run the full passkey auth flow.
65
- * @param {Object} options
66
- * @param {string} options.prefix - API base path (default: '/.well-known/service/api/passkey')
67
- * @param {string} [options.name] - User display name for registration
68
- * @param {boolean} [options.authOnly] - If true, only try authentication (no registration fallback)
69
- * @param {boolean} [options.registerOnly] - If true, skip authentication and go straight to registration
70
- * @param {function} options.onStatus - Status callback: (message, isError) => void
71
- * @returns {Promise<{success: boolean, error?: string}>}
72
- */
73
- async function runPasskeyAuth(options) {
74
- const prefix = options.prefix || "/.well-known/service/api/passkey";
75
- const onStatus = options.onStatus || function() {};
76
- const authOnly = options.authOnly || false;
77
- const registerOnly = options.registerOnly || false;
78
- const invitationId = options.invitationId || undefined;
79
-
80
- async function fetchAuthChallenge() {
81
- const res = await fetch(prefix + "/auth", { method: "GET" });
82
- if (!res.ok) throw new Error("Failed to get auth challenge");
83
- return res.json();
84
- }
85
-
86
- async function fetchRegisterChallenge(name) {
87
- var params = [];
88
- if (name) params.push("name=" + encodeURIComponent(name));
89
- if (invitationId) params.push("invitationId=" + encodeURIComponent(invitationId));
90
- var qs = params.length ? "?" + params.join("&") : "";
91
- const res = await fetch(prefix + "/register" + qs, { method: "GET" });
92
- if (!res.ok) throw new Error("Failed to get register challenge");
93
- return res.json();
94
- }
95
-
96
- async function verifyAuth(challengeId, credential) {
97
- const res = await fetch(prefix + "/auth", {
98
- method: "POST",
99
- headers: { "Content-Type": "application/json" },
100
- body: JSON.stringify({ challengeId: challengeId, credential: credential }),
101
- });
102
- if (!res.ok) {
103
- const errData = await res.json().catch(function() { return {}; });
104
- throw new Error(errData.error || "Authentication failed");
105
- }
106
- return res.json();
107
- }
108
-
109
- async function verifyRegister(challengeId, credential, name) {
110
- const res = await fetch(prefix + "/register", {
111
- method: "POST",
112
- headers: { "Content-Type": "application/json" },
113
- body: JSON.stringify({ challengeId: challengeId, credential: credential, name: name || undefined }),
114
- });
115
- if (!res.ok) {
116
- const errData = await res.json().catch(function() { return {}; });
117
- throw new Error(errData.error || "Registration failed");
118
- }
119
- return res.json();
120
- }
121
-
122
- // Phase 1: try authentication (skip if registerOnly)
123
- if (!registerOnly) {
124
- onStatus("Waiting for passkey...", false);
125
- try {
126
- const { challengeId, authentication } = await fetchAuthChallenge();
127
- const authOpts = {
128
- publicKey: {
129
- ...authentication,
130
- challenge: b64urlDecode(authentication.challenge),
131
- allowCredentials: (authentication.allowCredentials || []).map(function(c) {
132
- return { ...c, id: b64urlDecode(c.id) };
133
- }),
134
- },
135
- };
136
- const raw = await navigator.credentials.get(authOpts);
137
- const credential = serializeAuthentication(raw);
138
-
139
- onStatus("Verifying...", false);
140
- await verifyAuth(challengeId, credential);
141
- return { success: true };
142
- } catch (authErr) {
143
- // Auth failed — if authOnly, return failure so caller can show name input
144
- if (authOnly) {
145
- return { success: false, error: "no_passkey" };
146
- }
147
- }
148
- } // end if (!registerOnly)
149
-
150
- // Phase 2: registration — check if server allows it
151
- var challengeData = await fetchRegisterChallenge(options.name || "");
152
- if (!challengeData.registrationAllowed) {
153
- onStatus("Registration requires an invitation.", true);
154
- return { success: false, error: "registration_closed" };
155
- }
156
-
157
- onStatus("No existing passkey found. Creating new one...", false);
158
- try {
159
- var regOpts = {
160
- publicKey: {
161
- ...challengeData.registration,
162
- challenge: b64urlDecode(challengeData.registration.challenge),
163
- user: {
164
- ...challengeData.registration.user,
165
- id: b64urlDecode(challengeData.registration.user.id),
166
- },
167
- excludeCredentials: (challengeData.registration.excludeCredentials || []).map(function(c) {
168
- return { ...c, id: b64urlDecode(c.id) };
169
- }),
170
- },
171
- };
172
- var raw = await navigator.credentials.create(regOpts);
173
- var credential = serializeRegistration(raw);
174
-
175
- onStatus("Verifying...", false);
176
- await verifyRegister(challengeData.challengeId, credential, options.name || "");
177
- return { success: true };
178
- } catch (regErr) {
179
- var errMsg = regErr.message || "Passkey setup failed";
180
- onStatus(errMsg, true);
181
- return { success: false, error: errMsg };
182
- }
183
- }
184
- `;
185
- //# sourceMappingURL=auth-script.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-script.js","sourceRoot":"","sources":["../../src/pages/auth-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuKnC,CAAC"}
@@ -1,86 +0,0 @@
1
- /**
2
- * Design tokens — Clerk / Linear / Vercel dark-theme inspired.
3
- *
4
- * Three export layers:
5
- * 1. `tokens` — JS object, for programmatic use (e.g. build tooling, SSR)
6
- * 2. `DESIGN_TOKENS_CSS` — CSS custom properties string, embed in <style>
7
- * 3. `DESIGN_RESET_CSS` — Opinionated global reset + base typography
8
- *
9
- * Usage:
10
- * import { DESIGN_TOKENS_CSS, DESIGN_RESET_CSS } from "./design-tokens.js";
11
- * const html = `<style>${DESIGN_TOKENS_CSS}${DESIGN_RESET_CSS}</style>`;
12
- *
13
- * import { tokens } from "./design-tokens.js";
14
- * console.log(tokens.color.blue); // "#6c47ff"
15
- */
16
- export declare const tokens: {
17
- /** Backgrounds — layered depth (darkest → lightest) */
18
- readonly bg: {
19
- readonly root: "#0a0a0b";
20
- readonly surface: "#141416";
21
- readonly card: "#1c1c20";
22
- readonly elevated: "#232328";
23
- readonly hover: "#2b2b34";
24
- readonly active: "#33333e";
25
- readonly input: "rgba(255,255,255,0.06)";
26
- };
27
- /** Borders — semi-transparent for adaptability */
28
- readonly border: {
29
- readonly default: "rgba(255,255,255,0.10)";
30
- readonly subtle: "rgba(255,255,255,0.06)";
31
- readonly strong: "rgba(255,255,255,0.15)";
32
- readonly focus: "rgba(255,255,255,0.25)";
33
- };
34
- /** Text hierarchy */
35
- readonly text: {
36
- readonly primary: "#f5f5f7";
37
- readonly secondary: "#9394a1";
38
- readonly tertiary: "#767684";
39
- readonly placeholder: "#5e5f6e";
40
- readonly white: "#ffffff";
41
- };
42
- /** Accent colors — each with base, light (tinted bg), and text (readable on dark) */
43
- readonly color: {
44
- readonly blue: "#6c47ff";
45
- readonly blueHover: "#5f15fe";
46
- readonly blueLight: "rgba(108,71,255,0.15)";
47
- readonly blueMuted: "#9280ff";
48
- readonly red: "#e02e2e";
49
- readonly redLight: "rgba(224,46,46,0.15)";
50
- readonly redText: "#f98a8a";
51
- readonly green: "#15892b";
52
- readonly greenLight: "rgba(21,137,43,0.15)";
53
- readonly greenText: "#49dc6e";
54
- readonly yellow: "#fd7224";
55
- readonly yellowLight: "rgba(253,114,36,0.15)";
56
- readonly yellowText: "#fd9357";
57
- readonly info: "#236dd7";
58
- readonly infoLight: "rgba(35,109,215,0.15)";
59
- readonly infoText: "#73acfa";
60
- };
61
- /** Border radii */
62
- readonly radius: {
63
- readonly xs: "4px";
64
- readonly sm: "6px";
65
- readonly md: "8px";
66
- readonly lg: "12px";
67
- readonly full: "9999px";
68
- };
69
- /** Box shadows */
70
- readonly shadow: {
71
- readonly sm: "0 1px 3px rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.2)";
72
- readonly md: "0 4px 6px -1px rgba(0,0,0,0.4), 0 2px 4px -2px rgba(0,0,0,0.3)";
73
- readonly lg: "0 10px 15px -3px rgba(0,0,0,0.5), 0 4px 6px -4px rgba(0,0,0,0.4)";
74
- readonly focus: "0 0 0 1px rgba(255,255,255,0.12), 0 0 0 3px rgba(108,71,255,0.3)";
75
- };
76
- /** Typography */
77
- readonly font: {
78
- readonly family: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif";
79
- readonly mono: "'JetBrains Mono', 'SF Mono', monospace";
80
- readonly sizeBase: "14px";
81
- readonly lineHeight: "1.43";
82
- };
83
- };
84
- export declare const DESIGN_TOKENS_CSS: string;
85
- export declare const DESIGN_RESET_CSS: string;
86
- //# sourceMappingURL=design-tokens.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-tokens.d.ts","sourceRoot":"","sources":["../../src/pages/design-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,eAAO,MAAM,MAAM;IACjB,uDAAuD;;;;;;;;;;IAWvD,kDAAkD;;;;;;;IAQlD,qBAAqB;;;;;;;;IASrB,qFAAqF;;;;;;;;;;;;;;;;;;;IAwBrF,mBAAmB;;;;;;;;IASnB,kBAAkB;;;;;;;IAQlB,iBAAiB;;;;;;;CAOT,CAAC;AAIX,eAAO,MAAM,iBAAiB,QAuD7B,CAAC;AAIF,eAAO,MAAM,gBAAgB,QAe5B,CAAC"}
@@ -1,159 +0,0 @@
1
- /**
2
- * Design tokens — Clerk / Linear / Vercel dark-theme inspired.
3
- *
4
- * Three export layers:
5
- * 1. `tokens` — JS object, for programmatic use (e.g. build tooling, SSR)
6
- * 2. `DESIGN_TOKENS_CSS` — CSS custom properties string, embed in <style>
7
- * 3. `DESIGN_RESET_CSS` — Opinionated global reset + base typography
8
- *
9
- * Usage:
10
- * import { DESIGN_TOKENS_CSS, DESIGN_RESET_CSS } from "./design-tokens.js";
11
- * const html = `<style>${DESIGN_TOKENS_CSS}${DESIGN_RESET_CSS}</style>`;
12
- *
13
- * import { tokens } from "./design-tokens.js";
14
- * console.log(tokens.color.blue); // "#6c47ff"
15
- */
16
- // ─── 1. JS Token Object ─────────────────────────────────────────────────────
17
- export const tokens = {
18
- /** Backgrounds — layered depth (darkest → lightest) */
19
- bg: {
20
- root: "#0a0a0b",
21
- surface: "#141416",
22
- card: "#1c1c20",
23
- elevated: "#232328",
24
- hover: "#2b2b34",
25
- active: "#33333e",
26
- input: "rgba(255,255,255,0.06)",
27
- },
28
- /** Borders — semi-transparent for adaptability */
29
- border: {
30
- default: "rgba(255,255,255,0.10)",
31
- subtle: "rgba(255,255,255,0.06)",
32
- strong: "rgba(255,255,255,0.15)",
33
- focus: "rgba(255,255,255,0.25)",
34
- },
35
- /** Text hierarchy */
36
- text: {
37
- primary: "#f5f5f7",
38
- secondary: "#9394a1",
39
- tertiary: "#767684",
40
- placeholder: "#5e5f6e",
41
- white: "#ffffff",
42
- },
43
- /** Accent colors — each with base, light (tinted bg), and text (readable on dark) */
44
- color: {
45
- blue: "#6c47ff",
46
- blueHover: "#5f15fe",
47
- blueLight: "rgba(108,71,255,0.15)",
48
- blueMuted: "#9280ff",
49
- red: "#e02e2e",
50
- redLight: "rgba(224,46,46,0.15)",
51
- redText: "#f98a8a",
52
- green: "#15892b",
53
- greenLight: "rgba(21,137,43,0.15)",
54
- greenText: "#49dc6e",
55
- yellow: "#fd7224",
56
- yellowLight: "rgba(253,114,36,0.15)",
57
- yellowText: "#fd9357",
58
- info: "#236dd7",
59
- infoLight: "rgba(35,109,215,0.15)",
60
- infoText: "#73acfa",
61
- },
62
- /** Border radii */
63
- radius: {
64
- xs: "4px",
65
- sm: "6px",
66
- md: "8px",
67
- lg: "12px",
68
- full: "9999px",
69
- },
70
- /** Box shadows */
71
- shadow: {
72
- sm: "0 1px 3px rgba(0,0,0,0.3), 0 1px 2px -1px rgba(0,0,0,0.2)",
73
- md: "0 4px 6px -1px rgba(0,0,0,0.4), 0 2px 4px -2px rgba(0,0,0,0.3)",
74
- lg: "0 10px 15px -3px rgba(0,0,0,0.5), 0 4px 6px -4px rgba(0,0,0,0.4)",
75
- focus: "0 0 0 1px rgba(255,255,255,0.12), 0 0 0 3px rgba(108,71,255,0.3)",
76
- },
77
- /** Typography */
78
- font: {
79
- family: "'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
80
- mono: "'JetBrains Mono', 'SF Mono', monospace",
81
- sizeBase: "14px",
82
- lineHeight: "1.43",
83
- },
84
- };
85
- // ─── 2. CSS Custom Properties ────────────────────────────────────────────────
86
- export const DESIGN_TOKENS_CSS = /* css */ `
87
- :root {
88
- /* Backgrounds — layered depth */
89
- --bg-root: ${tokens.bg.root};
90
- --bg-surface: ${tokens.bg.surface};
91
- --bg-card: ${tokens.bg.card};
92
- --bg-elevated: ${tokens.bg.elevated};
93
- --bg-hover: ${tokens.bg.hover};
94
- --bg-active: ${tokens.bg.active};
95
- --bg-input: ${tokens.bg.input};
96
-
97
- /* Borders — semi-transparent for adaptability */
98
- --border: ${tokens.border.default};
99
- --border-subtle:${tokens.border.subtle};
100
- --border-strong:${tokens.border.strong};
101
- --border-focus: ${tokens.border.focus};
102
-
103
- /* Text hierarchy */
104
- --text: ${tokens.text.primary};
105
- --text-secondary:${tokens.text.secondary};
106
- --text-tertiary:${tokens.text.tertiary};
107
- --text-placeholder:${tokens.text.placeholder};
108
- --text-white: ${tokens.text.white};
109
-
110
- /* Accents */
111
- --blue: ${tokens.color.blue};
112
- --blue-hover: ${tokens.color.blueHover};
113
- --blue-light: ${tokens.color.blueLight};
114
- --blue-muted: ${tokens.color.blueMuted};
115
- --red: ${tokens.color.red};
116
- --red-light: ${tokens.color.redLight};
117
- --red-text: ${tokens.color.redText};
118
- --green: ${tokens.color.green};
119
- --green-light: ${tokens.color.greenLight};
120
- --green-text: ${tokens.color.greenText};
121
- --yellow: ${tokens.color.yellow};
122
- --yellow-light: ${tokens.color.yellowLight};
123
- --yellow-text: ${tokens.color.yellowText};
124
- --info: ${tokens.color.info};
125
- --info-light: ${tokens.color.infoLight};
126
- --info-text: ${tokens.color.infoText};
127
-
128
- /* Radii */
129
- --radius-xs: ${tokens.radius.xs};
130
- --radius-sm: ${tokens.radius.sm};
131
- --radius: ${tokens.radius.md};
132
- --radius-lg: ${tokens.radius.lg};
133
- --radius-full: ${tokens.radius.full};
134
-
135
- /* Shadows */
136
- --shadow-sm: ${tokens.shadow.sm};
137
- --shadow-md: ${tokens.shadow.md};
138
- --shadow-lg: ${tokens.shadow.lg};
139
- --shadow-focus: ${tokens.shadow.focus};
140
- }
141
- `;
142
- // ─── 3. Global Reset + Base Typography ───────────────────────────────────────
143
- export const DESIGN_RESET_CSS = /* css */ `
144
- *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
145
- html { color-scheme: dark; }
146
- body {
147
- font-family: ${tokens.font.family};
148
- background: var(--bg-root);
149
- color: var(--text);
150
- -webkit-font-smoothing: antialiased;
151
- -moz-osx-font-smoothing: grayscale;
152
- font-size: ${tokens.font.sizeBase};
153
- line-height: ${tokens.font.lineHeight};
154
- }
155
- a { color: var(--blue-muted); text-decoration: none; }
156
- a:hover { text-decoration: underline; }
157
- .hidden { display: none; }
158
- `;
159
- //# sourceMappingURL=design-tokens.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"design-tokens.js","sourceRoot":"","sources":["../../src/pages/design-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,+EAA+E;AAE/E,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,uDAAuD;IACvD,EAAE,EAAE;QACF,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,SAAS;QACnB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,wBAAwB;KAChC;IAED,kDAAkD;IAClD,MAAM,EAAE;QACN,OAAO,EAAE,wBAAwB;QACjC,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,wBAAwB;QAChC,KAAK,EAAE,wBAAwB;KAChC;IAED,qBAAqB;IACrB,IAAI,EAAE;QACJ,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,SAAS;QACpB,QAAQ,EAAE,SAAS;QACnB,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,SAAS;KACjB;IAED,qFAAqF;IACrF,KAAK,EAAE;QACL,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,SAAS;QAEpB,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,sBAAsB;QAChC,OAAO,EAAE,SAAS;QAElB,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,sBAAsB;QAClC,SAAS,EAAE,SAAS;QAEpB,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,uBAAuB;QACpC,UAAU,EAAE,SAAS;QAErB,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,uBAAuB;QAClC,QAAQ,EAAE,SAAS;KACpB;IAED,mBAAmB;IACnB,MAAM,EAAE;QACN,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,KAAK;QACT,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,QAAQ;KACf;IAED,kBAAkB;IAClB,MAAM,EAAE;QACN,EAAE,EAAE,2DAA2D;QAC/D,EAAE,EAAE,gEAAgE;QACpE,EAAE,EAAE,kEAAkE;QACtE,KAAK,EAAE,kEAAkE;KAC1E;IAED,iBAAiB;IACjB,IAAI,EAAE;QACJ,MAAM,EAAE,4EAA4E;QACpF,IAAI,EAAE,wCAAwC;QAC9C,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,MAAM;KACnB;CACO,CAAC;AAEX,gFAAgF;AAEhF,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;;;sBAGrB,MAAM,CAAC,EAAE,CAAC,IAAI;sBACd,MAAM,CAAC,EAAE,CAAC,OAAO;sBACjB,MAAM,CAAC,EAAE,CAAC,IAAI;sBACd,MAAM,CAAC,EAAE,CAAC,QAAQ;sBAClB,MAAM,CAAC,EAAE,CAAC,KAAK;sBACf,MAAM,CAAC,EAAE,CAAC,MAAM;sBAChB,MAAM,CAAC,EAAE,CAAC,KAAK;;;sBAGf,MAAM,CAAC,MAAM,CAAC,OAAO;sBACrB,MAAM,CAAC,MAAM,CAAC,MAAM;sBACpB,MAAM,CAAC,MAAM,CAAC,MAAM;sBACpB,MAAM,CAAC,MAAM,CAAC,KAAK;;;sBAGnB,MAAM,CAAC,IAAI,CAAC,OAAO;uBAClB,MAAM,CAAC,IAAI,CAAC,SAAS;sBACtB,MAAM,CAAC,IAAI,CAAC,QAAQ;yBACjB,MAAM,CAAC,IAAI,CAAC,WAAW;sBAC1B,MAAM,CAAC,IAAI,CAAC,KAAK;;;sBAGjB,MAAM,CAAC,KAAK,CAAC,IAAI;sBACjB,MAAM,CAAC,KAAK,CAAC,SAAS;sBACtB,MAAM,CAAC,KAAK,CAAC,SAAS;sBACtB,MAAM,CAAC,KAAK,CAAC,SAAS;sBACtB,MAAM,CAAC,KAAK,CAAC,GAAG;sBAChB,MAAM,CAAC,KAAK,CAAC,QAAQ;sBACrB,MAAM,CAAC,KAAK,CAAC,OAAO;sBACpB,MAAM,CAAC,KAAK,CAAC,KAAK;sBAClB,MAAM,CAAC,KAAK,CAAC,UAAU;sBACvB,MAAM,CAAC,KAAK,CAAC,SAAS;sBACtB,MAAM,CAAC,KAAK,CAAC,MAAM;sBACnB,MAAM,CAAC,KAAK,CAAC,WAAW;sBACxB,MAAM,CAAC,KAAK,CAAC,UAAU;sBACvB,MAAM,CAAC,KAAK,CAAC,IAAI;sBACjB,MAAM,CAAC,KAAK,CAAC,SAAS;sBACtB,MAAM,CAAC,KAAK,CAAC,QAAQ;;;sBAGrB,MAAM,CAAC,MAAM,CAAC,EAAE;sBAChB,MAAM,CAAC,MAAM,CAAC,EAAE;sBAChB,MAAM,CAAC,MAAM,CAAC,EAAE;sBAChB,MAAM,CAAC,MAAM,CAAC,EAAE;sBAChB,MAAM,CAAC,MAAM,CAAC,IAAI;;;oBAGpB,MAAM,CAAC,MAAM,CAAC,EAAE;oBAChB,MAAM,CAAC,MAAM,CAAC,EAAE;oBAChB,MAAM,CAAC,MAAM,CAAC,EAAE;sBACd,MAAM,CAAC,MAAM,CAAC,KAAK;;CAExC,CAAC;AAEF,gFAAgF;AAEhF,MAAM,CAAC,MAAM,gBAAgB,GAAG,SAAS,CAAC;;;;mBAIvB,MAAM,CAAC,IAAI,CAAC,MAAM;;;;;iBAKpB,MAAM,CAAC,IAAI,CAAC,QAAQ;mBAClB,MAAM,CAAC,IAAI,CAAC,UAAU;;;;;CAKxC,CAAC"}
@@ -1,16 +0,0 @@
1
- /**
2
- * DID Connect frontend script — inline JS for the login page.
3
- *
4
- * Handles the DID Wallet auth flow:
5
- * 1. Request a token from the server
6
- * 2. Open a deep link / show connect URL for the wallet
7
- * 3. Poll for status
8
- * 4. On succeed, call /complete to get JWT cookie
9
- * 5. Reload page
10
- *
11
- * @deprecated Use `LoginPage` from `@arcblock/did-connect-core/ui` instead.
12
- * This inline JS string is kept for backward compatibility with the SSR login page.
13
- * The canonical implementation is `packages/connect-core/src/ui/login-page.ts`.
14
- */
15
- export declare const DID_CONNECT_SCRIPT = "\nvar didConnectStatusEl = document.getElementById(\"did-connect-status\");\nvar didWalletBtn = document.getElementById(\"did-wallet-btn\");\nvar didConnectPollTimer = null;\nvar didConnectToken = null;\n\nfunction setDIDConnectStatus(msg, className) {\n if (didConnectStatusEl) {\n didConnectStatusEl.textContent = msg;\n didConnectStatusEl.className = className || \"\";\n }\n}\n\nasync function startDIDConnect() {\n didWalletBtn.disabled = true;\n setDIDConnectStatus(\"Connecting...\", \"polling\");\n\n try {\n // 1. Request token\n var tokenRes = await fetch(\"/.well-known/service/api/did/login/token\");\n if (!tokenRes.ok) throw new Error(\"Failed to create session\");\n var tokenData = await tokenRes.json();\n didConnectToken = tokenData.token;\n\n if (!didConnectToken) throw new Error(\"No token received\");\n\n // 2. Open deep link for DID Wallet\n var connectUrl = tokenData.url;\n if (connectUrl) {\n // Try to open the wallet deep link\n var walletUrl = \"https://abtwallet.io/i/?action=requestAuth&url=\" + encodeURIComponent(connectUrl);\n window.open(walletUrl, \"_blank\");\n }\n\n setDIDConnectStatus(\"Waiting for wallet approval...\", \"polling\");\n\n // 3. Poll for status\n var pollCount = 0;\n var maxPolls = 150; // 5 minutes at 2s intervals\n didConnectPollTimer = setInterval(async function() {\n pollCount++;\n if (pollCount > maxPolls) {\n clearInterval(didConnectPollTimer);\n didConnectPollTimer = null;\n setDIDConnectStatus(\"Session timed out. Try again.\", \"\");\n didWalletBtn.disabled = false;\n return;\n }\n\n try {\n var statusRes = await fetch(\"/.well-known/service/api/did/login/status?_t_=\" + encodeURIComponent(didConnectToken));\n if (!statusRes.ok) return;\n var statusData = await statusRes.json();\n\n if (statusData.status === \"succeed\") {\n clearInterval(didConnectPollTimer);\n didConnectPollTimer = null;\n setDIDConnectStatus(\"Authenticated! Setting up session...\", \"polling\");\n\n // 4. Call complete to get JWT cookie\n var completeRes = await fetch(\"/.well-known/service/api/did/connect/complete\", {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify({ token: didConnectToken }),\n });\n\n if (completeRes.ok) {\n setDIDConnectStatus(\"Success! Redirecting...\", \"\");\n setTimeout(function() { location.reload(); }, 300);\n } else {\n var errData = await completeRes.json().catch(function() { return {}; });\n setDIDConnectStatus(errData.error || \"Failed to complete login\", \"\");\n didWalletBtn.disabled = false;\n }\n } else if (statusData.status === \"error\" || statusData.status === \"timeout\") {\n clearInterval(didConnectPollTimer);\n didConnectPollTimer = null;\n setDIDConnectStatus(statusData.error || \"Authentication failed\", \"\");\n didWalletBtn.disabled = false;\n }\n } catch (e) {\n // Network error during poll \u2014 keep trying\n }\n }, 2000);\n } catch (err) {\n setDIDConnectStatus(err.message || \"Failed to start DID Connect\", \"\");\n didWalletBtn.disabled = false;\n }\n}\n";
16
- //# sourceMappingURL=did-connect-script.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"did-connect-script.d.ts","sourceRoot":"","sources":["../../src/pages/did-connect-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,kBAAkB,02GAyF9B,CAAC"}
@@ -1,105 +0,0 @@
1
- /**
2
- * DID Connect frontend script — inline JS for the login page.
3
- *
4
- * Handles the DID Wallet auth flow:
5
- * 1. Request a token from the server
6
- * 2. Open a deep link / show connect URL for the wallet
7
- * 3. Poll for status
8
- * 4. On succeed, call /complete to get JWT cookie
9
- * 5. Reload page
10
- *
11
- * @deprecated Use `LoginPage` from `@arcblock/did-connect-core/ui` instead.
12
- * This inline JS string is kept for backward compatibility with the SSR login page.
13
- * The canonical implementation is `packages/connect-core/src/ui/login-page.ts`.
14
- */
15
- export const DID_CONNECT_SCRIPT = /* js */ `
16
- var didConnectStatusEl = document.getElementById("did-connect-status");
17
- var didWalletBtn = document.getElementById("did-wallet-btn");
18
- var didConnectPollTimer = null;
19
- var didConnectToken = null;
20
-
21
- function setDIDConnectStatus(msg, className) {
22
- if (didConnectStatusEl) {
23
- didConnectStatusEl.textContent = msg;
24
- didConnectStatusEl.className = className || "";
25
- }
26
- }
27
-
28
- async function startDIDConnect() {
29
- didWalletBtn.disabled = true;
30
- setDIDConnectStatus("Connecting...", "polling");
31
-
32
- try {
33
- // 1. Request token
34
- var tokenRes = await fetch("/.well-known/service/api/did/login/token");
35
- if (!tokenRes.ok) throw new Error("Failed to create session");
36
- var tokenData = await tokenRes.json();
37
- didConnectToken = tokenData.token;
38
-
39
- if (!didConnectToken) throw new Error("No token received");
40
-
41
- // 2. Open deep link for DID Wallet
42
- var connectUrl = tokenData.url;
43
- if (connectUrl) {
44
- // Try to open the wallet deep link
45
- var walletUrl = "https://abtwallet.io/i/?action=requestAuth&url=" + encodeURIComponent(connectUrl);
46
- window.open(walletUrl, "_blank");
47
- }
48
-
49
- setDIDConnectStatus("Waiting for wallet approval...", "polling");
50
-
51
- // 3. Poll for status
52
- var pollCount = 0;
53
- var maxPolls = 150; // 5 minutes at 2s intervals
54
- didConnectPollTimer = setInterval(async function() {
55
- pollCount++;
56
- if (pollCount > maxPolls) {
57
- clearInterval(didConnectPollTimer);
58
- didConnectPollTimer = null;
59
- setDIDConnectStatus("Session timed out. Try again.", "");
60
- didWalletBtn.disabled = false;
61
- return;
62
- }
63
-
64
- try {
65
- var statusRes = await fetch("/.well-known/service/api/did/login/status?_t_=" + encodeURIComponent(didConnectToken));
66
- if (!statusRes.ok) return;
67
- var statusData = await statusRes.json();
68
-
69
- if (statusData.status === "succeed") {
70
- clearInterval(didConnectPollTimer);
71
- didConnectPollTimer = null;
72
- setDIDConnectStatus("Authenticated! Setting up session...", "polling");
73
-
74
- // 4. Call complete to get JWT cookie
75
- var completeRes = await fetch("/.well-known/service/api/did/connect/complete", {
76
- method: "POST",
77
- headers: { "Content-Type": "application/json" },
78
- body: JSON.stringify({ token: didConnectToken }),
79
- });
80
-
81
- if (completeRes.ok) {
82
- setDIDConnectStatus("Success! Redirecting...", "");
83
- setTimeout(function() { location.reload(); }, 300);
84
- } else {
85
- var errData = await completeRes.json().catch(function() { return {}; });
86
- setDIDConnectStatus(errData.error || "Failed to complete login", "");
87
- didWalletBtn.disabled = false;
88
- }
89
- } else if (statusData.status === "error" || statusData.status === "timeout") {
90
- clearInterval(didConnectPollTimer);
91
- didConnectPollTimer = null;
92
- setDIDConnectStatus(statusData.error || "Authentication failed", "");
93
- didWalletBtn.disabled = false;
94
- }
95
- } catch (e) {
96
- // Network error during poll — keep trying
97
- }
98
- }, 2000);
99
- } catch (err) {
100
- setDIDConnectStatus(err.message || "Failed to start DID Connect", "");
101
- didWalletBtn.disabled = false;
102
- }
103
- }
104
- `;
105
- //# sourceMappingURL=did-connect-script.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"did-connect-script.js","sourceRoot":"","sources":["../../src/pages/did-connect-script.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyF1C,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Shared CSS styles — base component classes for login, invite, and admin pages.
3
- * Design tokens are imported from design-tokens.ts.
4
- */
5
- export declare const SHARED_STYLES: string;
6
- //# sourceMappingURL=shared-styles.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-styles.d.ts","sourceRoot":"","sources":["../../src/pages/shared-styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,eAAO,MAAM,aAAa,QAsGzB,CAAC"}