@rc-tool/unified-auth-hosted-service 0.2.5 → 0.2.7

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 (30) hide show
  1. package/README.md +98 -24
  2. package/dist/hosted-service/login-page/components.d.ts +13 -6
  3. package/dist/hosted-service/login-page/components.d.ts.map +1 -1
  4. package/dist/hosted-service/login-page/components.js +24 -16
  5. package/dist/hosted-service/login-page/components.js.map +1 -1
  6. package/dist/hosted-service/login-page/index.d.ts +4 -1
  7. package/dist/hosted-service/login-page/index.d.ts.map +1 -1
  8. package/dist/hosted-service/login-page/index.js +86 -16
  9. package/dist/hosted-service/login-page/index.js.map +1 -1
  10. package/dist/hosted-service/login-page/links.d.ts +2 -1
  11. package/dist/hosted-service/login-page/links.d.ts.map +1 -1
  12. package/dist/hosted-service/login-page/links.js +39 -30
  13. package/dist/hosted-service/login-page/links.js.map +1 -1
  14. package/dist/hosted-service/login-page/styles.d.ts +1 -1
  15. package/dist/hosted-service/login-page/styles.d.ts.map +1 -1
  16. package/dist/hosted-service/login-page/styles.js +1 -0
  17. package/dist/hosted-service/login-page/styles.js.map +1 -1
  18. package/dist/hosted-service/login-page/types.d.ts +8 -10
  19. package/dist/hosted-service/login-page/types.d.ts.map +1 -1
  20. package/dist/hosted-service/service.js +2 -0
  21. package/dist/hosted-service/service.js.map +1 -1
  22. package/dist/hosted-service/types.d.ts +46 -0
  23. package/dist/hosted-service/types.d.ts.map +1 -1
  24. package/dist/hosted-service-cli.js +15 -4
  25. package/dist/hosted-service-cli.js.map +1 -1
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/package.json +1 -1
package/README.md CHANGED
@@ -13,22 +13,33 @@ pnpm add @rc-tool/unified-auth-sdk @rc-tool/unified-auth-hosted-service
13
13
  ## Next.js Embedded Routes
14
14
 
15
15
  ```ts
16
- import { createFileAuthStore, createHostedAuthRouteHandlers } from "@rc-tool/unified-auth-hosted-service";
16
+ import {
17
+ createFileAuthStore,
18
+ createHostedAuthLoginPageComponent,
19
+ createHostedAuthRouteHandlers,
20
+ } from "@rc-tool/unified-auth-hosted-service";
21
+
22
+ const LoginPage = createHostedAuthLoginPageComponent({
23
+ backgroundImageUrl: process.env.AUTH_LOGIN_BACKGROUND_URL,
24
+ brandName: "AI 项目管理平台",
25
+ heroTitle: "用企业账号安全登录",
26
+ panelTitle: "飞书登录",
27
+ primaryProvider: "feishu",
28
+ providers: ["feishu", "google", "github"],
29
+ });
17
30
 
18
31
  export const hostedAuth = createHostedAuthRouteHandlers({
19
32
  allowDevLogin: process.env.AUTH_ALLOW_DEV_LOGIN !== "false",
20
33
  applications: [
21
34
  {
22
35
  allowedRedirectURIs: [process.env.AUTH_ALLOWED_REDIRECT_URI ?? "http://localhost:3004/"],
23
- appearance: {
24
- backgroundImageUrl: process.env.AUTH_LOGIN_BACKGROUND_URL,
25
- },
26
36
  clientId: process.env.AUTH_CLIENT_ID ?? "ai-pm",
27
37
  name: process.env.AUTH_CLIENT_NAME ?? "AI PM",
28
38
  redirectURI: process.env.AUTH_ALLOWED_REDIRECT_URI ?? "http://localhost:3004/",
29
39
  },
30
40
  ],
31
41
  authBaseURL: process.env.AUTH_SERVICE_URL ?? "http://localhost:3004",
42
+ loginPageComponent: LoginPage,
32
43
  sessionSecret: process.env.AUTH_SESSION_SECRET!,
33
44
  store: createFileAuthStore({
34
45
  filePath: process.env.AUTH_STORE_FILE ?? ".auth/unified-auth-store.json",
@@ -63,21 +74,36 @@ The default store is file-based. Install `@rc-tool/unified-auth-prisma-store` on
63
74
  pnpm dlx @rc-tool/unified-auth-hosted-service init --app ai-pm --redirect http://localhost:3004/
64
75
  ```
65
76
 
66
- ### 登录页背景图
67
-
68
- Hosted Auth 登录页默认带兜底背景图,也支持业务项目覆盖。最简单的方式是在业务项目环境变量里配置:
77
+ ### 登录页组件
69
78
 
70
- ```env
71
- AUTH_LOGIN_BACKGROUND_URL=https://cdn.example.com/auth/login-bg.jpg
72
- ```
79
+ Hosted Auth 登录页是 SDK 内部组件化渲染的黑盒页面。业务方不需要自己拼 OAuth 链接、state、callback 或 session,只需要把 SDK 提供的登录页组件传给 `loginPageComponent`。如果不传组件,SDK 会使用内置默认组件和预设样式。
73
80
 
74
- 然后在 route handler 中传给 `appearance.backgroundImageUrl`:
81
+ 推荐写法:
75
82
 
76
83
  ```ts
84
+ import {
85
+ createFileAuthStore,
86
+ createHostedAuthLoginPageComponent,
87
+ createHostedAuthRouteHandlers,
88
+ } from "@rc-tool/unified-auth-hosted-service";
89
+
90
+ const LoginPage = createHostedAuthLoginPageComponent({
91
+ backgroundImageUrl: "https://cdn.example.com/auth/login-bg.jpg",
92
+ brandLabel: "企业协作入口",
93
+ brandName: "AI 项目管理平台",
94
+ devLoginLabel: "使用开发身份进入",
95
+ footerText: "Powered by Unified Auth",
96
+ heroDescription: "统一身份校验后进入项目驾驶舱。",
97
+ heroTitle: "欢迎回到项目驾驶舱",
98
+ logoUrl: "https://cdn.example.com/auth/logo.png",
99
+ panelDescription: "使用企业授权账号完成登录。",
100
+ panelTitle: "用飞书账号登录",
101
+ primaryProvider: "feishu",
102
+ providers: ["feishu", "google", "github"],
103
+ statusText: "企业 SSO",
104
+ });
105
+
77
106
  export const hostedAuth = createHostedAuthRouteHandlers({
78
- appearance: {
79
- backgroundImageUrl: process.env.AUTH_LOGIN_BACKGROUND_URL,
80
- },
81
107
  applications: [
82
108
  {
83
109
  clientId: process.env.AUTH_CLIENT_ID ?? "ai-pm",
@@ -86,6 +112,7 @@ export const hostedAuth = createHostedAuthRouteHandlers({
86
112
  },
87
113
  ],
88
114
  authBaseURL: process.env.AUTH_SERVICE_URL ?? "http://localhost:3004",
115
+ loginPageComponent: LoginPage,
89
116
  sessionSecret: process.env.AUTH_SESSION_SECRET!,
90
117
  store: createFileAuthStore({
91
118
  filePath: process.env.AUTH_STORE_FILE ?? ".auth/unified-auth-store.json",
@@ -93,23 +120,45 @@ export const hostedAuth = createHostedAuthRouteHandlers({
93
120
  });
94
121
  ```
95
122
 
