15
15
*/
16
16
import * as validator from '../utils/validator' ;
17
17
import { AuthClientErrorCode , FirebaseAuthError } from '../utils/error' ;
18
- import { deepCopy } from '../utils/deep-copy' ;
18
+ import { deepCopy } from '../utils/deep-copy' ;
19
19
20
20
export interface PasskeyConfigRequest {
21
21
expectedOrigins ?: string [ ] ;
@@ -38,94 +38,95 @@ export class PasskeyConfig {
38
38
public readonly rpId ?: string ;
39
39
public readonly expectedOrigins ?: string [ ] ;
40
40
41
- private static validate ( isCreateRequest : boolean , passkeyConfigRequest ?: PasskeyConfigRequest , rpId ?: string ) {
42
- if ( isCreateRequest && ! validator . isNonEmptyString ( rpId ) ) {
43
- throw new FirebaseAuthError (
44
- AuthClientErrorCode . INVALID_ARGUMENT ,
45
- `' rpId' must be a valid non-empty string'` ,
46
- ) ;
41
+ private static validate ( isCreateRequest : boolean , passkeyConfigRequest ?: PasskeyConfigRequest , rpId ?: string ) : void {
42
+ if ( isCreateRequest && ! validator . isNonEmptyString ( rpId ) ) {
43
+ throw new FirebaseAuthError (
44
+ AuthClientErrorCode . INVALID_ARGUMENT ,
45
+ '\' rpId\ ' must be a valid non-empty string\'' ,
46
+ ) ;
47
47
}
48
- if ( ! isCreateRequest && typeof rpId !== 'undefined' ) {
49
- throw new FirebaseAuthError (
50
- AuthClientErrorCode . INVALID_ARGUMENT ,
51
- `' rpId' cannot be changed once created.'` ,
52
- ) ;
48
+ if ( ! isCreateRequest && typeof rpId !== 'undefined' ) {
49
+ throw new FirebaseAuthError (
50
+ AuthClientErrorCode . INVALID_ARGUMENT ,
51
+ '\' rpId\ ' cannot be changed once created.\'' ,
52
+ ) ;
53
53
}
54
- if ( ! validator . isNonNullObject ( passkeyConfigRequest ) ) {
55
- throw new FirebaseAuthError (
56
- AuthClientErrorCode . INVALID_ARGUMENT ,
57
- `' passkeyConfigRequest' must be a valid non-empty object.'` ,
58
- ) ;
54
+ if ( ! validator . isNonNullObject ( passkeyConfigRequest ) ) {
55
+ throw new FirebaseAuthError (
56
+ AuthClientErrorCode . INVALID_ARGUMENT ,
57
+ '\' passkeyConfigRequest\ ' must be a valid non-empty object.\'' ,
58
+ ) ;
59
59
}
60
60
const validKeys = {
61
- expectedOrigins : true ,
61
+ expectedOrigins : true ,
62
62
} ;
63
63
// Check for unsupported top level attributes.
64
64
for ( const key in passkeyConfigRequest ) {
65
- if ( ! ( key in validKeys ) ) {
66
- throw new FirebaseAuthError (
67
- AuthClientErrorCode . INVALID_ARGUMENT ,
68
- `'${ key } ' is not a valid PasskeyConfigRequest parameter.` ,
69
- ) ;
70
- }
71
- }
72
- if ( ! validator . isNonEmptyArray ( passkeyConfigRequest . expectedOrigins ) ) {
65
+ if ( ! ( key in validKeys ) ) {
73
66
throw new FirebaseAuthError (
74
- AuthClientErrorCode . INVALID_ARGUMENT ,
75
- `'passkeyConfigRequest.expectedOrigins' must be a valid non-empty array of strings.'` ,
76
- ) ;
67
+ AuthClientErrorCode . INVALID_ARGUMENT ,
68
+ `'${ key } ' is not a valid PasskeyConfigRequest parameter.` ,
69
+ ) ;
70
+ }
71
+ }
72
+ if ( ! validator . isNonEmptyArray ( passkeyConfigRequest . expectedOrigins ) ) {
73
+ throw new FirebaseAuthError (
74
+ AuthClientErrorCode . INVALID_ARGUMENT ,
75
+ '\'passkeyConfigRequest.expectedOrigins\' must be a valid non-empty array of strings.\'' ,
76
+ ) ;
77
77
}
78
78
for ( const origin of passkeyConfigRequest . expectedOrigins ) {
79
79
if ( ! validator . isNonEmptyString ( origin ) ) {
80
80
throw new FirebaseAuthError (
81
81
AuthClientErrorCode . INVALID_ARGUMENT ,
82
- `' passkeyConfigRequest.expectedOrigins' must be a valid non-empty array of strings.'` ,
82
+ '\' passkeyConfigRequest.expectedOrigins\ ' must be a valid non-empty array of strings.\'' ,
83
83
) ;
84
84
}
85
85
}
86
- } ;
86
+ }
87
87
88
- public static buildServerRequest ( isCreateRequest : boolean , passkeyConfigRequest ?: PasskeyConfigRequest , rpId ?: string ) : PasskeyConfigClientRequest {
88
+ public static buildServerRequest ( isCreateRequest : boolean , passkeyConfigRequest ?: PasskeyConfigRequest ,
89
+ rpId ?: string ) : PasskeyConfigClientRequest {
89
90
PasskeyConfig . validate ( isCreateRequest , passkeyConfigRequest , rpId ) ;
90
- let request : PasskeyConfigClientRequest = { } ;
91
- if ( isCreateRequest && typeof rpId !== 'undefined' ) {
92
- request . rpId = rpId ;
91
+ const request : PasskeyConfigClientRequest = { } ;
92
+ if ( isCreateRequest && typeof rpId !== 'undefined' ) {
93
+ request . rpId = rpId ;
93
94
}
94
- if ( typeof passkeyConfigRequest ?. expectedOrigins !== 'undefined' ) {
95
- request . expectedOrigins = passkeyConfigRequest . expectedOrigins ;
95
+ if ( typeof passkeyConfigRequest ?. expectedOrigins !== 'undefined' ) {
96
+ request . expectedOrigins = passkeyConfigRequest . expectedOrigins ;
96
97
}
97
98
return request ;
98
- } ;
99
+ }
99
100
100
101
constructor ( response : PasskeyConfigServerResponse ) {
101
- if ( typeof response . name !== 'undefined' ) {
102
- this . name = response . name ;
102
+ if ( typeof response . name !== 'undefined' ) {
103
+ this . name = response . name ;
103
104
}
104
- if ( typeof response . rpId !== 'undefined' ) {
105
- this . rpId = response . rpId ;
106
- } ;
107
- if ( typeof response . expectedOrigins !== 'undefined' ) {
108
- this . expectedOrigins = response . expectedOrigins ;
105
+ if ( typeof response . rpId !== 'undefined' ) {
106
+ this . rpId = response . rpId ;
109
107
}
110
- } ;
108
+ if ( typeof response . expectedOrigins !== 'undefined' ) {
109
+ this . expectedOrigins = response . expectedOrigins ;
110
+ }
111
+ }
111
112
112
113
public toJSON ( ) : object {
113
114
const json = {
114
115
name : deepCopy ( this . name ) ,
115
116
rpId : deepCopy ( this . rpId ) ,
116
117
expectedOrigins : deepCopy ( this . expectedOrigins ) ,
117
118
} ;
118
- if ( typeof json . name === 'undefined' ) {
119
+ if ( typeof json . name === 'undefined' ) {
119
120
delete json . name ;
120
121
}
121
- if ( typeof json . rpId === 'undefined' ) {
122
+ if ( typeof json . rpId === 'undefined' ) {
122
123
delete json . rpId ;
123
124
}
124
- if ( typeof json . expectedOrigins === 'undefined' ) {
125
+ if ( typeof json . expectedOrigins === 'undefined' ) {
125
126
delete json . expectedOrigins ;
126
127
}
127
128
return json ;
128
129
}
129
130
130
- } ;
131
+ }
131
132
0 commit comments