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.
- package/README.md +58 -20
- package/dist/auth/auth-endpoint-errors.test.d.ts +2 -0
- package/dist/auth/auth-endpoint-errors.test.d.ts.map +1 -0
- package/dist/auth/auth-endpoint-errors.test.js +403 -0
- package/dist/auth/auth-endpoint-errors.test.js.map +1 -0
- package/dist/auth/cache-types.d.ts +7 -0
- package/dist/auth/cache-types.d.ts.map +1 -0
- package/dist/auth/cache-types.js +2 -0
- package/dist/auth/cache-types.js.map +1 -0
- package/dist/auth/cookie-types.d.ts +4 -0
- package/dist/auth/cookie-types.d.ts.map +1 -1
- package/dist/auth/errors.test.d.ts +2 -0
- package/dist/auth/errors.test.d.ts.map +1 -0
- package/dist/auth/errors.test.js +123 -0
- package/dist/auth/errors.test.js.map +1 -0
- package/dist/auth/firebase-admin-auth.d.ts +75 -10
- package/dist/auth/firebase-admin-auth.d.ts.map +1 -1
- package/dist/auth/firebase-admin-auth.js +111 -28
- package/dist/auth/firebase-admin-auth.js.map +1 -1
- package/dist/auth/firebase-admin-auth.test.js +144 -35
- package/dist/auth/firebase-admin-auth.test.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.d.ts +50 -11
- package/dist/auth/firebase-auth-endpoints.d.ts.map +1 -1
- package/dist/auth/firebase-auth-endpoints.js +101 -4
- package/dist/auth/firebase-auth-endpoints.js.map +1 -1
- package/dist/auth/firebase-auth-endpoints.test.js +331 -8
- package/dist/auth/firebase-auth-endpoints.test.js.map +1 -1
- package/dist/auth/firebase-auth.d.ts +43 -2
- package/dist/auth/firebase-auth.d.ts.map +1 -1
- package/dist/auth/firebase-auth.js +85 -7
- package/dist/auth/firebase-auth.js.map +1 -1
- package/dist/auth/firebase-auth.test.js +57 -4
- package/dist/auth/firebase-auth.test.js.map +1 -1
- package/dist/auth/firebase-jwt.d.ts.map +1 -1
- package/dist/auth/firebase-jwt.js +1 -0
- package/dist/auth/firebase-jwt.js.map +1 -1
- package/dist/auth/firebase-types.d.ts +17 -0
- package/dist/auth/firebase-types.d.ts.map +1 -1
- package/dist/auth/google-oauth.d.ts +5 -10
- package/dist/auth/google-oauth.d.ts.map +1 -1
- package/dist/auth/google-oauth.js +12 -1
- package/dist/auth/google-oauth.js.map +1 -1
- package/dist/auth/oauth.d.ts +2 -2
- package/dist/auth/oauth.d.ts.map +1 -1
- package/dist/auth/oauth.js +43 -23
- package/dist/auth/oauth.js.map +1 -1
- package/dist/auth/oauth.test.js +44 -172
- package/dist/auth/oauth.test.js.map +1 -1
- package/dist/firebase-edge-server.d.ts +28 -14
- package/dist/firebase-edge-server.d.ts.map +1 -1
- package/dist/firebase-edge-server.js +61 -35
- package/dist/firebase-edge-server.js.map +1 -1
- package/dist/firebase-edge-server.test.js +7 -7
- package/dist/firebase-edge-server.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/token-cache.d.ts +9 -0
- package/dist/utils/token-cache.d.ts.map +1 -0
- package/dist/utils/token-cache.js +27 -0
- package/dist/utils/token-cache.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -23,9 +23,12 @@ npm i firebase-admin-edge
|
|
|
23
23
|
### Basic setup
|
|
24
24
|
|
|
25
25
|
```typescript
|
|
26
|
-
import { createFirebaseEdgeServer } from 'firebase-admin-edge';
|
|
26
|
+
import { createFirebaseEdgeServer, TokenCache } from 'firebase-admin-edge';
|
|
27
27
|
import { getCookie, setCookie } from 'your-framework-library';
|
|
28
28
|
|
|
29
|
+
// Optional: Create a cache for service account tokens (recommended for performance)
|
|
30
|
+
const cache = new TokenCache();
|
|
31
|
+
|
|
29
32
|
// Create the edge server once during initialization. Keep secrets out of
|
|
30
33
|
// source control — load the `serviceAccount` and client secrets from
|
|
31
34
|
// environment variables or a secret manager.
|
|
@@ -44,6 +47,10 @@ export const firebaseServer = createFirebaseEdgeServer({
|
|
|
44
47
|
google: {
|
|
45
48
|
client_id: 'your-google-oauth-client-id',
|
|
46
49
|
client_secret: 'your-google-oauth-client-secret'
|
|
50
|
+
},
|
|
51
|
+
github: {
|
|
52
|
+
client_id: 'your-github-oauth-client-id',
|
|
53
|
+
client_secret: 'your-github-oauth-client-secret'
|
|
47
54
|
}
|
|
48
55
|
},
|
|
49
56
|
cookies: {
|
|
@@ -51,8 +58,27 @@ export const firebaseServer = createFirebaseEdgeServer({
|
|
|
51
58
|
getSession: (name) => getCookie(name),
|
|
52
59
|
saveSession: (name, value, options) => setCookie(name, value, options)
|
|
53
60
|
},
|
|
61
|
+
// Optional: Token caching for improved performance (tokens cached for 1 hour)
|
|
62
|
+
cache: {
|
|
63
|
+
getCache: (name) => cache.get(name),
|
|
64
|
+
setCache: (name, value, ttl) => cache.set(name, value, ttl)
|
|
65
|
+
},
|
|
66
|
+
// Optional: Custom session cookie name (defaults to '__session')
|
|
67
|
+
cookieName: '__session',
|
|
68
|
+
// Optional: Custom cookie options
|
|
69
|
+
cookieOptions: {
|
|
70
|
+
httpOnly: true,
|
|
71
|
+
secure: true,
|
|
72
|
+
sameSite: 'lax',
|
|
73
|
+
path: '/',
|
|
74
|
+
maxAge: 60 * 60 * 24 * 5 // 5 days
|
|
75
|
+
},
|
|
54
76
|
// OAuth callback URL (registered with your provider)
|
|
55
|
-
redirectUri: 'https://example.com/auth/callback'
|
|
77
|
+
redirectUri: 'https://example.com/auth/callback',
|
|
78
|
+
// Optional: Tenant ID for multi-tenancy
|
|
79
|
+
tenantId: 'your-tenant-id',
|
|
80
|
+
// Optional: Automatically link accounts with same email
|
|
81
|
+
autoLinkProviders: false
|
|
56
82
|
});
|
|
57
83
|
```
|
|
58
84
|
|
|
@@ -99,29 +125,41 @@ redirect(302, '/');
|
|
|
99
125
|
- ✅ **Zero Dependencies** - Uses only fetch API and jose
|
|
100
126
|
- ✅ **TypeScript Support** - Full type safety and IntelliSense
|
|
101
127
|
- ✅ **Session Management** - Secure HTTP-only cookies
|
|
102
|
-
- ✅ **
|
|
128
|
+
- ✅ **OAuth Support** - Google and GitHub OAuth 2.0 flows
|
|
103
129
|
- ✅ **Token Management** - Generate client tokens from server sessions
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
- ☐ Magic Link (auto save email
|
|
111
|
-
- ☐
|
|
112
|
-
- ☐
|
|
113
|
-
- ☐
|
|
130
|
+
- ✅ **Token Caching** - Optional caching for service account tokens (1-hour TTL)
|
|
131
|
+
- ✅ **Multi-Tenancy** - Support for Firebase Auth tenant IDs
|
|
132
|
+
- ✅ **Flexible Configuration** - Customizable cookie options and cache implementations
|
|
133
|
+
|
|
134
|
+
## Firebase Auth Todo
|
|
135
|
+
|
|
136
|
+
- ☐ Magic Link Login (auto save email option)
|
|
137
|
+
- ☐ Link and Unlink Providers
|
|
138
|
+
- ☐ Email / Password / Annonymous Login
|
|
139
|
+
- ☐ Reset Password
|
|
140
|
+
- ☐ Change Email
|
|
141
|
+
- ☐ Get User By ID
|
|
142
|
+
- ☐ Get All Users with Order By and Pagination
|
|
143
|
+
- ☐ Create User
|
|
144
|
+
- ☐ Delete
|
|
114
145
|
- ☐ Update User
|
|
115
|
-
- ☐ Delete User
|
|
116
146
|
- ☐ Add / Remove Custom Claims
|
|
117
|
-
- ☐
|
|
118
|
-
- ☐ All Providers
|
|
147
|
+
- ☐ Disable User (Ban User)
|
|
148
|
+
- ☐ Add All Providers
|
|
149
|
+
- ☐ Add App Check
|
|
119
150
|
- ☐ Ban Users
|
|
120
151
|
- ☐ RBAC
|
|
121
152
|
|
|
122
|
-
|
|
153
|
+
## Firestore Todo
|
|
154
|
+
|
|
155
|
+
- ☐ Get Document By ID
|
|
156
|
+
- ☐ Create Document
|
|
157
|
+
- ☐ Update Document (merge option)
|
|
158
|
+
- ☐ Delete Document
|
|
159
|
+
- ☐ Query Documents
|
|
123
160
|
|
|
124
|
-
|
|
125
|
-
- (enableTokenRefreshOnExpiredKidHeader ? cookieSignatureKeys ?)
|
|
161
|
+
## Firebase Storage
|
|
126
162
|
|
|
127
|
-
|
|
163
|
+
- ☐ Create File
|
|
164
|
+
- ☐ Delete File
|
|
165
|
+
- ☐ Get File
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-endpoint-errors.test.d.ts","sourceRoot":"","sources":["../../src/auth/auth-endpoint-errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,403 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest';
|
|
2
|
+
import { mapFirebaseError } from './auth-endpoint-errors.js';
|
|
3
|
+
import { FirebaseEdgeError, FirebaseEndpointErrorInfo } from './errors.js';
|
|
4
|
+
describe('mapFirebaseError', () => {
|
|
5
|
+
describe('Token Errors', () => {
|
|
6
|
+
it('maps INVALID_CUSTOM_TOKEN to structured error', () => {
|
|
7
|
+
const error = mapFirebaseError({
|
|
8
|
+
code: 400,
|
|
9
|
+
message: 'INVALID_CUSTOM_TOKEN: Token format invalid'
|
|
10
|
+
});
|
|
11
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
12
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_CUSTOM_TOKEN.code);
|
|
13
|
+
});
|
|
14
|
+
it('maps INVALID_REFRESH_TOKEN to structured error', () => {
|
|
15
|
+
const error = mapFirebaseError({
|
|
16
|
+
code: 400,
|
|
17
|
+
message: 'INVALID_REFRESH_TOKEN'
|
|
18
|
+
});
|
|
19
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
20
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_REFRESH_TOKEN.code);
|
|
21
|
+
});
|
|
22
|
+
it('maps INVALID_GRANT to refresh token error', () => {
|
|
23
|
+
const error = mapFirebaseError({
|
|
24
|
+
code: 400,
|
|
25
|
+
message: 'INVALID_GRANT: Token has been revoked'
|
|
26
|
+
});
|
|
27
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
28
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_REFRESH_TOKEN.code);
|
|
29
|
+
});
|
|
30
|
+
it('maps TOKEN_EXPIRED to structured error', () => {
|
|
31
|
+
const error = mapFirebaseError({
|
|
32
|
+
code: 401,
|
|
33
|
+
message: 'TOKEN_EXPIRED'
|
|
34
|
+
});
|
|
35
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
36
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_TOKEN_EXPIRED.code);
|
|
37
|
+
});
|
|
38
|
+
it('maps CREDENTIAL_TOO_OLD_LOGIN_AGAIN to token expired', () => {
|
|
39
|
+
const error = mapFirebaseError({
|
|
40
|
+
code: 401,
|
|
41
|
+
message: 'CREDENTIAL_TOO_OLD_LOGIN_AGAIN'
|
|
42
|
+
});
|
|
43
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
44
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_TOKEN_EXPIRED.code);
|
|
45
|
+
});
|
|
46
|
+
it('maps INVALID_ID_TOKEN to structured error', () => {
|
|
47
|
+
const error = mapFirebaseError({
|
|
48
|
+
code: 400,
|
|
49
|
+
message: 'INVALID_ID_TOKEN'
|
|
50
|
+
});
|
|
51
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
52
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ID_TOKEN.code);
|
|
53
|
+
});
|
|
54
|
+
it('maps INVALID_CREDENTIAL to structured error', () => {
|
|
55
|
+
const error = mapFirebaseError({
|
|
56
|
+
code: 400,
|
|
57
|
+
message: 'INVALID_CREDENTIAL'
|
|
58
|
+
});
|
|
59
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
60
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_CREDENTIAL.code);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('User Management Errors', () => {
|
|
64
|
+
it('maps USER_NOT_FOUND to structured error', () => {
|
|
65
|
+
const error = mapFirebaseError({
|
|
66
|
+
code: 404,
|
|
67
|
+
message: 'USER_NOT_FOUND'
|
|
68
|
+
});
|
|
69
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
70
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_NOT_FOUND.code);
|
|
71
|
+
});
|
|
72
|
+
it('maps EMAIL_NOT_FOUND to user not found error', () => {
|
|
73
|
+
const error = mapFirebaseError({
|
|
74
|
+
code: 400,
|
|
75
|
+
message: 'EMAIL_NOT_FOUND'
|
|
76
|
+
});
|
|
77
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
78
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_NOT_FOUND.code);
|
|
79
|
+
});
|
|
80
|
+
it('maps USER_DISABLED to structured error', () => {
|
|
81
|
+
const error = mapFirebaseError({
|
|
82
|
+
code: 403,
|
|
83
|
+
message: 'USER_DISABLED'
|
|
84
|
+
});
|
|
85
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
86
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_DISABLED.code);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('Permission & Access Errors', () => {
|
|
90
|
+
it('maps PERMISSION_DENIED to structured error', () => {
|
|
91
|
+
const error = mapFirebaseError({
|
|
92
|
+
code: 403,
|
|
93
|
+
message: 'PERMISSION_DENIED'
|
|
94
|
+
});
|
|
95
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
96
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_PERMISSION_DENIED.code);
|
|
97
|
+
});
|
|
98
|
+
it('maps INSUFFICIENT_PERMISSION to structured error', () => {
|
|
99
|
+
const error = mapFirebaseError({
|
|
100
|
+
code: 403,
|
|
101
|
+
message: 'INSUFFICIENT_PERMISSION'
|
|
102
|
+
});
|
|
103
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
104
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INSUFFICIENT_PERMISSION.code);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
describe('Rate Limiting & Quota Errors', () => {
|
|
108
|
+
it('maps TOO_MANY_ATTEMPTS_TRY_LATER to structured error', () => {
|
|
109
|
+
const error = mapFirebaseError({
|
|
110
|
+
code: 429,
|
|
111
|
+
message: 'TOO_MANY_ATTEMPTS_TRY_LATER'
|
|
112
|
+
});
|
|
113
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
114
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_TOO_MANY_REQUESTS.code);
|
|
115
|
+
});
|
|
116
|
+
it('maps QUOTA_EXCEEDED to structured error', () => {
|
|
117
|
+
const error = mapFirebaseError({
|
|
118
|
+
code: 429,
|
|
119
|
+
message: 'QUOTA_EXCEEDED'
|
|
120
|
+
});
|
|
121
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
122
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_QUOTA_EXCEEDED.code);
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
describe('Provider & Configuration Errors', () => {
|
|
126
|
+
it('maps OPERATION_NOT_ALLOWED to provider not enabled', () => {
|
|
127
|
+
const error = mapFirebaseError({
|
|
128
|
+
code: 400,
|
|
129
|
+
message: 'OPERATION_NOT_ALLOWED'
|
|
130
|
+
});
|
|
131
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
132
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_PROVIDER_NOT_ENABLED.code);
|
|
133
|
+
});
|
|
134
|
+
it('maps INVALID_IDP_RESPONSE to invalid provider id', () => {
|
|
135
|
+
const error = mapFirebaseError({
|
|
136
|
+
code: 400,
|
|
137
|
+
message: 'INVALID_IDP_RESPONSE'
|
|
138
|
+
});
|
|
139
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
140
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_PROVIDER_ID.code);
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
describe('API Key Errors', () => {
|
|
144
|
+
it('maps API KEY NOT VALID to structured error', () => {
|
|
145
|
+
const error = mapFirebaseError({
|
|
146
|
+
code: 400,
|
|
147
|
+
message: 'API KEY NOT VALID'
|
|
148
|
+
});
|
|
149
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
150
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_API_KEY.code);
|
|
151
|
+
});
|
|
152
|
+
it('maps INVALID_API_KEY to structured error', () => {
|
|
153
|
+
const error = mapFirebaseError({
|
|
154
|
+
code: 403,
|
|
155
|
+
message: 'INVALID_API_KEY'
|
|
156
|
+
});
|
|
157
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
158
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_API_KEY.code);
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
describe('Validation Errors', () => {
|
|
162
|
+
it('maps INVALID_EMAIL to invalid argument', () => {
|
|
163
|
+
const error = mapFirebaseError({
|
|
164
|
+
code: 400,
|
|
165
|
+
message: 'INVALID_EMAIL'
|
|
166
|
+
});
|
|
167
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
168
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
169
|
+
});
|
|
170
|
+
it('maps WEAK_PASSWORD to invalid argument', () => {
|
|
171
|
+
const error = mapFirebaseError({
|
|
172
|
+
code: 400,
|
|
173
|
+
message: 'WEAK_PASSWORD'
|
|
174
|
+
});
|
|
175
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
176
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
177
|
+
});
|
|
178
|
+
it('maps EMAIL_EXISTS to invalid argument', () => {
|
|
179
|
+
const error = mapFirebaseError({
|
|
180
|
+
code: 400,
|
|
181
|
+
message: 'EMAIL_EXISTS'
|
|
182
|
+
});
|
|
183
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
184
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
185
|
+
});
|
|
186
|
+
it('maps INVALID_PASSWORD to invalid argument', () => {
|
|
187
|
+
const error = mapFirebaseError({
|
|
188
|
+
code: 400,
|
|
189
|
+
message: 'INVALID_PASSWORD'
|
|
190
|
+
});
|
|
191
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
192
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
193
|
+
});
|
|
194
|
+
it('maps MISSING_REFRESH_TOKEN to invalid argument', () => {
|
|
195
|
+
const error = mapFirebaseError({
|
|
196
|
+
code: 400,
|
|
197
|
+
message: 'MISSING_REFRESH_TOKEN'
|
|
198
|
+
});
|
|
199
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
200
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
201
|
+
});
|
|
202
|
+
it('maps INVALID_GRANT_TYPE to invalid refresh token', () => {
|
|
203
|
+
const error = mapFirebaseError({
|
|
204
|
+
code: 400,
|
|
205
|
+
message: 'INVALID_GRANT_TYPE'
|
|
206
|
+
});
|
|
207
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
208
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_REFRESH_TOKEN.code);
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
describe('Reason Code Mapping', () => {
|
|
212
|
+
it('maps INVALID reason to invalid argument', () => {
|
|
213
|
+
const error = mapFirebaseError({
|
|
214
|
+
code: 400,
|
|
215
|
+
message: 'Some error',
|
|
216
|
+
errors: [
|
|
217
|
+
{
|
|
218
|
+
reason: 'INVALID',
|
|
219
|
+
message: 'Invalid request',
|
|
220
|
+
domain: 'global'
|
|
221
|
+
}
|
|
222
|
+
]
|
|
223
|
+
});
|
|
224
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
225
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
226
|
+
});
|
|
227
|
+
it('maps FORBIDDEN reason to forbidden', () => {
|
|
228
|
+
const error = mapFirebaseError({
|
|
229
|
+
code: 403,
|
|
230
|
+
message: 'Access denied',
|
|
231
|
+
errors: [
|
|
232
|
+
{
|
|
233
|
+
reason: 'FORBIDDEN',
|
|
234
|
+
message: 'No access',
|
|
235
|
+
domain: 'global'
|
|
236
|
+
}
|
|
237
|
+
]
|
|
238
|
+
});
|
|
239
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
240
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_FORBIDDEN.code);
|
|
241
|
+
});
|
|
242
|
+
it('maps NOTFOUND reason to user not found', () => {
|
|
243
|
+
const error = mapFirebaseError({
|
|
244
|
+
code: 404,
|
|
245
|
+
message: 'Resource not found',
|
|
246
|
+
errors: [
|
|
247
|
+
{
|
|
248
|
+
reason: 'NOTFOUND',
|
|
249
|
+
message: 'Not found',
|
|
250
|
+
domain: 'global'
|
|
251
|
+
}
|
|
252
|
+
]
|
|
253
|
+
});
|
|
254
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
255
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_NOT_FOUND.code);
|
|
256
|
+
});
|
|
257
|
+
it('maps NOT_FOUND reason to user not found', () => {
|
|
258
|
+
const error = mapFirebaseError({
|
|
259
|
+
code: 404,
|
|
260
|
+
message: 'Resource not found',
|
|
261
|
+
errors: [
|
|
262
|
+
{
|
|
263
|
+
reason: 'NOT_FOUND',
|
|
264
|
+
message: 'Not found',
|
|
265
|
+
domain: 'global'
|
|
266
|
+
}
|
|
267
|
+
]
|
|
268
|
+
});
|
|
269
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
270
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_NOT_FOUND.code);
|
|
271
|
+
});
|
|
272
|
+
});
|
|
273
|
+
describe('HTTP Status Code Fallbacks', () => {
|
|
274
|
+
it('maps 400 to invalid argument', () => {
|
|
275
|
+
const error = mapFirebaseError({
|
|
276
|
+
code: 400,
|
|
277
|
+
message: 'Unknown error'
|
|
278
|
+
});
|
|
279
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
280
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_ARGUMENT.code);
|
|
281
|
+
});
|
|
282
|
+
it('maps 401 to unauthorized', () => {
|
|
283
|
+
const error = mapFirebaseError({
|
|
284
|
+
code: 401,
|
|
285
|
+
message: 'Unauthorized'
|
|
286
|
+
});
|
|
287
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
288
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_UNAUTHORIZED.code);
|
|
289
|
+
});
|
|
290
|
+
it('maps 403 to forbidden', () => {
|
|
291
|
+
const error = mapFirebaseError({
|
|
292
|
+
code: 403,
|
|
293
|
+
message: 'Forbidden'
|
|
294
|
+
});
|
|
295
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
296
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_FORBIDDEN.code);
|
|
297
|
+
});
|
|
298
|
+
it('maps 404 to user not found', () => {
|
|
299
|
+
const error = mapFirebaseError({
|
|
300
|
+
code: 404,
|
|
301
|
+
message: 'Not found'
|
|
302
|
+
});
|
|
303
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
304
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_NOT_FOUND.code);
|
|
305
|
+
});
|
|
306
|
+
it('maps 429 to too many requests', () => {
|
|
307
|
+
const error = mapFirebaseError({
|
|
308
|
+
code: 429,
|
|
309
|
+
message: 'Rate limit exceeded'
|
|
310
|
+
});
|
|
311
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
312
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_TOO_MANY_REQUESTS.code);
|
|
313
|
+
});
|
|
314
|
+
it('maps 500 to internal error', () => {
|
|
315
|
+
const error = mapFirebaseError({
|
|
316
|
+
code: 500,
|
|
317
|
+
message: 'Internal server error'
|
|
318
|
+
});
|
|
319
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
320
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INTERNAL_ERROR.code);
|
|
321
|
+
});
|
|
322
|
+
it('maps 502 to bad gateway', () => {
|
|
323
|
+
const error = mapFirebaseError({
|
|
324
|
+
code: 502,
|
|
325
|
+
message: 'Bad gateway'
|
|
326
|
+
});
|
|
327
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
328
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_BAD_GATEWAY.code);
|
|
329
|
+
});
|
|
330
|
+
it('maps 503 to service unavailable', () => {
|
|
331
|
+
const error = mapFirebaseError({
|
|
332
|
+
code: 503,
|
|
333
|
+
message: 'Service unavailable'
|
|
334
|
+
});
|
|
335
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
336
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_SERVICE_UNAVAILABLE.code);
|
|
337
|
+
});
|
|
338
|
+
it('maps 504 to timeout', () => {
|
|
339
|
+
const error = mapFirebaseError({
|
|
340
|
+
code: 504,
|
|
341
|
+
message: 'Gateway timeout'
|
|
342
|
+
});
|
|
343
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
344
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_TIMEOUT.code);
|
|
345
|
+
});
|
|
346
|
+
});
|
|
347
|
+
describe('Unknown Errors', () => {
|
|
348
|
+
it('maps unknown status code to unknown error with context', () => {
|
|
349
|
+
const error = mapFirebaseError({
|
|
350
|
+
code: 418,
|
|
351
|
+
message: "I'm a teapot",
|
|
352
|
+
errors: [
|
|
353
|
+
{
|
|
354
|
+
reason: 'TEAPOT',
|
|
355
|
+
message: 'Cannot brew coffee',
|
|
356
|
+
domain: 'global'
|
|
357
|
+
}
|
|
358
|
+
]
|
|
359
|
+
});
|
|
360
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
361
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_UNKNOWN_ERROR.code);
|
|
362
|
+
expect(error.cause).toBeInstanceOf(Error);
|
|
363
|
+
expect(error.context).toEqual({
|
|
364
|
+
firebaseCode: 418,
|
|
365
|
+
firebaseMessage: "I'm a teapot",
|
|
366
|
+
firebaseErrors: [
|
|
367
|
+
{
|
|
368
|
+
reason: 'TEAPOT',
|
|
369
|
+
message: 'Cannot brew coffee',
|
|
370
|
+
domain: 'global'
|
|
371
|
+
}
|
|
372
|
+
]
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
it('handles missing message field', () => {
|
|
376
|
+
const error = mapFirebaseError({
|
|
377
|
+
code: 999,
|
|
378
|
+
message: undefined
|
|
379
|
+
});
|
|
380
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
381
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_UNKNOWN_ERROR.code);
|
|
382
|
+
});
|
|
383
|
+
});
|
|
384
|
+
describe('Case Insensitivity', () => {
|
|
385
|
+
it('handles lowercase error codes', () => {
|
|
386
|
+
const error = mapFirebaseError({
|
|
387
|
+
code: 400,
|
|
388
|
+
message: 'invalid_custom_token'
|
|
389
|
+
});
|
|
390
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
391
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_INVALID_CUSTOM_TOKEN.code);
|
|
392
|
+
});
|
|
393
|
+
it('handles mixed case error codes', () => {
|
|
394
|
+
const error = mapFirebaseError({
|
|
395
|
+
code: 400,
|
|
396
|
+
message: 'User_Not_Found'
|
|
397
|
+
});
|
|
398
|
+
expect(error).toBeInstanceOf(FirebaseEdgeError);
|
|
399
|
+
expect(error.code).toBe(FirebaseEndpointErrorInfo.ENDPOINT_USER_NOT_FOUND.code);
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
});
|
|
403
|
+
//# sourceMappingURL=auth-endpoint-errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-endpoint-errors.test.js","sourceRoot":"","sources":["../../src/auth/auth-endpoint-errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type SetCache = <T>(name: string, value: T, ttlMs?: number) => Promise<void> | void;
|
|
2
|
+
export type GetCache = <T>(name: string) => Promise<T | undefined> | T | undefined;
|
|
3
|
+
export type CacheConfig = {
|
|
4
|
+
getCache: GetCache;
|
|
5
|
+
setCache: SetCache;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=cache-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-types.d.ts","sourceRoot":"","sources":["../../src/auth/cache-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,EACR,KAAK,CAAC,EAAE,MAAM,KACb,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,EACrB,IAAI,EAAE,MAAM,KACX,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACtB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-types.js","sourceRoot":"","sources":["../../src/auth/cache-types.ts"],"names":[],"mappings":""}
|
|
@@ -16,4 +16,8 @@ export type CookieOptions = Partial<{
|
|
|
16
16
|
};
|
|
17
17
|
export type GetSession = (name: string) => Promise<string | null | undefined> | string | null | undefined;
|
|
18
18
|
export type SetSession = (name: string, value: string, options: CookieOptions) => Promise<void> | void;
|
|
19
|
+
export type CookieConfig = {
|
|
20
|
+
getSession: GetSession;
|
|
21
|
+
saveSession: SetSession;
|
|
22
|
+
};
|
|
19
23
|
//# sourceMappingURL=cookie-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-types.d.ts","sourceRoot":"","sources":["../../src/auth/cookie-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjD,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,CACrB,IAAI,EAAE,MAAM,KACX,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"cookie-types.d.ts","sourceRoot":"","sources":["../../src/auth/cookie-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC7B,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,IAAI,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACjD,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,CACrB,IAAI,EAAE,MAAM,KACX,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEpE,MAAM,MAAM,UAAU,GAAG,CACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,KACrB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAE1B,MAAM,MAAM,YAAY,GAAG;IACvB,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,UAAU,CAAC;CAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../src/auth/errors.test.ts"],"names":[],"mappings":""}
|