96
- 如果一个 Auth Service 服务多个业务应用,可以给每个 `applications[]` 单独配置:
123
+ 组件配置项:
124
+
125
+ | 字段 | 作用 |
126
+ | --- | --- |
127
+ | `backgroundImageUrl` | 登录页背景图地址。可以是 CDN、业务项目 public 图片的绝对 URL,或任何浏览器可访问的图片。 |
128
+ | `logoUrl` | 左侧品牌图标。未配置时使用 SDK 默认闪电标识。 |
129
+ | `brandName` | 左侧品牌名称,默认取应用 `name`。 |
130
+ | `brandLabel` / `heroKicker` | 左侧标题上方的小标签。 |
131
+ | `heroTitle` | 左侧主标题。 |
132
+ | `heroDescription` | 左侧说明文案。 |
133
+ | `panelTitle` | 右侧登录面板标题。 |
134
+ | `panelDescription` | 右侧登录面板说明。 |
135
+ | `primaryProvider` | 主按钮登录方式,可选 `feishu`、`google`、`github`。 |
136
+ | `providers` | 登录方式展示顺序和范围,例如只展示 `["feishu"]`。未配置时展示全部已启用 provider。 |
137
+ | `statusText` | 右上角状态标签,传空字符串可以隐藏。 |
138
+ | `devLoginLabel` | 开发登录入口文案。 |
139
+ | `footerText` | 底部说明文案,传空字符串可以隐藏。 |
140
+
141
+ 如果一个 Auth Service 服务多个业务应用,可以给每个 `applications[]` 单独指定不同组件:
97
142
 
98
143
  ```ts
99
144
  applications: [
100
145
  {
101
- appearance: {
102
- backgroundImageUrl: "https://cdn.example.com/ai-pm-login.jpg",
103
- },
104
146
  clientId: "ai-pm",
147
+ loginPageComponent: createHostedAuthLoginPageComponent({
148
+ backgroundImageUrl: "https://cdn.example.com/ai-pm-login.jpg",
149
+ heroTitle: "欢迎回到 AI PM",
150
+ panelTitle: "用飞书账号登录",
151
+ }),
105
152
  name: "AI PM",
106
153
  redirectURI: "http://localhost:3004/",
107
154
  },
108
155
  {
109
- appearance: {
110
- backgroundImageUrl: "https://cdn.example.com/admin-login.jpg",
111
- },
112
156
  clientId: "admin-console",
157
+ loginPageComponent: createHostedAuthLoginPageComponent({
158
+ backgroundImageUrl: "https://cdn.example.com/admin-login.jpg",
159
+ heroTitle: "管理员控制台",
160
+ panelTitle: "企业 SSO 登录",
161
+ }),
113
162
  name: "Admin Console",
114
163
  redirectURI: "https://admin.example.com/",
115
164
  },
@@ -118,9 +167,34 @@ applications: [
118
167
 
119
168
  配置优先级是:
120
169
 
121
- 1. `applications[].appearance.backgroundImageUrl`
122
- 2. `createHostedAuthRouteHandlers({ appearance.backgroundImageUrl })`
123
- 3. SDK 默认背景图
170
+ 1. `applications[].loginPageComponent`
171
+ 2. `createHostedAuthRouteHandlers({ loginPageComponent })`
172
+ 3. SDK 默认登录页组件
173
+
174
+ 旧的 `loginPage` 和 `appearance.backgroundImageUrl` 仍然兼容,但新项目推荐用 `loginPageComponent`。
175
+
176
+ 环境变量仍然可以作为配置来源,但不是必须。比如:
177
+
178
+ ```ts
179
+ const LoginPage = createHostedAuthLoginPageComponent({
180
+ backgroundImageUrl: process.env.AUTH_LOGIN_BACKGROUND_URL,
181
+ heroTitle: process.env.AUTH_LOGIN_HERO_TITLE,
182
+ });
183
+ ```
184
+
185
+ 也可以完全自定义组件,但组件只拿 SDK 生成好的 `model`,不需要接触 secret、state 签名、callback 或 session:
186
+
187
+ ```ts
188
+ const LoginPage = ({ model }) => {
189
+ const feishu = model.providers.find((provider) => provider.id === "feishu");
190
+
191
+ return `<!doctype html>
192
+ <main>
193
+ <h1>${model.appName}</h1>
194
+ <a href="${feishu?.href ?? "#"}">使用飞书登录</a>
195
+ </main>`;
196
+ };
197
+ ```
124
198
 
125
199
  ### 业务应用配置
126
200
 
@@ -1,8 +1,15 @@
1
- import type { LoginPageLinks, LoginProviderView } from "./types.js";
2
- export declare function renderBrand(appName: string): string;
3
- export declare function renderHero(appName: string, primaryProvider?: LoginProviderView): string;
1
+ import type { LoginProviderId, LoginProviderView } from "./types.js";
2
+ export type LoginPageHeroContent = {
3
+ brandName: string;
4
+ heroDescription: string;
5
+ heroKicker: string;
6
+ heroTitle: string;
7
+ logoUrl?: string;
8
+ };
9
+ export declare function renderBrand(appName: string, logoUrl?: string): string;
10
+ export declare function renderHero(content: LoginPageHeroContent): string;
4
11
  export declare function renderError(error?: string): string;
5
- export declare function renderProviderList(providers: LoginProviderView[]): string;
6
- export declare function renderDevLogin(allowDevLogin: boolean, links: LoginPageLinks): string;
7
- export declare function renderFooter(clientId: string): string;
12
+ export declare function renderProviderList(providers: LoginProviderView[], primaryProviderId?: LoginProviderId): string;
13
+ export declare function renderDevLogin(allowDevLogin: boolean, href: string, label?: string): string;
14
+ export declare function renderFooter(clientId: string, footerText?: string): string;
8
15
  //# sourceMappingURL=components.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/components.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,UAU1C;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,iBAAiB,UAU9E;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,UAEzC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,EAAE,UAmBhE;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,UAM3E;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,UAK5C"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/components.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,UAc5D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,oBAAoB,UAQvD;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,UAEzC;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,iBAAiB,CAAC,EAAE,eAAe,UAqBrG;AAED,wBAAgB,cAAc,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,SAAa,UAMtF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,UAWjE"}
@@ -1,31 +1,35 @@
1
1
  import { escapeHtml } from "./escape.js";
2
- export function renderBrand(appName) {
2
+ export function renderBrand(appName, logoUrl) {
3
+ const mark = logoUrl
4
+ ? `<img src="${escapeHtml(logoUrl)}" alt="" />`
5
+ : `<svg viewBox="0 0 32 32">
6
+ <path d="M13.7 4.8h9.2l-5.1 9.1h6.6L10.2 27.5l4.1-10.6H7.6L13.7 4.8z" fill="currentColor"/>
7
+ </svg>`;
3
8
  return `
4
9
  <div class="brand-row" aria-label="${escapeHtml(appName)}">
5
10
  <div class="mark" aria-hidden="true">
6
- <svg viewBox="0 0 32 32">
7
- <path d="M13.7 4.8h9.2l-5.1 9.1h6.6L10.2 27.5l4.1-10.6H7.6L13.7 4.8z" fill="currentColor"/>
8
- </svg>
11
+ ${mark}
9
12
  </div>
10
13
  <div class="brand-title">${escapeHtml(appName)}</div>
11
14
  </div>`;
12
15
  }
13
- export function renderHero(appName, primaryProvider) {
14
- const provider = primaryProvider?.label ?? "统一账号";
16
+ export function renderHero(content) {
15
17
  return `
16
18
  <section class="hero-copy" aria-label="登录介绍">
