@@ -698,9 +698,11 @@ class Config {
698698 this . delete ( `${ nerfed } :_password` , 'user' )
699699 this . delete ( `${ nerfed } :username` , 'user' )
700700 this . delete ( `${ nerfed } :email` , 'user' )
701+ this . delete ( `${ nerfed } :certfile` , 'user' )
702+ this . delete ( `${ nerfed } :keyfile` , 'user' )
701703 }
702704
703- setCredentialsByURI ( uri , { token, username, password, email } ) {
705+ setCredentialsByURI ( uri , { token, username, password, email, certfile , keyfile } ) {
704706 const nerfed = nerfDart ( uri )
705707 const def = nerfDart ( this . get ( 'registry' ) )
706708
@@ -733,6 +735,11 @@ class Config {
733735 this . delete ( `${ nerfed } :-authtoken` , 'user' )
734736 this . delete ( `${ nerfed } :_authtoken` , 'user' )
735737 this . delete ( `${ nerfed } :email` , 'user' )
738+ if ( certfile && keyfile ) {
739+ this . set ( `${ nerfed } :certfile` , certfile , 'user' )
740+ this . set ( `${ nerfed } :keyfile` , keyfile , 'user' )
741+ // cert/key may be used in conjunction with other credentials, thus no `else`
742+ }
736743 if ( token ) {
737744 this . set ( `${ nerfed } :_authToken` , token , 'user' )
738745 this . delete ( `${ nerfed } :_password` , 'user' )
@@ -750,7 +757,7 @@ class Config {
750757 // protects against shoulder-hacks if password is memorable, I guess?
751758 const encoded = Buffer . from ( password , 'utf8' ) . toString ( 'base64' )
752759 this . set ( `${ nerfed } :_password` , encoded , 'user' )
753- } else {
760+ } else if ( ! certfile || ! keyfile ) {
754761 throw new Error ( 'No credentials to set.' )
755762 }
756763 }
@@ -765,6 +772,14 @@ class Config {
765772 creds . email = email
766773 }
767774
775+ const certfileReg = this . get ( `${ nerfed } :certfile` )
776+ const keyfileReg = this . get ( `${ nerfed } :keyfile` )
777+ if ( certfileReg && keyfileReg ) {
778+ creds . certfile = certfileReg
779+ creds . keyfile = keyfileReg
780+ // cert/key may be used in conjunction with other credentials, thus no `return`
781+ }
782+
768783 const tokenReg = this . get ( `${ nerfed } :_authToken` ) ||
769784 this . get ( `${ nerfed } :_authtoken` ) ||
770785 this . get ( `${ nerfed } :-authtoken` ) ||
0 commit comments