@@ -13,6 +13,7 @@ class Storage extends ScratchStorage {
1313 constructor ( ) {
1414 super ( ) ;
1515 this . cacheDefaultProject ( ) ;
16+ this . accessKey = null ;
1617 }
1718 addOfficialScratchWebStores ( ) {
1819 this . addWebStore (
@@ -84,7 +85,8 @@ class Storage extends ScratchStorage {
8485 window . removeEventListener ( 'message' , handleMessage ) ;
8586 resolve ( {
8687 token : event . data . token ,
87- username : event . data . username || ''
88+ username : event . data . username || '' ,
89+ accessKey : event . data . accessKey || null
8890 } ) ;
8991 }
9092 }
@@ -94,6 +96,7 @@ class Storage extends ScratchStorage {
9496
9597 this . projectToken = creds . token ;
9698 this . username = creds . username ;
99+ this . accessKey = creds . accessKey ;
97100 // eslint-disable-next-line require-atomic-updates
98101 window . CollaborationUsername = creds ?. username ;
99102 return creds ;
@@ -105,9 +108,21 @@ class Storage extends ScratchStorage {
105108 return this . projectToken ;
106109 }
107110 getProjectGetConfig ( projectAsset ) {
108- const path = `${ this . projectHost } /${ projectAsset . assetId } ` ;
111+ let path = `${ this . projectHost } /${ projectAsset . assetId } ` ;
112+ const params = [ ] ;
113+
114+ // Scratch tokens
109115 if ( this . scratchProjectToken ) {
110- return `${ path } ?token=${ this . scratchProjectToken } ` ;
116+ params . push ( `token=${ this . scratchProjectToken } ` ) ;
117+ }
118+
119+ // CodeTorch Access Keys (Unlisted projects)
120+ if ( this . accessKey ) {
121+ params . push ( `access_key=${ this . accessKey } ` ) ;
122+ }
123+
124+ if ( params . length > 0 ) {
125+ path += `?${ params . join ( '&' ) } ` ;
111126 }
112127 return path ;
113128 }
0 commit comments