@openremote/core 1.0.2 → 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.
Files changed (52) hide show
  1. package/README.md +86 -8
  2. package/lib/asset-mixin.d.ts +46 -0
  3. package/lib/asset-mixin.js +1 -0
  4. package/lib/asset-mixin.js.map +1 -0
  5. package/{dist → lib}/console.d.ts +21 -12
  6. package/lib/console.js +1 -0
  7. package/lib/console.js.map +1 -0
  8. package/lib/defaults.d.ts +15 -0
  9. package/lib/defaults.js +1 -0
  10. package/lib/defaults.js.map +1 -0
  11. package/{dist → lib}/event.d.ts +30 -16
  12. package/lib/event.js +1 -0
  13. package/lib/event.js.map +1 -0
  14. package/lib/index.d.ts +150 -0
  15. package/lib/index.js +1 -0
  16. package/lib/index.js.map +1 -0
  17. package/lib/util.d.ts +92 -0
  18. package/lib/util.js +1 -0
  19. package/lib/util.js.map +1 -0
  20. package/package.json +31 -14
  21. package/dist/asset-mixin.d.ts +0 -25
  22. package/dist/asset-mixin.js +0 -115
  23. package/dist/asset-mixin.js.map +0 -1
  24. package/dist/console.js +0 -446
  25. package/dist/console.js.map +0 -1
  26. package/dist/event.js +0 -454
  27. package/dist/event.js.map +0 -1
  28. package/dist/index.d.ts +0 -137
  29. package/dist/index.js +0 -683
  30. package/dist/index.js.map +0 -1
  31. package/dist/util.d.ts +0 -17
  32. package/dist/util.js +0 -72
  33. package/dist/util.js.map +0 -1
  34. package/src/asset-mixin.ts +0 -132
  35. package/src/console.d.ts +0 -56
  36. package/src/console.js +0 -451
  37. package/src/console.js.map +0 -1
  38. package/src/console.ts +0 -530
  39. package/src/event.d.ts +0 -75
  40. package/src/event.js +0 -410
  41. package/src/event.js.map +0 -1
  42. package/src/event.ts +0 -584
  43. package/src/index.d.ts +0 -110
  44. package/src/index.js +0 -525
  45. package/src/index.js.map +0 -1
  46. package/src/index.ts +0 -803
  47. package/src/util.d.ts +0 -15
  48. package/src/util.js +0 -46
  49. package/src/util.js.map +0 -1
  50. package/src/util.ts +0 -94
  51. package/tsconfig.json +0 -14
  52. package/tsconfig.tsbuildinfo +0 -9788
