@rc-tool/unified-auth-hosted-service 0.2.9 → 0.3.0

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 (124) hide show
  1. package/README.md +109 -114
  2. package/dist/cli/config-file.d.ts +7 -0
  3. package/dist/cli/config-file.d.ts.map +1 -0
  4. package/dist/cli/config-file.js +77 -0
  5. package/dist/cli/config-file.js.map +1 -0
  6. package/dist/cli/config.d.ts +21 -0
  7. package/dist/cli/config.d.ts.map +1 -0
  8. package/dist/cli/config.js +174 -0
  9. package/dist/cli/config.js.map +1 -0
  10. package/dist/cli/database.d.ts +33 -0
  11. package/dist/cli/database.d.ts.map +1 -0
  12. package/dist/cli/database.js +346 -0
  13. package/dist/cli/database.js.map +1 -0
  14. package/dist/cli/index.d.ts +1 -1
  15. package/dist/cli/index.d.ts.map +1 -1
  16. package/dist/cli/index.js +44 -79
  17. package/dist/cli/index.js.map +1 -1
  18. package/dist/cli.js +1 -1
  19. package/dist/cli.js.map +1 -1
  20. package/dist/config.d.ts +32 -0
  21. package/dist/config.d.ts.map +1 -0
  22. package/dist/config.js +7 -0
  23. package/dist/config.js.map +1 -0
  24. package/dist/hosted-service/applications.d.ts +0 -6
  25. package/dist/hosted-service/applications.d.ts.map +1 -1
  26. package/dist/hosted-service/applications.js +50 -8
  27. package/dist/hosted-service/applications.js.map +1 -1
  28. package/dist/hosted-service/better-auth.d.ts +10 -0
  29. package/dist/hosted-service/better-auth.d.ts.map +1 -0
  30. package/dist/hosted-service/better-auth.js +213 -0
  31. package/dist/hosted-service/better-auth.js.map +1 -0
  32. package/dist/hosted-service/constants.d.ts +0 -4
  33. package/dist/hosted-service/constants.d.ts.map +1 -1
  34. package/dist/hosted-service/constants.js +0 -4
  35. package/dist/hosted-service/constants.js.map +1 -1
  36. package/dist/hosted-service/http.d.ts.map +1 -1
  37. package/dist/hosted-service/http.js +6 -8
  38. package/dist/hosted-service/http.js.map +1 -1
  39. package/dist/hosted-service/login-page/components.d.ts +0 -1
  40. package/dist/hosted-service/login-page/components.d.ts.map +1 -1
  41. package/dist/hosted-service/login-page/components.js +0 -6
  42. package/dist/hosted-service/login-page/components.js.map +1 -1
  43. package/dist/hosted-service/login-page/index.d.ts.map +1 -1
  44. package/dist/hosted-service/login-page/index.js +2 -18
  45. package/dist/hosted-service/login-page/index.js.map +1 -1
  46. package/dist/hosted-service/login-page/links.d.ts.map +1 -1
  47. package/dist/hosted-service/login-page/links.js +1 -12
  48. package/dist/hosted-service/login-page/links.js.map +1 -1
  49. package/dist/hosted-service/login-page/styles.d.ts +1 -1
  50. package/dist/hosted-service/login-page/styles.d.ts.map +1 -1
  51. package/dist/hosted-service/login-page/styles.js +0 -2
  52. package/dist/hosted-service/login-page/styles.js.map +1 -1
  53. package/dist/hosted-service/login-page/types.d.ts +2 -8
  54. package/dist/hosted-service/login-page/types.d.ts.map +1 -1
  55. package/dist/hosted-service/routes.d.ts.map +1 -1
  56. package/dist/hosted-service/routes.js +3 -12
  57. package/dist/hosted-service/routes.js.map +1 -1
  58. package/dist/hosted-service/service.d.ts +5 -8
  59. package/dist/hosted-service/service.d.ts.map +1 -1
  60. package/dist/hosted-service/service.js +56 -168
  61. package/dist/hosted-service/service.js.map +1 -1
  62. package/dist/hosted-service/types.d.ts +36 -46
  63. package/dist/hosted-service/types.d.ts.map +1 -1
  64. package/dist/index.d.ts +3 -4
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +1 -2
  67. package/dist/index.js.map +1 -1
  68. package/package.json +8 -4
  69. package/dist/cli/env.d.ts +0 -40
  70. package/dist/cli/env.d.ts.map +0 -1
  71. package/dist/cli/env.js +0 -353
  72. package/dist/cli/env.js.map +0 -1
  73. package/dist/hosted-service/cookies.d.ts +0 -17
  74. package/dist/hosted-service/cookies.d.ts.map +0 -1
  75. package/dist/hosted-service/cookies.js +0 -56
  76. package/dist/hosted-service/cookies.js.map +0 -1
  77. package/dist/hosted-service/crypto.d.ts +0 -3
  78. package/dist/hosted-service/crypto.d.ts.map +0 -1
  79. package/dist/hosted-service/crypto.js +0 -39
  80. package/dist/hosted-service/crypto.js.map +0 -1
  81. package/dist/hosted-service/oauth.d.ts +0 -11
  82. package/dist/hosted-service/oauth.d.ts.map +0 -1
  83. package/dist/hosted-service/oauth.js +0 -37
  84. package/dist/hosted-service/oauth.js.map +0 -1
  85. package/dist/hosted-service/providers/feishu.d.ts +0 -4
  86. package/dist/hosted-service/providers/feishu.d.ts.map +0 -1
  87. package/dist/hosted-service/providers/feishu.js +0 -72
  88. package/dist/hosted-service/providers/feishu.js.map +0 -1
  89. package/dist/hosted-service/providers/github.d.ts +0 -4
  90. package/dist/hosted-service/providers/github.d.ts.map +0 -1
  91. package/dist/hosted-service/providers/github.js +0 -73
  92. package/dist/hosted-service/providers/github.js.map +0 -1
  93. package/dist/hosted-service/providers/google.d.ts +0 -4
  94. package/dist/hosted-service/providers/google.d.ts.map +0 -1
  95. package/dist/hosted-service/providers/google.js +0 -54
  96. package/dist/hosted-service/providers/google.js.map +0 -1
  97. package/dist/hosted-service/session.d.ts +0 -11
  98. package/dist/hosted-service/session.d.ts.map +0 -1
  99. package/dist/hosted-service/session.js +0 -54
  100. package/dist/hosted-service/session.js.map +0 -1
  101. package/dist/hosted-service/store/file.d.ts +0 -6
  102. package/dist/hosted-service/store/file.d.ts.map +0 -1
  103. package/dist/hosted-service/store/file.js +0 -63
  104. package/dist/hosted-service/store/file.js.map +0 -1
  105. package/dist/hosted-service/store/index.d.ts +0 -6
  106. package/dist/hosted-service/store/index.d.ts.map +0 -1
  107. package/dist/hosted-service/store/index.js +0 -3
  108. package/dist/hosted-service/store/index.js.map +0 -1
  109. package/dist/hosted-service/store/memory.d.ts +0 -6
  110. package/dist/hosted-service/store/memory.d.ts.map +0 -1
  111. package/dist/hosted-service/store/memory.js +0 -19
  112. package/dist/hosted-service/store/memory.js.map +0 -1
  113. package/dist/hosted-service/store/state.d.ts +0 -9
  114. package/dist/hosted-service/store/state.d.ts.map +0 -1
  115. package/dist/hosted-service/store/state.js +0 -156
  116. package/dist/hosted-service/store/state.js.map +0 -1
  117. package/dist/hosted-service/store/types.d.ts +0 -56
  118. package/dist/hosted-service/store/types.d.ts.map +0 -1
  119. package/dist/hosted-service/store/types.js +0 -2
  120. package/dist/hosted-service/store/types.js.map +0 -1
  121. package/dist/hosted-service-cli.d.ts +0 -2
  122. package/dist/hosted-service-cli.d.ts.map +0 -1
  123. package/dist/hosted-service-cli.js +0 -85
  124. package/dist/hosted-service-cli.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,10 +1,9 @@
