@openremote/core 1.0.2 → 1.2.0-snapshot.20240512155932

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.
Files changed (58) hide show
  1. package/README.md +86 -8
  2. package/dist/umd/index.bundle.js +2 -0
  3. package/dist/umd/index.bundle.js.LICENSE.txt +26 -0
  4. package/dist/umd/index.js +2 -0
  5. package/dist/umd/index.js.LICENSE.txt +22 -0
  6. package/dist/umd/index.orbundle.js +50 -0
  7. package/dist/umd/index.orbundle.js.LICENSE.txt +38 -0
  8. package/lib/asset-mixin.d.ts +46 -0
  9. package/lib/asset-mixin.js +1 -0
  10. package/lib/asset-mixin.js.map +1 -0
  11. package/{dist → lib}/console.d.ts +21 -12
  12. package/lib/console.js +1 -0
  13. package/lib/console.js.map +1 -0
  14. package/lib/defaults.d.ts +15 -0
  15. package/lib/defaults.js +1 -0
  16. package/lib/defaults.js.map +1 -0
  17. package/{dist → lib}/event.d.ts +30 -16
  18. package/lib/event.js +1 -0
  19. package/lib/event.js.map +1 -0
  20. package/lib/index.d.ts +150 -0
  21. package/lib/index.js +1 -0
  22. package/lib/index.js.map +1 -0
  23. package/lib/util.d.ts +92 -0
  24. package/lib/util.js +1 -0
  25. package/lib/util.js.map +1 -0
  26. package/package.json +31 -14
  27. package/dist/asset-mixin.d.ts +0 -25
  28. package/dist/asset-mixin.js +0 -115
  29. package/dist/asset-mixin.js.map +0 -1
  30. package/dist/console.js +0 -446
  31. package/dist/console.js.map +0 -1
  32. package/dist/event.js +0 -454
  33. package/dist/event.js.map +0 -1
  34. package/dist/index.d.ts +0 -137
  35. package/dist/index.js +0 -683
  36. package/dist/index.js.map +0 -1
  37. package/dist/util.d.ts +0 -17
  38. package/dist/util.js +0 -72
  39. package/dist/util.js.map +0 -1
  40. package/src/asset-mixin.ts +0 -132
  41. package/src/console.d.ts +0 -56
  42. package/src/console.js +0 -451
  43. package/src/console.js.map +0 -1
  44. package/src/console.ts +0 -530
  45. package/src/event.d.ts +0 -75
  46. package/src/event.js +0 -410
  47. package/src/event.js.map +0 -1
  48. package/src/event.ts +0 -584
  49. package/src/index.d.ts +0 -110
  50. package/src/index.js +0 -525
  51. package/src/index.js.map +0 -1
  52. package/src/index.ts +0 -803
  53. package/src/util.d.ts +0 -15
  54. package/src/util.js +0 -46
  55. package/src/util.js.map +0 -1
  56. package/src/util.ts +0 -94
  57. package/tsconfig.json +0 -14
  58. package/tsconfig.tsbuildinfo +0 -9788
