@openremote/core 1.0.3 → 1.2.0-snapshot.20240512154942

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,7 @@ import { EventProviderFactory, EventProviderStatus } from "./event";
2
2
  import { AttributeRef, SharedEvent, EventRequestResponseWrapper } from "@openremote/model";
3
3
  declare type Constructor<T = {}> = new (...args: any[]) => T;
4
4
  interface CustomElement {
5
+ requestUpdate(name?: PropertyKey, oldValue?: unknown): void;
5
6
  connectedCallback?(): void;
6
7
  disconnectedCallback?(): void;
7
8
  readonly isConnected: boolean;
@@ -38,6 +39,7 @@ export declare const subscribe: (eventProviderFactory: EventProviderFactory) =>
38
39
  onEventsConnect(): void;
39
40
  onEventsDisconnect(): void;
40
41
  _onEvent(event: SharedEvent): void;
42
+ requestUpdate(name?: PropertyKey, oldValue?: unknown): void;
41
43
  readonly isConnected: boolean;
42
44
  };
43
45
  } & T;
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(t,e,s,n){return new(s||(s=Promise))((function(i,r){function o(t){try{u(n.next(t))}catch(t){r(t)}}function c(t){try{u(n.throw(t))}catch(t){r(t)}}function u(t){var e;t.done?i(t.value):(e=t.value,e instanceof s?e:new s((function(t){t(e)}))).then(o,c)}u((n=n.apply(t,e||[])).next())}))};import{EventProviderStatus}from"./event";import{objectsEqual}from"./util";import{Util}from".";export const subscribe=t=>e=>class extends e{constructor(){super(...arguments),this._connectRequested=!1,this._status=EventProviderStatus.DISCONNECTED,this._statusCallback=t=>this._onEventProviderStatusChanged(t)}connectedCallback(){super.connectedCallback&&super.connectedCallback(),this.connectEvents()}disconnectedCallback(){this.disconnectEvents(),super.disconnectedCallback&&super.disconnectedCallback()}connectEvents(){t.getEventProvider()?this._connectRequested||(this._connectRequested=!0,t.getEventProvider().subscribeStatusChange(this._statusCallback),this._doConnect()):console.log("No event provider available so cannot subscribe")}disconnectEvents(){this._connectRequested&&(this._connectRequested=!1,t.getEventProvider().unsubscribeStatusChange(this._statusCallback),this._onEventsDisconnect())}_doConnect(){return __awaiter(this,void 0,void 0,(function*(){this.eventsConnected&&this._onEventsConnect()}))}get eventsConnected(){return this._connectRequested&&t.getEventProvider().status===EventProviderStatus.CONNECTED}_onEventProviderStatusChanged(t){switch(t){case EventProviderStatus.DISCONNECTED:this._onEventsDisconnect();break;case EventProviderStatus.CONNECTED:this._doConnect()}}_onEventsConnect(){this._addEventSubscriptions(),this.onEventsConnect()}_onEventsDisconnect(){this._removeEventSubscriptions(),this.onEventsDisconnect()}_addEventSubscriptions(){return __awaiter(this,void 0,void 0,(function*(){const e=!!this._attributeRefs,s=!!this._assetIds,n=this._attributeRefs?this._attributeRefs:this._assetIds;if(n&&n.length>0){if(this._subscriptionIds=[],s){const e=yield t.getEventProvider().subscribeAssetEvents(n,!0,(t=>this._onEvent(t))),s=this._attributeRefs?this._attributeRefs:this._assetIds;if(!this._subscriptionIds||!Util.objectsEqual(n,s))return void t.getEventProvider().unsubscribe(e);this._subscriptionIds.push(e)}const i=yield t.getEventProvider().subscribeAttributeEvents(n,e,(t=>this._onEvent(t))),r=this._attributeRefs?this._attributeRefs:this._assetIds;if(!this._subscriptionIds||!Util.objectsEqual(n,r))return void t.getEventProvider().unsubscribe(i);this._subscriptionIds.push(i)}}))}_removeEventSubscriptions(){this._subscriptionIds&&(this._subscriptionIds.forEach((e=>{t.getEventProvider().unsubscribe(e)})),this._subscriptionIds=void 0)}_refreshEventSubscriptions(){this._removeEventSubscriptions(),this._addEventSubscriptions()}set assetIds(t){objectsEqual(this._assetIds,t)||(this._assetIds=t,this._refreshEventSubscriptions(),this.requestUpdate("assetIds"))}get assetIds(){return this._assetIds}set attributeRefs(t){objectsEqual(this._attributeRefs,t)||(this._attributeRefs=t,this._refreshEventSubscriptions())}get attributeRefs(){return this._attributeRefs}_sendEvent(e){t.getEventProvider().sendEvent(e)}_sendEventWithReply(e){return t.getEventProvider().sendEventWithReply(e)}onEventsConnect(){}onEventsDisconnect(){}_onEvent(t){}};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-mixin.js","sourceRoot":"","sources":["../src/asset-mixin.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
- import { ConsoleRegistration } from "@openremote/model";
2
- export interface ProviderMessage {
1
+ import { ConsoleProvider, ConsoleRegistration } from "@openremote/model";
2
+ import { Deferred } from "./util";
3
+ export interface ProviderAction {
3
4
  provider: string;
4
5
  action: string;
6
+ }
7
+ export interface ProviderMessage extends ProviderAction {
5
8
  data?: any;
6
9
  [x: string]: any;
7
10
  }
@@ -19,7 +22,10 @@ export declare class Console {
19
22
  protected _initialised: boolean;
20
23
  protected _initialiseInProgress: boolean;
21
24
  protected _pendingProviderPromises: {
22
- [name: string]: ((response: any) => void) | null;
25
+ [name: string]: [Deferred<any>, number];
26
+ };
27
+ protected _providerMessageListeners: {
28
+ [name: string]: (msg: ProviderMessage) => void;
23
29
  };
24
30
  protected _pendingProviderEnables: string[];
25
31
  protected _enableCompleteCallback: (() => void) | null;
@@ -35,10 +41,13 @@ export declare class Console {
35
41
  enableProviders(): Promise<void>;
36
42
  enableProvider(providerName: string, data?: any): Promise<ProviderEnableResponse>;
37
43
  disableProvider(provider: string): Promise<ProviderMessage>;
44
+ getProvider(name: string): ConsoleProvider | undefined;
38
45
  sendProviderMessage(message: ProviderMessage, waitForResponse: boolean): Promise<any | null>;
39
46
  sendRegistration(delay?: number): Promise<void>;
40
- storeData(key: string, value: string | null): void;
41
- retrieveData(key: string): Promise<string | undefined>;
47
+ storeData(key: string, value: any): void;
48
+ retrieveData<T>(key: string): Promise<T | undefined>;
49
+ addProviderMessageListener(providerAction: ProviderAction, listener: (msg: ProviderMessage) => void): void;
50
+ removeProviderMessageListener(providerAction: ProviderAction): void;
42
51
  protected _postNativeShellMessage(jsonMessage: any): any;
43
52
  _doSendProviderMessage(msg: any): void;
44
53
  protected _handleProviderResponse(msg: any): void;
package/lib/console.js ADDED
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,i,r,s){return new(r||(r=Promise))((function(t,o){function n(e){try{d(s.next(e))}catch(e){o(e)}}function a(e){try{d(s.throw(e))}catch(e){o(e)}}function d(e){var i;e.done?t(e.value):(i=e.value,i instanceof r?i:new r((function(e){e(i)}))).then(n,a)}d((s=s.apply(e,i||[])).next())}))};import manager from"./index";import{Deferred}from"./util";let platform=require("platform");export class Console{constructor(e,i,r){this._autoEnable=!1,this._initialised=!1,this._initialiseInProgress=!1,this._pendingProviderPromises={},this._providerMessageListeners={},this._pendingProviderEnables=[],this._registrationTimer=null,this._realm=e,this._autoEnable=i,this._enableCompleteCallback=r,window.OpenRemoteConsole=this;let s=new URLSearchParams(window.location.search),t=s.get("consoleName"),o=s.get("consoleVersion"),n=s.get("consolePlatform"),a=s.get("consoleProviders"),d=s.get("consoleAutoEnable"),l=a&&a.length>0?a.split(" "):["push","storage"];l.indexOf("storage")<0&&l.push("storage"),this._pendingProviderEnables=l;let p=Console._createConsoleRegistration(),g=window.localStorage.getItem("OpenRemoteConsole:"+e);if(g)try{let e=JSON.parse(g);e.id&&(p.id=e.id),e.name&&(p.name=e.name),e.providers&&(p.providers=e.providers),e.apps&&(p.apps=e.apps)}catch(e){console.error("Failed to deserialise console registration")}let h=p.providers;p.providers={};for(let e of l){let i=h&&h.hasOwnProperty(e)?h[e]:{enabled:!1,disabled:!1};p.providers[e]=i}let v=manager.getAppName();v.length>0&&p.apps.indexOf(v)<0&&p.apps.push(v),this._registration=p,t&&(p.name=t),o&&(p.version=o),n&&(p.platform=n),d&&(this._autoEnable="TRUE"===d||"true"===d)}get registration(){return this._registration}get autoEnable(){return this._autoEnable}get pendingProviderEnables(){return this._pendingProviderEnables.slice(0)}get shellApple(){const e=navigator.userAgentData&&navigator.userAgentData.platform?navigator.userAgentData.platform:navigator.platform;return e&&("iP"===e.substring(0,2)||"Mac"===e.substring(0,3))&&window.webkit&&window.webkit.messageHandlers}get shellAndroid(){return!!window.MobileInterface}get isMobile(){return this.shellApple||this.shellAndroid}initialise(){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised&&!this._initialiseInProgress){console.debug("Console: initialising"),this._initialiseInProgress=!0;try{if(this._registration.providers)for(let e of Object.keys(this._registration.providers))yield this._initialiseProvider(e);this._registration.id||(yield this.sendRegistration(0)),this._initialised=!0,this._initialiseInProgress=!1,0===this._pendingProviderEnables.length?(yield this.sendRegistration(),this._callCompletedCallback()):this._autoEnable&&(yield this.enableProviders())}catch(e){console.error(e)}finally{this._initialiseInProgress=!1}}}))}enableProviders(){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised)throw new Error("Console must be initialised before enabling providers");for(let e=this._pendingProviderEnables.length-1;e>-1;e--){let i=this._pendingProviderEnables[e];yield this.enableProvider(i)}}))}enableProvider(e,i){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised)throw console.debug("Console must be initialised before disabling providers"),new Error("Console must be initialised before enabling providers");if(!this._registration.providers.hasOwnProperty(e))throw console.debug("Invalid console provider '"+e+"'"),new Error("Invalid console provider '"+e+"'");console.debug("Console: enabling provider '"+e+"'");let r={provider:e,action:"PROVIDER_ENABLE",consoleId:this._registration.id,data:i},s=yield this.sendProviderMessage(r,!0);this._registration.providers[e].hasPermission=s.hasPermission,this._registration.providers[e].success=s.success,this._registration.providers[e].enabled=s.success,this._registration.providers[e].data=s.data;let t=this._pendingProviderEnables.indexOf(e);return t>=0&&(this._pendingProviderEnables.splice(t,1),0===this._pendingProviderEnables.length&&(this.sendRegistration(),this._callCompletedCallback())),s}))}disableProvider(e){return __awaiter(this,void 0,void 0,(function*(){if(!this._initialised)throw console.debug("Console must be initialised before disabling providers"),new Error("Console must be initialised before disabling providers");if(!this._registration.providers.hasOwnProperty(e))throw console.debug("Invalid console provider '"+e+"'"),new Error("Invalid console provider '"+e+"'");console.debug("Console: disabling provider '"+e+"'");let i=yield this.sendProviderMessage({provider:e,action:"PROVIDER_DISABLE"},!0);return this._registration.providers[e].disabled=!0,this._registration.providers[e].enabled=!1,i}))}getProvider(e){return this._registration&&this._registration.providers?this._registration.providers[e]:void 0}sendProviderMessage(e,i){return __awaiter(this,void 0,void 0,(function*(){if(!this._registration.providers.hasOwnProperty(e.provider))throw console.debug("Invalid console provider '"+e.provider+"'"),new Error("Invalid console provider '"+e.provider+"'");if(!i)return void this._doSendProviderMessage(e);let r=e.provider+e.action;if(this._pendingProviderPromises[r])throw new Error("Message already pending for provider '"+e.provider+"' with action '"+e.action+"'");const s=new Deferred;return this._pendingProviderPromises[r]=[s,window.setTimeout((()=>{delete this._pendingProviderPromises[r],s.reject("No response from provider")}),5e3)],this._doSendProviderMessage(e),s.promise}))}sendRegistration(e){return this._registrationTimer&&(window.clearTimeout(this._registrationTimer),this._registrationTimer=null),e=void 0!==e?e:2e3,console.debug("Sending registration in: "+e+"ms"),new Promise(((e,i)=>{this._registrationTimer=window.setTimeout((()=>{this._registrationTimer=null,console.debug("Console: updating registration");try{this._registration.name||(this._registration.name="Console"),this._registration.platform||(this._registration.platform="N/A"),this._registration.version||(this._registration.version="N/A"),this._registration.providers||(this._registration.providers={}),manager.rest.api.ConsoleResource.register(this._registration).then((i=>{if(200!==i.status)throw new Error("Failed to register console");this._registration=i.data,console.debug("Console: registration successful"),console.debug("Console: updating locally stored registration"),window.localStorage.setItem("OpenRemoteConsole:"+this._realm,JSON.stringify(this._registration)),e()}))}catch(e){console.error("Failed to register console"),i("Failed to register console")}}))}))}storeData(e,i){this.sendProviderMessage({provider:"storage",action:"STORE",key:e,value:i},!1)}retrieveData(e){return __awaiter(this,void 0,void 0,(function*(){let i=yield this.sendProviderMessage({provider:"storage",action:"RETRIEVE",key:e},!0);if(i&&i.value)return i.value}))}addProviderMessageListener(e,i){this._providerMessageListeners[e.provider+e.action]=i}removeProviderMessageListener(e){delete this._providerMessageListeners[e.provider+e.action]}_postNativeShellMessage(e){return this.shellAndroid?window.MobileInterface.postMessage(JSON.stringify(e)):this.shellApple?window.webkit.messageHandlers.int.postMessage(e):void 0}_doSendProviderMessage(e){if(this.isMobile)this._postNativeShellMessage({type:"provider",data:e});else{if(!e.provider||!e.action)return;switch(e.provider.trim().toUpperCase()){case"PUSH":switch(e.action.trim().toUpperCase()){case"PROVIDER_INIT":let i={action:"PROVIDER_INIT",provider:"push",version:"web",enabled:!0,disabled:!1,hasPermission:!0,requiresPermission:!1,success:!0};this._handleProviderResponse(JSON.stringify(i));break;case"PROVIDER_ENABLE":let r={action:"PROVIDER_ENABLE",provider:"push",hasPermission:!0,success:!0};this._handleProviderResponse(JSON.stringify(r));break;default:throw new Error("Unsupported provider '"+e.provider+"' and action '"+e.action+"'")}break;case"STORAGE":switch(e.action){case"PROVIDER_INIT":let i={action:"PROVIDER_INIT",provider:"storage",version:"1.0.0",disabled:!1,enabled:!0,hasPermission:!0,requiresPermission:!1,success:!0};this._handleProviderResponse(JSON.stringify(i));break;case"PROVIDER_ENABLE":let r={action:"PROVIDER_ENABLE",provider:"storage",hasPermission:!0,success:!0};this._handleProviderResponse(JSON.stringify(r));break;case"STORE":{let i=e.key?e.key.trim():null;if(!i||0===i.length)throw new Error("Storage provider 'store' action requires a `key`");null===e.value?window.localStorage.removeItem(i):window.localStorage.setItem(i,JSON.stringify(e.value))}break;case"RETRIEVE":{let i=e.key?e.key.trim():null;if(!i||0===i.length)throw new Error("Storage provider 'retrieve' action requires a `key`");let r=window.localStorage.getItem(i);if(null!==r)try{r=JSON.parse(r)}catch(e){}this._handleProviderResponse(JSON.stringify({action:"RETRIEVE",provider:"storage",key:i,value:r}))}break;default:throw new Error("Unsupported provider '"+e.provider+"' and action '"+e.action+"'")}break;default:console.error("Unsupported provider: "+e.provider)}}}_handleProviderResponse(e){if(!e)return;let i=JSON.parse(e),r=i.provider,s=i.action,t=this._pendingProviderPromises[r+s];t&&(window.clearTimeout(t[1]),delete this._pendingProviderPromises[r+s],t[0].resolve(i));let o=this._providerMessageListeners[r+s];o&&o(i)}_callCompletedCallback(){let e=this._enableCompleteCallback;this._enableCompleteCallback=null,e&&window.setTimeout((()=>{e()}),0)}static _createConsoleRegistration(){return{name:platform.name,version:platform.version,platform:platform.os.toString(),apps:[],model:((platform.manufacturer?platform.manufacturer+" ":"")+(platform.product?platform.product:"")).trim()}}_initialiseProvider(e){return __awaiter(this,void 0,void 0,(function*(){let i;console.debug("Console: initialising provider '"+e+"'");try{i=yield this.sendProviderMessage({provider:e,action:"PROVIDER_INIT"},!0),this._registration.providers[e].version=i.version,this._registration.providers[e].requiresPermission=i.requiresPermission,this._registration.providers[e].hasPermission=i.hasPermission,this._registration.providers[e].success=i.success,this._registration.providers[e].enabled=i.enabled,this._registration.providers[e].disabled=i.disabled,this._registration.providers[e].data=i.data}catch(e){console.error(e),i={action:"",disabled:!1,enabled:!1,hasPermission:!1,provider:"",requiresPermission:!1,version:"",success:!1}}if(i.success||(console.debug("Provider initialisation failed: '"+e+"'"),i.disabled=!0,this._registration.providers[e].disabled=!0),i.disabled||i.enabled){let i=this._pendingProviderEnables.indexOf(e);i>=0&&this._pendingProviderEnables.splice(i,1)}}))}}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export const DefaultColor4="#4d9d2a";export const DefaultColor7="#FFFFFF";export const DefaultColor1="#FFFFFF";export const DefaultColor2="#F9F9F9";export const DefaultColor5="#CCCCCC";export const DefaultColor6="#be0000";export const DefaultColor8="#FFFFFF";export const DefaultColor3="#4c4c4c";export const DefaultColor9="#000000";export const DefaultColor10="#000000";export const DefaultColor11="#FFFFFF";export const DefaultBoxShadowBottom="0 5px 5px -5px rgba(0,0,0,0.3)";export const DefaultBoxShadow="0 1px 3px 0 rgba(0,0,0,0.21)";export const DefaultHeaderHeight="50px";export const DefaultDisabledOpacity="0.3";
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,UAAU;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,YAAY;AAC5D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,UAAU;AAC1D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,aAAa;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,oBAAoB;AACpE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,gBAAgB;AAChE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,aAAa;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,sBAAsB;AACtE,MAAM,CAAC,MAAM,aAAa,GAAW,SAAS,CAAC,CAAC,gBAAgB;AAChE,MAAM,CAAC,MAAM,cAAc,GAAW,SAAS,CAAC,CAAC,aAAa;AAC9D,MAAM,CAAC,MAAM,cAAc,GAAW,SAAS,CAAC,CAAC,WAAW;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAW,gCAAgC,CAAC;AAC/E,MAAM,CAAC,MAAM,gBAAgB,GAAW,8BAA8B,CAAC;AACvE,MAAM,CAAC,MAAM,mBAAmB,GAAW,MAAM,CAAC;AAClD,MAAM,CAAC,MAAM,sBAAsB,GAAW,KAAK,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import { Deferred } from "./util";
2
- import { Asset, AssetEvent, AttributeEvent, AttributeRef, EventRequestResponseWrapper, EventSubscription, SharedEvent } from "@openremote/model";
2
+ import { AssetEvent, AttributeEvent, AttributeRef, EventRequestResponseWrapper, EventSubscription, SharedEvent } from "@openremote/model";
3
3
  export declare enum EventProviderStatus {
4
4
  DISCONNECTED = "DISCONNECTED",
5
5
  CONNECTED = "CONNECTED",
6
- CONNECTING = "CONNECTING"
6
+ CONNECTING = "CONNECTING",
7
+ RECONNECT_FAILED = "RECONNECT_FAILED"
7
8
  }
