firebase-admin-edge 1.0.21 → 1.0.23

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 (63) hide show
  1. package/README.md +58 -20
  2. package/dist/auth/auth-endpoint-errors.test.d.ts +2 -0
  3. package/dist/auth/auth-endpoint-errors.test.d.ts.map +1 -0
  4. package/dist/auth/auth-endpoint-errors.test.js +403 -0
  5. package/dist/auth/auth-endpoint-errors.test.js.map +1 -0
  6. package/dist/auth/cache-types.d.ts +7 -0
  7. package/dist/auth/cache-types.d.ts.map +1 -0
  8. package/dist/auth/cache-types.js +2 -0
  9. package/dist/auth/cache-types.js.map +1 -0
  10. package/dist/auth/cookie-types.d.ts +4 -0
  11. package/dist/auth/cookie-types.d.ts.map +1 -1
  12. package/dist/auth/errors.test.d.ts +2 -0
  13. package/dist/auth/errors.test.d.ts.map +1 -0
  14. package/dist/auth/errors.test.js +123 -0
  15. package/dist/auth/errors.test.js.map +1 -0
  16. package/dist/auth/firebase-admin-auth.d.ts +75 -10
  17. package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
  18. package/dist/auth/firebase-admin-auth.js +111 -28
  19. package/dist/auth/firebase-admin-auth.js.map +1 -1
  20. package/dist/auth/firebase-admin-auth.test.js +144 -35
  21. package/dist/auth/firebase-admin-auth.test.js.map +1 -1
  22. package/dist/auth/firebase-auth-endpoints.d.ts +50 -11
  23. package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
  24. package/dist/auth/firebase-auth-endpoints.js +101 -4
  25. package/dist/auth/firebase-auth-endpoints.js.map +1 -1
  26. package/dist/auth/firebase-auth-endpoints.test.js +331 -8
  27. package/dist/auth/firebase-auth-endpoints.test.js.map +1 -1
  28. package/dist/auth/firebase-auth.d.ts +43 -2
  29. package/dist/auth/firebase-auth.d.ts.map +1 -1
  30. package/dist/auth/firebase-auth.js +85 -7
  31. package/dist/auth/firebase-auth.js.map +1 -1
  32. package/dist/auth/firebase-auth.test.js +57 -4
  33. package/dist/auth/firebase-auth.test.js.map +1 -1
  34. package/dist/auth/firebase-jwt.d.ts.map +1 -1
  35. package/dist/auth/firebase-jwt.js +1 -0
  36. package/dist/auth/firebase-jwt.js.map +1 -1
  37. package/dist/auth/firebase-types.d.ts +17 -0
  38. package/dist/auth/firebase-types.d.ts.map +1 -1
  39. package/dist/auth/google-oauth.d.ts +5 -10
  40. package/dist/auth/google-oauth.d.ts.map +1 -1
  41. package/dist/auth/google-oauth.js +12 -1
  42. package/dist/auth/google-oauth.js.map +1 -1
  43. package/dist/auth/oauth.d.ts +2 -2
  44. package/dist/auth/oauth.d.ts.map +1 -1
  45. package/dist/auth/oauth.js +43 -23
  46. package/dist/auth/oauth.js.map +1 -1
  47. package/dist/auth/oauth.test.js +44 -172
  48. package/dist/auth/oauth.test.js.map +1 -1
  49. package/dist/firebase-edge-server.d.ts +28 -14
  50. package/dist/firebase-edge-server.d.ts.map +1 -1
  51. package/dist/firebase-edge-server.js +61 -35
  52. package/dist/firebase-edge-server.js.map +1 -1
  53. package/dist/firebase-edge-server.test.js +7 -7
  54. package/dist/firebase-edge-server.test.js.map +1 -1
  55. package/dist/index.d.ts +1 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +1 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/utils/token-cache.d.ts +9 -0
  60. package/dist/utils/token-cache.d.ts.map +1 -0
  61. package/dist/utils/token-cache.js +27 -0
  62. package/dist/utils/token-cache.js.map +1 -0
  63. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CACrC,YAAoB,EACpB,IAAY,EACZ,SAAiB;IAEjB,OAAO,IAAI,GAAG,CACV,2CAA2C;QACvC,IAAI,eAAe,CAAC;YAChB,SAAS;YACT,YAAY;YACZ,KAAK,EAAE,sBAAsB;YAC7B,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;aACrB,CAAC;SACL,CAAC,CAAC,QAAQ,EAAE,CACpB,CAAC,QAAQ,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,YAAoB,EACpB,IAAY,EACZ,SAAiB;IAEjB,OAAO,IAAI,GAAG,CACV,+CAA+C;QAC3C,IAAI,eAAe,CAAC;YAChB,SAAS;YACT,YAAY;YACZ,aAAa,EAAE,MAAM;YACrB,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EAAE,SAAS;YACtB,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;gBAClB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;aACrB,CAAC;SACL,CAAC,CAAC,QAAQ,EAAE,CACpB,CAAC,QAAQ,EAAE,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"oauth.js","sourceRoot":"","sources":["../../src/auth/oauth.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CACrC,YAAoB,EACpB,IAAY,EACZ,SAAiB,EACjB,gBAAyC,EACzC,SAAoB;IAEpB,6DAA6D;IAC7D,MAAM,UAAU,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtE,MAAM,MAAM,GAA2B;QACnC,SAAS;QACT,YAAY;QACZ,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;YAClB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL,CAAC;IAEF,oEAAoE;IACpE,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,GAAG,CACV,2CAA2C;QACvC,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAC7C,CAAC,QAAQ,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,yBAAyB,CACrC,YAAoB,EACpB,IAAY,EACZ,SAAiB,EACjB,YAAqB,EACrB,gBAAyC,EACzC,SAAoB;IAEpB,6DAA6D;IAC7D,MAAM,UAAU,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAEtE,MAAM,MAAM,GAA2B;QACnC,SAAS;QACT,YAAY;QACZ,aAAa,EAAE,MAAM;QACrB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QACvB,WAAW,EAAE,SAAS;QACtB,MAAM,EAAE,SAAS;QACjB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC;YAClB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL,CAAC;IAEF,gEAAgE;IAChE,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,YAAY,CAAC;IAC7B,CAAC;IAED,iFAAiF;IACjF,IAAI,gBAAgB,EAAE,CAAC;QACnB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,GAAG,CACV,+CAA+C;QAC3C,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAC7C,CAAC,QAAQ,EAAE,CAAC;AACjB,CAAC"}