17
- ${renderBrand(appName)}
18
- <div class="hero-kicker">统一认证中心</div>
19
- <h1>用${escapeHtml(provider)}安全登录</h1>
20
- <p>登录后将回到 ${escapeHtml(appName)},继续处理你的工作事项。</p>
19
+ ${renderBrand(content.brandName, content.logoUrl)}
20
+ <div class="hero-kicker">${escapeHtml(content.heroKicker)}</div>
21
+ <h1>${escapeHtml(content.heroTitle)}</h1>
22
+ <p>${escapeHtml(content.heroDescription)}</p>
21
23
  </section>`;
22
24
  }
23
25
  export function renderError(error) {
24
26
  return error ? `<div class="error">${escapeHtml(error)}</div>` : "";
25
27
  }
26
- export function renderProviderList(providers) {
28
+ export function renderProviderList(providers, primaryProviderId) {
27
29
  const enabledProviders = providers.filter((provider) => provider.enabled);
28
- const primaryProvider = enabledProviders.find((provider) => provider.id === "feishu") ?? enabledProviders[0];
30
+ const primaryProvider = primaryProviderId
31
+ ? enabledProviders.find((provider) => provider.id === primaryProviderId) ?? enabledProviders[0]
32
+ : enabledProviders[0];
29
33
  if (!primaryProvider) {
30
34
  return `<div class="provider-empty">当前没有可用登录方式,请联系管理员完成 OAuth 配置。</div>`;
31
35
  }
@@ -40,16 +44,20 @@ export function renderProviderList(providers) {
40
44
  </div>` : ""}
41
45
  </section>`;
42
46
  }
43
- export function renderDevLogin(allowDevLogin, links) {
47
+ export function renderDevLogin(allowDevLogin, href, label = "使用开发账号进入") {
44
48
  if (!allowDevLogin) {
45
49
  return "";
46
50
  }
47
- return `<a class="dev-link" href="${escapeHtml(links.devLogin)}">使用开发账号进入</a>`;
51
+ return `<a class="dev-link" href="${escapeHtml(href)}">${escapeHtml(label)}</a>`;
48
52
  }
49
- export function renderFooter(clientId) {
53
+ export function renderFooter(clientId, footerText) {
54
+ if (footerText === "") {
55
+ return "";
56
+ }
57
+ const label = footerText ?? `client_id: ${clientId}`;
50
58
  return `
51
59
  <div class="footer-row">
52
- <span>client_id: ${escapeHtml(clientId)}</span>
60
+ <span>${escapeHtml(label)}</span>
53
61
  </div>`;
54
62
  }
55
63
  function renderProviderTile(provider) {
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO;yCACgC,UAAU,CAAC,OAAO,CAAC;;;;;;iCAM3B,UAAU,CAAC,OAAO,CAAC;WACzC,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,eAAmC;IAC7E,MAAM,QAAQ,GAAG,eAAe,EAAE,KAAK,IAAI,MAAM,CAAC;IAElD,OAAO;;QAED,WAAW,CAAC,OAAO,CAAC;;aAEf,UAAU,CAAC,QAAQ,CAAC;kBACf,UAAU,CAAC,OAAO,CAAC;eACtB,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,OAAO,KAAK,CAAC,CAAC,CAAC,sBAAsB,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAA8B;IAC/D,MAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,eAAe,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAE7G,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,iEAAiE,CAAC;IAC3E,CAAC;IAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,CAAC,CAAC;IAErG,OAAO;;QAED,qBAAqB,CAAC,eAAe,CAAC;QACtC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;;;UAG1B,kBAAkB,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aACvD,CAAC,CAAC,CAAC,EAAE;eACH,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,aAAsB,EAAE,KAAqB;IAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,6BAA6B,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO;;yBAEgB,UAAU,CAAC,QAAQ,CAAC;WAClC,CAAC;AACZ,CAAC;AAED,SAAS,kBAAkB,CAAC,QAA2B;IACrD,OAAO;yCACgC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;qCAC7B,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI;sCACvC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;WACrD,CAAC;AACZ,CAAC;AAED,SAAS,qBAAqB,CAAC,QAA2B;IACxD,OAAO;0CACiC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;6CACtB,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,IAAI;8CACvC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;WAC7D,CAAC;AACZ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAA2B;IAC1D,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/components.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- import type { RenderLoginPageParams } from "./types.js";
1
+ import type { LoginPageComponent, RenderLoginPageParams } from "./types.js";
2
+ import type { HostedAuthLoginPageConfig } from "../types.js";
2
3
  export declare function renderLoginPage(params: RenderLoginPageParams): string;
4
+ export declare function createHostedAuthLoginPageComponent(defaultConfig?: HostedAuthLoginPageConfig): LoginPageComponent;
5
+ export declare const defaultHostedAuthLoginPageComponent: LoginPageComponent;
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,UAyB5D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,kBAAkB,EAIlB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAW7D,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,UAQ5D;AAED,wBAAgB,kCAAkC,CAChD,aAAa,GAAE,yBAA8B,GAC5C,kBAAkB,CASpB;AAED,eAAO,MAAM,mCAAmC,EAAE,kBAyBjD,CAAC"}
@@ -3,28 +3,98 @@ import { renderDocument } from "./document.js";
3
3
  import { escapeHtml } from "./escape.js";
4
4
  import { createLoginPageLinks } from "./links.js";
5
5
  export function renderLoginPage(params) {
6
- const title = params.app.name ?? params.clientId;
7
- const headline = `${title} 统一登录`;
8
- const links = createLoginPageLinks(params);
9
- const primaryProvider = links.providers.find((provider) => provider.enabled && provider.id === "feishu")
10
- ?? links.providers.find((provider) => provider.enabled);
6
+ const component = params.app.loginPageComponent ?? params.loginPageComponent ?? defaultHostedAuthLoginPageComponent;
7
+ const loginPage = mergeLoginPageConfig(component.defaultConfig ?? {}, resolveLoginPageConfig(params));
8
+ return component({
9
+ config: loginPage,
10
+ model: createLoginPageModel(params, loginPage),
11
+ });
12
+ }
13
+ export function createHostedAuthLoginPageComponent(defaultConfig = {}) {
14
+ const component = (props) => defaultHostedAuthLoginPageComponent({
15
+ config: mergeLoginPageConfig(defaultConfig, props.config),
16
+ model: props.model,
17
+ });
18
+ component.defaultConfig = defaultConfig;
19
+ return component;
20
+ }
21
+ export const defaultHostedAuthLoginPageComponent = (props) => {
22
+ const primaryProvider = resolvePrimaryProvider(props.model.providers, props.config.primaryProvider);
23
+ const content = resolveLoginPageContent(props.config, props.model.appName, primaryProvider);
24
+ const status = content.statusText
25
+ ? `<div class="auth-status">${escapeHtml(content.statusText)}</div>`
26
+ : "";
11
27
  return renderDocument({
12
- backgroundImageUrl: params.app.appearance?.backgroundImageUrl ?? params.appearance?.backgroundImageUrl,
28
+ backgroundImageUrl: props.config.backgroundImageUrl,
13
29
  body: `
14
- <div class="auth-status">安全认证</div>
30
+ ${status}
15
31
  <main class="auth-shell">
16
- ${renderHero(title, primaryProvider)}
32
+ ${renderHero(content)}
17
33
  <section class="login-panel" aria-labelledby="login-title">
