import { DEFAULT_SCOPE , DEFAULT_BLOCKSTACK_HOST , AuthScope } from './constants' ; import { getGlobalObject } from '@stacks/common' ; /**
 * Configuration data for the current app.
 *
 * On browser platforms, creating an instance of this
 * class without any arguments will use
 * `window.location.origin` as the app domain.
 * On non-browser platforms, you need to
 * specify an app domain as the second argument.
 *
 */ export class AppConfig { /**
     * Blockstack apps are uniquely identified by their app domain.
     *
     */ appDomain ? : string ; /**
     * An array of string representing permissions requested by the app.
     *
     */ scopes : ( AuthScope | string ) [ ] ; /**
     * Path on app domain to redirect users to after authentication. The
     * authentication response token will be postpended in a query.
     *
     */ redirectPath : string ; /**
     * Path relative to app domain of app's manifest file.
     *
     * This file needs to have CORS headers set so that it can be fetched
     * from any origin. Typically this means return the header `Access-Control-Allow-Origin: *`.
     *
     */ manifestPath : string ; /**
     * The URL of Blockstack core node to use for this app. If this is
     * `null`, the core node specified by the user or default core node
     * will be used.
     *
     */ coreNode ? : string ; /**
     * The URL of a web-based Blockstack Authenticator to use in the event
     * the user doesn't have Blockstack installed on their machine. If this
     * is not specified, the current default in this library will be used.
     *
     */ authenticatorURL ? : string ; param { Array < string > } scopes param { string } appDomain param { string } redirectPath param { string } manifestPath param { string | undefined } coreNode param { string } authenticatorURL constructor ( scopes = DEFAULT_SCOPE . slice ( ) , appDomain = getGlobalObject ( 'location' , { returnEmptyObject : true } ) ?. origin , redirectPath = '' , manifestPath = '/manifest.json' , coreNode = undefined , authenticatorURL = DEFAULT_BLOCKSTACK_HOST ) { this . appDomain = appDomain ; this . scopes = scopes ; this . redirectPath = redirectPath ; this . manifestPath = manifestPath ; this . coreNode = coreNode ; this . authenticatorURL = authenticatorURL ; } returns { string } redirectURI ( ) { return `${ this . appDomain }${ this . redirectPath }` ; } returns { string } manifestURI ( ) { return `${ this . appDomain }${ this . manifestPath }` ; } }