@@ -1,21 +1,5 @@
1
- import { describe, expect, it, beforeEach, vi } from 'vitest';
1
+ import { describe, expect, it } from 'vitest';
2
2
  import { createGitHubOAuthLoginUrl, createGoogleOAuthLoginUrl } from './oauth.js';
3
- import { exchangeCodeForGitHubIdToken } from './github-oauth.js';
4
- import { exchangeCodeForGoogleIdToken, getToken } from './google-oauth.js';
5
- import { FirebaseEdgeError } from './errors.js';
6
- import { GitHubErrorInfo } from './auth-error-codes.js';
7
- const restFetchMock = vi.hoisted(() => vi.fn());
8
- const signJWTMock = vi.hoisted(() => vi.fn());
9
- vi.mock('../rest-fetch.js', () => ({
10
- restFetch: restFetchMock
11
- }));
12
- vi.mock('./firebase-jwt.js', () => ({
13
- signJWT: signJWTMock
14
- }));
15
- beforeEach(() => {
16
- restFetchMock.mockReset();
17
- signJWTMock.mockReset();
18
- });
19
3
  describe('OAuth', () => {
20
4
  describe('URL Creation', () => {
21
5
  describe('createGitHubOAuthLoginUrl', () => {
@@ -40,6 +24,23 @@ describe('OAuth', () => {
40
24
  expect(state.next).toBe('/dashboard?tab=settings&theme=dark');
41
25
  expect(state.provider).toBe('github');
42
26
  });
27
+ it('adds custom parameters to URL', () => {
28
+ const url = createGitHubOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', { login: 'testuser', allow_signup: 'false' });
29
+ const parsed = new URL(url);
30
+ expect(parsed.searchParams.get('login')).toBe('testuser');
31
+ expect(parsed.searchParams.get('allow_signup')).toBe('false');
32
+ });
33
+ it('adds additional scopes to default scopes', () => {
34
+ const url = createGitHubOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', undefined, ['repo', 'gist']);
35
+ const parsed = new URL(url);
36
+ expect(parsed.searchParams.get('scope')).toBe('read:user user:email repo gist');
37
+ });
38
+ it('combines custom parameters and additional scopes', () => {
39
+ const url = createGitHubOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', { login: 'testuser' }, ['repo']);
40
+ const parsed = new URL(url);
41
+ expect(parsed.searchParams.get('login')).toBe('testuser');
42
+ expect(parsed.searchParams.get('scope')).toBe('read:user user:email repo');
43
+ });
43
44
  });
44
45
  describe('createGoogleOAuthLoginUrl', () => {
45
46
  it('builds expected Google consent screen URL', () => {
@@ -57,6 +58,32 @@ describe('OAuth', () => {
57
58
  provider: 'google'
58
59
  });
59
60
  });
61
+ it('adds language code parameter', () => {
62
+ const url = createGoogleOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', 'es');
63
+ const parsed = new URL(url);
64
+ expect(parsed.searchParams.get('hl')).toBe('es');
65
+ });
66
+ it('adds custom parameters to URL', () => {
67
+ const url = createGoogleOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', undefined, { login_hint: 'user@example.com', hd: 'example.com' });
68
+ const parsed = new URL(url);
69
+ expect(parsed.searchParams.get('login_hint')).toBe('user@example.com');
70
+ expect(parsed.searchParams.get('hd')).toBe('example.com');
71
+ });
72
+ it('adds additional scopes to default scopes', () => {
73
+ const url = createGoogleOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', undefined, undefined, [
74
+ 'https://www.googleapis.com/auth/calendar.readonly',
75
+ 'https://www.googleapis.com/auth/drive.file'
76
+ ]);
77
+ const parsed = new URL(url);
78
+ expect(parsed.searchParams.get('scope')).toBe('openid email profile https://www.googleapis.com/auth/calendar.readonly https://www.googleapis.com/auth/drive.file');
79
+ });
80
+ it('combines language code, custom parameters, and additional scopes', () => {
81
+ const url = createGoogleOAuthLoginUrl('https://example.com/callback', '/next/path', 'client-123', 'fr', { login_hint: 'user@example.com' }, ['https://www.googleapis.com/auth/calendar.readonly']);
82
+ const parsed = new URL(url);
83
+ expect(parsed.searchParams.get('hl')).toBe('fr');
84
+ expect(parsed.searchParams.get('login_hint')).toBe('user@example.com');
85
+ expect(parsed.searchParams.get('scope')).toBe('openid email profile https://www.googleapis.com/auth/calendar.readonly');
86
+ });
60
87
  });
61
88
  describe('URL encoding and safety', () => {
62
89
  it('properly encodes special characters in GitHub URLs', () => {
@@ -74,160 +101,5 @@ describe('OAuth', () => {
74
101
  });
75
102
  });
76
103
  });
77
- describe('GitHub OAuth', () => {
78
- const payload = {
79
- code: 'auth-code',
80
- redirect_uri: 'https://example.com/callback',
81
- client_id: 'client-123',
82
- client_secret: 'secret-xyz'
83
- };
84
- describe('exchangeCodeForGitHubIdToken', () => {
85
- it('returns token data when REST call succeeds', async () => {
86
- const expectedData = {
87
- access_token: 'gho_token',
88
- token_type: 'bearer',
89
- scope: 'read:user,user:email'
90
- };
91
- restFetchMock.mockResolvedValue({
92
- data: expectedData,
93
- error: null
94
- });
95
- const result = await exchangeCodeForGitHubIdToken(payload.code, payload.redirect_uri, payload.client_id, payload.client_secret);
96
- expect(restFetchMock).toHaveBeenCalledWith('https://github.com/login/oauth/access_token', expect.objectContaining({
97
- body: expect.objectContaining(payload),
98
- form: true,
99
- acceptJson: true
100
- }));
101
- expect(result).toEqual({ data: expectedData, error: null });
102
- });
103
- it('handles incorrect client credentials error', async () => {
104
- const githubError = {
105
- error: 'incorrect_client_credentials',
106
- error_description: 'The client_id and/or client_secret passed are incorrect.'
107
- };
108
- restFetchMock.mockResolvedValue({
109
- data: null,
110
- error: githubError
111
- });
112
- const result = await exchangeCodeForGitHubIdToken(payload.code, payload.redirect_uri, payload.client_id, payload.client_secret);
113
- expect(result.data).toBeNull();
114
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
115
- expect(result.error?.code).toBe('auth/github-incorrect-client-credentials');
116
- expect(result.error?.message).toBe(GitHubErrorInfo.GITHUB_INCORRECT_CLIENT_CREDENTIALS.message);
117
- });
118
- it('handles bad verification code error', async () => {
119
- const githubError = {
120
- error: 'bad_verification_code',
121
- error_description: 'The code passed is incorrect or expired.'
122
- };
123
- restFetchMock.mockResolvedValue({
124
- data: null,
125
- error: githubError
126
- });
127
- const result = await exchangeCodeForGitHubIdToken(payload.code, payload.redirect_uri, payload.client_id, payload.client_secret);
128
- expect(result.data).toBeNull();
129
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
130
- expect(result.error?.code).toBe('auth/github-bad-verification-code');
131
- });
132
- });
133
- });
134
- describe('Google OAuth', () => {
135
- const payload = {
136
- code: 'auth-code',
137
- redirect_uri: 'https://example.com/callback',
138
- client_id: 'client-123',
139
- client_secret: 'secret-xyz'
140
- };
141
- describe('exchangeCodeForGoogleIdToken', () => {
142
- it('returns token data when REST call succeeds', async () => {
143
- const expectedData = { id_token: 'id', access_token: 'access' };
144
- restFetchMock.mockResolvedValue({
145
- data: expectedData,
146
- error: null
147
- });
148
- const result = await exchangeCodeForGoogleIdToken(payload.code, payload.redirect_uri, payload.client_id, payload.client_secret);
149
- expect(restFetchMock).toHaveBeenCalledWith('https://oauth2.googleapis.com/token', expect.objectContaining({
150
- body: expect.objectContaining(payload),
151
- form: true
152
- }));
153
- expect(result).toEqual({ data: expectedData, error: null });
154
- });
155
- it('returns upstream error when REST call fails', async () => {
156
- const apiError = { code: 400, message: 'invalid_grant' };
157
- restFetchMock.mockResolvedValue({
158
- data: null,
159
- error: { error: apiError }
160
- });
161
- const result = await exchangeCodeForGoogleIdToken(payload.code, payload.redirect_uri, payload.client_id, payload.client_secret);
162
- expect(result.data).toBeNull();
163
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
164
- expect(result.error?.code).toBe('auth/google-invalid-grant');
165
- });
166
- it('handles invalid client error', async () => {
167
- const apiError = { code: 401, message: 'invalid_client' };
168
- restFetchMock.mockResolvedValue({
169
- data: null,
170
- error: { error: apiError }
171
- });
172
- const result = await exchangeCodeForGoogleIdToken(payload.code, payload.redirect_uri, payload.client_id, payload.client_secret);
173
- expect(result.data).toBeNull();
174
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
175
- expect(result.error?.code).toBe('auth/google-invalid-client');
176
- });
177
- });
178
- describe('getToken', () => {
179
- const serviceAccount = {
180
- client_email: 'test@project.iam.gserviceaccount.com',
181
- private_key: '-----BEGIN PRIVATE KEY-----\nABC\n-----END PRIVATE KEY-----\n',
182
- token_uri: 'https://oauth2.googleapis.com/token'
183
- };
184
- it('requests new token with signed JWT', async () => {
185
- const fakeFetch = vi.fn();
186
- const tokenData = { access_token: 'ya29', expires_in: 3600 };
187
- signJWTMock.mockResolvedValue({
188
- data: 'signed-jwt',
189
- error: null
190
- });
191
- restFetchMock.mockResolvedValue({
192
- data: tokenData,
193
- error: null
194
- });
195
- const result = await getToken(serviceAccount, fakeFetch);
196
- expect(signJWTMock).toHaveBeenCalledWith(serviceAccount);
197
- expect(result).toEqual({ data: tokenData, error: null });
198
- });
199
- it('short-circuits when signJWT returns error', async () => {
200
- const jwtError = { code: 401, message: 'bad cert', errors: [] };
201
- signJWTMock.mockResolvedValue({ data: null, error: jwtError });
202
- const result = await getToken(serviceAccount);
203
- expect(restFetchMock).not.toHaveBeenCalled();
204
- expect(result.data).toBeNull();
205
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
206
- expect(result.error?.code).toBe('auth/jwt-sign-failed');
207
- });
208
- it('reports missing JWT data', async () => {
209
- signJWTMock.mockResolvedValue({ data: null, error: null });
210
- const result = await getToken(serviceAccount);
211
- expect(result.data).toBeNull();
212
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
213
- expect(result.error?.code).toBe('auth/jwt-data-missing');
214
- });
215
- it('returns REST error payload from Google', async () => {
216
- const apiError = { code: 503, message: 'unavailable' };
217
- signJWTMock.mockResolvedValue({
218
- data: 'signed-jwt',
219
- error: null
220
- });
221
- restFetchMock.mockResolvedValue({
222
- data: null,
223
- error: { error: apiError }
224
- });
225
- const result = await getToken(serviceAccount);
226
- expect(result.data).toBeNull();
227
- expect(result.error).toBeInstanceOf(FirebaseEdgeError);
228
- expect(result.error?.code).toBe('auth/google-temporarily-unavailable');
229
- });
230
- });
231
- });
232
104
  });