1
- export { AUTH_SERVICE_SESSION_COOKIE, AUTH_SERVICE_STATE_COOKIE } from "./hosted-service/constants.js";
2
1
  export { createHostedAuthLoginPageComponent, defaultHostedAuthLoginPageComponent, renderLoginPage as renderHostedAuthLoginPage, } from "./hosted-service/login-page/index.js";
2
+ export { defineUnifiedAuthConfig } from "./config.js";
3
+ export type { UnifiedAuthAppConfig, UnifiedAuthConfig, UnifiedAuthServiceConfig, } from "./config.js";
3
4
  export type { RenderLoginPageParams } from "./hosted-service/login-page/types.js";
4
5
  export { createHostedAuthRouteHandlers, handleHostedAuthRequest } from "./hosted-service/routes.js";
5
6
  export type { HostedAuthRouteHandler, HostedAuthRouteHandlers } from "./hosted-service/routes.js";
6
7
  export { createHostedAuthService } from "./hosted-service/service.js";
7
- export { createFileAuthStore, createMemoryAuthStore } from "./hosted-service/store/index.js";
8
- export type { HostedAuthAppearance, HostedAuthLoginPageComponent, HostedAuthLoginPageConfig, HostedAuthLoginPageModel, HostedAuthLoginPageProps, HostedAuthLoginProviderView, HostedAuthLoginProviderId, HostedAuthServiceOptions, HostedFeishuConfig, HostedGitHubConfig, HostedGoogleConfig, } from "./hosted-service/types.js";
9
- export type { CreateFileAuthStoreOptions, CreateHostedAuthSessionInput, CreateMemoryAuthStoreOptions, HostedAuthAccountRecord, HostedAuthProviderId, HostedAuthSessionContext, HostedAuthSessionRecord, HostedAuthStore, HostedAuthStoreState, HostedAuthUserRecord, } from "./hosted-service/store/index.js";
8
+ export type { HostedAuthBetterAuthProviderConfig, HostedAuthLoginPageComponent, HostedAuthLoginPageConfig, HostedAuthLoginPageModel, HostedAuthLoginPageProps, HostedAuthLoginProviderView, HostedAuthLoginProviderId, HostedAuthRuntimeEnv, HostedAuthServiceOptions, HostedBetterAuthProviderId, HostedBetterAuthServer, HostedBetterAuthSessionResult, } from "./hosted-service/types.js";
10
9
  //# 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,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,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EACV,oBAAoB,EACpB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC;AACrB,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,YAAY,EACV,kCAAkC,EAClC,4BAA4B,EAC5B,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,2BAA2B,EAC3B,yBAAyB,EACzB,oBAAoB,EACpB,wBAAwB,EACxB,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,2BAA2B,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,5 @@
