Skip to content

Commit 93d8dc0

Browse files
authored
Fix a bunch of little issues with the new auth API (#3999)
* Bunch of signature updates for auth * Auth docs * Formatting * Add small redirect fix * Fixes * Revert markdown files since the docgen tool isn't working * Fix broken stuff * Formatting
1 parent f2562c2 commit 93d8dc0

28 files changed

+162
-140
lines changed

common/api-review/auth-exp.api.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ export class ActionCodeURL implements externs.ActionCodeURL {
2929
// (undocumented)
3030
readonly languageCode: string | null;
3131
// (undocumented)
32-
readonly operation: externs.Operation;
32+
readonly operation: externs.ActionCodeOperation;
3333
// (undocumented)
3434
static parseLink(link: string): externs.ActionCodeURL | null;
3535
// (undocumented)
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
2+
3+
[Home](./index.md) &gt; [@firebase/auth-types](./auth-types.md) &gt; [ActionCodeOperation](./auth-types.actioncodeoperation.md)
4+
5+
## ActionCodeOperation enum
6+
7+
An enumeration of the possible email action types.
8+
9+
<b>Signature:</b>
10+
11+
```typescript
12+
export const enum ActionCodeOperation
13+
```
14+
15+
## Enumeration Members
16+
17+
| Member | Value | Description |
18+
| --- | --- | --- |
19+
| EMAIL\_SIGNIN | <code>'EMAIL_SIGNIN'</code> | The email link sign-in action. |
20+
| PASSWORD\_RESET | <code>'PASSWORD_RESET'</code> | The password reset action. |
21+
| RECOVER\_EMAIL | <code>'RECOVER_EMAIL'</code> | The email revocation action. |
22+
| REVERT\_SECOND\_FACTOR\_ADDITION | <code>'REVERT_SECOND_FACTOR_ADDITION'</code> | The revert second factor addition email action. |
23+
| VERIFY\_AND\_CHANGE\_EMAIL | <code>'VERIFY_AND_CHANGE_EMAIL'</code> | The revert second factor addition email action. |
24+
| VERIFY\_EMAIL | <code>'VERIFY_EMAIL'</code> | The email verification action. |
25+

packages-exp/auth-compat-exp/index.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,14 @@ function registerAuthCompat(instance: _FirebaseNamespace): void {
5151
.setServiceProps({
5252
ActionCodeInfo: {
5353
Operation: {
54-
EMAIL_SIGNIN: externs.Operation.EMAIL_SIGNIN,
55-
PASSWORD_RESET: externs.Operation.PASSWORD_RESET,
56-
RECOVER_EMAIL: externs.Operation.RECOVER_EMAIL,
54+
EMAIL_SIGNIN: externs.ActionCodeOperation.EMAIL_SIGNIN,
55+
PASSWORD_RESET: externs.ActionCodeOperation.PASSWORD_RESET,
56+
RECOVER_EMAIL: externs.ActionCodeOperation.RECOVER_EMAIL,
5757
REVERT_SECOND_FACTOR_ADDITION:
58-
externs.Operation.REVERT_SECOND_FACTOR_ADDITION,
59-
VERIFY_AND_CHANGE_EMAIL: externs.Operation.VERIFY_AND_CHANGE_EMAIL,
60-
VERIFY_EMAIL: externs.Operation.VERIFY_EMAIL
58+
externs.ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION,
59+
VERIFY_AND_CHANGE_EMAIL:
60+
externs.ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL,
61+
VERIFY_EMAIL: externs.ActionCodeOperation.VERIFY_EMAIL
6162
}
6263
},
6364
EmailAuthProvider: impl.EmailAuthProvider,

packages-exp/auth-exp/demo/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
src/config.js
22
.firebaserc
3+
.firebase
34
public/service-worker.*
45
public/web-worker.*
56
public/index.js*

packages-exp/auth-exp/src/api/account_management/email_and_password.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { Operation, Auth } from '@firebase/auth-types-exp';
18+
import { ActionCodeOperation, Auth } from '@firebase/auth-types-exp';
1919

2020
import { Endpoint, HttpMethod, _performApiRequest } from '../index';
2121
import { IdTokenResponse } from '../../model/id_token';
@@ -29,7 +29,7 @@ export interface ResetPasswordRequest {
2929
export interface ResetPasswordResponse {
3030
email: string;
3131
newEmail?: string;
32-
requestType?: Operation;
32+
requestType?: ActionCodeOperation;
3333
mfaInfo?: MfaEnrollment;
3434
}
3535

packages-exp/auth-exp/src/api/authentication/email_and_password.test.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import { expect, use } from 'chai';
1919
import * as chaiAsPromised from 'chai-as-promised';
2020

21-
import { Operation } from '@firebase/auth-types-exp';
21+
import { ActionCodeOperation } from '@firebase/auth-types-exp';
2222
import { FirebaseError } from '@firebase/util';
2323

2424
import { Endpoint, HttpHeader } from '../';
@@ -102,7 +102,7 @@ describe('api/authentication/signInWithPassword', () => {
102102

103103
describe('api/authentication/sendEmailVerification', () => {
104104
const request: VerifyEmailRequest = {
105-
requestType: Operation.VERIFY_EMAIL,
105+
requestType: ActionCodeOperation.VERIFY_EMAIL,
106106
idToken: 'my-token'
107107
};
108108

@@ -159,7 +159,7 @@ describe('api/authentication/sendEmailVerification', () => {
159159

160160
describe('api/authentication/sendPasswordResetEmail', () => {
161161
const request: PasswordResetRequest = {
162-
requestType: Operation.PASSWORD_RESET,
162+
requestType: ActionCodeOperation.PASSWORD_RESET,
163163
164164
};
165165

@@ -216,7 +216,7 @@ describe('api/authentication/sendPasswordResetEmail', () => {
216216

217217
describe('api/authentication/sendSignInLinkToEmail', () => {
218218
const request: EmailSignInRequest = {
219-
requestType: Operation.EMAIL_SIGNIN,
219+
requestType: ActionCodeOperation.EMAIL_SIGNIN,
220220
221221
};
222222

@@ -273,7 +273,7 @@ describe('api/authentication/sendSignInLinkToEmail', () => {
273273

274274
describe('api/authentication/verifyAndChangeEmail', () => {
275275
const request: VerifyAndChangeEmailRequest = {
276-
requestType: Operation.VERIFY_AND_CHANGE_EMAIL,
276+
requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL,
277277
idToken: 'id-token',
278278
newEmail: '[email protected]'
279279
};

packages-exp/auth-exp/src/api/authentication/email_and_password.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717

18-
import { Operation, Auth } from '@firebase/auth-types-exp';
18+
import { ActionCodeOperation, Auth } from '@firebase/auth-types-exp';
1919

2020
import {
2121
Endpoint,
@@ -61,23 +61,23 @@ export interface GetOobCodeRequest {
6161
}
6262

6363
export interface VerifyEmailRequest extends GetOobCodeRequest {
64-
requestType: Operation.VERIFY_EMAIL;
64+
requestType: ActionCodeOperation.VERIFY_EMAIL;
6565
idToken: IdToken;
6666
}
6767

6868
export interface PasswordResetRequest extends GetOobCodeRequest {
69-
requestType: Operation.PASSWORD_RESET;
69+
requestType: ActionCodeOperation.PASSWORD_RESET;
7070
email: string;
7171
captchaResp?: string;
7272
}
7373

7474
export interface EmailSignInRequest extends GetOobCodeRequest {
75-
requestType: Operation.EMAIL_SIGNIN;
75+
requestType: ActionCodeOperation.EMAIL_SIGNIN;
7676
email: string;
7777
}
7878

7979
export interface VerifyAndChangeEmailRequest extends GetOobCodeRequest {
80-
requestType: Operation.VERIFY_AND_CHANGE_EMAIL;
80+
requestType: ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;
8181
idToken: IdToken;
8282
newEmail: string;
8383
}

packages-exp/auth-exp/src/core/action_code_url.test.ts

+18-10
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
import { expect } from 'chai';
1919

20-
import { Operation } from '@firebase/auth-types-exp';
20+
import { ActionCodeOperation } from '@firebase/auth-types-exp';
2121

2222
import { ActionCodeURL } from './action_code_url';
2323

@@ -32,7 +32,7 @@ describe('core/action_code_url', () => {
3232
encodeURIComponent(continueUrl) +
3333
'&languageCode=en&tenantId=TENANT_ID&state=bla';
3434
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
35-
expect(actionCodeUrl!.operation).to.eq(Operation.EMAIL_SIGNIN);
35+
expect(actionCodeUrl!.operation).to.eq(ActionCodeOperation.EMAIL_SIGNIN);
3636
expect(actionCodeUrl!.code).to.eq('CODE');
3737
expect(actionCodeUrl!.apiKey).to.eq('API_KEY');
3838
// ContinueUrl should be decoded.
@@ -48,7 +48,9 @@ describe('core/action_code_url', () => {
4848
'oobCode=CODE&mode=signIn&apiKey=API_KEY&' +
4949
'languageCode=en';
5050
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
51-
expect(actionCodeUrl!.operation).to.eq(Operation.EMAIL_SIGNIN);
51+
expect(actionCodeUrl!.operation).to.eq(
52+
ActionCodeOperation.EMAIL_SIGNIN
53+
);
5254
});
5355

5456
it('should identitfy VERIFY_AND_CHANGE_EMAIL', () => {
@@ -58,7 +60,7 @@ describe('core/action_code_url', () => {
5860
'languageCode=en';
5961
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
6062
expect(actionCodeUrl!.operation).to.eq(
61-
Operation.VERIFY_AND_CHANGE_EMAIL
63+
ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL
6264
);
6365
});
6466

@@ -68,7 +70,9 @@ describe('core/action_code_url', () => {
6870
'oobCode=CODE&mode=verifyEmail&apiKey=API_KEY&' +
6971
'languageCode=en';
7072
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
71-
expect(actionCodeUrl!.operation).to.eq(Operation.VERIFY_EMAIL);
73+
expect(actionCodeUrl!.operation).to.eq(
74+
ActionCodeOperation.VERIFY_EMAIL
75+
);
7276
});
7377

7478
it('should identitfy RECOVER_EMAIL', () => {
@@ -77,7 +81,9 @@ describe('core/action_code_url', () => {
7781
'oobCode=CODE&mode=recoverEmail&apiKey=API_KEY&' +
7882
'languageCode=en';
7983
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
80-
expect(actionCodeUrl!.operation).to.eq(Operation.RECOVER_EMAIL);
84+
expect(actionCodeUrl!.operation).to.eq(
85+
ActionCodeOperation.RECOVER_EMAIL
86+
);
8187
});
8288

8389
it('should identitfy PASSWORD_RESET', () => {
@@ -86,7 +92,9 @@ describe('core/action_code_url', () => {
8692
'oobCode=CODE&mode=resetPassword&apiKey=API_KEY&' +
8793
'languageCode=en';
8894
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
89-
expect(actionCodeUrl!.operation).to.eq(Operation.PASSWORD_RESET);
95+
expect(actionCodeUrl!.operation).to.eq(
96+
ActionCodeOperation.PASSWORD_RESET
97+
);
9098
});
9199

92100
it('should identitfy REVERT_SECOND_FACTOR_ADDITION', () => {
@@ -96,7 +104,7 @@ describe('core/action_code_url', () => {
96104
'languageCode=en';
97105
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
98106
expect(actionCodeUrl!.operation).to.eq(
99-
Operation.REVERT_SECOND_FACTOR_ADDITION
107+
ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION
100108
);
101109
});
102110
});
@@ -106,7 +114,7 @@ describe('core/action_code_url', () => {
106114
'https://www.example.com:8080/finishSignIn?' +
107115
'oobCode=CODE&mode=signIn&apiKey=API_KEY&state=bla';
108116
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
109-
expect(actionCodeUrl!.operation).to.eq(Operation.EMAIL_SIGNIN);
117+
expect(actionCodeUrl!.operation).to.eq(ActionCodeOperation.EMAIL_SIGNIN);
110118
expect(actionCodeUrl!.code).to.eq('CODE');
111119
expect(actionCodeUrl!.apiKey).to.eq('API_KEY');
112120
expect(actionCodeUrl!.continueUrl).to.be.null;
@@ -120,7 +128,7 @@ describe('core/action_code_url', () => {
120128
'oobCode=CODE1&mode=signIn&apiKey=API_KEY1&state=bla' +
121129
'#oobCode=CODE2&mode=signIn&apiKey=API_KEY2&state=bla';
122130
const actionCodeUrl = ActionCodeURL.parseLink(actionLink);
123-
expect(actionCodeUrl!.operation).to.eq(Operation.EMAIL_SIGNIN);
131+
expect(actionCodeUrl!.operation).to.eq(ActionCodeOperation.EMAIL_SIGNIN);
124132
expect(actionCodeUrl!.code).to.eq('CODE1');
125133
expect(actionCodeUrl!.apiKey).to.eq('API_KEY1');
126134
expect(actionCodeUrl!.continueUrl).to.be.null;

packages-exp/auth-exp/src/core/action_code_url.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,20 @@ const enum QueryField {
4040
* @param mode
4141
* @internal
4242
*/
43-
function parseMode(mode: string | null): externs.Operation | null {
43+
function parseMode(mode: string | null): externs.ActionCodeOperation | null {
4444
switch (mode) {
4545
case 'recoverEmail':
46-
return externs.Operation.RECOVER_EMAIL;
46+
return externs.ActionCodeOperation.RECOVER_EMAIL;
4747
case 'resetPassword':
48-
return externs.Operation.PASSWORD_RESET;
48+
return externs.ActionCodeOperation.PASSWORD_RESET;
4949
case 'signIn':
50-
return externs.Operation.EMAIL_SIGNIN;
50+
return externs.ActionCodeOperation.EMAIL_SIGNIN;
5151
case 'verifyEmail':
52-
return externs.Operation.VERIFY_EMAIL;
52+
return externs.ActionCodeOperation.VERIFY_EMAIL;
5353
case 'verifyAndChangeEmail':
54-
return externs.Operation.VERIFY_AND_CHANGE_EMAIL;
54+
return externs.ActionCodeOperation.VERIFY_AND_CHANGE_EMAIL;
5555
case 'revertSecondFactorAddition':
56-
return externs.Operation.REVERT_SECOND_FACTOR_ADDITION;
56+
return externs.ActionCodeOperation.REVERT_SECOND_FACTOR_ADDITION;
5757
default:
5858
return null;
5959
}
@@ -93,7 +93,7 @@ export class ActionCodeURL implements externs.ActionCodeURL {
9393
/** {@inheritDoc @firebase/auth-types#ActionCodeURL.languageCode} */
9494
readonly languageCode: string | null;
9595
/** {@inheritDoc @firebase/auth-types#ActionCodeURL.operation} */
96-
readonly operation: externs.Operation;
96+
readonly operation: externs.ActionCodeOperation;
9797
/** {@inheritDoc @firebase/auth-types#ActionCodeURL.tenantId} */
9898
readonly tenantId: string | null;
9999

packages-exp/auth-exp/src/core/strategies/credential.test.ts

-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,6 @@ describe('core/strategies/credential', () => {
144144
const error = await expect(
145145
signInWithCredential(auth, authCredential)
146146
).to.be.rejectedWith(MultiFactorError);
147-
expect(error.credential).to.eq(authCredential);
148147
expect(error.operationType).to.eq(OperationType.SIGN_IN);
149148
expect(error.serverResponse).to.eql(serverResponse);
150149
expect(error.user).to.be.undefined;

0 commit comments

Comments
 (0)