@@ -5,11 +5,11 @@ import log, { LoggerNames, getLogger } from '../logger';
55const ONE_SECOND_IN_MILLISECONDS = 1000 ;
66const ONE_MINUTE_IN_MILLISECONDS = 60 * ONE_SECOND_IN_MILLISECONDS ;
77
8- /** ConnectionCredentials handles generating credentials for connecting to a new Room */
9- export abstract class ConnectionCredentials {
10- protected cachedResponse : ConnectionCredentials . Response | null = null ;
8+ /** TokenSource handles generating credentials for connecting to a new Room */
9+ export abstract class TokenSource {
10+ protected cachedResponse : TokenSource . Response | null = null ;
1111
12- constructor ( response : ConnectionCredentials . Response | null = null ) {
12+ constructor ( response : TokenSource . Response | null = null ) {
1313 this . cachedResponse = response ;
1414 }
1515
@@ -70,9 +70,9 @@ export abstract class ConnectionCredentials {
7070 return this . getCachedResponseJwtPayload ( ) ?. attributes ?? null ;
7171 }
7272
73- abstract generate ( ) : Promise < ConnectionCredentials . Response > ;
73+ abstract generate ( ) : Promise < TokenSource . Response > ;
7474}
75- export namespace ConnectionCredentials {
75+ export namespace TokenSource {
7676 export type Request = {
7777 /** The name of the room being requested when generating credentials */
7878 roomName ?: string ;
@@ -102,14 +102,14 @@ export namespace ConnectionCredentials {
102102 } ;
103103
104104 /**
105- * ConnectionCredentials .Refreshable handles getting credentials for connecting to a new Room from
105+ * TokenSource .Refreshable handles getting credentials for connecting to a new Room from
106106 * an async source, caching them and auto refreshing them if they expire. */
107- export abstract class Refreshable extends ConnectionCredentials {
108- private request : ConnectionCredentials . Request = { } ;
107+ export abstract class Refreshable extends TokenSource {
108+ private request : TokenSource . Request = { } ;
109109
110- private inProgressFetch : Promise < ConnectionCredentials . Response > | null = null ;
110+ private inProgressFetch : Promise < TokenSource . Response > | null = null ;
111111
112- protected isSameAsCachedRequest ( request : ConnectionCredentials . Request ) {
112+ protected isSameAsCachedRequest ( request : TokenSource . Request ) {
113113 if ( ! this . request ) {
114114 return false ;
115115 }
@@ -140,8 +140,8 @@ export namespace ConnectionCredentials {
140140 /**
141141 * Store request metadata which will be provide explicitly when fetching new credentials.
142142 *
143- * @example new ConnectionCredentials .Custom((request /* <= This value! *\/) => ({ serverUrl: "...", participantToken: "..." })) */
144- setRequest ( request : ConnectionCredentials . Request ) {
143+ * @example new TokenSource .Custom((request /* <= This value! *\/) => ({ serverUrl: "...", participantToken: "..." })) */
144+ setRequest ( request : TokenSource . Request ) {
145145 if ( ! this . isSameAsCachedRequest ( request ) ) {
146146 this . cachedResponse = null ;
147147 }
@@ -175,36 +175,34 @@ export namespace ConnectionCredentials {
175175 }
176176 }
177177
178- protected abstract fetch (
179- request : ConnectionCredentials . Request ,
180- ) : Promise < ConnectionCredentials . Response > ;
178+ protected abstract fetch ( request : TokenSource . Request ) : Promise < TokenSource . Response > ;
181179 }
182180
183- /** ConnectionCredentials .Literal contains a single, literal set of credentials.
181+ /** TokenSource .Literal contains a single, literal set of credentials.
184182 * Note that refreshing credentials isn't implemented, because there is only one set provided.
185183 * */
186- export class Literal extends ConnectionCredentials {
184+ export class Literal extends TokenSource {
187185 private log = log ;
188186
189187 constructor ( payload : Response ) {
190188 super ( payload ) ;
191- this . log = getLogger ( LoggerNames . ConnectionCredentials ) ;
189+ this . log = getLogger ( LoggerNames . TokenSource ) ;
192190 }
193191
194192 async generate ( ) {
195193 if ( this . isCachedResponseExpired ( ) ) {
196194 this . log . warn (
197- 'The credentials within ConnectionCredentials .Literal have expired, so any upcoming uses of them will likely fail.' ,
195+ 'The credentials within TokenSource .Literal have expired, so any upcoming uses of them will likely fail.' ,
198196 ) ;
199197 }
200198 return this . cachedResponse ! ;
201199 }
202200 }
203201
204- /** ConnectionCredentials .Custom allows a user to define a manual function which generates new
202+ /** TokenSource .Custom allows a user to define a manual function which generates new
205203 * {@link Response} values on demand. Use this to get credentials from custom backends / etc.
206204 * */
207- export class Custom extends ConnectionCredentials . Refreshable {
205+ export class Custom extends TokenSource . Refreshable {
208206 protected fetch : ( request : Request ) => Promise < Response > ;
209207
210208 constructor ( handler : ( request : Request ) => Promise < Response > ) {
@@ -221,14 +219,14 @@ export namespace ConnectionCredentials {
221219 baseUrl ?: string ;
222220 } ;
223221
224- /** ConnectionCredentials .SandboxTokenServer queries a sandbox token server for credentials,
222+ /** TokenSource .SandboxTokenServer queries a sandbox token server for credentials,
225223 * which supports quick prototyping / getting started types of use cases.
226224 *
227225 * This token provider is INSECURE and should NOT be used in production.
228226 *
229227 * For more info:
230228 * @see https://cloud.livekit.io/projects/p_/sandbox/templates/token-server */
231- export class SandboxTokenServer extends ConnectionCredentials . Refreshable {
229+ export class SandboxTokenServer extends TokenSource . Refreshable {
232230 protected options : SandboxTokenServerOptions ;
233231
234232 constructor ( options : SandboxTokenServerOptions ) {
0 commit comments