package/dist/event.js DELETED
@@ -1,454 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- return new (P || (P = Promise))(function (resolve, reject) {
3
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
4
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
5
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
6
- step((generator = generator.apply(thisArg, _arguments || [])).next());
7
- });
8
- };
9
- import openremote from "./index";
10
- import { arrayRemove, Deferred } from "./util";
11
- export var EventProviderStatus;
12
- (function (EventProviderStatus) {
13
- EventProviderStatus["DISCONNECTED"] = "DISCONNECTED";
14
- EventProviderStatus["CONNECTED"] = "CONNECTED";
15
- EventProviderStatus["CONNECTING"] = "CONNECTING";
16
- })(EventProviderStatus || (EventProviderStatus = {}));
17
- const SUBSCRIBE_MESSAGE_PREFIX = "SUBSCRIBE:";
18
- const SUBSCRIBED_MESSAGE_PREFIX = "SUBSCRIBED:";
19
- const UNSUBSCRIBE_MESSAGE_PREFIX = "UNSUBSCRIBE:";
20
- const RENEW_MESSAGE_PREFIX = "RENEW:";
21
- const UNAUTHORIZED_MESSAGE_PREFIX = "UNAUTHORIZED:";
22
- const EVENT_MESSAGE_PREFIX = "EVENT:";
23
- class EventProviderImpl {
24
- constructor() {
25
- this._disconnectRequested = false;
26
- this._reconnectDelayMillis = WebSocketEventProvider.MIN_RECONNECT_DELAY;
27
- this._reconnectTimer = null;
28
- this._status = EventProviderStatus.DISCONNECTED;
29
- this._connectingDeferred = null;
30
- this._statusCallbacks = [];
31
- this._pendingSubscription = null;
32
- this._queuedSubscriptions = [];
33
- this._subscriptionMap = {};
34
- }
35
- get status() {
36
- return this._status;
37
- }
38
- subscribeStatusChange(callback) {
39
- this._statusCallbacks.push(callback);
40
- }
41
- unsubscribeStatusChange(callback) {
42
- arrayRemove(this._statusCallbacks, callback);
43
- }
44
- connect() {
45
- if (this._status === EventProviderStatus.CONNECTED) {
46
- return Promise.resolve(true);
47
- }
48
- this._disconnectRequested = false;
49
- if (this._connectingDeferred) {
50
- return this._connectingDeferred.promise;
51
- }
52
- this._onStatusChanged(EventProviderStatus.CONNECTING);
53
- this._connectingDeferred = new Deferred();
54
- this._doConnect().then((connected) => {
55
- if (this._connectingDeferred) {
56
- let deferred = this._connectingDeferred;
57
- this._connectingDeferred = null;
58
- if (this._reconnectTimer) {
59
- window.clearTimeout(this._reconnectTimer);
60
- this._reconnectTimer = null;
61
- }
62
- if (connected) {
63
- console.debug("Connected to event service: " + this.endpointUrl);
64
- this._reconnectDelayMillis = WebSocketEventProvider.MIN_RECONNECT_DELAY;
65
- this._onStatusChanged(EventProviderStatus.CONNECTED);
66
- window.setTimeout(() => {
67
- this._onConnect();
68
- }, 0);
69
- }
70
- else {
71
- console.debug("Failed to connect to event service: " + this.endpointUrl);
72
- this._onStatusChanged(EventProviderStatus.DISCONNECTED);
73
- }
74
- deferred.resolve(connected);
75
- }
76
- });
77
- return this._connectingDeferred.promise;
78
- }
79
- disconnect() {
80
- if (this._disconnectRequested) {
81
- return;
82
- }
83
- this._disconnectRequested = true;
84
- if (this._reconnectTimer) {
85
- window.clearTimeout(this._reconnectTimer);
86
- this._reconnectTimer = null;
87
- }
88
- if (this.status === EventProviderStatus.DISCONNECTED) {
89
- return;
90
- }
91
- this._doDisconnect();
92
- }
93
- subscribe(eventSubscription, callback) {
94
- let subscriptionInfo = {
95
- eventSubscription: eventSubscription,
96
- callback: callback,
97
- deferred: new Deferred()
98
- };
99
- if (this._pendingSubscription != null || this._status !== EventProviderStatus.CONNECTED) {
100
- this._queuedSubscriptions.push(subscriptionInfo);
101
- return subscriptionInfo.deferred.promise;
102
- }
103
- this._pendingSubscription = subscriptionInfo;
104
- this._doSubscribe(eventSubscription).then(subscriptionId => {
105
- if (this._pendingSubscription) {
106
- let subscriptionInfo = this._pendingSubscription;
107
- this._pendingSubscription = null;
108
- // Store subscriptionId and callback
109
- this._subscriptionMap[subscriptionId] = subscriptionInfo;
110
- this._processNextSubscription();
111
- let deferred = subscriptionInfo.deferred;
112
- subscriptionInfo.deferred = null;
113
- if (deferred) {
114
- deferred.resolve(subscriptionId);
115
- }
116
- }
117
- }, reason => {
118
- if (this._pendingSubscription) {
119
- let subscriptionInfo = this._pendingSubscription;
120
- this._pendingSubscription = null;
121
- this._processNextSubscription();
122
- let deferred = subscriptionInfo.deferred;
123
- subscriptionInfo.deferred = null;
124
- if (deferred) {
125
- deferred.reject(reason);
126
- }
127
- }
128
- });
129
- return this._pendingSubscription.deferred.promise;
130
- }
131
- unsubscribe(subscriptionId) {
132
- let callback = this._subscriptionMap[subscriptionId];
133
- if (callback) {
134
- delete this._subscriptionMap[subscriptionId];
135
- this._doUnsubscribe(subscriptionId);
136
- }
137
- }
138
- sendEvent(event) {
139
- this._doSend(event);
140
- }
141
- subscribeAssetEvents(assetIds, callback) {
142
- return __awaiter(this, void 0, void 0, function* () {
143
- let subscription = {
144
- eventType: "asset"
145
- };
146
- if (assetIds && assetIds.length > 0) {
147
- subscription.filter = {
148
- filterType: "asset-id",
149
- assetIds: assetIds
150
- };
151
- }
152
- let subscriptionId = null;
153
- try {
154
- subscriptionId = yield this.subscribe(subscription, callback);
155
- // Get the current state of each asset
156
- if (assetIds) {
157
- assetIds.forEach(assetId => {
158
- let readEvent = {
159
- assetId: assetId,
160
- eventType: "read-asset",
161
- subscriptionId: subscriptionId
162
- };
163
- this.sendEvent(readEvent);
164
- });
165
- }
166
- }
167
- catch (e) {
168
- console.error("Failed to subscribe to asset events for assets: " + assetIds);
169
- if (subscriptionId) {
170
- this.unsubscribe(subscriptionId);
171
- }
172
- throw e;
173
- }
174
- return subscriptionId;
175
- });
176
- }
177
- subscribeAttributeEvents(assetIds, requestCurrentValues, callback) {
178
- return __awaiter(this, void 0, void 0, function* () {
179
- let subscription = {
180
- eventType: "attribute",
181
- filter: {
182
- filterType: "asset-id",
183
- assetIds: assetIds
184
- }
185
- };
186
- let subscriptionId = null;
187
- try {
188
- subscriptionId = yield this.subscribe(subscription, callback);
189
- // Get the current value of each assets attributes
190
- if (requestCurrentValues) {
191
- assetIds.forEach(assetId => {
192
- let readEvent = {
193
- assetId: assetId,
194
- eventType: "read-asset-attributes",
195
- subscriptionId: subscriptionId
196
- };
197
- this.sendEvent(readEvent);
198
- });
199
- }
200
- }
201
- catch (e) {
202
- console.error("Failed to subscribe to attribute events for assets: " + assetIds);
203
- if (subscriptionId) {
204
- this.unsubscribe(subscriptionId);
205
- }
206
- throw e;
207
- }
208
- return subscriptionId;
209
- });
210
- }
211
- _processNextSubscription() {
212
- if (this._status !== EventProviderStatus.CONNECTED || this._queuedSubscriptions.length === 0) {
213
- return;
214
- }
215
- setTimeout(() => {
216
- let subscriptionInfo = this._queuedSubscriptions.shift();
217
- if (subscriptionInfo) {
218
- this.subscribe(subscriptionInfo.eventSubscription, subscriptionInfo.callback)
219
- .then((id) => {
220
- let deferred = subscriptionInfo.deferred;
221
- subscriptionInfo.deferred = null;
222
- if (deferred) {
223
- deferred.resolve(id);
224
- }
225
- }, reason => {
226
- let deferred = subscriptionInfo.deferred;
227
- subscriptionInfo.deferred = null;
228
- if (deferred) {
229
- deferred.reject(reason);
230
- }
231
- });
232
- }
233
- }, 0);
234
- }
235
- _onStatusChanged(status) {
236
- if (status === this._status) {
237
- return;
238
- }
239
- console.debug("Event provider status changed: " + status);
240
- this._status = status;
241
- window.setTimeout(() => {
242
- this._statusCallbacks.forEach((cb) => cb(status));
243
- }, 0);
244
- }
245
- _onMessageReceived(subscriptionId, event) {
246
- let subscriptionInfo = this._subscriptionMap[subscriptionId];
247
- if (subscriptionInfo) {
248
- subscriptionInfo.callback(event);
249
- }
250
- }
251
- _onConnect() {
252
- console.debug("Event provider connected: " + this.constructor.name);
253
- if (Object.keys(this._subscriptionMap).length > 0) {
254
- for (const subscriptionId in this._subscriptionMap) {
255
- if (this._subscriptionMap.hasOwnProperty(subscriptionId)) {
256
- this._queuedSubscriptions.unshift(this._subscriptionMap[subscriptionId]);
257
- }
258
- }
259
- this._subscriptionMap = {};
260
- }
261
- this._processNextSubscription();
262
- }
263
- _onDisconnect() {
264
- console.debug("Event provider disconnected");
265
- this._onStatusChanged(EventProviderStatus.DISCONNECTED);
266
- if (this._pendingSubscription) {
267
- this._queuedSubscriptions.unshift(this._pendingSubscription);
268
- this._pendingSubscription = null;
269
- }
270
- this._scheduleReconnect();
271
- }
272
- _scheduleReconnect() {
273
- if (this._reconnectTimer) {
274
- return;
275
- }
276
- if (this._disconnectRequested) {
277
- return;
278
- }
279
- console.debug("Event provider scheduling reconnect in " + this._reconnectDelayMillis + "ms");
280
- this._reconnectTimer = window.setTimeout(() => {
281
- if (this._disconnectRequested) {
282
- return;
283
- }
284
- this.connect().then(connected => {
285
- if (!connected) {
286
- this._scheduleReconnect();
287
- }
288
- }).catch(error => {
289
- this._scheduleReconnect();
290
- });
291
- }, this._reconnectDelayMillis);
292
- if (this._reconnectDelayMillis < WebSocketEventProvider.MAX_RECONNECT_DELAY) {
293
- this._reconnectDelayMillis = Math.min(WebSocketEventProvider.MAX_RECONNECT_DELAY, this._reconnectDelayMillis + 3000);
294
- }
295
- }
296
- }
297
- EventProviderImpl.MIN_RECONNECT_DELAY = 0;
298
- EventProviderImpl.MAX_RECONNECT_DELAY = 30000;
299
- export class WebSocketEventProvider extends EventProviderImpl {
300
- constructor(managerUrl) {
301
- super();
302
- this._webSocket = undefined;
303
- this._connectDeferred = null;
304
- this._subscribeDeferred = null;
305
- this._renewalTimer = null;
306
- this._endpointUrl = (managerUrl.startsWith("https:") ? "wss" : "ws") + "://" + managerUrl.substr(managerUrl.indexOf("://") + 3) + "/websocket/events";
307
- // Close socket on unload/refresh of page
308
- window.addEventListener("beforeunload", () => {
309
- this.disconnect();
310
- });
311
- }
312
- get endpointUrl() {
313
- return this._endpointUrl;
314
- }
315
- _doConnect() {
316
- let authorisedUrl = this._endpointUrl + "?Auth-Realm=" + openremote.config.realm;
317
- if (openremote.authenticated) {
318
- authorisedUrl += "&Authorization=" + openremote.getAuthorizationHeader();
319
- }
320
- this._webSocket = new WebSocket(authorisedUrl);
321
- this._connectDeferred = new Deferred();
322
- this._webSocket.onopen = () => {
323
- if (this._connectDeferred) {
324
- let deferred = this._connectDeferred;
325
- this._connectDeferred = null;
326
- deferred.resolve(true);
327
- }
328
- };
329
- this._webSocket.onerror = () => {
330
- if (this._connectDeferred) {
331
- let deferred = this._connectDeferred;
332
- this._connectDeferred = null;
333
- deferred.resolve(false);
334
- }
335
- else {
336
- console.debug("Event provider error");
337
- // Could have inconsistent state so disconnect and let consumers decide what to do and when to reconnect
338
- this._beforeDisconnect();
339
- }
340
- };
341
- this._webSocket.onclose = () => {
342
- this._webSocket = undefined;
343
- if (this._connectDeferred) {
344
- let deferred = this._connectDeferred;
345
- this._connectDeferred = null;
346
- deferred.resolve(false);
347
- }
348
- else {
349
- this._beforeDisconnect();
350
- }
351
- };
352
- this._webSocket.onmessage = (e) => {
353
- let msg = e.data;
354
- if (msg && msg.startsWith(SUBSCRIBED_MESSAGE_PREFIX)) {
355
- let jsonStr = msg.substring(SUBSCRIBED_MESSAGE_PREFIX.length);
356
- let subscription = JSON.parse(jsonStr);
357
- // Create a renewal timer if not done so
358
- if (!this._renewalTimer) {
359
- setInterval(() => {
360
- this._doRenewal();
361
- }, WebSocketEventProvider._subscriptionRenewalMillis);
362
- }
363
- let deferred = this._subscribeDeferred;
364
- this._subscribeDeferred = null;
365
- if (deferred) {
366
- deferred.resolve(subscription.subscriptionId);
367
- }
368
- }
369
- else if (msg.startsWith(UNAUTHORIZED_MESSAGE_PREFIX)) {
370
- let jsonStr = msg.substring(UNAUTHORIZED_MESSAGE_PREFIX.length);
371
- let subscription = JSON.parse(jsonStr);
372
- let deferred = this._subscribeDeferred;
373
- this._subscribeDeferred = null;
374
- if (deferred) {
375
- console.warn("Unauthorized event subscription: " + subscription);
376
- deferred.reject("Unauthorized");
377
- }
378
- }
379
- else if (msg.startsWith(EVENT_MESSAGE_PREFIX)) {
380
- let str = msg.substring(EVENT_MESSAGE_PREFIX.length);
381
- let seperatorPos = str.indexOf(":");
382
- if (seperatorPos > 0) {
383
- let strArr = [str.substring(0, seperatorPos), str.substring(seperatorPos + 1)];
384
- let subscriptionId = strArr[0];
385
- let jsonStr = strArr[1];
386
- if (jsonStr.startsWith("[")) {
387
- let events = JSON.parse(jsonStr);
388
- events.forEach(event => {
389
- this._onMessageReceived(subscriptionId, event);
390
- });
391
- }
392
- else {
393
- let event = JSON.parse(jsonStr);
394
- this._onMessageReceived(subscriptionId, event);
395
- }
396
- }
397
- }
398
- };
399
- return this._connectDeferred.promise;
400
- }
401
- _beforeDisconnect() {
402
- if (this._renewalTimer != null) {
403
- clearInterval(this._renewalTimer);
404
- this._renewalTimer = null;
405
- }
406
- this._onDisconnect();
407
- }
408
- _doDisconnect() {
409
- this._webSocket.close();
410
- }
411
- _doSubscribe(subscription) {
412
- if (!this._webSocket) {
413
- return Promise.reject("Not connected");
414
- }
415
- if (this._subscribeDeferred) {
416
- return Promise.reject("There's already a pending subscription");
417
- }
418
- this._subscribeDeferred = new Deferred();
419
- subscription.subscriptionId = WebSocketEventProvider._subscriptionCounter++ + "";
420
- this._webSocket.send(SUBSCRIBE_MESSAGE_PREFIX + JSON.stringify(subscription));
421
- return this._subscribeDeferred.promise;
422
- }
423
- _doUnsubscribe(subscriptionId) {
424
- if (!this._webSocket) {
425
- return;
426
- }
427
- let cancelSubscription = {
428
- subscriptionId: subscriptionId
429
- };
430
- this._webSocket.send(UNSUBSCRIBE_MESSAGE_PREFIX + JSON.stringify(cancelSubscription));
431
- if (Object.keys(this._subscriptionMap).length == 0 && this._renewalTimer) {
432
- clearInterval(this._renewalTimer);
433
- }
434
- }
435
- _doRenewal() {
436
- if (!this._webSocket) {
437
- return;
438
- }
439
- let renewSubscriptions = {
440
- subscriptionIds: Object.keys(this._subscriptionMap)
441
- };
442
- this._webSocket.send(RENEW_MESSAGE_PREFIX + JSON.stringify(renewSubscriptions));
443
- }
444
- _doSend(event) {
445
- if (!this._webSocket) {
446
- return;
447
- }
448
- let message = EVENT_MESSAGE_PREFIX + JSON.stringify(event);
449
- this._webSocket.send(message);
450
- }
451
- }
452
- WebSocketEventProvider._subscriptionCounter = 1;
453
- WebSocketEventProvider._subscriptionRenewalMillis = 150 * 1000;
454
- //# sourceMappingURL=event.js.map
package/dist/event.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,137 +0,0 @@
1
- import "url-search-params-polyfill";
2
- import { Console } from "./console";
3
- import { EventProvider, EventProviderFactory, EventProviderStatus } from "./event";
4
- import i18next from "i18next";
5
- import { AssetDescriptor, AttributeDescriptor, AttributeValueDescriptor, MetaItemDescriptor } from "@openremote/model/dist";
6
- export declare enum ORError {
7
- NONE = "NONE",
8
- MANAGER_FAILED_TO_LOAD = "MANAGER_FAILED_TO_LOAD",
9
- KEYCLOAK_FAILED_TO_LOAD = "KEYCLOAK_FAILED_TO_LOAD",
10
- AUTH_TYPE_UNSUPPORTED = "AUTH_TYPE_UNSUPPORTED",
11
- CONSOLE_ERROR = "CONSOLE_INIT_ERROR",
12
- EVENTS_CONNECTION_ERROR = "EVENTS_CONNECTION_ERROR"
13
- }
14
- export declare enum Auth {
15
- KEYCLOAK = "KEYCLOAK",
16
- BASIC = "BASIC",
17
- NONE = "NONE"
18
- }
19
- export declare enum OREvent {
20
- ERROR = "ERROR",
21
- READY = "READY",
22
- CONSOLE_INIT = "CONSOLE_INIT",
23
- CONSOLE_READY = "CONSOLE_READY",
24
- EVENTS_CONNECTED = "EVENTS_CONNECTED",
25
- EVENTS_CONNECTING = "EVENTS_CONNECTING",
26
- EVENTS_DISCONNECTED = "EVENTS_DISCONNECTED",
27
- TRANSLATE_INIT = "TRANSLATE_INIT",
28
- TRANSLATE_LANGUAGE_CHANGED = "TRANSLATE_LANGUAGE_CHANGED"
29
- }
30
- export declare enum EventProviderType {
31
- WEBSOCKET = "WEBSOCKET",
32
- POLLING = "POLLING"
33
- }
34
- export interface Credentials {
35
- username: string;
36
- password: string;
37
- }
38
- export interface LoginOptions {
39
- redirectUrl?: string;
40
- credentials?: Credentials;
41
- }
42
- export interface ManagerConfig {
43
- managerUrl: string;
44
- keycloakUrl?: string;
45
- appVersion?: string;
46
- auth?: Auth;
47
- realm: string;
48
- autoLogin?: boolean;
49
- credentials?: Credentials;
50
- consoleAutoEnable?: boolean;
51
- eventProviderType?: EventProviderType;
52
- pollingIntervalMillis?: number;
53
- loadIcons?: boolean;
54
- loadDescriptors?: boolean;
55
- loadTranslations?: string[];
56
- translationsLoadPath?: string;
57
- configureTranslationsOptions?: (i18next: i18next.InitOptions) => void;
58
- }
59
- export declare class AssetModelUtil {
60
- static _assetDescriptors: AssetDescriptor[];
61
- static _attributeDescriptors: AttributeDescriptor[];
62
- static _attributeValueDescriptors: AttributeValueDescriptor[];
63
- static _metaItemDescriptors: MetaItemDescriptor[];
64
- static getAssetDescriptors(): AssetDescriptor[];
65
- static getAttributeDescriptors(): AttributeDescriptor[];
66
- static getAttributeValueDescriptors(): AttributeValueDescriptor[];
67
- static getMetaItemDescriptors(): MetaItemDescriptor[];
68
- static getAssetDescriptor(type?: string): AssetDescriptor | undefined;
69
- static getAssetAttributeDescriptor(assetDescriptor?: AssetDescriptor, attributeName?: string): AttributeDescriptor | undefined;
70
- static getAttributeDescriptor(attributeName?: string): AttributeDescriptor | undefined;
71
- static getAttributeValueDescriptor(name?: string): AttributeValueDescriptor | undefined;
72
- static getMetaItemDescriptor(urn?: string): MetaItemDescriptor | undefined;
73
- static attributeValueDescriptorsMatch(attributeValueDescriptor1: AttributeValueDescriptor, attributeValueDescriptor2: AttributeValueDescriptor): boolean;
74
- }
75
- export declare type EventCallback = (event: OREvent) => any;
76
- export declare class Manager implements EventProviderFactory {
77
- readonly username: string;
78
- readonly error: ORError;
79
- readonly authenticated: boolean;
80
- readonly initialised: boolean;
81
- readonly ready: boolean;
82
- readonly config: ManagerConfig;
83
- readonly roles: string[];
84
- readonly managerVersion: string;
85
- readonly isManagerAvailable: boolean | "";
86
- readonly isError: boolean;
87
- readonly connectionStatus: EventProviderStatus | undefined;
88
- readonly console: Console;
89
- readonly events: EventProvider | undefined;
90
- readonly language: string;
91
- getEventProvider(): EventProvider | undefined;
92
- protected static normaliseConfig(config: ManagerConfig): ManagerConfig;
93
- private _error;
94
- private _config;
95
- private _authenticated;
96
- private _ready;
97
- private _name;
98
- private _username;
99
- private _keycloak;
100
- private _roles;
101
- private _keycloakUpdateTokenInterval?;
102
- private _managerVersion;
103
- private _listeners;
104
- private _console;
105
- private _events?;
106
- isManagerSameOrigin(): boolean;
107
- addListener(callback: EventCallback): void;
108
- removeListener(callback: EventCallback): void;
109
- init(config: ManagerConfig): Promise<boolean>;
110
- protected doInit(): Promise<boolean>;
111
- protected doTranslateInit(): Promise<boolean>;
112
- protected doDescriptorsInit(): Promise<boolean>;
113
- protected doAuthInit(): Promise<boolean>;
114
- protected doRestApiInit(): boolean;
115
- protected doEventsSubscriptionInit(): Promise<boolean>;
116
- protected _onEventProviderStatusChanged(status: EventProviderStatus): void;
117
- protected doConsoleInit(): Promise<boolean>;
118
- logout(redirectUrl?: string): void;
119
- login(options?: LoginOptions): void;
120
- isSuperUser(): boolean;
121
- getApiBaseUrl(): string;
122
- getAppName(): string;
123
- hasRole(role: string): boolean;
124
- getAuthorizationHeader(): string | undefined;
125
- getKeycloakToken(): string | undefined;
126
- getRealm(): string | undefined;
127
- protected isMobile(): boolean;
128
- protected _onAuthenticated(): void;
129
- protected loadAndInitialiseKeycloak(): Promise<boolean>;
130
- protected updateKeycloakAccessToken(): Promise<boolean>;
131
- protected _getNativeOfflineRefreshToken(): Promise<string | null>;
132
- protected _emitEvent(event: OREvent): void;
133
- protected _setError(error: ORError): void;
134
- protected _setAuthenticated(authenticated: boolean): void;
135
- }
136
- declare const _default: Manager;
137
- export default _default;