1
- export { AUTH_SERVICE_SESSION_COOKIE, AUTH_SERVICE_STATE_COOKIE } from "./hosted-service/constants.js";
2
1
  export { createHostedAuthLoginPageComponent, defaultHostedAuthLoginPageComponent, renderLoginPage as renderHostedAuthLoginPage, } from "./hosted-service/login-page/index.js";
2
+ export { defineUnifiedAuthConfig } from "./config.js";
3
3
  export { createHostedAuthRouteHandlers, handleHostedAuthRequest } from "./hosted-service/routes.js";
4
4
  export { createHostedAuthService } from "./hosted-service/service.js";
5
- export { createFileAuthStore, createMemoryAuthStore } from "./hosted-service/store/index.js";
6
5
  //# sourceMappingURL=index.js.map
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,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kCAAkC,EAClC,mCAAmC,EACnC,eAAe,IAAI,yBAAyB,GAC7C,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAOtD,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-tool/unified-auth-hosted-service",
3
- "version": "0.2.9",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "description": "Embedded and standalone hosted auth runtime for Unified Auth.",
6
6
  "main": "./dist/index.js",
@@ -16,6 +16,10 @@
16
16
  "types": "./dist/index.d.ts",
17
17
  "import": "./dist/index.js"
18
18
  },
19
+ "./config": {
20
+ "types": "./dist/config.d.ts",
21
+ "import": "./dist/config.js"
22
+ },
19
23
  "./node": {
20
24
  "types": "./dist/hosted-service-node.d.ts",
21
25
  "import": "./dist/hosted-service-node.js"
@@ -26,13 +30,13 @@
26
30
  "README.md"
27
31
  ],
28
32
  "dependencies": {
29
- "@rc-tool/unified-auth-sdk": "^0.2.1",
30
- "dotenv": "^17.4.2"
33
+ "@rc-tool/unified-auth-sdk": "^0.3.0",
34
+ "pg": "^8.21.0",
35
+ "typescript": "^5.9.3"
31
36
  },
32
37
  "scripts": {
33
38
  "build": "pnpm clean && tsc -p tsconfig.json",
34
39
  "clean": "rm -rf dist tsconfig.tsbuildinfo",
35
- "dev:service": "pnpm build && node dist/hosted-service-cli.js",
36
40
  "test": "vitest run --config ../../vitest.config.ts src/*.test.ts",
37
41
  "typecheck": "tsc --noEmit -p tsconfig.json"
38
42
  }