@@ -1,115 +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
- /* tslint:disable:no-empty */
10
- import { EventProviderStatus } from "./event";
11
- import { arraysEqual } from "./util";
12
- export const subscribe = (eventProviderFactory) => (base) => {
13
- return class extends base {
14
- constructor() {
15
- super(...arguments);
16
- this._connectRequested = false;
17
- this._statusCallback = (status) => this._onEventProviderStatusChanged(status);
18
- }
19
- connectedCallback() {
20
- // @ts-ignore
21
- if (super.connectedCallback) {
22
- // @ts-ignore
23
- super.connectedCallback();
24
- }
25
- this.connect();
26
- }
27
- disconnectedCallback() {
28
- this.disconnect();
29
- // @ts-ignore
30
- if (super.disconnectedCallback) {
31
- // @ts-ignore
32
- super.disconnectedCallback();
33
- }
34
- }
35
- connect() {
36
- if (!eventProviderFactory.getEventProvider()) {
37
- console.log("No event provider available so cannot subscribe");
38
- return;
39
- }
40
- if (this._connectRequested) {
41
- return;
42
- }
43
- this._connectRequested = true;
44
- eventProviderFactory.getEventProvider().subscribeStatusChange(this._statusCallback);
45
- this._doConnect();
46
- }
47
- _doConnect() {
48
- return __awaiter(this, void 0, void 0, function* () {
49
- if (!this._connectRequested || this._attributeSubscriptionId) {
50
- return;
51
- }
52
- if (!this._assetIds || this._assetIds.length === 0) {
53
- return;
54
- }
55
- if (eventProviderFactory.getEventProvider().status !== EventProviderStatus.CONNECTED) {
56
- return;
57
- }
58
- this._assetSubscriptionId = yield eventProviderFactory.getEventProvider().subscribeAssetEvents(this._assetIds, (event) => this._onAssetEvent(event));
59
- this._attributeSubscriptionId = yield eventProviderFactory.getEventProvider().subscribeAttributeEvents(this._assetIds, false, (event) => this._onAttributeEvent(event));
60
- });
61
- }
62
- disconnect() {
63
- if (!this._connectRequested) {
64
- return;
65
- }
66
- this._connectRequested = false;
67
- eventProviderFactory.getEventProvider().unsubscribeStatusChange(this._statusCallback);
68
- this._doDisconnect();
69
- }
70
- _doDisconnect() {
71
- if (!this._assetSubscriptionId) {
72
- return;
73
- }
74
- eventProviderFactory.getEventProvider().unsubscribe(this._assetSubscriptionId);
75
- eventProviderFactory.getEventProvider().unsubscribe(this._attributeSubscriptionId);
76
- this._assetSubscriptionId = undefined;
77
- this._attributeSubscriptionId = undefined;
78
- }
79
- set assetIds(assetIds) {
80
- if (arraysEqual(this._assetIds, assetIds)) {
81
- return;
82
- }
83
- this._assetIds = assetIds;
84
- this._doDisconnect();
85
- this._doConnect();
86
- }
87
- _onEventProviderStatusChanged(status) {
88
- switch (status) {
89
- case EventProviderStatus.DISCONNECTED:
90
- this._doDisconnect();
91
- break;
92
- case EventProviderStatus.CONNECTED:
93
- this._doConnect();
94
- break;
95
- }
96
- }
97
- _onAttributeEvent(event) {
98
- if (!this._connectRequested || !this._assetSubscriptionId) {
99
- return;
100
- }
101
- this.onAttributeEvent(event);
102
- }
103
- _onAssetEvent(event) {
104
- if (!this._connectRequested || !this._assetSubscriptionId) {
105
- return;
106
- }
107
- this.onAssetEvent(event);
108
- }
109
- // noinspection JSUnusedLocalSymbols
110
- onAttributeEvent(event) { }
111
- // noinspection JSUnusedLocalSymbols
112
- onAssetEvent(event) { }
113
- };
114
- };
115
- //# sourceMappingURL=asset-mixin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"asset-mixin.js","sourceRoot":"","sources":["../src/asset-mixin.ts"],"names":[],"mappings":"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"}
package/dist/console.js DELETED
@@ -1,446 +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 rest from "@openremote/rest";
10
- import openremote from "./index";
11
- // No ES6 module support in platform lib
12
- let platform = require('platform');
13
- export class Console {
14
- constructor(realm, autoEnable, enableComplete) {
15
- this._autoEnable = false;
16
- this._initialised = false;
17
- this._initialiseInProgress = false;
18
- this._pendingProviderPromises = {};
19
- this._pendingProviderEnables = [];
20
- this._registrationTimer = null;
21
- this._realm = realm;
22
- this._autoEnable = autoEnable;
23
- this._enableCompleteCallback = enableComplete;
24
- // Export this to the window to make it accessible from mobile webview code
25
- // @ts-ignore
26
- window.OpenRemoteConsole = this;
27
- // Check for query parameters to override values
28
- let queryParams = new URLSearchParams(window.location.search);
29
- let consoleName = queryParams.get("consoleName");
30
- let consoleVersion = queryParams.get("consoleVersion");
31
- let consolePlatform = queryParams.get("consolePlatform");
32
- let consoleProviders = queryParams.get("consoleProviders");
33
- let autoEnableStr = queryParams.get("consoleAutoEnable");
34
- let requestedProviders = consoleProviders && consoleProviders.length > 0 ? consoleProviders.split(" ") : ["push", "storage"];
35
- if (requestedProviders.indexOf("storage") < 0) {
36
- requestedProviders.push("storage"); // Storage provider is essential to operation and should always be available
37
- }
38
- this._pendingProviderEnables = consoleProviders && consoleProviders.length > 0 ? consoleProviders.split(" ") : [];
39
- // Look for existing console registration in local storage or just create a new one
40
- let consoleReg = Console._createConsoleRegistration();
41
- let consoleRegStr = window.localStorage.getItem("OpenRemoteConsole:" + realm);
42
- if (consoleRegStr) {
43
- try {
44
- let storedRegObj = JSON.parse(consoleRegStr);
45
- let storedReg = storedRegObj;
46
- if (storedReg.id) {
47
- consoleReg.id = storedReg.id;
48
- }
49
- if (storedReg.name) {
50
- consoleReg.name = storedReg.name;
51
- }
52
- if (storedReg.providers) {
53
- consoleReg.providers = storedReg.providers;
54
- }
55
- if (storedReg.apps) {
56
- consoleReg.apps = storedReg.apps;
57
- }
58
- }
59
- catch (e) {
60
- console.error("Failed to deserialise console registration");
61
- }
62
- }
63
- let oldProviders = consoleReg.providers;
64
- consoleReg.providers = {};
65
- for (let providerName of requestedProviders) {
66
- let provider = oldProviders && oldProviders.hasOwnProperty(providerName) ? oldProviders[providerName] : {
67
- enabled: false,
68
- disabled: false
69
- };
70
- consoleReg.providers[providerName] = provider;
71
- }
72
- let appName = openremote.getAppName();
73
- if (appName.length > 0 && consoleReg.apps.indexOf(appName) < 0) {
74
- consoleReg.apps.push(appName);
75
- }
76
- this._registration = consoleReg;
77
- if (consoleName) {
78
- consoleReg.name = consoleName;
79
- }
80
- if (consoleVersion) {
81
- consoleReg.version = consoleVersion;
82
- }
83
- if (consolePlatform) {
84
- consoleReg.platform = consolePlatform;
85
- }
86
- if (autoEnableStr) {
87
- this._autoEnable = autoEnableStr === "TRUE" || autoEnableStr === "true";
88
- }
89
- }
90
- get registration() {
91
- return this._registration;
92
- }
93
- get autoEnable() {
94
- return this._autoEnable;
95
- }
96
- get pendingProviderEnables() {
97
- return this._pendingProviderEnables.slice(0);
98
- }
99
- get shellApple() {
100
- // @ts-ignore
101
- return navigator.platform.substr(0, 2) === 'iP' && window.webkit && window.webkit.messageHandlers;
102
- }
103
- get shellAndroid() {
104
- // @ts-ignore
105
- return !!window.MobileInterface;
106
- }
107
- get isMobile() {
108
- return this.shellApple || this.shellAndroid;
109
- }
110
- initialise() {
111
- return __awaiter(this, void 0, void 0, function* () {
112
- if (this._initialised || this._initialiseInProgress) {
113
- return;
114
- }
115
- console.debug("Console: initialising");
116
- this._initialiseInProgress = true;
117
- try {
118
- // Get an ID for this console if it doesn't have one
119
- if (!this._registration.id) {
120
- yield this.sendRegistration(0);
121
- }
122
- if (this._registration.providers) {
123
- for (let providerName of Object.keys(this._registration.providers)) {
124
- yield this._initialiseProvider(providerName);
125
- }
126
- }
127
- this._initialised = true;
128
- this._initialiseInProgress = false;
129
- if (this._pendingProviderEnables.length === 0) {
130
- this.sendRegistration();
131
- this._callCompletedCallback();
132
- }
133
- else if (this._autoEnable) {
134
- yield this.enableProviders();
135
- }
136
- }
137
- catch (e) {
138
- console.error(e);
139
- }
140
- finally {
141
- this._initialiseInProgress = false;
142
- }
143
- });
144
- }
145
- // This mechanism doesn't support sending extra data to the providers being enabled and it doesn't allow data
146
- // to be retrieved from the replies; if that is required then providers should be manually enabled from the calling app
147
- enableProviders() {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- if (!this._initialised) {
150
- throw new Error("Console must be initialised before enabling providers");
151
- }
152
- for (let providerName of this._pendingProviderEnables) {
153
- yield this.enableProvider(providerName);
154
- }
155
- });
156
- }
157
- enableProvider(providerName, data) {
158
- return __awaiter(this, void 0, void 0, function* () {
159
- if (!this._initialised) {
160
- console.debug("Console must be initialised before disabling providers");
161
- throw new Error("Console must be initialised before enabling providers");
162
- }
163
- if (!this._registration.providers.hasOwnProperty(providerName)) {
164
- console.debug("Invalid console provider '" + providerName + "'");
165
- throw new Error("Invalid console provider '" + providerName + "'");
166
- }
167
- console.debug("Console: enabling provider '" + providerName + "'");
168
- let msg = {
169
- provider: providerName,
170
- action: "PROVIDER_ENABLE",
171
- consoleId: this._registration.id,
172
- data
173
- };
174
- let response = yield this.sendProviderMessage(msg, true);
175
- this._registration.providers[providerName].hasPermission = response.hasPermission;
176
- this._registration.providers[providerName].success = response.success;
177
- this._registration.providers[providerName].enabled = response.success;
178
- let index = this._pendingProviderEnables.indexOf(providerName);
179
- if (index >= 0) {
180
- this._pendingProviderEnables.splice(index, 1);
181
- if (this._pendingProviderEnables.length === 0) {
182
- this.sendRegistration();
183
- this._callCompletedCallback();
184
- }
185
- }
186
- return response;
187
- });
188
- }
189
- disableProvider(provider) {
190
- return __awaiter(this, void 0, void 0, function* () {
191
- if (!this._initialised) {
192
- console.debug("Console must be initialised before disabling providers");
193
- throw new Error("Console must be initialised before disabling providers");
194
- }
195
- if (!this._registration.providers.hasOwnProperty(provider)) {
196
- console.debug("Invalid console provider '" + provider + "'");
197
- throw new Error("Invalid console provider '" + provider + "'");
198
- }
199
- console.debug("Console: disabling provider '" + provider + "'");
200
- let response = yield this.sendProviderMessage({
201
- provider: provider,
202
- action: "PROVIDER_DISABLE"
203
- }, true);
204
- this._registration.providers[provider].disabled = true;
205
- this._registration.providers[provider].enabled = false;
206
- return response;
207
- });
208
- }
209
- sendProviderMessage(message, waitForResponse) {
210
- return __awaiter(this, void 0, void 0, function* () {
211
- if (!this._registration.providers.hasOwnProperty(message.provider)) {
212
- console.debug("Invalid console provider '" + message.provider + "'");
213
- throw new Error("Invalid console provider '" + message.provider + "'");
214
- }
215
- if (!waitForResponse) {
216
- this._doSendProviderMessage(message);
217
- return;
218
- }
219
- let promiseName = message.provider + message.action;
220
- if (this._pendingProviderPromises[promiseName]) {
221
- throw new Error("Message already pending for provider '" + name + "' with action '" + message.action + "'");
222
- }
223
- return yield new Promise(resolve => {
224
- this._pendingProviderPromises[promiseName] = resolve;
225
- this._doSendProviderMessage(message);
226
- });
227
- });
228
- }
229
- // Uses a delayed mechanism to avoid excessive calls to the server during enabling providers
230
- sendRegistration(delay) {
231
- if (this._registrationTimer) {
232
- window.clearTimeout(this._registrationTimer);
233
- this._registrationTimer = null;
234
- }
235
- delay = delay !== undefined ? delay : 2000;
236
- console.debug("Sending registration in: " + delay + "ms");
237
- return new Promise((resolve, reject) => {
238
- this._registrationTimer = window.setTimeout(() => {
239
- this._registrationTimer = null;
240
- console.debug("Console: updating registration");
241
- try {
242
- rest.api.ConsoleResource.register(this._registration).then((response) => {
243
- if (response.status !== 200) {
244
- throw new Error("Failed to register console");
245
- }
246
- this._registration = response.data;
247
- console.debug("Console: registration successful");
248
- console.debug("Console: updating locally stored registration");
249
- window.localStorage.setItem("OpenRemoteConsole:" + this._realm, JSON.stringify(this._registration));
250
- resolve();
251
- });
252
- }
253
- catch (e) {
254
- console.error("Failed to register console");
255
- reject("Failed to register console");
256
- }
257
- });
258
- });
259
- }
260
- storeData(key, value) {
261
- this.sendProviderMessage({
262
- provider: "storage",
263
- action: "STORE",
264
- key: key,
265
- value: value
266
- }, false);
267
- }
268
- retrieveData(key) {
269
- return __awaiter(this, void 0, void 0, function* () {
270
- let response = yield this.sendProviderMessage({
271
- provider: "storage",
272
- action: "RETRIEVE",
273
- key: key
274
- }, true);
275
- if (response && response.hasOwnProperty("value")) {
276
- return JSON.parse(response.value);
277
- }
278
- return null;
279
- });
280
- }
281
- _postNativeShellMessage(jsonMessage) {
282
- if (this.shellAndroid) {
283
- // @ts-ignore
284
- return window.MobileInterface.postMessage(JSON.stringify(jsonMessage));
285
- }
286
- if (this.shellApple) {
287
- // @ts-ignore
288
- return window.webkit.messageHandlers.int.postMessage(jsonMessage);
289
- }
290
- }
291
- _doSendProviderMessage(msg) {
292
- if (this.isMobile) {
293
- this._postNativeShellMessage({ type: "provider", data: msg });
294
- }
295
- else {
296
- if (!msg.provider || !msg.action) {
297
- return;
298
- }
299
- switch (msg.provider.trim().toUpperCase()) {
300
- // TODO: Implement web browser provider handling (web push etc.)
301
- case "PUSH":
302
- switch (msg.action.trim().toUpperCase()) {
303
- case "PROVIDER_INIT":
304
- let initResponse = {
305
- action: "PROVIDER_INIT",
306
- provider: "push",
307
- version: "web",
308
- enabled: true,
309
- disabled: false,
310
- hasPermission: true,
311
- requiresPermission: false,
312
- success: true
313
- };
314
- this._handleProviderResponse(JSON.stringify(initResponse));
315
- break;
316
- case "PROVIDER_ENABLE":
317
- let enableResponse = {
318
- action: "PROVIDER_ENABLE",
319
- provider: "push",
320
- hasPermission: true,
321
- success: true
322
- };
323
- this._handleProviderResponse(JSON.stringify(enableResponse));
324
- break;
325
- default:
326
- throw new Error("Unsupported provider '" + msg.provider + "' and action '" + msg.action + "'");
327
- }
328
- break;
329
- case "STORAGE":
330
- switch (msg.action) {
331
- case "PROVIDER_INIT":
332
- let initResponse = {
333
- action: "PROVIDER_INIT",
334
- provider: "storage",
335
- version: "1.0.0",
336
- disabled: false,
337
- enabled: true,
338
- hasPermission: true,
339
- requiresPermission: false,
340
- success: true
341
- };
342
- this._handleProviderResponse(JSON.stringify(initResponse));
343
- break;
344
- case "PROVIDER_ENABLE":
345
- let enableResponse = {
346
- action: "PROVIDER_ENABLE",
347
- provider: "storage",
348
- hasPermission: true,
349
- success: true
350
- };
351
- this._handleProviderResponse(JSON.stringify(enableResponse));
352
- break;
353
- case "STORE":
354
- let keyValue = msg.key ? msg.key.trim() : null;
355
- if (!keyValue || keyValue.length === 0) {
356
- throw new Error("Storage provider 'store' action requires a `key`");
357
- }
358
- if (msg.hasOwnProperty("value")) {
359
- if (msg.value === null) {
360
- window.localStorage.removeItem(keyValue);
361
- }
362
- else {
363
- window.localStorage.setItem(keyValue, msg.value);
364
- }
365
- }
366
- break;
367
- case "RETRIEVE":
368
- keyValue = msg.key ? msg.key.trim() : null;
369
- if (!keyValue || keyValue.length === 0) {
370
- throw new Error("Storage provider 'retrieve' action requires a `key`");
371
- }
372
- this._handleProviderResponse(JSON.stringify({
373
- action: "RETRIEVE",
374
- provider: "storage",
375
- key: keyValue,
376
- value: window.localStorage.getItem(keyValue)
377
- }));
378
- break;
379
- default:
380
- throw new Error("Unsupported provider '" + msg.provider + "' and action '" + msg.action + "'");
381
- }
382
- break;
383
- }
384
- }
385
- }
386
- // This is called by native web view code
387
- _handleProviderResponse(msg) {
388
- if (!msg) {
389
- return;
390
- }
391
- let msgJson = JSON.parse(msg);
392
- let name = msgJson.provider;
393
- let action = msgJson.action;
394
- let resolve = this._pendingProviderPromises[name + action];
395
- if (resolve != null) {
396
- this._pendingProviderPromises[name + action] = null;
397
- resolve(msgJson);
398
- }
399
- }
400
- _callCompletedCallback() {
401
- let callback = this._enableCompleteCallback;
402
- this._enableCompleteCallback = null;
403
- if (callback) {
404
- window.setTimeout(() => {
405
- callback();
406
- }, 0);
407
- }
408
- }
409
- static _createConsoleRegistration() {
410
- let reg = {
411
- name: platform.name,
412
- version: platform.version,
413
- platform: platform.os.toString(),
414
- apps: [],
415
- model: ((platform.manufacturer ? platform.manufacturer + " " : "") + (platform.product ? platform.product : "")).trim()
416
- };
417
- return reg;
418
- }
419
- _initialiseProvider(providerName) {
420
- return __awaiter(this, void 0, void 0, function* () {
421
- console.debug("Console: initialising provider '" + providerName + "'");
422
- let initResponse = yield this.sendProviderMessage({
423
- provider: providerName,
424
- action: "PROVIDER_INIT"
425
- }, true);
426
- this._registration.providers[providerName].version = initResponse.version;
427
- this._registration.providers[providerName].requiresPermission = initResponse.requiresPermission;
428
- this._registration.providers[providerName].hasPermission = initResponse.hasPermission;
429
- this._registration.providers[providerName].success = initResponse.success;
430
- this._registration.providers[providerName].enabled = initResponse.enabled;
431
- this._registration.providers[providerName].disabled = initResponse.disabled;
432
- if (!initResponse.success) {
433
- console.debug("Provider initialisation failed: '" + providerName + "'");
434
- initResponse.disabled = true;
435
- this._registration.providers[providerName].disabled = true;
436
- }
437
- if (initResponse.disabled || initResponse.enabled) {
438
- let index = this._pendingProviderEnables.indexOf(providerName);
439
- if (index >= 0) {
440
- this._pendingProviderEnables.splice(index, 1);
441
- }
442
- }
443
- });
444
- }
445
- }
446
- //# sourceMappingURL=console.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"console.js","sourceRoot":"","sources":["../src/console.ts"],"names":[],"mappings":"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"}