233
105
  //# sourceMappingURL=oauth.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth.test.js","sourceRoot":"","sources":["../../src/auth/oauth.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth.test.js","sourceRoot":"","sources":["../../src/auth/oauth.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
- import type { GetSession, SetSession } from './auth/cookie-types.js';
1
+ import type { CookieConfig, CookieOptions } from './auth/cookie-types.js';
2
2
  import { FirebaseAdminAuth } from './auth/firebase-admin-auth.js';
3
3
  import { FirebaseAuth } from './auth/firebase-auth.js';
4
4
  import type { FirebaseConfig, ServiceAccount } from './auth/firebase-types.js';
5
5
  import { FirebaseEdgeError } from './auth/errors.js';
6
+ import type { CacheConfig } from './auth/cache-types.js';
6
7
  /**
7
8
  * Official Firebase OAuth providers
8
9
  */
@@ -12,11 +13,6 @@ type ProviderConfig = Partial<Record<ProviderList, {
12
13
  client_id: string;
13
14
  client_secret: string;
14
15
  }>>;
15
- type CookieConfig = {
16
- getSession: GetSession;
17
- saveSession: SetSession;
18
- sessionName?: string;
19
- };
20
16
  /**
21
17
  * Creates a Firebase Edge Server for authentication and session management in edge environments.
22
18
  *
@@ -24,18 +20,29 @@ type CookieConfig = {
24
20
  * @param config.serviceAccount Firebase service account for admin operations
25
21
  * @param config.firebaseConfig Firebase client configuration
26
22
  * @param config.providers OAuth provider configurations (Google, GitHub, etc.)
27
- * @param config.cookies Cookie management functions
23
+ * @param config.cookies Cookie management functions (getSession, saveSession)
24
+ * @param config.redirectUri OAuth callback redirect URI
25
+ * @param config.cache Optional cache implementation for token caching
26
+ * @param config.cacheName Optional cache key name for token storage
27
+ * @param config.cookieName Optional custom session cookie name (defaults to '__session')
28
+ * @param config.cookieOptions Optional cookie configuration overrides
28
29
  * @param config.tenantId Optional Firebase Auth tenant ID for multi-tenancy
30
+ * @param config.autoLinkProviders Optional flag to automatically link accounts with same email
29
31
  * @param config.fetch Optional custom fetch implementation
30
- * @returns Object with authentication methods
32
+ * @returns Object with authentication methods (auth, adminAuth, signOut, getUser, getGoogleLoginURL, getGitHubLoginURL, signInWithCallback, getToken)
31
33
  */
