import { InvalidStateError } from '@stacks/common' ; import { UserData } from './userData' ; const SESSION_VERSION = '1.0.0' ; type EtagMap = { [ key ] : string ; } ; export interface SessionOptions { coreNode ? : string ; userData ? : UserData ; transitKey ? : string ; etags ? : EtagMap ; localStorageKey ? : string ; storeOptions ? : { localStorageKey ? : string ; } ; } ignore export class SessionData { version : string ; transitKey ? : string ; userData ? : UserData ; etags ? : EtagMap ; constructor ( options ) { this . version = SESSION_VERSION ; this . userData = options . userData ; this . transitKey = options . transitKey ; this . etags = options . etags ? options . etags : { } ; } static fromJSON ( json ) { if ( json . version !== SESSION_VERSION ) { throw new InvalidStateError ( `JSON data version ${ json . version } not supported by SessionData` ) ; } const options = { coreNode : json . coreNode , userData : json . userData , transitKey : json . transitKey , etags : json . etags , } ; return new SessionData ( options ) ; } toString ( ) { return JSON . stringify ( this ) ; } }