package/dist/cli/env.d.ts DELETED
@@ -1,40 +0,0 @@
1
- export type AuthProvider = "feishu" | "github" | "google";
2
- export type AuthStoreProvider = "file" | "prisma";
3
- export type CheckStatus = "fail" | "pass" | "warn";
4
- export interface InitAuthEnvOptions {
5
- app?: string;
6
- cwd?: string;
7
- envFile?: string;
8
- exampleFile?: string;
9
- name?: string;
10
- port?: number;
11
- providers?: AuthProvider[];
12
- redirectURI?: string;
13
- serviceURL?: string;
14
- store?: AuthStoreProvider;
15
- }
16
- export interface DoctorAuthEnvOptions {
17
- cwd?: string;
18
- envFile?: string;
19
- }
20
- export interface EnvWriteSummary {
21
- added: string[];
22
- path: string;
23
- updated: string[];
24
- }
25
- export interface InitAuthEnvResult {
26
- env: EnvWriteSummary;
27
- example: EnvWriteSummary;
28
- gitignore: EnvWriteSummary;
29
- }
30
- export interface DoctorCheck {
31
- message: string;
32
- status: CheckStatus;
33
- }
34
- export interface DoctorAuthEnvResult {
35
- checks: DoctorCheck[];
36
- ok: boolean;
37
- }
38
- export declare function initAuthEnv(options?: InitAuthEnvOptions): InitAuthEnvResult;
39
- export declare function doctorAuthEnv(options?: DoctorAuthEnvOptions): DoctorAuthEnvResult;
40
- //# sourceMappingURL=env.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,eAAe,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,EAAE,EAAE,OAAO,CAAC;CACb;AAiBD,wBAAgB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,iBAAiB,CAY/E;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CA4BrF"}
package/dist/cli/env.js DELETED
@@ -1,353 +0,0 @@
1
- import { randomBytes } from "node:crypto";
2
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
3
- import { basename, dirname, join, resolve } from "node:path";
4
- const defaultProviders = ["feishu", "google", "github"];
5
- const envSectionHeader = "# Unified Auth Service";
6
- // init 只追加缺失配置,不覆盖业务项目已有环境变量,方便反复执行和升级 SDK。
7
- export function initAuthEnv(options = {}) {
8
- const cwd = resolve(options.cwd ?? process.cwd());
9
- const envPath = resolve(cwd, options.envFile ?? ".env.local");
10
- const examplePath = resolve(cwd, options.exampleFile ?? ".env.example");
11
- const gitignorePath = resolve(cwd, ".gitignore");
12
- const config = resolveInitConfig(cwd, options);
13
- return {
14
- env: writeEnvFile(envPath, buildRuntimeEntries(config)),
15
- example: writeEnvFile(examplePath, buildExampleEntries(config)),
16
- gitignore: ensureGitignore(gitignorePath),
17
- };
18
- }
19
- export function doctorAuthEnv(options = {}) {
20
- const cwd = resolve(options.cwd ?? process.cwd());
21
- const envPath = resolve(cwd, options.envFile ?? ".env.local");
22
- const env = readMergedEnv(cwd, envPath);
23
- const checks = [];
24
- if (existsSync(envPath)) {
25
- checks.push(pass(`${relativePath(cwd, envPath)} exists`));
26
- }
27
- else {
28
- checks.push(fail(`${relativePath(cwd, envPath)} is missing; run unified-auth init`));
29
- }
30
- requireValue(checks, env, "AUTH_SERVICE_URL");
31
- requireValue(checks, env, "AUTH_CLIENT_ID");
32
- requireValue(checks, env, "AUTH_ALLOWED_REDIRECT_URI");
33
- checkURL(checks, env, "AUTH_SERVICE_URL");
34
- checkURL(checks, env, "AUTH_ALLOWED_REDIRECT_URI");
35
- checkSessionSecret(checks, env.AUTH_SESSION_SECRET);
36
- checkStore(checks, env);
37
- checkProvider(checks, env, "feishu", "FEISHU_APP_ID", "FEISHU_APP_SECRET", "FEISHU_REDIRECT_URI");
38
- checkProvider(checks, env, "google", "GOOGLE_CLIENT_ID", "GOOGLE_CLIENT_SECRET", "GOOGLE_REDIRECT_URI");
39
- checkProvider(checks, env, "github", "GITHUB_CLIENT_ID", "GITHUB_CLIENT_SECRET", "GITHUB_REDIRECT_URI");
40
- checkGitignore(checks, cwd);
41
- return {
42
- checks,
43
- ok: !checks.some((check) => check.status === "fail"),
44
- };
45
- }
46
- function resolveInitConfig(cwd, options) {
47
- const redirectURI = options.redirectURI ?? "http://localhost:3004/";
48
- const serviceURL = trimTrailingSlash(options.serviceURL ?? getURLOrigin(redirectURI) ?? `http://localhost:${options.port ?? 3005}`);
49
- const port = options.port ?? getURLPort(serviceURL) ?? 3005;
50
- const clientId = options.app ?? inferClientId(cwd);
51
- return {
52
- clientId,
53
- name: options.name ?? titleFromClientId(clientId),
54
- port,
55
- providers: options.providers ?? defaultProviders,
56
- redirectURI,
57
- serviceURL,
58
- store: options.store ?? "file",
59
- };
60
- }
61
- function buildRuntimeEntries(config) {
62
- return [
63
- { key: "AUTH_SERVICE_PORT", value: String(config.port) },
64
- { key: "AUTH_SERVICE_URL", value: config.serviceURL },
65
- { key: "AUTH_CLIENT_ID", value: config.clientId },
66
- { key: "AUTH_CLIENT_NAME", value: config.name },
67
- { key: "AUTH_ALLOWED_REDIRECT_URI", value: config.redirectURI },
68
- { key: "AUTH_SESSION_SECRET", sensitive: true, value: randomBytes(32).toString("base64url") },
69
- { key: "AUTH_ALLOW_DEV_LOGIN", value: "true" },
70
- { key: "AUTH_STORE_PROVIDER", value: config.store },
71
- ...buildStoreEntries(config.store, false),
72
- ...buildProviderEntries(config.serviceURL, config.providers, false),
73
- ];
74
- }
75
- function buildExampleEntries(config) {
76
- return [
77
- { key: "AUTH_SERVICE_PORT", value: String(config.port) },
78
- { key: "AUTH_SERVICE_URL", value: config.serviceURL },
79
- { key: "AUTH_CLIENT_ID", value: config.clientId },
80
- { key: "AUTH_CLIENT_NAME", value: config.name },
81
- { key: "AUTH_ALLOWED_REDIRECT_URI", value: config.redirectURI },
82
- { key: "AUTH_SESSION_SECRET", sensitive: true, value: "please-change-this-to-a-long-random-string" },
83
- { key: "AUTH_ALLOW_DEV_LOGIN", value: "true" },
84
- { key: "AUTH_STORE_PROVIDER", value: config.store },
85
- ...buildStoreEntries(config.store, true),
86
- ...buildProviderEntries(config.serviceURL, config.providers, true),
87
- ];
88
- }
89
- function buildStoreEntries(store, example) {
90
- // 默认 file store 是为了让业务方先跑通登录;生产持久化再切到 prisma。
91
- if (store === "prisma") {
92
- return [
93
- {
94
- key: "AUTH_DATABASE_URL",
95
- sensitive: true,
96
- value: example ? "postgresql://user:password@localhost:5432/unified_auth?schema=public" : "",
97
- },
98
- ];
99
- }
100
- return [{ key: "AUTH_STORE_FILE", value: ".auth/unified-auth-store.json" }];
101
- }
102
- function buildProviderEntries(serviceURL, providers, example) {
103
- const callbackBase = trimTrailingSlash(serviceURL);
104
- const entries = [];
105
- if (providers.includes("feishu")) {
106
- entries.push({ key: "FEISHU_APP_ID", value: "" }, { key: "FEISHU_APP_SECRET", sensitive: true, value: "" }, { key: "FEISHU_REDIRECT_URI", value: `${callbackBase}/api/auth/feishu/callback` });
107
- }
108
- if (providers.includes("google")) {
109
- entries.push({ key: "GOOGLE_CLIENT_ID", value: "" }, { key: "GOOGLE_CLIENT_SECRET", sensitive: true, value: "" }, { key: "GOOGLE_REDIRECT_URI", value: `${callbackBase}/api/auth/google/callback` });
110
- }
111
- if (providers.includes("github")) {
112
- entries.push({ key: "GITHUB_CLIENT_ID", value: "" }, { key: "GITHUB_CLIENT_SECRET", sensitive: true, value: "" }, { key: "GITHUB_REDIRECT_URI", value: `${callbackBase}/api/auth/github/callback` });
113
- }
114
- if (example) {
115
- return entries.map((entry) => entry.sensitive ? { ...entry, value: entry.value || "" } : entry);
116
- }
117
- return entries;
118
- }
119
- function writeEnvFile(path, entries) {
120
- const lines = readLines(path);
121
- const assignments = parseAssignments(lines);
122
- const added = [];
123
- const updated = [];
124
- const pending = [];
125
- for (const entry of entries) {
126
- const existing = assignments.get(entry.key);
127
- if (!existing) {
128
- pending.push(formatEntry(entry));
129
- added.push(entry.key);
130
- continue;
131
- }
132
- if (!entry.sensitive && !existing.value && entry.value) {
133
- lines[existing.index] = formatEntry(entry);
134
- updated.push(entry.key);
135
- }
136
- if (entry.key === "AUTH_SESSION_SECRET" && isPlaceholderSecret(existing.value) && entry.value) {
137
- lines[existing.index] = formatEntry(entry);
138
- updated.push(entry.key);
139
- }
140
- }
141
- if (pending.length) {
142
- if (lines.length && lines[lines.length - 1] !== "") {
143
- lines.push("");
144
- }
145
- if (!lines.includes(envSectionHeader)) {
146
- lines.push(envSectionHeader);
147
- }
148
- lines.push(...pending);
149
- }
150
- if (added.length || updated.length || !existsSync(path)) {
151
- mkdirSync(dirname(path), { recursive: true });
152
- writeFileSync(path, `${lines.join("\n").replace(/\n*$/, "")}\n`);
153
- }
154
- return { added, path, updated };
155
- }
156
- function ensureGitignore(path) {
157
- const lines = readLines(path);
158
- const required = [".auth", ".env", ".env.*", "!.env.example"];
159
- const added = required.filter((item) => !lines.includes(item));
160
- if (added.length) {
161
- if (lines.length && lines[lines.length - 1] !== "") {
162
- lines.push("");
163
- }
164
- lines.push(...added);
165
- mkdirSync(dirname(path), { recursive: true });
166
- writeFileSync(path, `${lines.join("\n").replace(/\n*$/, "")}\n`);
167
- }
168
- else if (!existsSync(path)) {
169
- mkdirSync(dirname(path), { recursive: true });
170
- writeFileSync(path, "");
171
- }
172
- return { added, path, updated: [] };
173
- }
174
- function readMergedEnv(cwd, envPath) {
175
- const env = {};
176
- for (const path of [envPath, join(cwd, ".env")]) {
177
- for (const [key, assignment] of parseAssignments(readLines(path))) {
178
- if (!(key in env)) {
179
- env[key] = assignment.value;
180
- }
181
- }
182
- }
183
- return env;
184
- }
185
- function readLines(path) {
186
- if (!existsSync(path)) {
187
- return [];
188
- }
189
- return readFileSync(path, "utf8").replace(/\r\n/g, "\n").split("\n").filter((line, index, list) => {
190
- return index < list.length - 1 || line.length > 0;
191
- });
192
- }
193
- function parseAssignments(lines) {
194
- const assignments = new Map();
195
- lines.forEach((line, index) => {
196
- const match = /^\s*([A-Za-z_][A-Za-z0-9_]*)\s*=\s*(.*)\s*$/.exec(line);
197
- if (match) {
198
- assignments.set(match[1], {
199
- index,
200
- value: unquoteEnvValue(match[2]),
201
- });
202
- }
203
- });
204
- return assignments;
205
- }
206
- function formatEntry(entry) {
207
- return `${entry.key}=${entry.value}`;
208
- }
209
- function unquoteEnvValue(value) {
210
- const trimmed = value.trim();
211
- if ((trimmed.startsWith("\"") && trimmed.endsWith("\"")) ||
212
- (trimmed.startsWith("'") && trimmed.endsWith("'"))) {
213
- return trimmed.slice(1, -1);
214
- }
215
- return trimmed;
216
- }
217
- function requireValue(checks, env, key) {
218
- if (env[key]) {
219
- checks.push(pass(`${key} is set`));
220
- }
221
- else {
222
- checks.push(fail(`${key} is missing`));
223
- }
224
- }
225
- function checkURL(checks, env, key) {
226
- if (!env[key]) {
227
- return;
228
- }
229
- try {
230
- new URL(env[key]);
231
- checks.push(pass(`${key} is a valid URL`));
232
- }
233
- catch {
234
- checks.push(fail(`${key} is not a valid URL`));
235
- }
236
- }
237
- function checkSessionSecret(checks, secret) {
238
- // session secret 是 cookie 签名密钥,必须由业务环境持有,不能写死进 npm 包。
239
- if (!secret) {
240
- checks.push(fail("AUTH_SESSION_SECRET is missing"));
241
- return;
242
- }
243
- if (isPlaceholderSecret(secret) || secret.length < 32) {
244
- checks.push(fail("AUTH_SESSION_SECRET must be replaced with a long random value"));
245
- return;
246
- }
247
- checks.push(pass("AUTH_SESSION_SECRET looks usable"));
248
- }
249
- function checkStore(checks, env) {
250
- const store = env.AUTH_STORE_PROVIDER || "file";
251
- if (store === "prisma") {
252
- if (env.AUTH_DATABASE_URL || env.DATABASE_URL) {
253
- checks.push(pass("Prisma store has a database URL"));
254
- }
255
- else {
256
- checks.push(fail("AUTH_STORE_PROVIDER=prisma requires AUTH_DATABASE_URL"));
257
- }
258
- return;
259
- }
260
- if (store === "file") {
261
- checks.push(env.AUTH_STORE_FILE ? pass("File store path is set") : warn("AUTH_STORE_FILE is missing; the service will use its default path"));
262
- return;
263
- }
264
- checks.push(fail(`Unsupported AUTH_STORE_PROVIDER: ${store}`));
265
- }
266
- function checkProvider(checks, env, provider, idKey, secretKey, redirectKey) {
267
- const hasId = Boolean(env[idKey]);
268
- const hasSecret = Boolean(env[secretKey]);
269
- if (!hasId && !hasSecret) {
270
- checks.push(warn(`${provider} provider is disabled`));
271
- return;
272
- }
273
- if (!hasId || !hasSecret) {
274
- checks.push(fail(`${provider} provider needs both ${idKey} and ${secretKey}`));
275
- return;
276
- }
277
- checks.push(pass(`${provider} provider credentials are set`));
278
- if (env[redirectKey]) {
279
- checkURL(checks, env, redirectKey);
280
- }
281
- else {
282
- checks.push(warn(`${redirectKey} is missing; the service will use its default callback URL`));
283
- }
284
- }
285
- function checkGitignore(checks, cwd) {
286
- const path = join(cwd, ".gitignore");
287
- const lines = readLines(path);
288
- if (lines.includes(".env.*") && lines.includes("!.env.example")) {
289
- checks.push(pass(".gitignore keeps local env files private"));
290
- }
291
- else {
292
- checks.push(warn(".gitignore should include .env.* and !.env.example"));
293
- }
294
- }
295
- function pass(message) {
296
- return { message, status: "pass" };
297
- }
298
- function warn(message) {
299
- return { message, status: "warn" };
300
- }
301
- function fail(message) {
302
- return { message, status: "fail" };
303
- }
304
- function isPlaceholderSecret(value) {
305
- return value === "please-change-this-to-a-long-random-string" || value === "unified-auth-local-secret";
306
- }
307
- function inferClientId(cwd) {
308
- const id = basename(cwd)
309
- .toLowerCase()
310
- .replace(/[^a-z0-9]+/g, "-")
311
- .replace(/^-+|-+$/g, "");
312
- return id || "app";
313
- }
314
- function titleFromClientId(clientId) {
315
- return clientId
316
- .split(/[-_]/g)
317
- .filter(Boolean)
318
- .map((part) => `${part.slice(0, 1).toUpperCase()}${part.slice(1)}`)
319
- .join(" ") || "Application";
320
- }
321
- function trimTrailingSlash(value) {
322
- return value.endsWith("/") ? value.slice(0, -1) : value;
323
- }
324
- function getURLOrigin(value) {
325
- try {
326
- return new URL(value).origin;
327
- }
328
- catch {
329
- return undefined;
330
- }
331
- }
332
- function getURLPort(value) {
333
- try {
334
- const url = new URL(value);
335
- if (url.port) {
336
- return Number(url.port);
337
- }
338
- if (url.protocol === "https:") {
339
- return 443;
340
- }
341
- if (url.protocol === "http:") {
342
- return 80;
343
- }
344
- }
345
- catch {
346
- return undefined;
347
- }
348
- return undefined;
349
- }
350
- function relativePath(cwd, path) {
351
- return path.startsWith(cwd) ? path.slice(cwd.length + 1) : path;
352
- }
353
- //# sourceMappingURL=env.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/cli/env.ts"],"names":[],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import type { HostedAuthServiceOptions, SessionPayload } from "./types.js";
2
- export declare function appendCookie(headers: Headers, cookie: string): void;
3
- export declare function getCookie(request: Request, name: string): string | undefined;
4
- export declare function shouldUseSecureCookie(request: Request): boolean;
5
- export declare function serializeCookie(params: {
6
- domain?: string;
7
- httpOnly?: boolean;
8
- maxAge?: number;
9
- name: string;
10
- path?: string;
11
- sameSite?: "Lax" | "None" | "Strict";
12
- secure?: boolean;
13
- value: string;
14
- }): string;
15
- export declare function clearCookie(request: Request, options: HostedAuthServiceOptions, name: string): string;
16
- export declare function createSessionCookie(request: Request, options: HostedAuthServiceOptions, payload: SessionPayload): string;
17
- //# sourceMappingURL=cookies.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/hosted-service/cookies.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE3E,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAE5D;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,sBASvD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,WAQrD;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,UAaA;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,UAQ5F;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,wBAAwB,EACjC,OAAO,EAAE,cAAc,UASxB"}
@@ -1,56 +0,0 @@
1
- import { AUTH_SERVICE_SESSION_COOKIE, SESSION_MAX_AGE_SECONDS } from "./constants.js";
2
- import { createSignedToken } from "./crypto.js";
3
- export function appendCookie(headers, cookie) {
4
- headers.append("set-cookie", cookie);
5
- }
6
- export function getCookie(request, name) {
7
- const cookie = request.headers.get("cookie") ?? "";
8
- const prefix = `${name}=`;
9
- const item = cookie
10
- .split(";")
11
- .map((part) => part.trim())
12
- .find((part) => part.startsWith(prefix));
13
- return item ? decodeURIComponent(item.slice(prefix.length)) : undefined;
14
- }
15
- export function shouldUseSecureCookie(request) {
16
- const forwardedProto = request.headers.get("x-forwarded-proto")?.split(",")[0]?.trim();
17
- if (forwardedProto) {
18
- return forwardedProto === "https";
19
- }
20
- return new URL(request.url).protocol === "https:";
21
- }
22
- export function serializeCookie(params) {
23
- const parts = [
24
- `${params.name}=${encodeURIComponent(params.value)}`,
25
- `Path=${params.path ?? "/"}`,
26
- `SameSite=${params.sameSite ?? "Lax"}`,
27
- ];
28
- if (params.httpOnly ?? true)
29
- parts.push("HttpOnly");
30
- if (typeof params.maxAge === "number")
31
- parts.push(`Max-Age=${params.maxAge}`);
32
- if (params.domain)
33
- parts.push(`Domain=${params.domain}`);
34
- if (params.secure)
35
- parts.push("Secure");
36
- return parts.join("; ");
37
- }
38
- export function clearCookie(request, options, name) {
39
- return serializeCookie({
40
- domain: options.cookieDomain,
41
- maxAge: 0,
42
- name,
43
- secure: shouldUseSecureCookie(request),
44
- value: "",
45
- });
46
- }
47
- export function createSessionCookie(request, options, payload) {
48
- return serializeCookie({
49
- domain: options.cookieDomain,
50
- maxAge: SESSION_MAX_AGE_SECONDS,
51
- name: options.cookieName ?? AUTH_SERVICE_SESSION_COOKIE,
52
- secure: shouldUseSecureCookie(request),
53
- value: createSignedToken(payload, options.sessionSecret),
54
- });
55
- }
56
- //# sourceMappingURL=cookies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cookies.js","sourceRoot":"","sources":["../../src/hosted-service/cookies.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare function createSignedToken(payload: unknown, secret: string): string;
2
- export declare function parseSignedToken<T>(token: string | undefined, secret: string): T | null;
3
- //# sourceMappingURL=crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../src/hosted-service/crypto.ts"],"names":[],"mappings":"AA6BA,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAKjE;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI,CAYvF"}
@@ -1,39 +0,0 @@
1
- import { createHmac, timingSafeEqual } from "node:crypto";
2
- function encodePayload(value) {
3
- return Buffer.from(JSON.stringify(value)).toString("base64url");
4
- }
5
- function decodePayload(value) {
6
- try {
7
- return JSON.parse(Buffer.from(value, "base64url").toString("utf8"));
8
- }
9
- catch {
10
- return null;
11
- }
12
- }
13
- function signPayload(payload, secret) {
14
- return createHmac("sha256", secret).update(payload).digest("base64url");
15
- }
16
- function safeEqual(left, right) {
17
- const leftBuffer = Buffer.from(left);
18
- const rightBuffer = Buffer.from(right);
19
- if (leftBuffer.length !== rightBuffer.length) {
20
- return false;
21
- }
22
- return timingSafeEqual(leftBuffer, rightBuffer);
23
- }
24
- export function createSignedToken(payload, secret) {
25
- const encodedPayload = encodePayload(payload);
26
- const signature = signPayload(encodedPayload, secret);
27
- return `${encodedPayload}.${signature}`;
28
- }
29
- export function parseSignedToken(token, secret) {
30
- if (!token) {
31
- return null;
32
- }
33
- const [payload, signature] = token.split(".");
34
- if (!payload || !signature || !safeEqual(signPayload(payload, secret), signature)) {
35
- return null;
36
- }
37
- return decodePayload(payload);
38
- }
39
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/hosted-service/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,aAAa,CAAI,KAAa;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAM,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAe,EAAE,MAAc;IAClD,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,KAAa;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,eAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB,EAAE,MAAc;IAChE,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAEtD,OAAO,GAAG,cAAc,IAAI,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAI,KAAyB,EAAE,MAAc;IAC3E,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAE9C,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,CAAC,EAAE,CAAC;QAClF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,aAAa,CAAI,OAAO,CAAC,CAAC;AACnC,CAAC"}