18
- <div class="login-kicker">${escapeHtml(headline)}</div>
19
- <h2 id="login-title">${escapeHtml(primaryProvider ? `${primaryProvider.label}登录` : "选择登录方式")}</h2>
20
- <p>使用企业授权账号完成身份校验,首次使用会自动完成账号创建和身份绑定。</p>
21
- ${renderError(params.error)}
22
- ${renderProviderList(links.providers)}
23
- ${renderDevLogin(params.allowDevLogin, links)}
24
- ${renderFooter(params.clientId)}
34
+ <div class="login-kicker">${escapeHtml(content.panelKicker)}</div>
35
+ <h2 id="login-title">${escapeHtml(content.panelTitle)}</h2>
36
+ <p>${escapeHtml(content.panelDescription)}</p>
37
+ ${renderError(props.model.error)}
38
+ ${renderProviderList(props.model.providers, props.config.primaryProvider)}
39
+ ${renderDevLogin(props.model.allowDevLogin, props.model.devLoginHref, content.devLoginLabel)}
40
+ ${renderFooter(props.model.clientId, content.footerText)}
25
41
  </section>
26
42
  </main>`,
27
- title: headline,
43
+ title: content.panelKicker,
28
44
  });
45
+ };
46
+ function createLoginPageModel(params, loginPage) {
47
+ const links = createLoginPageLinks(params, loginPage);
48
+ return {
49
+ allowDevLogin: params.allowDevLogin,
50
+ appName: params.app.name ?? params.clientId,
51
+ clientId: params.clientId,
52
+ devLoginHref: links.devLogin,
53
+ error: params.error,
54
+ providers: links.providers,
55
+ redirectURI: params.redirectURI,
56
+ };
57
+ }
58
+ function resolveLoginPageConfig(params) {
59
+ const serviceLoginPage = params.loginPage ?? {};
60
+ const appLoginPage = params.app.loginPage ?? {};
61
+ return {
62
+ ...serviceLoginPage,
63
+ ...appLoginPage,
64
+ backgroundImageUrl: appLoginPage.backgroundImageUrl
65
+ ?? params.app.appearance?.backgroundImageUrl
66
+ ?? serviceLoginPage.backgroundImageUrl
67
+ ?? params.appearance?.backgroundImageUrl,
68
+ };
69
+ }
70
+ function mergeLoginPageConfig(defaultConfig, overrideConfig) {
71
+ return {
72
+ ...defaultConfig,
73
+ ...overrideConfig,
74
+ backgroundImageUrl: overrideConfig.backgroundImageUrl ?? defaultConfig.backgroundImageUrl,
75
+ };
76
+ }
77
+ function resolvePrimaryProvider(providers, primaryProviderId) {
78
+ const enabledProviders = providers.filter((provider) => provider.enabled);
79
+ return primaryProviderId
80
+ ? enabledProviders.find((provider) => provider.id === primaryProviderId) ?? enabledProviders[0]
81
+ : enabledProviders[0];
82
+ }
83
+ function resolveLoginPageContent(loginPage, appName, primaryProvider) {
84
+ const brandName = loginPage.brandName ?? appName;
85
+ const providerName = primaryProvider?.label ?? "统一账号";
86
+ return {
87
+ brandName,
88
+ devLoginLabel: loginPage.devLoginLabel,
89
+ footerText: loginPage.footerText,
90
+ heroDescription: loginPage.heroDescription ?? `登录后将回到 ${appName},继续处理你的工作事项。`,
91
+ heroKicker: loginPage.heroKicker ?? loginPage.brandLabel ?? "统一认证中心",
92
+ heroTitle: loginPage.heroTitle ?? `用${providerName}安全登录`,
93
+ logoUrl: loginPage.logoUrl,
94
+ panelDescription: loginPage.panelDescription ?? "使用企业授权账号完成身份校验,首次使用会自动完成账号创建和身份绑定。",
95
+ panelKicker: loginPage.panelKicker ?? `${appName} 统一登录`,
96
+ panelTitle: loginPage.panelTitle ?? (primaryProvider ? `${primaryProvider.label}登录` : "选择登录方式"),
97
+ statusText: loginPage.statusText ?? "安全认证",
98
+ };
29
99
  }
30
100
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,EACV,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC;IACjD,MAAM,QAAQ,GAAG,GAAG,KAAK,OAAO,CAAC;IACjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAE,KAAK,QAAQ,CAAC;WACnG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE1D,OAAO,cAAc,CAAC;QACpB,kBAAkB,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,IAAI,MAAM,CAAC,UAAU,EAAE,kBAAkB;QACtG,IAAI,EAAE;;;MAGJ,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC;;kCAEN,UAAU,CAAC,QAAQ,CAAC;6BACzB,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;;QAE1F,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC;QACzB,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;QACnC,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC;QAC3C,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC;;UAE3B;QACN,KAAK,EAAE,QAAQ;KAChB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  import type { LoginPageLinks, RenderLoginPageParams } from "./types.js";
2
- export declare function createLoginPageLinks(params: RenderLoginPageParams): LoginPageLinks;
2
+ import type { HostedAuthLoginPageConfig } from "../types.js";
3
+ export declare function createLoginPageLinks(params: RenderLoginPageParams, loginPage?: HostedAuthLoginPageConfig): LoginPageLinks;
3
4
  //# sourceMappingURL=links.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/links.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAqB,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAoC3F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,cAAc,CA8BlF"}
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/links.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAsC,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAC5G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAuE7D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,qBAAqB,EAC7B,SAAS,CAAC,EAAE,yBAAyB,GACpC,cAAc,CAShB"}
@@ -1,5 +1,23 @@
1
1
  import { createProviderStartUrl } from "../applications.js";
2
2
  import { feishuIcon, githubIcon, googleIcon } from "./icons.js";
3
+ const defaultProviderOrder = ["feishu", "google", "github"];
4
+ const providerDefinitions = {
5
+ feishu: {
6
+ icon: feishuIcon,
7
+ iconClassName: "provider-icon-feishu",
8
+ label: "飞书",
9
+ },
10
+ github: {
11
+ icon: githubIcon,
12
+ iconClassName: "provider-icon-github",
13
+ label: "GitHub",
14
+ },
15
+ google: {
16
+ icon: googleIcon,
17
+ iconClassName: "provider-icon-google",
18
+ label: "Google",
19
+ },
20
+ };
3
21
  function createDevLoginUrl(params) {
4
22
  const devUrl = new URL("/api/auth/dev-login", params.authBaseURL);
5
23
  devUrl.searchParams.set("client_id", params.clientId);
@@ -7,44 +25,35 @@ function createDevLoginUrl(params) {
7
25
  return devUrl.toString();
8
26
  }
9
27
  function createProvider(params) {
28
+ const provider = providerDefinitions[params.id];
10
29
  return {
11
30
  enabled: params.enabled,
12
31
  href: createProviderStartUrl(params.authBaseURL, params.id, params.clientId, params.redirectURI).toString(),
13
- icon: params.icon,
14
- iconClassName: params.iconClassName,
32
+ icon: provider.icon,
33
+ iconClassName: provider.iconClassName,
15
34
  id: params.id,
16
- label: params.label,
35
+ label: provider.label,
17
36
  };
18
37
  }
19
- export function createLoginPageLinks(params) {
38
+ function getProviderEnabled(params, provider) {
39
+ if (provider === "feishu")
40
+ return params.feishuEnabled;
41
+ if (provider === "github")
42
+ return params.githubEnabled;
43
+ return params.googleEnabled;
44
+ }
45
+ function getProviderOrder(providers) {
46
+ const ordered = providers?.length ? providers : defaultProviderOrder;
47
+ return ordered.filter((provider, index) => ordered.indexOf(provider) === index);
48
+ }
49
+ export function createLoginPageLinks(params, loginPage) {
20
50
  return {
21
51
  devLogin: createDevLoginUrl(params),
22
- providers: [
23
- createProvider({
24
- ...params,
25
- enabled: params.feishuEnabled,
26
- icon: feishuIcon,
27
- iconClassName: "provider-icon-feishu",
28
- id: "feishu",
29
- label: "飞书",
30
- }),
31
- createProvider({
32
- ...params,
33
- enabled: params.googleEnabled,
34
- icon: googleIcon,
35
- iconClassName: "provider-icon-google",
36
- id: "google",
37
- label: "Google",
38
- }),
39
- createProvider({
40
- ...params,
41
- enabled: params.githubEnabled,
42
- icon: githubIcon,
43
- iconClassName: "provider-icon-github",
44
- id: "github",
45
- label: "GitHub",
46
- }),
47
- ],
52
+ providers: getProviderOrder(loginPage?.providers).map((provider) => createProvider({
53
+ ...params,
54
+ enabled: getProviderEnabled(params, provider),
55
+ id: provider,
56
+ })),
48
57
  };
49
58
  }
50
59
  //# sourceMappingURL=links.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"links.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGhE,SAAS,iBAAiB,CAAC,MAA6B;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAElE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc,CAAC,MASvB;IACC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,sBAAsB,CAC1B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,CACnB,CAAC,QAAQ,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAA6B;IAChE,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE;YACT,cAAc,CAAC;gBACb,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,aAAa;gBAC7B,IAAI,EAAE,UAAU;gBAChB,aAAa,EAAE,sBAAsB;gBACrC,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,IAAI;aACZ,CAAC;YACF,cAAc,CAAC;gBACb,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,aAAa;gBAC7B,IAAI,EAAE,UAAU;gBAChB,aAAa,EAAE,sBAAsB;gBACrC,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,QAAQ;aAChB,CAAC;YACF,cAAc,CAAC;gBACb,GAAG,MAAM;gBACT,OAAO,EAAE,MAAM,CAAC,aAAa;gBAC7B,IAAI,EAAE,UAAU;gBAChB,aAAa,EAAE,sBAAsB;gBACrC,EAAE,EAAE,QAAQ;gBACZ,KAAK,EAAE,QAAQ;aAChB,CAAC;SACH;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIhE,MAAM,oBAAoB,GAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE/E,MAAM,mBAAmB,GAIpB;IACH,MAAM,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,IAAI;KACZ;IACD,MAAM,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,QAAQ;KAChB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,sBAAsB;QACrC,KAAK,EAAE,QAAQ;KAChB;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,MAA6B;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAElE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtD,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAE5D,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,cAAc,CAAC,MAMvB;IACC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAEhD,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,sBAAsB,CAC1B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,EAAE,EACT,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,WAAW,CACnB,CAAC,QAAQ,EAAE;QACZ,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAA6B,EAAE,QAAyB;IAClF,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC;IACvD,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC;IACvD,OAAO,MAAM,CAAC,aAAa,CAAC;AAC9B,CAAC;AAED,SAAS,gBAAgB,CAAC,SAA6B;IACrD,MAAM,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAErE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,MAA6B,EAC7B,SAAqC;IAErC,OAAO;QACL,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC;QACnC,SAAS,EAAE,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,cAAc,CAAC;YACjF,GAAG,MAAM;YACT,OAAO,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC;YAC7C,EAAE,EAAE,QAAQ;SACb,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const loginPageStyles = "\n:root { color-scheme: dark; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; }\n* { box-sizing: border-box; }\nbody { margin: 0; min-height: 100vh; overflow-x: hidden; background: #08131f; color: #f8fafc; }\nbody::before, body::after { content: \"\"; position: fixed; inset: 0; pointer-events: none; }\nbody::before {\n background: var(--auth-background-image, url(\"https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1800&q=82\")) center / cover no-repeat;\n transform: scale(1.02);\n}\nbody::after {\n background:\n linear-gradient(90deg, rgb(7 18 32 / 92%) 0%, rgb(9 31 45 / 78%) 48%, rgb(14 111 100 / 72%) 100%),\n linear-gradient(180deg, rgb(5 12 22 / 16%) 0%, rgb(5 12 22 / 56%) 100%);\n}\na { min-height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 6px; text-decoration: none; font-weight: 700; }\n.auth-status {\n position: fixed; z-index: 2; top: 24px; right: 24px; min-height: 36px; display: inline-flex; align-items: center;\n padding: 0 14px; border: 1px solid rgb(148 163 184 / 24%); border-radius: 8px; background: rgb(15 23 42 / 74%);\n box-shadow: 0 14px 32px rgb(0 0 0 / 22%); color: #e2e8f0; font-size: 13px;\n}\n.auth-shell {\n position: relative; z-index: 1; min-height: 100vh; width: min(1280px, calc(100vw - 48px)); margin: 0 auto;\n display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); align-items: center; gap: 72px; padding: 72px 0;\n}\n.hero-copy { max-width: 760px; }\n.brand-row { display: flex; align-items: center; gap: 12px; margin-bottom: 30px; }\n.mark {\n width: 56px; height: 56px; display: grid; place-items: center; border-radius: 8px;\n background: linear-gradient(135deg, #4f8cff 0%, #22d4b8 100%); color: #fff; box-shadow: 0 16px 32px rgb(34 211 238 / 18%);\n}\n.mark svg { width: 30px; height: 30px; display: block; }\n.brand-title {\n display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 6px;\n background: rgb(15 23 42 / 48%); color: #bfdbfe; font-size: 14px; font-weight: 700;\n}\n.hero-kicker { margin-bottom: 16px; color: #67e8f9; font-size: 14px; font-weight: 800; }\nh1 { max-width: 720px; margin: 0 0 18px; color: #fff; font-size: 40px; line-height: 1.18; font-weight: 800; }\n.hero-copy p { max-width: 680px; margin: 0; color: #e2e8f0; font-size: 16px; line-height: 1.8; font-weight: 600; }\n.login-panel {\n width: 100%; border: 1px solid rgb(148 163 184 / 18%); border-radius: 8px; background: rgb(15 23 42 / 92%);\n box-shadow: 0 26px 70px rgb(0 0 0 / 38%); padding: 34px;\n}\n.login-kicker { margin-bottom: 8px; color: #93c5fd; font-size: 13px; font-weight: 800; }\nh2 { margin: 0 0 14px; color: #f8fafc; font-size: 26px; line-height: 1.25; font-weight: 800; }\n.login-panel p { margin: 0 0 24px; color: #aebccc; font-size: 14px; line-height: 1.7; font-weight: 600; }\n.provider-list { display: grid; gap: 14px; }\n.primary-provider {\n min-height: 52px; gap: 10px; padding: 0 18px; background: #4f7fe5; color: #fff; box-shadow: 0 10px 22px rgb(79 127 229 / 28%);\n transition: transform .16s ease, box-shadow .16s ease, background .16s ease;\n}\n.primary-provider:hover { background: #5d8cf1; box-shadow: 0 16px 30px rgb(79 127 229 / 36%); transform: translateY(-1px); }\n.primary-provider-icon { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: transparent; border: 0; }\n.primary-provider-icon svg { width: 21px; height: 21px; display: block; }\n.primary-provider .provider-name { margin: 0; font-size: inherit; }\n.provider-divider { display: flex; align-items: center; gap: 12px; color: #7d8da3; font-size: 12px; font-weight: 700; }\n.provider-divider::before, .provider-divider::after { content: \"\"; height: 1px; flex: 1; background: rgb(148 163 184 / 16%); }\n.secondary-provider-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }\n.provider-option {\n min-height: 72px; flex-direction: column; gap: 8px; padding: 12px 10px; border: 1px solid rgb(148 163 184 / 18%);\n color: #e5edf8; background: rgb(30 41 59 / 62%); text-align: center; transition: transform .16s ease, border-color .16s ease, background .16s ease;\n}\n.provider-option:hover { border-color: rgb(147 197 253 / 52%); background: rgb(30 64 94 / 76%); transform: translateY(-1px); }\n.provider-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 6px; flex: 0 0 auto; }\n.provider-icon svg { width: 22px; height: 22px; display: block; }\n.provider-icon-feishu { background: transparent; }\n.provider-icon-google { background: #fff; border: 1px solid rgb(226 232 240 / 86%); }\n.provider-icon-github { background: #0b1120; color: #fff; }\n.provider-name { max-width: 100%; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n.provider-empty { border: 1px solid rgb(251 191 36 / 24%); color: #fde68a; background: rgb(120 53 15 / 28%); border-radius: 6px; padding: 12px 14px; line-height: 1.6; font-size: 14px; }\n.dev-link { min-height: 42px; margin-top: 12px; border: 1px solid rgb(148 163 184 / 16%); background: rgb(15 23 42 / 48%); color: #cbd5e1; font-size: 13px; }\n.dev-link:hover { border-color: rgb(148 163 184 / 34%); background: rgb(30 41 59 / 72%); }\n.error { border: 1px solid rgb(248 113 113 / 36%); color: #fecaca; background: rgb(127 29 29 / 34%); border-radius: 6px; padding: 10px 12px; margin-bottom: 16px; }\n.footer-row { margin-top: 18px; color: #64748b; font-size: 12px; }\n@media (max-width: 780px) {\n .auth-status { top: 16px; right: 16px; }\n .auth-shell { width: min(100% - 32px, 520px); min-height: auto; grid-template-columns: 1fr; gap: 30px; padding: 92px 0 34px; }\n .hero-copy { max-width: none; }\n .brand-row { margin-bottom: 22px; }\n .mark { width: 48px; height: 48px; }\n .mark svg { width: 26px; height: 26px; }\n h1 { font-size: 30px; }\n .hero-copy p { font-size: 15px; }\n .login-panel { padding: 26px; }\n h2 { font-size: 23px; }\n}\n@media (max-width: 420px) {\n .auth-shell { width: min(100% - 24px, 420px); padding-top: 82px; }\n .auth-status { min-height: 32px; padding: 0 11px; font-size: 12px; }\n .brand-title { max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n h1 { font-size: 27px; }\n .login-panel { padding: 22px; }\n .secondary-provider-list { grid-template-columns: 1fr; }\n}\n";
1
+ export declare const loginPageStyles = "\n:root { color-scheme: dark; font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif; }\n* { box-sizing: border-box; }\nbody { margin: 0; min-height: 100vh; overflow-x: hidden; background: #08131f; color: #f8fafc; }\nbody::before, body::after { content: \"\"; position: fixed; inset: 0; pointer-events: none; }\nbody::before {\n background: var(--auth-background-image, url(\"https://images.unsplash.com/photo-1552664730-d307ca884978?auto=format&fit=crop&w=1800&q=82\")) center / cover no-repeat;\n transform: scale(1.02);\n}\nbody::after {\n background:\n linear-gradient(90deg, rgb(7 18 32 / 92%) 0%, rgb(9 31 45 / 78%) 48%, rgb(14 111 100 / 72%) 100%),\n linear-gradient(180deg, rgb(5 12 22 / 16%) 0%, rgb(5 12 22 / 56%) 100%);\n}\na { min-height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 6px; text-decoration: none; font-weight: 700; }\n.auth-status {\n position: fixed; z-index: 2; top: 24px; right: 24px; min-height: 36px; display: inline-flex; align-items: center;\n padding: 0 14px; border: 1px solid rgb(148 163 184 / 24%); border-radius: 8px; background: rgb(15 23 42 / 74%);\n box-shadow: 0 14px 32px rgb(0 0 0 / 22%); color: #e2e8f0; font-size: 13px;\n}\n.auth-shell {\n position: relative; z-index: 1; min-height: 100vh; width: min(1280px, calc(100vw - 48px)); margin: 0 auto;\n display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); align-items: center; gap: 72px; padding: 72px 0;\n}\n.hero-copy { max-width: 760px; }\n.brand-row { display: flex; align-items: center; gap: 12px; margin-bottom: 30px; }\n.mark {\n width: 56px; height: 56px; display: grid; place-items: center; border-radius: 8px;\n background: linear-gradient(135deg, #4f8cff 0%, #22d4b8 100%); color: #fff; box-shadow: 0 16px 32px rgb(34 211 238 / 18%);\n}\n.mark svg { width: 30px; height: 30px; display: block; }\n.mark img { width: 100%; height: 100%; display: block; border-radius: inherit; object-fit: cover; }\n.brand-title {\n display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 6px;\n background: rgb(15 23 42 / 48%); color: #bfdbfe; font-size: 14px; font-weight: 700;\n}\n.hero-kicker { margin-bottom: 16px; color: #67e8f9; font-size: 14px; font-weight: 800; }\nh1 { max-width: 720px; margin: 0 0 18px; color: #fff; font-size: 40px; line-height: 1.18; font-weight: 800; }\n.hero-copy p { max-width: 680px; margin: 0; color: #e2e8f0; font-size: 16px; line-height: 1.8; font-weight: 600; }\n.login-panel {\n width: 100%; border: 1px solid rgb(148 163 184 / 18%); border-radius: 8px; background: rgb(15 23 42 / 92%);\n box-shadow: 0 26px 70px rgb(0 0 0 / 38%); padding: 34px;\n}\n.login-kicker { margin-bottom: 8px; color: #93c5fd; font-size: 13px; font-weight: 800; }\nh2 { margin: 0 0 14px; color: #f8fafc; font-size: 26px; line-height: 1.25; font-weight: 800; }\n.login-panel p { margin: 0 0 24px; color: #aebccc; font-size: 14px; line-height: 1.7; font-weight: 600; }\n.provider-list { display: grid; gap: 14px; }\n.primary-provider {\n min-height: 52px; gap: 10px; padding: 0 18px; background: #4f7fe5; color: #fff; box-shadow: 0 10px 22px rgb(79 127 229 / 28%);\n transition: transform .16s ease, box-shadow .16s ease, background .16s ease;\n}\n.primary-provider:hover { background: #5d8cf1; box-shadow: 0 16px 30px rgb(79 127 229 / 36%); transform: translateY(-1px); }\n.primary-provider-icon { width: 22px; height: 22px; display: grid; place-items: center; flex: 0 0 auto; color: #fff; background: transparent; border: 0; }\n.primary-provider-icon svg { width: 21px; height: 21px; display: block; }\n.primary-provider .provider-name { margin: 0; font-size: inherit; }\n.provider-divider { display: flex; align-items: center; gap: 12px; color: #7d8da3; font-size: 12px; font-weight: 700; }\n.provider-divider::before, .provider-divider::after { content: \"\"; height: 1px; flex: 1; background: rgb(148 163 184 / 16%); }\n.secondary-provider-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }\n.provider-option {\n min-height: 72px; flex-direction: column; gap: 8px; padding: 12px 10px; border: 1px solid rgb(148 163 184 / 18%);\n color: #e5edf8; background: rgb(30 41 59 / 62%); text-align: center; transition: transform .16s ease, border-color .16s ease, background .16s ease;\n}\n.provider-option:hover { border-color: rgb(147 197 253 / 52%); background: rgb(30 64 94 / 76%); transform: translateY(-1px); }\n.provider-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 6px; flex: 0 0 auto; }\n.provider-icon svg { width: 22px; height: 22px; display: block; }\n.provider-icon-feishu { background: transparent; }\n.provider-icon-google { background: #fff; border: 1px solid rgb(226 232 240 / 86%); }\n.provider-icon-github { background: #0b1120; color: #fff; }\n.provider-name { max-width: 100%; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }\n.provider-empty { border: 1px solid rgb(251 191 36 / 24%); color: #fde68a; background: rgb(120 53 15 / 28%); border-radius: 6px; padding: 12px 14px; line-height: 1.6; font-size: 14px; }\n.dev-link { min-height: 42px; margin-top: 12px; border: 1px solid rgb(148 163 184 / 16%); background: rgb(15 23 42 / 48%); color: #cbd5e1; font-size: 13px; }\n.dev-link:hover { border-color: rgb(148 163 184 / 34%); background: rgb(30 41 59 / 72%); }\n.error { border: 1px solid rgb(248 113 113 / 36%); color: #fecaca; background: rgb(127 29 29 / 34%); border-radius: 6px; padding: 10px 12px; margin-bottom: 16px; }\n.footer-row { margin-top: 18px; color: #64748b; font-size: 12px; }\n@media (max-width: 780px) {\n .auth-status { top: 16px; right: 16px; }\n .auth-shell { width: min(100% - 32px, 520px); min-height: auto; grid-template-columns: 1fr; gap: 30px; padding: 92px 0 34px; }\n .hero-copy { max-width: none; }\n .brand-row { margin-bottom: 22px; }\n .mark { width: 48px; height: 48px; }\n .mark svg { width: 26px; height: 26px; }\n h1 { font-size: 30px; }\n .hero-copy p { font-size: 15px; }\n .login-panel { padding: 26px; }\n h2 { font-size: 23px; }\n}\n@media (max-width: 420px) {\n .auth-shell { width: min(100% - 24px, 420px); padding-top: 82px; }\n .auth-status { min-height: 32px; padding: 0 11px; font-size: 12px; }\n .brand-title { max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n h1 { font-size: 27px; }\n .login-panel { padding: 22px; }\n .secondary-provider-list { grid-template-columns: 1fr; }\n}\n";
2
2
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,kzMA6F3B,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/styles.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,u5MA8F3B,CAAC"}
@@ -29,6 +29,7 @@ a { min-height: 44px; display: flex; align-items: center; justify-content: cente
29
29
  background: linear-gradient(135deg, #4f8cff 0%, #22d4b8 100%); color: #fff; box-shadow: 0 16px 32px rgb(34 211 238 / 18%);
30
30
  }
31
31
  .mark svg { width: 30px; height: 30px; display: block; }
32
+ .mark img { width: 100%; height: 100%; display: block; border-radius: inherit; object-fit: cover; }
32
33
  .brand-title {
33
34
  display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 6px;
34
35
  background: rgb(15 23 42 / 48%); color: #bfdbfe; font-size: 14px; font-weight: 700;
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6F9B,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/hosted-service/login-page/styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8F9B,CAAC"}
@@ -1,13 +1,9 @@
1
- import type { HostedAuthAppearance, HostedAuthApplication } from "../types.js";
2
- export type LoginProviderId = "feishu" | "github" | "google";
3
- export type LoginProviderView = {
4
- enabled: boolean;
5
- href: string;
6
- icon: string;
7
- iconClassName: string;
8
- id: LoginProviderId;
9
- label: string;
10
- };
1
+ import type { HostedAuthAppearance, HostedAuthApplication, HostedAuthLoginPageComponent, HostedAuthLoginPageConfig, HostedAuthLoginPageModel, HostedAuthLoginPageProps, HostedAuthLoginProviderId, HostedAuthLoginProviderView } from "../types.js";
2
+ export type LoginProviderId = HostedAuthLoginProviderId;
3
+ export type LoginProviderView = HostedAuthLoginProviderView;
4
+ export type LoginPageModel = HostedAuthLoginPageModel;
5
+ export type LoginPageProps = HostedAuthLoginPageProps;
6
+ export type LoginPageComponent = HostedAuthLoginPageComponent;
11
7
  export type LoginPageLinks = {
12
8
  devLogin: string;
13
9
  providers: LoginProviderView[];
@@ -22,6 +18,8 @@ export type RenderLoginPageParams = {
22
18
  feishuEnabled: boolean;
23
19
  githubEnabled: boolean;
24
20
  googleEnabled: boolean;
21
+ loginPage?: HostedAuthLoginPageConfig;
22
+ loginPageComponent?: HostedAuthLoginPageComponent;
25
23
  redirectURI: string;
26
24
  };
27
25
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE/E,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,GAAG,EAAE,qBAAqB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/hosted-service/login-page/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG,yBAAyB,CAAC;AAExD,MAAM,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,wBAAwB,CAAC;AAEtD,MAAM,MAAM,kBAAkB,GAAG,4BAA4B,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,GAAG,EAAE,qBAAqB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,yBAAyB,CAAC;IACtC,kBAAkB,CAAC,EAAE,4BAA4B,CAAC;IAClD,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -199,6 +199,8 @@ function handleLogin(request, options, authBaseURL, allowDevLogin) {
199
199
  feishuEnabled: Boolean(options.feishu?.appId && options.feishu?.appSecret),
200
200
  githubEnabled: Boolean(options.github?.clientId && options.github?.clientSecret),
201
201
  googleEnabled: Boolean(options.google?.clientId && options.google?.clientSecret),
202
+ loginPage: options.loginPage,
203
+ loginPageComponent: options.loginPageComponent,
202
204
  redirectURI,
203
205
  }));
204
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/hosted-service/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/hosted-service/service.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,58 @@
1
1
  import type { HostedAuthStore } from "./store/index.js";
2
+ export type HostedAuthLoginProviderId = "feishu" | "github" | "google";
3
+ export interface HostedAuthLoginProviderView {
4
+ enabled: boolean;
5
+ href: string;
6
+ icon: string;
7
+ iconClassName: string;
8
+ id: HostedAuthLoginProviderId;
9
+ label: string;
10
+ }
11
+ export interface HostedAuthLoginPageModel {
12
+ allowDevLogin: boolean;
13
+ appName: string;
14
+ clientId: string;
15
+ devLoginHref: string;
16
+ error?: string;
17
+ providers: HostedAuthLoginProviderView[];
18
+ redirectURI: string;
19
+ }
20
+ export interface HostedAuthLoginPageProps {
21
+ config: HostedAuthLoginPageConfig;
22
+ model: HostedAuthLoginPageModel;
23
+ }
24
+ export type HostedAuthLoginPageComponent = ((props: HostedAuthLoginPageProps) => string) & {
25
+ defaultConfig?: HostedAuthLoginPageConfig;
26
+ };
2
27
  export interface HostedAuthApplication {
3
28
  allowedRedirectURIs?: string[];
4
29
  appearance?: HostedAuthAppearance;
5
30
  clientId: string;
31
+ loginPage?: HostedAuthLoginPageConfig;
32
+ loginPageComponent?: HostedAuthLoginPageComponent;
6
33
  name?: string;
7
34
  redirectURI?: string;
8
35
  }
9
36
  export interface HostedAuthAppearance {
10
37
  backgroundImageUrl?: string;
11
38
  }
39
+ export interface HostedAuthLoginPageConfig {
40
+ backgroundImageUrl?: string;
41
+ brandLabel?: string;
42
+ brandName?: string;
43
+ devLoginLabel?: string;
44
+ footerText?: string;
45
+ heroDescription?: string;
46
+ heroKicker?: string;
47
+ heroTitle?: string;
48
+ logoUrl?: string;
49
+ panelDescription?: string;
50
+ panelKicker?: string;
51
+ panelTitle?: string;
52
+ primaryProvider?: HostedAuthLoginProviderId;
53
+ providers?: HostedAuthLoginProviderId[];
54
+ statusText?: string;
55
+ }
12
56
  export interface HostedFeishuConfig {
13
57
  appId?: string;
14
58
  appSecret?: string;
@@ -36,6 +80,8 @@ export interface HostedAuthServiceOptions {
36
80
  feishu?: HostedFeishuConfig;
37
81
  github?: HostedGitHubConfig;
38
82
  google?: HostedGoogleConfig;
83
+ loginPage?: HostedAuthLoginPageConfig;
84
+ loginPageComponent?: HostedAuthLoginPageComponent;
39
85
  sessionSecret: string;
40
86
  store?: HostedAuthStore;
41
87
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hosted-service/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACvC,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hosted-service/types.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { existsSync, readFileSync } from "node:fs";
2
2
  import { resolve } from "node:path";
3
3
  import { config as loadEnv, parse as parseEnv } from "dotenv";
4
4
  import { createHostedAuthNodeServer } from "./hosted-service-node.js";
5
- import { createFileAuthStore } from "./index.js";
5
+ import { createFileAuthStore, createHostedAuthLoginPageComponent } from "./index.js";
6
6
  const FEISHU_ENV_KEYS = ["FEISHU_APP_ID", "FEISHU_APP_SECRET", "FEISHU_REDIRECT_URI"];
7
7
  loadEnv({ path: ".env.local", quiet: true });
8
8
  loadEnv({ quiet: true });
@@ -10,6 +10,9 @@ loadLegacyFeishuEnv();
10
10
  function readEnv(name, fallback = "") {
11
11
  return process.env[name]?.trim() || fallback;
12
12
  }
13
+ function readOptionalEnv(name) {
14
+ return readEnv(name) || undefined;
15
+ }
13
16
  const port = Number(readEnv("AUTH_SERVICE_PORT", readEnv("PORT", "3005")));
14
17
  const authBaseURL = readEnv("AUTH_SERVICE_URL", `http://localhost:${port}`);