8
9
  export interface EventProvider {
9
10
  status: EventProviderStatus;
@@ -13,7 +14,14 @@ export interface EventProvider {
13
14
  unsubscribeStatusChange(callback: (status: EventProviderStatus) => void): void;
14
15
  subscribe<T extends SharedEvent>(eventSubscription: EventSubscription<T>, callback: (event: T) => void): Promise<string>;
15
16
  unsubscribe<T extends SharedEvent>(subscriptionId: string): void;
16
- subscribeAssetEvents(ids: string[] | AttributeRef[] | null, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
17
+ /**
18
+ * Subscribe to {@link AssetEvent}s for the specified {@link Asset}s for all {@link Asset}s
19
+ */
20
+ subscribeAssetEvents(ids: string[] | AttributeRef[] | undefined, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
21
+ /**
22
+ * Subscribe to {@link AttributeEvent}s for the specified {@link Asset}s and if {@link AttributeRef}s are provided
23
+ * then the attribute names from the refs will be used for each asset ID.
24
+ */
17
25
  subscribeAttributeEvents(ids: string[] | AttributeRef[], requestCurrentValues: boolean, callback: (event: AttributeEvent) => void): Promise<string>;
18
26
  sendEvent<T extends SharedEvent>(event: T): void;
19
27
  sendEventWithReply<T extends SharedEvent, U extends SharedEvent>(event: EventRequestResponseWrapper<T>): Promise<U>;
@@ -26,11 +34,6 @@ interface EventSubscriptionInfo<T extends SharedEvent> {
26
34
  callback: (event: T) => void;
27
35
  deferred: Deferred<string> | null;
28
36
  }
29
- interface AssetSubscriptionInfo {
30
- callbacks: Map<string, (attributeEvent: AttributeEvent) => void>;
31
- asset?: Asset;
32
- promise?: Promise<void>;
33
- }
34
37
  declare abstract class EventProviderImpl implements EventProvider {
35
38
  protected static MIN_RECONNECT_DELAY: number;
36
39
  protected static MAX_RECONNECT_DELAY: number;
@@ -42,10 +45,12 @@ declare abstract class EventProviderImpl implements EventProvider {
42
45
  protected _statusCallbacks: Array<(status: EventProviderStatus) => void>;
43
46
  protected _pendingSubscription: EventSubscriptionInfo<SharedEvent> | null;
44
47
  protected _queuedSubscriptions: EventSubscriptionInfo<SharedEvent>[];
45
- protected _subscriptionMap: {
46
- [id: string]: EventSubscriptionInfo<SharedEvent>;
47
- };
48
- protected _assetSubscriptionMap: Map<string, AssetSubscriptionInfo>;
48
+ protected _subscriptionMap: Map<string, EventSubscriptionInfo<SharedEvent>>;
49
+ protected _assetEventPromise?: Promise<string>;
50
+ protected _assetEventCallbackMap: Map<string, (e: AssetEvent) => void>;
51
+ protected _attributeEventPromise?: Promise<string>;
52
+ protected _attributeEventCallbackMap: Map<string, (e: AttributeEvent) => void>;
53
+ protected _unloading: boolean;
49
54
  protected static _subscriptionCounter: number;
50
55
  abstract get endpointUrl(): string;
51
56
  get status(): EventProviderStatus;
@@ -54,15 +59,11 @@ declare abstract class EventProviderImpl implements EventProvider {
54
59
  connect(): Promise<boolean>;
55
60
  disconnect(): void;
56
61
  subscribe<T extends SharedEvent>(eventSubscription: EventSubscription<T>, callback: (event: T) => void): Promise<string>;
57
- unsubscribe<T extends SharedEvent>(subscriptionId: string): void;
62
+ unsubscribe<T extends SharedEvent>(subscriptionId: string): Promise<void>;
58
63
  sendEvent<T extends SharedEvent>(event: T): void;
59
64
  sendEventWithReply<T extends SharedEvent, U extends SharedEvent>(event: EventRequestResponseWrapper<T>): Promise<U>;
60
- subscribeAssetEvents(ids: string[] | AttributeRef[] | null, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
61
- /**
62
- * Subscribe for updates to a particular attribute; internally this creates subscriptions for all attributes of an
63
- * asset and manages delivery of the update attributes to the subscribers
64
- */
65
- subscribeAttributeEvents(ids: string[] | AttributeRef[], requestCurrentValues: boolean, callback: (event: AttributeEvent) => void): Promise<string>;
65
+ subscribeAssetEvents(ids: string[] | AttributeRef[] | undefined, requestCurrentValues: boolean, callback: (event: AssetEvent) => void): Promise<string>;
66
+ subscribeAttributeEvents(ids: string[] | AttributeRef[] | undefined, requestCurrentValues: boolean, callback: (event: AttributeEvent) => void): Promise<string>;
66
67
  protected _processNextSubscription(): void;
67
68
  private _onStatusChanged;
68
69
  protected _onMessageReceived(subscriptionId: string, event: SharedEvent): void;
package/lib/event.js ADDED
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,t,s,i){return new(s||(s=Promise))((function(n,r){function o(e){try{a(i.next(e))}catch(e){r(e)}}function c(e){try{a(i.throw(e))}catch(e){r(e)}}function a(e){var t;e.done?n(e.value):(t=e.value,t instanceof s?t:new s((function(e){e(t)}))).then(o,c)}a((i=i.apply(e,t||[])).next())}))};import manager from"./index";import{arrayRemove,Deferred}from"./util";export var EventProviderStatus;!function(e){e.DISCONNECTED="DISCONNECTED",e.CONNECTED="CONNECTED",e.CONNECTING="CONNECTING",e.RECONNECT_FAILED="RECONNECT_FAILED"}(EventProviderStatus||(EventProviderStatus={}));const SUBSCRIBE_MESSAGE_PREFIX="SUBSCRIBE:",SUBSCRIBED_MESSAGE_PREFIX="SUBSCRIBED:",UNSUBSCRIBE_MESSAGE_PREFIX="UNSUBSCRIBE:",UNAUTHORIZED_MESSAGE_PREFIX="UNAUTHORIZED:",TRIGGERED_MESSAGE_PREFIX="TRIGGERED:",EVENT_MESSAGE_PREFIX="EVENT:",EVENT_REQUEST_RESPONSE_MESSAGE_PREFIX="REQUESTRESPONSE:";class EventProviderImpl{constructor(){this._disconnectRequested=!1,this._reconnectDelayMillis=WebSocketEventProvider.MIN_RECONNECT_DELAY,this._reconnectTimer=null,this._status=EventProviderStatus.DISCONNECTED,this._connectingDeferred=null,this._statusCallbacks=[],this._pendingSubscription=null,this._queuedSubscriptions=[],this._subscriptionMap=new Map,this._assetEventCallbackMap=new Map,this._attributeEventCallbackMap=new Map,this._unloading=!1}get status(){return this._status}subscribeStatusChange(e){this._statusCallbacks.push(e)}unsubscribeStatusChange(e){arrayRemove(this._statusCallbacks,e)}connect(){return this._status===EventProviderStatus.CONNECTED?Promise.resolve(!0):(this._disconnectRequested=!1,this._connectingDeferred||(this._onStatusChanged(EventProviderStatus.CONNECTING),this._connectingDeferred=new Deferred,this._doConnect().then((e=>{if(this._connectingDeferred){const t=this._connectingDeferred;this._connectingDeferred=null,this._reconnectTimer&&(window.clearTimeout(this._reconnectTimer),this._reconnectTimer=null),e?(console.debug("Connected to event service: "+this.endpointUrl),this._reconnectDelayMillis=WebSocketEventProvider.MIN_RECONNECT_DELAY,this._onStatusChanged(EventProviderStatus.CONNECTED),window.setTimeout((()=>{this._onConnect()}),0)):(console.debug("Failed to connect to event service: "+this.endpointUrl),this._onStatusChanged(EventProviderStatus.DISCONNECTED)),t.resolve(e)}}))),this._connectingDeferred.promise)}disconnect(){console.debug("Disconnecting from event service: "+this.endpointUrl),this._disconnectRequested||(this._disconnectRequested=!0,this._reconnectTimer&&(window.clearTimeout(this._reconnectTimer),this._reconnectTimer=null),this.status!==EventProviderStatus.DISCONNECTED&&this._doDisconnect())}subscribe(e,t){const s={eventSubscription:e,callback:t,deferred:new Deferred};return null!=this._pendingSubscription||this._status!==EventProviderStatus.CONNECTED?(this._queuedSubscriptions.push(s),s.deferred.promise):(this._pendingSubscription=s,this._doSubscribe(e).then((e=>{if(this._pendingSubscription){const t=this._pendingSubscription;this._pendingSubscription=null,this._subscriptionMap.set(e,t),this._processNextSubscription();const s=t.deferred;t.deferred=null,s&&s.resolve(e)}}),(e=>{if(this._pendingSubscription){const t=this._pendingSubscription;this._pendingSubscription=null,this._processNextSubscription();const s=t.deferred;t.deferred=null,s&&s.reject(e)}})),this._pendingSubscription.deferred.promise)}unsubscribe(e){return __awaiter(this,void 0,void 0,(function*(){if(this._subscriptionMap.delete(e))this._doUnsubscribe(e);else if(this._assetEventCallbackMap.delete(e)){if(this._assetEventPromise&&0===this._assetEventCallbackMap.size){const e=yield this._assetEventPromise;this._assetEventPromise=void 0,this.unsubscribe(e)}}else if(this._attributeEventCallbackMap.delete(e)&&this._attributeEventPromise&&0===this._attributeEventCallbackMap.size){const e=yield this._attributeEventPromise;this._attributeEventPromise=void 0,this.unsubscribe(e)}}))}sendEvent(e){this._status===EventProviderStatus.CONNECTED&&this._doSend(e)}sendEventWithReply(e){return this._status!==EventProviderStatus.CONNECTED?Promise.reject("Not connected"):this._doSendWithReply(e)}subscribeAssetEvents(e,t,s){return __awaiter(this,void 0,void 0,(function*(){const i=e&&"string"!=typeof e[0]?e.map((e=>e.id)):e,n="AssetEvent"+EventProviderImpl._subscriptionCounter++;if(!this._assetEventPromise){let e;manager.authenticated||(e={filterType:"asset",realm:manager.displayRealm});const t={eventType:"asset",filter:e};this._assetEventPromise=this.subscribe(t,(e=>{this._assetEventCallbackMap.forEach((t=>t(e)))}))}return this._assetEventCallbackMap.set(n,(e=>{const t=e.asset.id;i?i.find((e=>t===e))&&s(e):e.asset.realm===manager.displayRealm&&s(e)})),this._assetEventPromise.then((()=>{try{if(i&&t){const e={messageId:"read-assets:"+i.join(",")+":"+n,event:{eventType:"read-assets",assetQuery:{ids:i}}};this.sendEventWithReply(e).then((e=>{const t=e;t.assets&&this._assetEventCallbackMap.has(n)&&t.assets.forEach((e=>{s({eventType:"asset",asset:e,cause:"READ"})}))}))}}catch(t){throw console.error("Failed to subscribe to asset events for assets: "+e),n&&this.unsubscribe(n),t}return n}))}))}subscribeAttributeEvents(e,t,s){return __awaiter(this,void 0,void 0,(function*(){const i=e&&"string"!=typeof e[0],n=i?e.map((e=>e.id)):e,r=i?e:void 0,o="AttributeEvent"+EventProviderImpl._subscriptionCounter++;if(!this._attributeEventPromise){let e;manager.authenticated||(e={filterType:"asset",realm:manager.displayRealm});const t={eventType:"attribute",filter:e};this._attributeEventPromise=this.subscribe(t,(e=>{this._attributeEventCallbackMap.forEach((t=>t(e)))}))}const c=t=>{const r=t.ref;i?e.forEach((e=>{r.id===e.id&&r.name===e.name&&s(t)})):n?n.find((e=>r.id===e))&&s(t):t.realm===manager.displayRealm&&s(t)};return this._attributeEventCallbackMap.set(o,c),this._attributeEventPromise.then((()=>{try{if(t&&n){const e={messageId:"read-assets:"+n.join(",")+":"+o,event:{eventType:"read-assets",assetQuery:{ids:n}}};this.sendEventWithReply(e).then((e=>{const t=e;t.assets&&this._attributeEventCallbackMap.has(o)&&t.assets.forEach((e=>{e.attributes&&Object.entries(e.attributes).forEach((([t,s])=>{r&&!r.find((s=>s.id===e.id&&s.name===t))||c({eventType:"attribute",timestamp:s.timestamp,value:s.value,ref:{id:e.id,name:t}})}))}))}))}}catch(t){throw console.error("Failed to subscribe to asset events for assets: "+e),o&&this.unsubscribe(o),t}return o}))}))}_processNextSubscription(){this._status===EventProviderStatus.CONNECTED&&0!==this._queuedSubscriptions.length&&setTimeout((()=>{const e=this._queuedSubscriptions.shift();e&&this.subscribe(e.eventSubscription,e.callback).then((t=>{const s=e.deferred;e.deferred=null,s&&s.resolve(t)}),(t=>{const s=e.deferred;e.deferred=null,s&&s.reject(t)}))}),0)}_onStatusChanged(e){e!==this._status&&(console.debug("Event provider status changed: "+e),this._status=e,this._unloading||window.setTimeout((()=>{this._statusCallbacks.forEach((t=>t(e)))}),0))}_onMessageReceived(e,t){const s=this._subscriptionMap.get(e);s&&s.callback(t)}_onConnect(){if(Object.keys(this._subscriptionMap).length>0){for(const e in this._subscriptionMap)this._subscriptionMap.has(e)&&this._queuedSubscriptions.unshift(this._subscriptionMap.get(e));this._subscriptionMap.clear()}this._processNextSubscription()}_onDisconnect(){this._onStatusChanged(EventProviderStatus.DISCONNECTED),this._pendingSubscription&&(this._queuedSubscriptions.unshift(this._pendingSubscription),this._pendingSubscription=null),this._scheduleReconnect()}_scheduleReconnect(){this._reconnectTimer||this._disconnectRequested||(console.debug("Event provider scheduling reconnect in "+this._reconnectDelayMillis+"ms"),this._reconnectTimer=window.setTimeout((()=>{this._disconnectRequested||this.connect().then((e=>{e||(this._onStatusChanged(EventProviderStatus.RECONNECT_FAILED),this._scheduleReconnect())})).catch((e=>{this._onStatusChanged(EventProviderStatus.RECONNECT_FAILED),this._scheduleReconnect()}))}),this._reconnectDelayMillis),this._reconnectDelayMillis<WebSocketEventProvider.MAX_RECONNECT_DELAY&&(this._reconnectDelayMillis=Math.min(WebSocketEventProvider.MAX_RECONNECT_DELAY,this._reconnectDelayMillis+3e3)))}}EventProviderImpl.MIN_RECONNECT_DELAY=0,EventProviderImpl.MAX_RECONNECT_DELAY=3e4,EventProviderImpl._subscriptionCounter=0;export class WebSocketEventProvider extends EventProviderImpl{get endpointUrl(){return this._endpointUrl}constructor(e){super(),this._webSocket=void 0,this._connectDeferred=null,this._subscribeDeferred=null,this._repliesDeferred=new Map,this._endpointUrl=(e.startsWith("https:")?"wss":"ws")+"://"+e.substr(e.indexOf("://")+3)+"/websocket/events",window.addEventListener("beforeunload",(()=>{this._unloading=!0,this.disconnect()}))}_doConnect(){let e=this._endpointUrl+"?Realm="+manager.config.realm;return manager.authenticated&&(e+="&Authorization="+manager.getAuthorizationHeader()),this._webSocket=new WebSocket(e),this._connectDeferred=new Deferred,manager.isTokenExpired()&&this._connectDeferred.resolve(!1),this._webSocket.onopen=()=>{if(this._connectDeferred){const e=this._connectDeferred;this._connectDeferred=null,e.resolve(!0)}},this._webSocket.onerror=e=>{if(this._connectDeferred){const e=this._connectDeferred;this._connectDeferred=null,e.resolve(!1)}else console.debug("Event provider error"),this._beforeDisconnect()},this._webSocket.onclose=()=>{if(this._webSocket=void 0,this._connectDeferred){const e=this._connectDeferred;this._connectDeferred=null,e.resolve(!1)}else this._beforeDisconnect()},this._webSocket.onmessage=e=>{const t=e.data;if(t&&t.startsWith("SUBSCRIBED:")){const e=t.substring(11),s=JSON.parse(e),i=this._subscribeDeferred;this._subscribeDeferred=null,i&&i.resolve(s.subscriptionId)}else if(t.startsWith("UNAUTHORIZED:")){const e=t.substring(13),s=JSON.parse(e),i=this._subscribeDeferred;this._subscribeDeferred=null,i&&(console.warn("Unauthorized event subscription: "+JSON.stringify(s,null,2)),i.reject("Unauthorized"))}else if(t.startsWith("TRIGGERED:")){const e=t.substring(10),s=JSON.parse(e);s.events&&s.events.forEach((e=>{this._onMessageReceived(s.subscriptionId,e)}))}else if(t.startsWith("REQUESTRESPONSE:")){const e=t.substring(16),s=JSON.parse(e);if(s.messageId&&s.event){const e=this._repliesDeferred.get(s.messageId);this._repliesDeferred.delete(s.messageId),e&&e.resolve(s.event)}}},this._connectDeferred.promise}_beforeDisconnect(){this._onDisconnect()}_doDisconnect(){var e;null===(e=this._webSocket)||void 0===e||e.close(),this._subscribeDeferred=null,this._repliesDeferred.clear()}_doSubscribe(e){return this._webSocket?this._subscribeDeferred?Promise.reject("There's already a pending subscription"):(this._subscribeDeferred=new Deferred,e.subscriptionId||(e.subscriptionId=WebSocketEventProvider._subscriptionCounter+++""),this._webSocket.send("SUBSCRIBE:"+JSON.stringify(e)),this._subscribeDeferred.promise):Promise.reject("Not connected")}_doUnsubscribe(e){if(!this._webSocket)return;const t={subscriptionId:e};this._webSocket.send("UNSUBSCRIBE:"+JSON.stringify(t))}_doSend(e){const t="EVENT:"+JSON.stringify(e);this._webSocket.send(t)}_doSendWithReply(e){if(e.messageId||(e.messageId=((new Date).getTime()+10*Math.random()).toString(10)),this._repliesDeferred.has(e.messageId))return Promise.reject("There's already a pending send and reply with this ID");const t=new Deferred;return this._repliesDeferred.set(e.messageId,t),this._webSocket.send("REQUESTRESPONSE:"+JSON.stringify(e)),t.promise}}WebSocketEventProvider._subscriptionCounter=1;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,WAAW,EAAE,QAAQ,EAAC,MAAM,QAAQ,CAAC;AAiB7C,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC3B,oDAA6B,CAAA;IAC7B,8CAAuB,CAAA;IACvB,gDAAyB,CAAA;IACzB,4DAAqC,CAAA;AACzC,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B;AAkDD,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAC9C,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAChD,MAAM,0BAA0B,GAAG,cAAc,CAAC;AAClD,MAAM,2BAA2B,GAAG,eAAe,CAAC;AACpD,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAC9C,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AACtC,MAAM,qCAAqC,GAAG,kBAAkB,CAAC;AAEjE,MAAe,iBAAiB;IAAhC;QAIc,yBAAoB,GAAY,KAAK,CAAC;QACtC,0BAAqB,GAAW,sBAAsB,CAAC,mBAAmB,CAAC;QAC3E,oBAAe,GAAkB,IAAI,CAAC;QACtC,YAAO,GAAwB,mBAAmB,CAAC,YAAY,CAAC;QAChE,wBAAmB,GAA6B,IAAI,CAAC;QACrD,qBAAgB,GAAiD,EAAE,CAAC;QACpE,yBAAoB,GAA8C,IAAI,CAAC;QACvE,yBAAoB,GAAyC,EAAE,CAAC;QAChE,qBAAgB,GAAoD,IAAI,GAAG,EAAE,CAAC;QAE9E,2BAAsB,GAAyC,IAAI,GAAG,EAAE,CAAC;QAEzE,+BAA0B,GAA6C,IAAI,GAAG,EAAE,CAAC;QACjF,eAAU,GAAG,KAAK,CAAC;IA8ejC,CAAC;IAzeG,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,qBAAqB,CAAC,QAA+C;QACxE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEM,uBAAuB,CAAC,QAA+C;QAC1E,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACV,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;QAC5C,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAEtD,IAAI,CAAC,mBAAmB,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE1C,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,CAAC,SAAkB,EAAE,EAAE;YAC1C,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC;gBAC1C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAEhC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACvB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;oBAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAChC,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACZ,OAAO,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACjE,IAAI,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,mBAAmB,CAAC;oBACxE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBAErD,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;oBACtB,CAAC,EAAE,CAAC,CAAC,CAAC;gBACV,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzE,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;gBAC5D,CAAC;gBAED,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;IAC5C,CAAC;IAEM,UAAU;QACb,OAAO,CAAC,KAAK,CAAC,oCAAoC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QACD,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QAEjC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YAC1C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,KAAK,mBAAmB,CAAC,YAAY,EAAE,CAAC;YACnD,OAAO;QACX,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEM,SAAS,CAAwB,iBAAuC,EAAE,QAA4B;QAEzG,MAAM,gBAAgB,GAAuC;YACzD,iBAAiB,EAAE,iBAAiB;YACpC,QAAQ,EAAE,QAA0C;YACpD,QAAQ,EAAE,IAAI,QAAQ,EAAU;SACnC,CAAC;QAEF,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACtF,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACjD,OAAO,gBAAgB,CAAC,QAAS,CAAC,OAAO,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;QAE7C,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACrC,cAAc,CAAC,EAAE;YACb,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBAEjC,oCAAoC;gBACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;gBAExD,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;gBACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAE7B,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;gBACrC,CAAC;YACL,CAAC;QACL,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;YACP,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;gBAC/C,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;gBACjC,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;gBACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAE7B,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC;YACL,CAAC;QACL,CAAC,CAAC,CAAC;QAEP,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAS,CAAC,OAAO,CAAC;IACvD,CAAC;IAEY,WAAW,CAAwB,cAAsB;;YAElE,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;gBACpC,OAAO;YACX,CAAC;YAED,IAAI,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACrD,IAAI,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,sBAAsB,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACpE,gCAAgC;oBAChC,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;oBAC/D,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;oBACpC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO;YACX,CAAC;YAED,IAAI,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;gBACzD,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBAC5E,oCAAoC;oBACpC,MAAM,4BAA4B,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC;oBACvE,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;oBACxC,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;gBACnD,CAAC;gBACD,OAAO;YACX,CAAC;QACL,CAAC;KAAA;IAEM,SAAS,CAAwB,KAAQ;QAE5C,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACjD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;IAEM,kBAAkB,CAA+C,KAAqC;QACzG,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACjD,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAEY,oBAAoB,CAAC,GAA0C,EAAE,oBAA6B,EAAE,QAAqC;;YAE9I,MAAM,cAAc,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAE,GAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,GAA2B,CAAC;YAC9G,MAAM,cAAc,GAAG,YAAY,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAE/E,6GAA6G;YAC7G,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAE3B,IAAI,WAAoC,CAAC;gBAEzC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,WAAW,GAAG;wBACV,UAAU,EAAE,OAAO;wBACnB,KAAK,EAAE,OAAO,CAAC,YAAY;qBAC9B,CAAA;gBACL,CAAC;gBAED,MAAM,YAAY,GAAkC;oBAChD,SAAS,EAAE,OAAO;oBAClB,MAAM,EAAE,WAAW;iBACtB,CAAC;gBACF,kBAAkB;gBAClB,8BAA8B;gBAC9B,+BAA+B;gBAC/B,6BAA6B;gBAC7B,SAAS;gBACT,IAAI;gBACJ,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC7D,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,CAAC,CAAC,CAAC;YACP,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,CAAa,EAAE,EAAE;gBAClC,MAAM,OAAO,GAAG,CAAC,CAAC,KAAM,CAAC,EAAG,CAAC;gBAE7B,IAAI,QAAQ,EAAE,CAAC;oBACX,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;wBACxC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAM,CAAC,KAAM,CAAC;oBAC9B,IAAI,KAAK,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;wBACjC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAErC,IAAI,CAAC;oBACD,mDAAmD;oBACnD,IAAI,QAAQ,IAAI,oBAAoB,EAAE,CAAC;wBACnC,MAAM,WAAW,GAAiD;4BAC9D,SAAS,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc;4BACrE,KAAK,EAAE;gCACH,SAAS,EAAE,aAAa;gCACxB,UAAU,EAAE;oCACR,GAAG,EAAE,QAAQ;iCAChB;6BACJ;yBACJ,CAAA;wBACD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;6BAC/B,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE;4BACrB,MAAM,WAAW,GAAG,CAAgB,CAAC;4BACrC,kCAAkC;4BAClC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gCAC1E,OAAO;4BACX,CAAC;4BAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gCACjC,MAAM,UAAU,GAAe;oCAC3B,SAAS,EAAE,OAAO;oCAClB,KAAK,EAAE,KAAK;oCACZ,KAAK,mCAAsB;iCAC9B,CAAC;gCACF,QAAQ,CAAC,UAAU,CAAC,CAAC;4BACzB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAC;oBACxE,IAAI,cAAc,EAAE,CAAC;wBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC;oBACD,MAAM,CAAC,CAAC;gBACZ,CAAC;gBAED,OAAO,cAAc,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEY,wBAAwB,CAAC,GAA0C,EAAE,oBAA6B,EAAE,QAAyC;;YAEtJ,MAAM,cAAc,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;YACzD,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAE,GAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAG,CAAC,CAAC,CAAC,CAAC,GAA2B,CAAC;YAC9G,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,GAAqB,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,MAAM,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,CAAC;YAEnF,iHAAiH;YACjH,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAE/B,IAAI,WAAoC,CAAC;gBAEzC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;oBACzB,8CAA8C;oBAC9C,WAAW,GAAG;wBACV,UAAU,EAAE,OAAO;wBACnB,KAAK,EAAE,OAAO,CAAC,YAAY;qBAC9B,CAAA;gBACL,CAAC;gBAED,MAAM,YAAY,GAAsC;oBACpD,SAAS,EAAE,WAAW;oBACtB,MAAM,EAAE,WAAW;iBACtB,CAAC;gBACF,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjE,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;YACP,CAAC;YAED,8EAA8E;YAC9E,MAAM,WAAW,GAAG,CAAC,CAAiB,EAAE,EAAE;gBACtC,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAI,CAAC;gBAExB,IAAI,cAAc,EAAE,CAAC;oBAChB,GAAsB,CAAC,OAAO,CAAC,CAAC,GAAiB,EAAE,EAAE;wBAClD,IAAI,QAAQ,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,QAAQ,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC;4BACvD,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAChB,CAAC;oBACL,CAAC,CAAC,CAAC;gBACP,CAAC;qBAAM,IAAI,QAAQ,EAAE,CAAC;oBAClB,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC;wBAC5C,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,MAAM,KAAK,GAAG,CAAC,CAAC,KAAM,CAAC;oBACvB,IAAI,KAAK,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC;wBACjC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAChB,CAAC;gBACL,CAAC;YACL,CAAC,CAAC;YAEF,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;YAEjE,OAAO,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,GAAG,EAAE;gBAEzC,IAAI,CAAC;oBACD,uDAAuD;oBACvD,IAAI,oBAAoB,IAAI,QAAQ,EAAE,CAAC;wBACnC,uEAAuE;wBACvE,MAAM,WAAW,GAAiD;4BAC9D,SAAS,EAAE,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,cAAc;4BACrE,KAAK,EAAE;gCACH,SAAS,EAAE,aAAa;gCACxB,UAAU,EAAE;oCACR,GAAG,EAAE,QAAQ;iCAChB;6BACJ;yBACJ,CAAA;wBACD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;6BAC/B,IAAI,CAAC,CAAC,CAAc,EAAE,EAAE;4BACrB,MAAM,WAAW,GAAG,CAAgB,CAAC;4BACrC,kCAAkC;4BAClC,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;gCAC9E,OAAO;4BACX,CAAC;4BAED,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gCACjC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;oCACnB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE;wCAChE,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,KAAM,CAAC,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,CAAC,EAAE,CAAC;4CAC9F,WAAW,CAAC;gDACR,SAAS,EAAE,WAAW;gDACtB,SAAS,EAAE,IAAI,CAAC,SAAS;gDACzB,KAAK,EAAE,IAAI,CAAC,KAAK;gDACjB,GAAG,EAAE;oDACD,EAAE,EAAE,KAAK,CAAC,EAAE;oDACZ,IAAI,EAAE,aAAa;iDACtB;6CACJ,CAAC,CAAC;wCACP,CAAC;oCACL,CAAC,CAAC,CAAC;gCACP,CAAC;4BACL,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;oBACX,CAAC;gBACL,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACT,OAAO,CAAC,KAAK,CAAC,kDAAkD,GAAG,GAAG,CAAC,CAAC;oBACxE,IAAI,cAAc,EAAE,CAAC;wBACjB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;oBACrC,CAAC;oBACD,MAAM,CAAC,CAAC;gBACZ,CAAC;gBAED,OAAO,cAAc,CAAC;YAC1B,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAES,wBAAwB;QAC9B,IAAI,IAAI,CAAC,OAAO,KAAK,mBAAmB,CAAC,SAAS,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3F,OAAO;QACX,CAAC;QAED,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;YAC3D,IAAI,gBAAgB,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,QAAQ,CAAC;qBACxE,IAAI,CACD,CAAC,EAAU,EAAE,EAAE;oBACX,MAAM,QAAQ,GAAG,gBAAiB,CAAC,QAAQ,CAAC;oBAC5C,gBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAElC,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACzB,CAAC;gBACL,CAAC,EAAE,MAAM,CAAC,EAAE;oBACR,MAAM,QAAQ,GAAG,gBAAiB,CAAC,QAAQ,CAAC;oBAC5C,gBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;oBAElC,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAC5B,CAAC;gBACL,CAAC,CAAC,CAAC;YACf,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;IACV,CAAC;IAEO,gBAAgB,CAAC,MAA2B;QAChD,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,iCAAiC,GAAG,MAAM,CAAC,CAAC;QAE1D,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAG,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACnB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,cAAsB,EAAE,KAAkB;QACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAEnE,IAAI,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC;IACL,CAAC;IAES,UAAU;QAChB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACjD,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,CAAC;gBAClF,CAAC;YACL,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACpC,CAAC;IAES,aAAa;QACnB,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;QACrC,CAAC;QAED,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAES,kBAAkB;QACxB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,OAAO;QACX,CAAC;QAED,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,yCAAyC,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QAE7F,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YAE1C,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAC5B,OAAO;YACX,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;oBAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC9B,CAAC;YACL,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAE/B,IAAI,IAAI,CAAC,qBAAqB,GAAG,sBAAsB,CAAC,mBAAmB,EAAE,CAAC;YAC1E,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;QACzH,CAAC;IACL,CAAC;;AAhfgB,qCAAmB,GAAW,CAAC,AAAZ,CAAa;AAChC,qCAAmB,GAAW,KAAK,AAAhB,CAAiB;AAepC,sCAAoB,GAAW,CAAC,AAAZ,CAAa;AA+etD,MAAM,OAAO,sBAAuB,SAAQ,iBAAiB;IAUzD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,YAAY,UAAkB;QAC1B,KAAK,EAAE,CAAC;QAVF,eAAU,GAA0B,SAAS,CAAC;QAC9C,qBAAgB,GAA6B,IAAI,CAAC;QAClD,uBAAkB,GAA4B,IAAI,CAAC;QACnD,qBAAgB,GAAuC,IAAI,GAAG,EAAiC,CAAC;QAStG,IAAI,CAAC,YAAY,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,mBAAmB,CAAC;QAEtJ,yCAAyC;QACzC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,UAAU;QAChB,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QAEzE,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YACxB,aAAa,IAAI,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,QAAQ,EAAE,CAAC;QAEvC,IAAG,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,UAAW,CAAC,MAAM,GAAG,GAAG,EAAE;YAC3B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAW,CAAC,OAAO,GAAG,CAAC,GAAG,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;gBACtC,wGAAwG;gBACxG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAW,CAAC,OAAO,GAAG,GAAG,EAAE;YAC5B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAE5B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;gBAC7B,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC7B,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,UAAW,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAc,CAAC;YAE7B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBACnD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;gBAChE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmC,CAAC;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,QAAQ,EAAE,CAAC;oBACX,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,cAAe,CAAC,CAAC;gBACnD,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE,CAAC;gBACrD,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;gBAClE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmC,CAAC;gBAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC;gBACzC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;gBAC/B,IAAI,QAAQ,EAAE,CAAC;oBACX,OAAO,CAAC,IAAI,CAAC,mCAAmC,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC1F,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4C,CAAC;gBAC7E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;oBACnB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;wBAC/B,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,cAAe,EAAE,KAAK,CAAC,CAAC;oBAC9D,CAAC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,UAAU,CAAC,qCAAqC,CAAC,EAAE,CAAC;gBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,qCAAqC,CAAC,MAAM,CAAC,CAAC;gBACxE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA6C,CAAC;gBAC1E,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;oBAC7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,SAAU,CAAC,CAAC;oBAC/C,IAAI,QAAQ,EAAE,CAAC;wBACX,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;oBAClC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC,CAAC;QAEF,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;IACzC,CAAC;IAES,iBAAiB;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAES,aAAa;;QACnB,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAClC,CAAC;IAES,YAAY,CAAwB,YAAkC;QAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,CAAC,kBAAkB,GAAG,IAAI,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YAC/B,YAAY,CAAC,cAAc,GAAG,sBAAsB,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;IAC3C,CAAC;IAES,cAAc,CAAC,cAAsB;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,OAAO;QACX,CAAC;QACD,MAAM,kBAAkB,GAA4B;YAChD,cAAc,EAAE,cAAc;SACjC,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC1F,CAAC;IAES,OAAO,CAAwB,KAAQ;QAC7C,MAAM,OAAO,GAAG,oBAAoB,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;IAES,gBAAgB,CAA+C,KAAqC;QAE1G,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,CAAC,SAAS,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7C,OAAO,OAAO,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAe,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,UAAW,CAAC,IAAI,CAAC,qCAAqC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrF,OAAQ,QAAmC,CAAC,OAAO,CAAC;IACxD,CAAC;;AA1KgB,2CAAoB,GAAW,CAAC,AAAZ,CAAa"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,150 @@
1
+ import "url-search-params-polyfill";
2
+ import { Console } from "./console";
3
+ import { EventProvider, EventProviderFactory, EventProviderStatus } from "./event";
4
+ import { ConsoleAppConfig, ManagerConfig, MapType, UsernamePassword } from "@openremote/model";
5
+ import * as Util from "./util";
6
+ export { Util };
7
+ export * from "./asset-mixin";
8
+ export * from "./console";
9
+ export * from "./event";
10
+ export * from "./defaults";
11
+ export declare const DEFAULT_ICONSET: string;
12
+ export declare type KeycloakPromise<T> = {
13
+ success<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | KeycloakPromise<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | KeycloakPromise<TResult2>) | undefined | null): KeycloakPromise<TResult1 | TResult2>;
14
+ error<TResult = never>(onrejected?: ((reason: any) => TResult | KeycloakPromise<TResult>) | undefined | null): Promise<T | TResult>;
15
+ };
16
+ export declare enum ORError {
17
+ MANAGER_FAILED_TO_LOAD = "MANAGER_FAILED_TO_LOAD",
18
+ AUTH_FAILED = "AUTH_FAILED",
19
+ AUTH_TYPE_UNSUPPORTED = "AUTH_TYPE_UNSUPPORTED",
20
+ CONSOLE_ERROR = "CONSOLE_INIT_ERROR",
21
+ EVENTS_CONNECTION_ERROR = "EVENTS_CONNECTION_ERROR",
22
+ TRANSLATION_ERROR = "TRANSLATION_ERROR"
23
+ }
24
+ export declare enum OREvent {
25
+ ERROR = "ERROR",
26
+ READY = "READY",
27
+ ONLINE = "ONLINE",
28
+ OFFLINE = "OFFLINE",
29
+ CONNECTING = "CONNECTING",
30
+ RECONNECT_FAILED = "RECONNECT_FAILED",
31
+ CONSOLE_INIT = "CONSOLE_INIT",
32
+ CONSOLE_READY = "CONSOLE_READY",
33
+ CONSOLE_VISIBLE = "CONSOLE_VISIBLE",
34
+ CONSOLE_HIDDEN = "CONSOLE_HIDDEN",
35
+ TRANSLATE_INIT = "TRANSLATE_INIT",
36
+ TRANSLATE_LANGUAGE_CHANGED = "TRANSLATE_LANGUAGE_CHANGED",
37
+ DISPLAY_REALM_CHANGED = "DISPLAY_REALM_CHANGED"
38
+ }
39
+ export interface LoginOptions {
40
+ redirectUrl?: string;
41
+ credentials?: UsernamePassword;
42
+ }
43
+ export interface BasicLoginResult {
44
+ username: string;
45
+ password: string;
46
+ cancel: boolean;
47
+ }
48
+ export interface Languages {
49
+ [langKey: string]: string;
50
+ }
51
+ export declare const DEFAULT_LANGUAGES: Languages;
52
+ export declare function normaliseConfig(config: ManagerConfig): ManagerConfig;
53
+ export interface OrManagerEventDetail {
54
+ event: OREvent;
55
+ error?: ORError;
56
+ }
57
+ export type EventCallback = (event: OREvent) => void;
58
+ export declare class Manager implements EventProviderFactory {
59
+ get username(): string;
60
+ get error(): ORError | undefined;
61
+ get authenticated(): boolean;
62
+ get ready(): boolean;
63
+ get config(): ManagerConfig;
64
+ get roles(): Map<string, string[]>;
65
+ get managerVersion(): string;
66
+ get isManagerAvailable(): boolean | "";
67
+ get managerUrl(): any;
68
+ get keycloakUrl(): any;
69
+ get isError(): boolean;
70
+ get connectionStatus(): EventProviderStatus | undefined;
71
+ get console(): Console;
72
+ get consoleAppConfig(): ConsoleAppConfig | undefined;
73
+ get events(): EventProvider | undefined;
74
+ get rest(): import("@openremote/rest").RestApi;
75
+ get language(): string;
76
+ set language(lang: string);
77
+ get displayRealm(): string;
78
+ set displayRealm(realm: string);
79
+ getEventProvider(): EventProvider | undefined;
80
+ get mapType(): MapType;
81
+ private _error?;
82
+ private _config;
83
+ private _authenticated;
84
+ private _authDisconnected;
85
+ private _authReconnectTimeout?;
86
+ private _ready;
87
+ private _readyCallback?;
88
+ private _name;
89
+ private _username;
90
+ private _keycloak?;
91
+ private _basicIdentity?;
92
+ private _keycloakUpdateTokenInterval?;
93
+ private _managerVersion;
94
+ _authServerUrl: string;
95
+ private _listeners;
96
+ private _console;
97
+ private _consoleAppConfig?;
98
+ private _events?;
99
+ private _eventsDisconnected;
100
+ private _displayRealm?;
101
+ isManagerSameOrigin(): boolean;
102
+ addListener(callback: EventCallback): void;
103
+ removeListener(callback: EventCallback): void;
104
+ init(config: ManagerConfig): Promise<boolean>;
105
+ protected loadManagerInfo(): Promise<boolean>;
106
+ protected doTranslateInit(): Promise<boolean>;
107
+ protected doDescriptorsInit(): Promise<boolean>;
108
+ protected doAuthInit(): Promise<boolean>;
109
+ protected doRestApiInit(): boolean;
110
+ protected doEventsSubscriptionInit(): Promise<boolean>;
111
+ reconnect(force?: boolean): void;
112
+ protected _runAuthReconnectTimer(timeout?: number, timeoutMax?: number): void;
113
+ protected _finishAuthReconnectTimer(success: boolean): void;
114
+ protected isKeycloakReachable(): Promise<void>;
115
+ protected _tryUpdateAccessToken(): Promise<boolean>;
116
+ protected _tryReconnectEvents(): void;
117
+ protected _connectEvents(): void;
118
+ protected _onEventProviderStatusChanged(status: EventProviderStatus): void;
119
+ protected doConsoleInit(): Promise<boolean>;
120
+ protected doIconInit(): void;
121
+ protected getConsoleAppConfig(): Promise<boolean>;
122
+ logout(redirectUrl?: string): void;
123
+ login(options?: LoginOptions): void;
124
+ protected initialiseBasicAuth(): Promise<boolean>;
125
+ protected doBasicLogin(): Promise<void>;
126
+ isSuperUser(): boolean;
127
+ isRestrictedUser(): boolean;
128
+ getApiBaseUrl(): string;
129
+ getAppName(): string;
130
+ hasRealmRole(role: string): boolean;
131
+ hasRole(role: string, client?: string): boolean;
132
+ getAuthorizationHeader(): string | undefined;
133
+ getKeycloakToken(): string | undefined;
134
+ getBasicToken(): string | undefined;
135
+ isTokenExpired(margin?: number): boolean;
136
+ getRealm(): string | undefined;
137
+ protected isMobile(): boolean;
138
+ isKeycloak(): boolean;
139
+ protected _onAuthenticated(): void;
140
+ protected loadAndInitialiseKeycloak(): Promise<boolean>;
141
+ protected updateKeycloakAccessToken(): Promise<boolean | void>;
142
+ protected _getNativeOfflineRefreshToken(): Promise<string | undefined>;
143
+ protected _emitEvent(event: OREvent): void;
144
+ protected _setError(error: ORError): void;
145
+ protected _setAuthenticated(authenticated: boolean): void;
146
+ protected _setAuthDisconnected(disconnected: boolean, force?: boolean): void;
147
+ protected _setEventDisconnected(disconnected: boolean, force?: boolean): void;
148
+ }
149
+ export declare const manager: Manager;
150
+ export default manager;
package/lib/index.js ADDED
@@ -0,0 +1 @@
1
+ var __awaiter=this&&this.__awaiter||function(e,t,i,n){return new(i||(i=Promise))((function(o,s){function r(e){try{c(n.next(e))}catch(e){s(e)}}function a(e){try{c(n.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(r,a)}c((n=n.apply(e,t||[])).next())}))};import"url-search-params-polyfill";import{Console}from"./console";import rest from"@openremote/rest";import{EventProviderStatus,WebSocketEventProvider}from"./event";import i18next from"i18next";import i18nextBackend from"i18next-http-backend";import moment from"moment";import{AssetModelUtil}from"@openremote/model";import*as Util from"./util";import{createMdiIconSet,createSvgIconSet,IconSets,OrIconSet}from"@openremote/or-icon";import Keycloak from"keycloak-js";export{Util};export*from"./asset-mixin";export*from"./console";export*from"./event";export*from"./defaults";export const DEFAULT_ICONSET="mdi";export var ORError;!function(e){e.MANAGER_FAILED_TO_LOAD="MANAGER_FAILED_TO_LOAD",e.AUTH_FAILED="AUTH_FAILED",e.AUTH_TYPE_UNSUPPORTED="AUTH_TYPE_UNSUPPORTED",e.CONSOLE_ERROR="CONSOLE_INIT_ERROR",e.EVENTS_CONNECTION_ERROR="EVENTS_CONNECTION_ERROR",e.TRANSLATION_ERROR="TRANSLATION_ERROR"}(ORError||(ORError={}));export var OREvent;!function(e){e.ERROR="ERROR",e.READY="READY",e.ONLINE="ONLINE",e.OFFLINE="OFFLINE",e.CONNECTING="CONNECTING",e.RECONNECT_FAILED="RECONNECT_FAILED",e.CONSOLE_INIT="CONSOLE_INIT",e.CONSOLE_READY="CONSOLE_READY",e.CONSOLE_VISIBLE="CONSOLE_VISIBLE",e.CONSOLE_HIDDEN="CONSOLE_HIDDEN",e.TRANSLATE_INIT="TRANSLATE_INIT",e.TRANSLATE_LANGUAGE_CHANGED="TRANSLATE_LANGUAGE_CHANGED",e.DISPLAY_REALM_CHANGED="DISPLAY_REALM_CHANGED"}(OREvent||(OREvent={}));export const DEFAULT_LANGUAGES={en:"english",cn:"chinese",nl:"dutch",fr:"french",de:"german",it:"italian",pt:"portuguese",ro:"romanian",es:"spanish",uk:"ukrainian"};export function normaliseConfig(e){const t=e?Object.assign({},e):{};return t.managerUrl&&""!==t.managerUrl?t.managerUrl=t.managerUrl.replace(/\/+$/,""):t.managerUrl=window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),t.realm&&""!==t.realm||(t.realm="master"),t.auth||(t.auth="KEYCLOAK"),void 0===t.consoleAutoEnable&&(t.consoleAutoEnable=!0),t.eventProviderType||(t.eventProviderType="WEBSOCKET"),(!t.pollingIntervalMillis||t.pollingIntervalMillis<5e3)&&(t.pollingIntervalMillis=1e4),void 0===t.loadIcons&&(t.loadIcons=!0),void 0===t.loadTranslations&&(t.loadTranslations=["or"]),void 0===t.translationsLoadPath&&(t.translationsLoadPath="locales/{{lng}}/{{ns}}.json"),void 0===t.loadDescriptors&&(t.loadDescriptors=!0),void 0===t.clientId&&(t.clientId="openremote"),t}export class Manager{constructor(){this._authenticated=!1,this._authDisconnected=!1,this._ready=!1,this._name="",this._username="",this._keycloakUpdateTokenInterval=void 0,this._managerVersion="",this._authServerUrl="",this._listeners=[],this._eventsDisconnected=!1}get username(){return this._username}get error(){return this._error}get authenticated(){return this._authenticated}get ready(){return this._ready}get config(){return this._config}get roles(){const e=new Map;return this._keycloak?this._keycloak.resourceAccess&&this._config.clientId&&this._keycloak.resourceAccess&&Object.entries(this._keycloak.resourceAccess).forEach((([t,i])=>{const n=i.roles;e.set(t,n)})):this._basicIdentity&&this._basicIdentity.roles&&e.set(this._config.clientId,this._basicIdentity.roles.map((e=>e.name))),e}get managerVersion(){return this._managerVersion}get isManagerAvailable(){return this._managerVersion&&""!==this._managerVersion}get managerUrl(){return this._config.managerUrl}get keycloakUrl(){return this._config.keycloakUrl}get isError(){return!!this._error}get connectionStatus(){return this._events&&this._events.status}get console(){return this._console}get consoleAppConfig(){return this._consoleAppConfig}get events(){return this._events}get rest(){return rest}get language(){return i18next.language}set language(e){e&&(i18next.changeLanguage(e),this.console.storeData("LANGUAGE",e))}get displayRealm(){return this._displayRealm||this._config.realm}set displayRealm(e){this.isSuperUser()&&this._displayRealm!==e&&(this._displayRealm=e,this._emitEvent(OREvent.DISPLAY_REALM_CHANGED))}getEventProvider(){return this.events}get mapType(){return this._config.mapType||"VECTOR"}isManagerSameOrigin(){if(!this.ready)return!1;const e=new URL(this._config.managerUrl),t=window.location;return e.protocol===t.protocol&&e.hostname===t.hostname&&e.port===t.port}addListener(e){this._listeners.indexOf(e)<0&&this._listeners.push(e)}removeListener(e){const t=this._listeners.indexOf(e);t>=0&&this._listeners.splice(t,1)}init(e){return __awaiter(this,void 0,void 0,(function*(){this._config&&console.log("Already initialised"),this._config=normaliseConfig(e);let t=yield this.loadManagerInfo();if("BASIC"===this._config.auth)t=(yield this.doTranslateInit())&&t,t=yield this.doAuthInit();else if("KEYCLOAK"===this._config.auth){if(!this._config.keycloakUrl&&this._authServerUrl){const e=new URL(this._config.managerUrl);let t;this._authServerUrl.startsWith("//")&&(this._authServerUrl=e.protocol+this._authServerUrl);try{t=new URL(this._authServerUrl)}catch(i){t=new URL(e),t.pathname=this._authServerUrl}t.protocol||(t.protocol=e.protocol),t.hostname||(t.hostname=e.hostname),t.port||(t.port=e.port),this._config.keycloakUrl=t.toString()}this._config.keycloakUrl||(this._config.keycloakUrl=this._config.managerUrl+"/auth"),this._config.keycloakUrl=this._config.keycloakUrl.replace(/\/+$/,""),t=yield this.doAuthInit(),t||this._config.skipFallbackToBasicAuth||(console.log("Falling back to basic auth"),this._config.auth="BASIC",t=yield this.doAuthInit())}return t&&(t=this.doRestApiInit()),yield this.doConsoleInit(),t=(yield this.doTranslateInit())&&t,t&&(t=yield this.doDescriptorsInit(),t=yield this.getConsoleAppConfig()),this.doIconInit(),t?(this._readyCallback&&(yield this._readyCallback()),this._ready=!0,this._emitEvent(OREvent.READY)):(this._config=void 0,console.warn("Failed to initialise the manager")),this.displayRealm=e.realm||"master",t}))}loadManagerInfo(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield new Promise(((e,t)=>{const i=new XMLHttpRequest;i.addEventListener("load",(()=>{e(JSON.parse(i.responseText))})),i.addEventListener("error",(()=>{t(new Error("Failed to contact the manager"))})),i.open("GET",this._config.managerUrl+"/api/master/info"),i.send()}));return this._managerVersion=e&&e.version?e.version:"",this._authServerUrl=e&&e.authServerUrl?e.authServerUrl:"",!0}catch(e){return console.error("Failed to contact the manager",e),this._setError(ORError.MANAGER_FAILED_TO_LOAD),!1}}))}doTranslateInit(){return __awaiter(this,void 0,void 0,(function*(){if(i18next.isInitialized)return!0;i18next.on("initialized",(e=>{this._emitEvent(OREvent.TRANSLATE_INIT)})),i18next.on("languageChanged",(e=>{moment.locale(e),this._emitEvent(OREvent.TRANSLATE_LANGUAGE_CHANGED)}));const e={lng:(this.console?yield this.console.retrieveData("LANGUAGE"):void 0)||"en",fallbackLng:"en",defaultNS:"app",fallbackNS:"or",ns:this.config.loadTranslations,interpolation:{format:(e,t,i)=>"uppercase"===t?e.toUpperCase():e instanceof Date?moment(e).format(t):e},backend:{loadPath:(e,t)=>1===t.length&&"or"===t[0]?this.config.managerUrl+"/shared/locales/{{lng}}/{{ns}}.json":this.config.translationsLoadPath?this.config.translationsLoadPath:"locales/{{lng}}/{{ns}}.json"}};this.config.configureTranslationsOptions&&this.config.configureTranslationsOptions(e);try{yield i18next.use(i18nextBackend).init(e)}catch(e){return console.error(e),this._setError(ORError.TRANSLATION_ERROR),!1}return!0}))}doDescriptorsInit(){return __awaiter(this,void 0,void 0,(function*(){if(!this.config.loadDescriptors)return!0;try{const e=yield rest.api.AssetModelResource.getAssetInfos(),t=yield rest.api.AssetModelResource.getMetaItemDescriptors(),i=yield rest.api.AssetModelResource.getValueDescriptors();AssetModelUtil._assetTypeInfos=e.data,AssetModelUtil._metaItemDescriptors=Object.values(t.data),AssetModelUtil._valueDescriptors=Object.values(i.data)}catch(e){return console.error(e),!1}return!0}))}doAuthInit(){return __awaiter(this,void 0,void 0,(function*(){let e=!0;switch(this._config.auth){case"BASIC":e=yield this.initialiseBasicAuth();break;case"KEYCLOAK":e=yield this.loadAndInitialiseKeycloak();break;case"NONE":return!0;default:return this._setError(ORError.AUTH_TYPE_UNSUPPORTED),!1}return rest.addRequestInterceptor((e=>{if(!e.headers.Authorization){const t=this.getAuthorizationHeader();t&&(e.headers.Authorization=t)}return e})),e}))}doRestApiInit(){return rest.setTimeout(1e4),rest.initialise(this.getApiBaseUrl()),!0}doEventsSubscriptionInit(){return __awaiter(this,void 0,void 0,(function*(){let e=!1;return"WEBSOCKET"===this._config.eventProviderType&&(this._events=new WebSocketEventProvider(this._config.managerUrl),this._events.subscribeStatusChange((e=>this._onEventProviderStatusChanged(e))),e=yield this._events.connect()),e||this._setError(ORError.EVENTS_CONNECTION_ERROR),e}))}reconnect(e=!1){(this._authDisconnected||e)&&this._runAuthReconnectTimer(),(this._eventsDisconnected||e)&&this._tryReconnectEvents()}_runAuthReconnectTimer(e=5e3,t=2e4){if(this._authReconnectTimeout)this._tryUpdateAccessToken();else{const i=()=>{this._tryUpdateAccessToken().then((n=>{n?(e=Math.min(t,Math.round(1.2*e)),console.debug(`Authentication service reconnect failed. Trying again in ${e} milliseconds...`),this._authReconnectTimeout=window.setTimeout(i,e),this._emitEvent(OREvent.RECONNECT_FAILED)):this._finishAuthReconnectTimer(!0)})).catch((e=>{console.error(e),this._finishAuthReconnectTimer(!1)}))};i()}}_finishAuthReconnectTimer(e){this._authReconnectTimeout&&(clearTimeout(this._authReconnectTimeout),delete this._authReconnectTimeout,e&&this._setAuthDisconnected(!1))}isKeycloakReachable(){return __awaiter(this,void 0,void 0,(function*(){const e=new AbortController,t=setTimeout((()=>e.abort()),2e3);try{return yield fetch(this._config.keycloakUrl+"/health/ready",{method:"HEAD",mode:"no-cors",signal:e.signal}),Promise.resolve()}catch(e){return Promise.reject(e)}finally{clearTimeout(t)}}))}_tryUpdateAccessToken(){return __awaiter(this,void 0,void 0,(function*(){let e=!1;return this.isKeycloak()&&(console.debug("Attempting to update keycloak access token..."),this._emitEvent(OREvent.CONNECTING),yield this.isKeycloakReachable().catch((()=>{e=!0,console.error("Could not reach keycloak service! Aborting token update.")})),e||(yield this.updateKeycloakAccessToken().catch((t=>{e=!0,console.error(t)})))),this._setAuthDisconnected(e),e}))}_tryReconnectEvents(){var e,t,i;if((null===(e=this.events)||void 0===e?void 0:e.status)!==EventProviderStatus.CONNECTED)if((null===(t=this.events)||void 0===t?void 0:t.status)===EventProviderStatus.DISCONNECTED)this._connectEvents();else if((null===(i=this.events)||void 0===i?void 0:i.status)===EventProviderStatus.CONNECTING){const e=t=>{var i;t===EventProviderStatus.DISCONNECTED&&(null===(i=this.events)||void 0===i||i.unsubscribeStatusChange(e),this._connectEvents())};this.events.subscribeStatusChange(e),setTimeout((()=>{var t;null===(t=this.events)||void 0===t||t.unsubscribeStatusChange(e)}),4e3)}}_connectEvents(){var e;(null===(e=this.events)||void 0===e?void 0:e.status)===EventProviderStatus.DISCONNECTED?this.events.connect().catch((e=>{console.error("Failed to connect EventProvider."),console.error(e)})):console.warn("Tried to connect EventProvider, but it wasn't disconnected!")}_onEventProviderStatusChanged(e){switch(e){case EventProviderStatus.DISCONNECTED:this._setEventDisconnected(!0);break;case EventProviderStatus.CONNECTED:this._setEventDisconnected(!1);break;case EventProviderStatus.CONNECTING:this._emitEvent(OREvent.CONNECTING);break;case EventProviderStatus.RECONNECT_FAILED:this._emitEvent(OREvent.RECONNECT_FAILED)}}doConsoleInit(){return __awaiter(this,void 0,void 0,(function*(){try{const e=new Console(this._config.realm,this._config.consoleAutoEnable,(()=>{this._emitEvent(OREvent.CONSOLE_READY)}));return this._console=e,yield e.initialise(),this._emitEvent(OREvent.CONSOLE_INIT),!0}catch(e){return this._setError(ORError.CONSOLE_ERROR),!1}}))}doIconInit(){this._config.loadIcons&&(IconSets.addIconSet("mdi",createMdiIconSet(manager.config.managerUrl)),IconSets.addIconSet("or",createSvgIconSet(OrIconSet.size,OrIconSet.icons)))}getConsoleAppConfig(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield fetch(manager.config.managerUrl+"/consoleappconfig/"+manager.displayRealm+".json");return this._consoleAppConfig=yield e.json(),!0}catch(e){return!0}}))}logout(e){this._keycloak?(this.console.isMobile&&this.console.storeData("REFRESH_TOKEN",null),this._keycloak.logout(e&&""!==e?{redirectUri:e}:void 0)):this._basicIdentity&&(this._basicIdentity=void 0,e?window.location.href=e:window.location.reload())}login(e){switch(this._config.auth){case"BASIC":e&&e.credentials&&(this._config.credentials=Object.assign({},e.credentials)),this.doBasicLogin();break;case"KEYCLOAK":if(this._keycloak){const t={};e&&e.redirectUrl&&""!==e.redirectUrl&&(t.redirectUri=e.redirectUrl),this.isMobile()&&(t.scope="offline_access"),this._keycloak.login(t)}}}initialiseBasicAuth(){return __awaiter(this,void 0,void 0,(function*(){return this.config.basicLoginProvider?(this.config.autoLogin&&(this._readyCallback=()=>this.doBasicLogin()),!0):(console.log("No basicLoginProvider defined on config so cannot display login UI"),!1)}))}doBasicLogin(){var e,t,i,n;return __awaiter(this,void 0,void 0,(function*(){if(!this.config.basicLoginProvider)return;let o={username:(null===(e=this._config.credentials)||void 0===e?void 0:e.username)?null===(t=this._config.credentials)||void 0===t?void 0:t.username:"",password:(null===(i=this._config.credentials)||void 0===i?void 0:i.password)?null===(n=this._config.credentials)||void 0===n?void 0:n.password:"",cancel:!1},s=!1;for(this._basicIdentity={roles:void 0,token:void 0,user:void 0};!s;){if(o=yield this.config.basicLoginProvider(o.username,o.password),o.cancel){console.log("Basic authentication cancelled by user");break}if(!o.username||!o.password)continue;this._basicIdentity.token=btoa(o.username+":"+o.password);let e=!1;try{const t=yield rest.api.UserResource.getCurrent();200===t.status&&(e=!0,this._basicIdentity.user=t.data),e||401!==t.status&&403!==t.status||console.log("Basic authentication invalid credentials, trying again")}catch(e){console.error("Basic auth failed: ",e)}if(!e){console.log("Unknown response so aborting"),this._basicIdentity=void 0;break}{console.log("Basic authentication successful"),s=!0;const e=yield rest.api.UserResource.getCurrentUserRoles();this._basicIdentity.roles=e.data}}this._setAuthenticated(s)}))}isSuperUser(){return!(!this.getRealm()||"master"!==this.getRealm()||!this.hasRealmRole("admin"))}isRestrictedUser(){return!!this.hasRealmRole("restricted_user")}getApiBaseUrl(){let e=this._config.managerUrl;return e+="/api/"+this._config.realm+"/",e}getAppName(){const e=location.pathname.split("/");return e.length>=1?e[1]:""}hasRealmRole(e){return this.isKeycloak()&&this._keycloak.hasRealmRole(e)}hasRole(e,t=this._config.clientId){const i=this.roles;return i&&i.has(t)&&i.get(t).indexOf(e)>=0}getAuthorizationHeader(){return this.getKeycloakToken()?"Bearer "+this.getKeycloakToken():this.getBasicToken()?"Basic "+this.getBasicToken():void 0}getKeycloakToken(){if(this.isKeycloak())return this._keycloak.token}getBasicToken(){return this._basicIdentity?this._basicIdentity.token:void 0}isTokenExpired(e=2e3){var t,i,n;return this.isKeycloak()?(null===(i=null===(t=this._keycloak)||void 0===t?void 0:t.tokenParsed)||void 0===i?void 0:i.exp)<=moment().add(e,"milliseconds").unix():!(null===(n=this._basicIdentity)||void 0===n?void 0:n.token)}getRealm(){if(this._config)return this._config.realm}isMobile(){return this.console&&this.console.isMobile}isKeycloak(){return!!this._keycloak}_onAuthenticated(){var e;this.console&&this.console.isMobile&&"KEYCLOAK"===this.config.auth&&(this._keycloak&&"Offline"===(null===(e=this._keycloak.refreshTokenParsed)||void 0===e?void 0:e.typ)?(console.debug("Storing offline refresh token"),this.console.storeData("REFRESH_TOKEN",this._keycloak.refreshToken)):this.login())}loadAndInitialiseKeycloak(){var e,t;return __awaiter(this,void 0,void 0,(function*(){try{this._keycloak=new Keycloak({clientId:this._config.clientId,realm:this._config.realm,url:this._config.keycloakUrl}),this._keycloak.onAuthSuccess=()=>{this._finishAuthReconnectTimer(!0)},this._keycloak.onAuthError=()=>{this._setAuthenticated(!1)},this._keycloak.onAuthRefreshError=()=>{console.debug("Keycloak failed to refresh the access token."),this._setAuthDisconnected(!0)};const i=yield this._getNativeOfflineRefreshToken(),n=yield this._keycloak.init({checkLoginIframe:!1,onLoad:this._config.autoLogin?"login-required":"check-sso",refreshToken:i});return n&&(this._name=null===(e=this._keycloak.tokenParsed)||void 0===e?void 0:e.name,this._username=null===(t=this._keycloak.tokenParsed)||void 0===t?void 0:t.preferred_username,this._keycloakUpdateTokenInterval&&(clearInterval(this._keycloakUpdateTokenInterval),delete this._keycloakUpdateTokenInterval),this._keycloakUpdateTokenInterval=window.setInterval((()=>{this._authDisconnected||this.updateKeycloakAccessToken().catch((()=>{console.error("Could not update keycloak access token during regular interval.")}))}),1e4),this._onAuthenticated()),this._setAuthenticated(n),!0}catch(e){return this._setAuthenticated(!1),this._setError(ORError.AUTH_FAILED),console.error("Failed to initialise Keycloak: "+e),!1}}))}updateKeycloakAccessToken(){return __awaiter(this,void 0,void 0,(function*(){const e=this._keycloak.updateToken(30);let t;return e.then((e=>{console.debug("Access token update success, refreshed from server: "+e)})).catch((()=>{console.error("Access token update failed."),this._setAuthDisconnected(!0)})),Promise.race([e,new Promise(((e,i)=>t=setTimeout(i,15e3)))]).finally((()=>clearTimeout(t)))}))}_getNativeOfflineRefreshToken(){return __awaiter(this,void 0,void 0,(function*(){if(this.console&&this.console.isMobile)return yield this.console.retrieveData("REFRESH_TOKEN")}))}_emitEvent(e){window.setTimeout((()=>{const t=this._listeners;for(const i of t)i(e)}),0)}_setError(e){this._error=e,this._emitEvent(OREvent.ERROR),console.log("Error set: "+e)}_setAuthenticated(e){this._authenticated=e,this._events&&this._events.disconnect(),this._events||this.doEventsSubscriptionInit()}_setAuthDisconnected(e,t=!1){(this._authDisconnected!==e||t)&&(console.debug("Authentication service status changed: "+(e?"DISCONNECTED":"CONNECTED")),e?(this._authDisconnected=!0,this._runAuthReconnectTimer(),this._emitEvent(OREvent.OFFLINE)):(this._authDisconnected=!1,this._eventsDisconnected?this._tryReconnectEvents():this._emitEvent(OREvent.ONLINE)))}_setEventDisconnected(e,t=!1){(this._eventsDisconnected!==e||t)&&(console.debug("EventProvider status changed: "+(e?"DISCONNECTED":"CONNECTED")),e?(this._eventsDisconnected=!0,this._emitEvent(OREvent.OFFLINE),this.isTokenExpired()&&!this._authDisconnected&&this._tryUpdateAccessToken().then((e=>{e||this._setAuthDisconnected(!1,!0)}))):(this._eventsDisconnected=!1,this._authDisconnected?this._runAuthReconnectTimer():this._emitEvent(OREvent.ONLINE)))}}export const manager=new Manager;export default manager;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}