32
- export declare function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, tenantId, redirectUri, fetch }: {
34
+ export declare function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, cookieName, cookieOptions, cache, cacheName, tenantId, redirectUri, autoLinkProviders, fetch }: {
33
35
  serviceAccount: ServiceAccount;
34
36
  firebaseConfig: FirebaseConfig;
35
37
  providers: ProviderConfig;
36
38
  cookies: CookieConfig;
39
+ cache?: CacheConfig;
40
+ cacheName?: string;
41
+ cookieName?: string;
42
+ cookieOptions?: Partial<CookieOptions>;
37
43
  redirectUri: string;
38
44
  tenantId?: string;
45
+ autoLinkProviders?: boolean;
39
46
  fetch?: typeof globalThis.fetch;
40
47
  }): {
41
48
  auth: FirebaseAuth;
@@ -46,14 +53,21 @@ export declare function createFirebaseEdgeServer({ serviceAccount, firebaseConfi
46
53
  error: null;
47
54
  } | {
48
55
  data: null;
49
- error: Error;
56
+ error: FirebaseEdgeError;
50
57
  } | {
51
58
  data: import("./auth/firebase-types.js").FirebaseIdTokenPayload;
52
59
  error: null;
53
60
  }>;
54
- getGoogleLoginURL: (next: string) => Promise<string>;
55
- getGitHubLoginURL: (next: string) => Promise<string>;
56
- signInWithCallback: (url: URL) => Promise<{
61
+ getGoogleLoginURL: (next: string, options?: {
62
+ languageCode?: string;
63
+ customParameters?: Record<string, string>;
64
+ addScopes?: string[];
65
+ }) => Promise<string>;
66
+ getGitHubLoginURL: (next: string, options?: {
67
+ customParameters?: Record<string, string>;
68
+ addScopes?: string[];
69
+ }) => Promise<string>;
70
+ signInWithCallback: (url: URL, expiresIn_ms?: number) => Promise<{
57
71
  error: FirebaseEdgeError;
58
72
  data?: undefined;
59
73
  } | {
@@ -62,7 +76,7 @@ export declare function createFirebaseEdgeServer({ serviceAccount, firebaseConfi
62
76
  }>;
63
77
  getToken: () => Promise<{
64
78
  data: null;
65
- error: Error;
79
+ error: FirebaseEdgeError;
66
80
  } | {
67
81
  data: null;
68
82
  error: null;
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-edge-server.d.ts","sourceRoot":"","sources":["../src/firebase-edge-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAER,UAAU,EACV,UAAU,EACb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAarD;;GAEG;AACH,eAAO,MAAM,iCAAiC,kGASpC,CAAC;AAEX,KAAK,YAAY,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,KAAK,cAAc,GAAG,OAAO,CACzB,MAAM,CACF,YAAY,EACZ;IACI,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB,CACJ,CACJ,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,cAAc,EACd,cAAc,EACd,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,EACX,KAAK,EACR,EAAE;IACC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACnC;;;;6BAwCwC,OAAO;;;;;;;;;;8BA4CL,MAAM;8BAqBN,MAAM;8BAoBN,GAAG;;;;;;;;;;;;;;;;;EA+O7C"}
1
+ {"version":3,"file":"firebase-edge-server.d.ts","sourceRoot":"","sources":["../src/firebase-edge-server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAO/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAYzD;;GAEG;AACH,eAAO,MAAM,iCAAiC,kGASpC,CAAC;AAEX,KAAK,YAAY,GAAG,CAAC,OAAO,iCAAiC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEvE,KAAK,cAAc,GAAG,OAAO,CACzB,MAAM,CACF,YAAY,EACZ;IACI,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACzB,CACJ,CACJ,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,EACrC,cAAc,EACd,cAAc,EACd,SAAS,EACT,OAAO,EACP,UAAU,EACV,aAAa,EACb,KAAK,EACL,SAAS,EACT,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,KAAK,EACR,EAAE;IACC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACnC;;;;6BAuDwC,OAAO;;;;;;;;;;8BAiDlC,MAAM,YACF;QACN,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB;8BAkCK,MAAM,YACF;QACN,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC1C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB;8BA6BI,GAAG,iBACM,MAAM;;;;;;;;;;;;;;;;;EAwP3B"}
@@ -6,13 +6,13 @@ import { exchangeCodeForGoogleIdToken } from './auth/google-oauth.js';
6
6
  import { createGitHubOAuthLoginUrl, createGoogleOAuthLoginUrl } from './auth/oauth.js';
7
7
  import { FirebaseEdgeError } from './auth/errors.js';
8
8
  import { FirebaseEdgeServerErrorInfo } from './firebase-edge-errors.js';
9
- const DEFAULT_SESSION_NAME = '__session';
9
+ const COOKIE_LIFETIME_SECONDS = 60 * 60 * 24 * 5; // 5 days
10
10
  const COOKIE_OPTIONS = {
11
11
  httpOnly: true,
12
12
  secure: true,
13
13
  sameSite: 'lax',
14
14
  path: '/',
15
- maxAge: 60 * 60 * 24 * 5 * 1000
15
+ maxAge: COOKIE_LIFETIME_SECONDS
16
16
  };
17
17
  /**
18
18
  * Official Firebase OAuth providers
@@ -34,31 +34,42 @@ export const OFFICIAL_FIREBASE_OAUTH_PROVIDERS = [
34
34
  * @param config.serviceAccount Firebase service account for admin operations
35
35
  * @param config.firebaseConfig Firebase client configuration
36
36
  * @param config.providers OAuth provider configurations (Google, GitHub, etc.)
37
- * @param config.cookies Cookie management functions
37
+ * @param config.cookies Cookie management functions (getSession, saveSession)
38
+ * @param config.redirectUri OAuth callback redirect URI
39
+ * @param config.cache Optional cache implementation for token caching
40
+ * @param config.cacheName Optional cache key name for token storage
41
+ * @param config.cookieName Optional custom session cookie name (defaults to '__session')
42
+ * @param config.cookieOptions Optional cookie configuration overrides
38
43
  * @param config.tenantId Optional Firebase Auth tenant ID for multi-tenancy
44
+ * @param config.autoLinkProviders Optional flag to automatically link accounts with same email
39
45
  * @param config.fetch Optional custom fetch implementation
40
- * @returns Object with authentication methods
46
+ * @returns Object with authentication methods (auth, adminAuth, signOut, getUser, getGoogleLoginURL, getGitHubLoginURL, signInWithCallback, getToken)
41
47
  */
42
- export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, tenantId, redirectUri, fetch }) {
43
- const sessionName = cookies.sessionName || DEFAULT_SESSION_NAME;
44
- const getSession = cookies.getSession;
45
- const saveSession = cookies.saveSession;
48
+ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, providers, cookies, cookieName, cookieOptions, cache, cacheName, tenantId, redirectUri, autoLinkProviders, fetch }) {
49
+ // Cookies
50
+ const _cookieName = cookieName || '__session';
51
+ const { getSession, saveSession } = cookies;
52
+ const _cookieOptions = { ...COOKIE_OPTIONS, ...cookieOptions };
53
+ // Fetch
46
54
  const fetchImpl = fetch ?? globalThis.fetch;
47
- const auth = new FirebaseAuth(firebaseConfig, tenantId, fetchImpl);
48
- const adminAuth = new FirebaseAdminAuth(serviceAccount, tenantId, fetchImpl);
55
+ const cacheImpl = cache ?? undefined;
56
+ // Auth instances
57
+ const auth = new FirebaseAuth(firebaseConfig, redirectUri, tenantId, fetchImpl);
58
+ const adminAuth = new FirebaseAdminAuth(serviceAccount, tenantId, fetchImpl, cacheImpl, cacheName);
49
59
  /**
50
- * Clears the session cookie
51
- * @internal
60
+ * Clears the session cookie by setting its maxAge to 0.
52
61
  */
53
62
  function deleteSession() {
54
- saveSession(sessionName, '', {
55
- ...COOKIE_OPTIONS,
63
+ saveSession(_cookieName, '', {
64
+ ..._cookieOptions,
56
65
  maxAge: 0
57
66
  });
58
67
  }
59
68
  /**
60
69
  * Signs out the current user by clearing the session cookie.
61
70
  * Note: This only removes the server-side session, not Firebase client tokens.
71
+ *
72
+ * @returns void
62
73
  */
63
74
  function signOut() {
64
75
  deleteSession();
@@ -67,11 +78,11 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
67
78
  /**
68
79
  * Gets the current authenticated user from the session cookie.
69
80
  *
70
- * @param checkRevoked Whether to check if the token has been revoked
71
- * @returns Promise with user data and error
81
+ * @param checkRevoked Whether to check if the token has been revoked (defaults to false)
82
+ * @returns Promise resolving to object with decoded token data or null, and error if any
72
83
  */
73
84
  async function getUser(checkRevoked = false) {
74
- const sessionCookie = await getSession(sessionName);
85
+ const sessionCookie = await getSession(_cookieName);
75
86
  if (!sessionCookie) {
76
87
  return {
77
88
  data: null,
@@ -101,40 +112,49 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
101
112
  /**
102
113
  * Generates a Google OAuth login URL and clears any existing session.
103
114
  *
104
- * @param next State parameter for the OAuth flow
105
- * @returns Google OAuth login URL
106
- * @throws Error if Google provider not configured
115
+ * @param next State parameter for the OAuth flow (typically the redirect path after login)
116
+ * @param options Optional configuration object
117
+ * @param options.languageCode ISO 639-1 language code (e.g., 'en', 'es', 'fr')
118
+ * @param options.customParameters Custom OAuth parameters (e.g., { login_hint: 'user@example.com', hd: 'example.com' })
119
+ * @param options.addScopes Additional OAuth scopes (e.g., ['https://www.googleapis.com/auth/calendar.readonly'])
120
+ * @returns Promise resolving to Google OAuth login URL string
121
+ * @throws {FirebaseEdgeError} If Google provider is not configured
107
122
  */
108
- async function getGoogleLoginURL(next) {
123
+ async function getGoogleLoginURL(next, options) {
109
124
  deleteSession();
110
125
  if (!providers.google) {
111
126
  throw new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_GOOGLE_PROVIDER_NOT_CONFIGURED);
112
127
  }
113
128
  const { client_id } = providers.google;
114
- return createGoogleOAuthLoginUrl(redirectUri, next, client_id);
129
+ return createGoogleOAuthLoginUrl(redirectUri, next, client_id, options?.languageCode, options?.customParameters, options?.addScopes);
115
130
  }
116
131
  /**
117
132
  * Generates a GitHub OAuth login URL and clears any existing session.
133
+ * Note: GitHub doesn't support language parameters - language is determined by user's browser/account settings.
118
134
  *
119
- * @param next State parameter for the OAuth flow
120
- * @returns GitHub OAuth login URL
121
- * @throws Error if GitHub provider not configured
135
+ * @param next State parameter for the OAuth flow (typically the redirect path after login)
136
+ * @param options Optional configuration object
137
+ * @param options.customParameters Custom OAuth parameters (e.g., { login: 'username', allow_signup: 'false' })
138
+ * @param options.addScopes Additional OAuth scopes (e.g., ['repo', 'gist'])
139
+ * @returns Promise resolving to GitHub OAuth login URL string
140
+ * @throws {FirebaseEdgeError} If GitHub provider is not configured
122
141
  */
123
- async function getGitHubLoginURL(next) {
142
+ async function getGitHubLoginURL(next, options) {
124
143
  deleteSession();
125
144
  if (!providers.github) {
126
145
  throw new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_GITHUB_PROVIDER_NOT_CONFIGURED);
127
146
  }
128
147
  const { client_id } = providers.github;
129
- return createGitHubOAuthLoginUrl(redirectUri, next, client_id);
148
+ return createGitHubOAuthLoginUrl(redirectUri, next, client_id, options?.customParameters, options?.addScopes);
130
149
  }
131
150
  /**
132
151
  * Completes OAuth flow by exchanging authorization code for a session.
133
152
  *
134
153
  * @param url URL containing authorization code and state from OAuth callback
135
- * @returns Promise with error information
154
+ * @param expiresIn_ms Session cookie expiration time in milliseconds (defaults to 5 days)
155
+ * @returns Promise resolving to object with next redirect path and error if any
136
156
  */
137
- async function signInWithCallback(url) {
157
+ async function signInWithCallback(url, expiresIn_ms = COOKIE_LIFETIME_SECONDS * 1000) {
138
158
  const code = url.searchParams.get('code');
139
159
  const state = url.searchParams.get('state');
140
160
  if (!code) {
@@ -192,7 +212,7 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
192
212
  };
193
213
  }
194
214
  const providerId = provider === 'google' ? 'google.com' : 'github.com';
195
- const { data: signInData, error: signInError } = await auth.signInWithProvider(oauthToken, redirectUri, providerId);
215
+ const { data: signInData, error: signInError } = await auth.signInWithProvider(oauthToken, providerId);
196
216
  if (signInError) {
197
217
  return {
198
218
  error: signInError
@@ -204,6 +224,13 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
204
224
  };
205
225
  }
206
226
  if (signInData.needConfirmation) {
227
+ if (autoLinkProviders) {
228
+ // Implement auto-linking logic here
229
+ }
230
+ // const uid = await admin.getUserByEmail(email)
231
+ // const customToken = await createCustomToken(uid)
232
+ // const firebaseToken = await signInWithCustomToken(customToken)
233
+ // linkWithCredential(firebaseToken, providerToken, providerId)
207
234
  return {
208
235
  error: new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_ACCOUNT_EXISTS_DIFFERENT_METHOD)
209
236
  };
@@ -217,9 +244,7 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
217
244
  error: new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_NO_ID_TOKEN)
218
245
  };
219
246
  }
220
- const { data: sessionCookie, error: sessionError } = await adminAuth.createSessionCookie(idToken, {
221
- expiresIn: 60 * 60 * 24 * 5 * 1000
222
- });
247
+ const { data: sessionCookie, error: sessionError } = await adminAuth.createSessionCookie(idToken, expiresIn_ms);
223
248
  if (sessionError) {
224
249
  return {
225
250
  error: sessionError
@@ -230,7 +255,7 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
230
255
  error: new FirebaseEdgeError(FirebaseEdgeServerErrorInfo.EDGE_NO_SESSION_COOKIE)
231
256
  };
232
257
  }
233
- saveSession(sessionName, sessionCookie, COOKIE_OPTIONS);
258
+ saveSession(_cookieName, sessionCookie, _cookieOptions);
234
259
  return {
235
260
  data: next,
236
261
  error: null
@@ -238,8 +263,9 @@ export function createFirebaseEdgeServer({ serviceAccount, firebaseConfig, provi
238
263
  }
239
264
  /**
240
265
  * Generates fresh Firebase client tokens for the authenticated user.
266
+ * Creates a custom token and exchanges it for a Firebase ID token and refresh token.
241
267
  *
242
- * @returns Promise with token data and error
268
+ * @returns Promise resolving to object with Firebase tokens (idToken, refreshToken, expiresIn) and error if any
243
269
  */
244
270
  async function getToken() {
245
271
  const { data: verifiedToken, error: verifyError } = await getUser();
@@ -1 +1 @@
1
- {"version":3,"file":"firebase-edge-server.js","sourceRoot":"","sources":["../src/firebase-edge-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"firebase-edge-server.js","sourceRoot":"","sources":["../src/firebase-edge-server.ts"],"names":[],"mappings":"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"}