15
18
  const clientId = readEnv("AUTH_CLIENT_ID", "ai-pm");
@@ -56,9 +59,6 @@ const server = createHostedAuthNodeServer({
56
59
  applications: [
57
60
  {
58
61
  allowedRedirectURIs: [redirectURI],
59
- appearance: {
60
- backgroundImageUrl: readEnv("AUTH_LOGIN_BACKGROUND_URL") || undefined,
61
- },
62
62
  clientId,
63
63
  name: readEnv("AUTH_CLIENT_NAME", "AI PM"),
64
64
  redirectURI,
@@ -81,6 +81,17 @@ const server = createHostedAuthNodeServer({
81
81
  clientSecret: readEnv("GITHUB_CLIENT_SECRET") || undefined,
82
82
  redirectURI: readEnv("GITHUB_REDIRECT_URI") || undefined,
83
83
  },
84
+ loginPageComponent: createHostedAuthLoginPageComponent({
85
+ backgroundImageUrl: readOptionalEnv("AUTH_LOGIN_BACKGROUND_URL"),
86
+ brandLabel: readOptionalEnv("AUTH_LOGIN_BRAND_LABEL"),
87
+ brandName: readOptionalEnv("AUTH_LOGIN_BRAND_NAME"),
88
+ heroDescription: readOptionalEnv("AUTH_LOGIN_HERO_DESCRIPTION"),
89
+ heroTitle: readOptionalEnv("AUTH_LOGIN_HERO_TITLE"),
90
+ logoUrl: readOptionalEnv("AUTH_LOGIN_LOGO_URL"),
91
+ panelDescription: readOptionalEnv("AUTH_LOGIN_PANEL_DESCRIPTION"),
92
+ panelTitle: readOptionalEnv("AUTH_LOGIN_PANEL_TITLE"),
93
+ statusText: readOptionalEnv("AUTH_LOGIN_STATUS_TEXT"),
94
+ }),
84
95
  sessionSecret,
85
96
  store: await createAuthStore(),
86
97
  });
@@ -1 +1 @@
1
- {"version":3,"file":"hosted-service-cli.js","sourceRoot":"","sources":["../src/hosted-service-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hosted-service-cli.js","sourceRoot":"","sources":["../src/hosted-service-cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export { AUTH_SERVICE_SESSION_COOKIE, AUTH_SERVICE_STATE_COOKIE } from "./hosted-service/constants.js";
2
- export { renderLoginPage as renderHostedAuthLoginPage } from "./hosted-service/login-page/index.js";
2
+ export { createHostedAuthLoginPageComponent, defaultHostedAuthLoginPageComponent, renderLoginPage as renderHostedAuthLoginPage, } from "./hosted-service/login-page/index.js";
3
3
  export type { RenderLoginPageParams } from "./hosted-service/login-page/types.js";
4
4
  export { createHostedAuthRouteHandlers, handleHostedAuthRequest } from "./hosted-service/routes.js";
5
5
  export type { HostedAuthRouteHandler, HostedAuthRouteHandlers } from "./hosted-service/routes.js";
6
6
  export { createHostedAuthService } from "./hosted-service/service.js";
7
7
  export { createFileAuthStore, createMemoryAuthStore } from "./hosted-service/store/index.js";
8
- export type { HostedAuthApplication, HostedAuthServiceOptions, HostedFeishuConfig, HostedGitHubConfig, HostedGoogleConfig, } from "./hosted-service/types.js";
8
+ export type { HostedAuthAppearance, HostedAuthApplication, HostedAuthLoginPageComponent, HostedAuthLoginPageConfig, HostedAuthLoginPageModel, HostedAuthLoginPageProps, HostedAuthLoginProviderView, HostedAuthLoginProviderId, HostedAuthServiceOptions, HostedFeishuConfig, HostedGitHubConfig, HostedGoogleConfig, } from "./hosted-service/types.js";
9
9
  export type { CreateFileAuthStoreOptions, CreateHostedAuthSessionInput, CreateMemoryAuthStoreOptions, HostedAuthAccountRecord, HostedAuthProviderId, HostedAuthSessionContext, HostedAuthSessionRecord, HostedAuthStore, HostedAuthStoreState, HostedAuthUserRecord, } from "./hosted-service/store/index.js";
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,eAAe,IAAI,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACpG,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpG,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,YAAY,EACV,qBAAqB,EACrB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACpG,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,wBAAwB,EACxB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,iCAAiC,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { AUTH_SERVICE_SESSION_COOKIE, AUTH_SERVICE_STATE_COOKIE } from "./hosted-service/constants.js";
2
- export { renderLoginPage as renderHostedAuthLoginPage } from "./hosted-service/login-page/index.js";
2
+ export { createHostedAuthLoginPageComponent, defaultHostedAuthLoginPageComponent, renderLoginPage as renderHostedAuthLoginPage, } from "./hosted-service/login-page/index.js";
3
3
  export { createHostedAuthRouteHandlers, handleHostedAuthRequest } from "./hosted-service/routes.js";
4
4
  export { createHostedAuthService } from "./hosted-service/service.js";
5
5
  export { createFileAuthStore, createMemoryAuthStore } from "./hosted-service/store/index.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EAAE,eAAe,IAAI,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEpG,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AACvG,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-tool/unified-auth-hosted-service",
3
- "version": "0.2.5",
3
+ "version": "0.2.7",
4
4
  "type": "module",
5
5
  "description": "Embedded and standalone hosted auth runtime for Unified Auth.",
6
6
  "main": "./dist/index.js",