@sumaris-net/ngx-components 18.5.0-alpha1 → 18.5.0-alpha3

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 { HttpUtils } from '../../shared/http/http.utils';
2
2
  import { Peer } from './model/peer.model';
3
3
  import { Network } from '@capacitor/network';
4
4
  import { Observable } from 'rxjs';
5
+ import { Capacitor } from '@capacitor/core';
5
6
  export class NetworkUtils {
6
7
  static async getNodeInfo(http, peer, opts) {
7
8
  if (!peer)
@@ -13,6 +14,9 @@ export class NetworkUtils {
13
14
  }
14
15
  return HttpUtils.getJson(http, peerUrl + '/api/node/info', opts);
15
16
  }
17
+ static isPluginAvailable() {
18
+ return Capacitor.isPluginAvailable('Network');
19
+ }
16
20
  static statusChanges() {
17
21
  return new Observable((subscriber) => {
18
22
  const handler = Network.addListener('networkStatusChange', (status) => subscriber.next(status));
@@ -21,17 +25,11 @@ export class NetworkUtils {
21
25
  };
22
26
  });
23
27
  }
24
- static getStatus() {
25
- return Network.getStatus();
26
- }
27
28
  static async getConnectionType() {
28
- try {
29
- return (await Network.getStatus())?.connectionType;
30
- }
31
- catch (err) {
32
- console.error('[network] Failed to get connection type: ' + (err.message || err), err);
33
- return 'unknown';
29
+ if (NetworkUtils.isPluginAvailable()) {
30
+ return (await Network.getStatus())?.connectionType || 'unknown';
34
31
  }
32
+ return 'unknown';
35
33
  }
36
34
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFvQyxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQWlDaEQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3RCLElBQWdCLEVBQ2hCLElBQW1CLEVBQ25CLElBT0M7UUFFRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQUcsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsSUFBZSxDQUFDO1FBQ2pFLHdCQUF3QjtRQUN4QixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxVQUFVLENBQW1CLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsSCxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUztRQUNkLE9BQU8sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixJQUFJLENBQUM7WUFDSCxPQUFPLENBQUMsTUFBTSxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxjQUFjLENBQUM7UUFDckQsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixPQUFPLENBQUMsS0FBSyxDQUFDLDJDQUEyQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2RixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBIdHRwVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvaHR0cC9odHRwLnV0aWxzJztcbmltcG9ydCB7IFBlZXIgfSBmcm9tICcuL21vZGVsL3BlZXIubW9kZWwnO1xuaW1wb3J0IHsgTm9kZUZlYXR1cmUgfSBmcm9tICcuL21vZGVsL25vZGUtZmVhdHVyZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzLCBDb25uZWN0aW9uVHlwZSwgTmV0d29yayB9IGZyb20gJ0BjYXBhY2l0b3IvbmV0d29yayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlSW5mbyB7XG4gIHNvZnR3YXJlTmFtZTogc3RyaW5nO1xuICBzb2Z0d2FyZVZlcnNpb246IHN0cmluZztcbiAgbm9kZUxhYmVsPzogc3RyaW5nO1xuICBub2RlTmFtZT86IHN0cmluZztcbiAgZmVhdHVyZXM/OiBOb2RlRmVhdHVyZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcE1hbmlmZXN0IHtcbiAgLy8gbWFuZGF0b3J5XG4gIG1hbmlmZXN0X3ZlcnNpb246IG51bWJlcjtcbiAgbmFtZTogc3RyaW5nO1xuICB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLy8gQXBwIHN0YXJ0IChyZXF1aXJlZCBieSBwbGF0Zm9ybSBzZXJ2aWNlKVxuICBzdGFydF91cmw6IHN0cmluZztcblxuICAvLyBvcHRpb25hbFxuICBzaG9ydF9uYW1lPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdmVyc2lvbl9uYW1lPzogc3RyaW5nO1xuICBhdXRob3I/OiBzdHJpbmc7XG4gIGRlZmF1bHRfbG9jYWxlPzogc3RyaW5nO1xuXG4gIC8vIG9wdGlvbmFsIFVJXG4gIGljb25zPzogYW55IHwgYW55W107XG4gIGJhY2tncm91bmRfY29sb3I/OiBzdHJpbmc7XG4gIHRoZW1lX2NvbG9yPzogc3RyaW5nO1xuICBkaXNwbGF5Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTmV0d29ya1V0aWxzIHtcbiAgc3RhdGljIGFzeW5jIGdldE5vZGVJbmZvKFxuICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcGVlcjogc3RyaW5nIHwgUGVlcixcbiAgICBvcHRzPzoge1xuICAgICAgaGVhZGVycz86XG4gICAgICAgIHwgSHR0cEhlYWRlcnNcbiAgICAgICAgfCB7XG4gICAgICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgICB9O1xuICAgICAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xuICAgIH1cbiAgKTogUHJvbWlzZTxOb2RlSW5mbz4ge1xuICAgIGlmICghcGVlcikgdGhyb3cgRXJyb3IoXCJNaXNzaW5nIGFyZ3VtZW50ICdwZWVyJy5cIik7XG5cbiAgICBsZXQgcGVlclVybCA9IHBlZXIgaW5zdGFuY2VvZiBQZWVyID8gcGVlci51cmwgOiAocGVlciBhcyBzdHJpbmcpO1xuICAgIC8vIFJlbW92ZSB0cmFpbGluZyBzbGFzaFxuICAgIGlmIChwZWVyVXJsLmVuZHNXaXRoKCcvJykpIHtcbiAgICAgIHBlZXJVcmwgPSBwZWVyVXJsLnN1YnN0cigwLCBwZWVyVXJsLmxlbmd0aCAtIDEpO1xuICAgIH1cblxuICAgIHJldHVybiBIdHRwVXRpbHMuZ2V0SnNvbihodHRwLCBwZWVyVXJsICsgJy9hcGkvbm9kZS9pbmZvJywgb3B0cyk7XG4gIH1cblxuICBzdGF0aWMgc3RhdHVzQ2hhbmdlcygpOiBPYnNlcnZhYmxlPENvbm5lY3Rpb25TdGF0dXM+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Q29ubmVjdGlvblN0YXR1cz4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSBOZXR3b3JrLmFkZExpc3RlbmVyKCduZXR3b3JrU3RhdHVzQ2hhbmdlJywgKHN0YXR1czogQ29ubmVjdGlvblN0YXR1cykgPT4gc3Vic2NyaWJlci5uZXh0KHN0YXR1cykpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaGFuZGxlci50aGVuKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIucmVtb3ZlKCkpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRTdGF0dXMoKSB7XG4gICAgcmV0dXJuIE5ldHdvcmsuZ2V0U3RhdHVzKCk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0Q29ubmVjdGlvblR5cGUoKTogUHJvbWlzZTxDb25uZWN0aW9uVHlwZT4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gKGF3YWl0IE5ldHdvcmsuZ2V0U3RhdHVzKCkpPy5jb25uZWN0aW9uVHlwZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tuZXR3b3JrXSBGYWlsZWQgdG8gZ2V0IGNvbm5lY3Rpb24gdHlwZTogJyArIChlcnIubWVzc2FnZSB8fCBlcnIpLCBlcnIpO1xuICAgICAgcmV0dXJuICd1bmtub3duJztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUMsT0FBTyxFQUFvQyxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQWlDNUMsTUFBTSxPQUFPLFlBQVk7SUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3RCLElBQWdCLEVBQ2hCLElBQW1CLEVBQ25CLElBT0M7UUFFRCxJQUFJLENBQUMsSUFBSTtZQUFFLE1BQU0sS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFbkQsSUFBSSxPQUFPLEdBQUcsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUUsSUFBZSxDQUFDO1FBQ2pFLHdCQUF3QjtRQUN4QixJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLEdBQUcsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxpQkFBaUI7UUFDdEIsT0FBTyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxVQUFVLENBQW1CLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsSCxPQUFPLEdBQUcsRUFBRTtnQkFDVixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNoRCxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtRQUM1QixJQUFJLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUM7WUFDckMsT0FBTyxDQUFDLE1BQU0sT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsY0FBYyxJQUFJLFNBQVMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBIdHRwVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvaHR0cC9odHRwLnV0aWxzJztcbmltcG9ydCB7IFBlZXIgfSBmcm9tICcuL21vZGVsL3BlZXIubW9kZWwnO1xuaW1wb3J0IHsgTm9kZUZlYXR1cmUgfSBmcm9tICcuL21vZGVsL25vZGUtZmVhdHVyZS5tb2RlbCc7XG5pbXBvcnQgeyBDb25uZWN0aW9uU3RhdHVzLCBDb25uZWN0aW9uVHlwZSwgTmV0d29yayB9IGZyb20gJ0BjYXBhY2l0b3IvbmV0d29yayc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYXBhY2l0b3IgfSBmcm9tICdAY2FwYWNpdG9yL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE5vZGVJbmZvIHtcbiAgc29mdHdhcmVOYW1lOiBzdHJpbmc7XG4gIHNvZnR3YXJlVmVyc2lvbjogc3RyaW5nO1xuICBub2RlTGFiZWw/OiBzdHJpbmc7XG4gIG5vZGVOYW1lPzogc3RyaW5nO1xuICBmZWF0dXJlcz86IE5vZGVGZWF0dXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwTWFuaWZlc3Qge1xuICAvLyBtYW5kYXRvcnlcbiAgbWFuaWZlc3RfdmVyc2lvbjogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcblxuICAvLyBBcHAgc3RhcnQgKHJlcXVpcmVkIGJ5IHBsYXRmb3JtIHNlcnZpY2UpXG4gIHN0YXJ0X3VybDogc3RyaW5nO1xuXG4gIC8vIG9wdGlvbmFsXG4gIHNob3J0X25hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB2ZXJzaW9uX25hbWU/OiBzdHJpbmc7XG4gIGF1dGhvcj86IHN0cmluZztcbiAgZGVmYXVsdF9sb2NhbGU/OiBzdHJpbmc7XG5cbiAgLy8gb3B0aW9uYWwgVUlcbiAgaWNvbnM/OiBhbnkgfCBhbnlbXTtcbiAgYmFja2dyb3VuZF9jb2xvcj86IHN0cmluZztcbiAgdGhlbWVfY29sb3I/OiBzdHJpbmc7XG4gIGRpc3BsYXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBOZXR3b3JrVXRpbHMge1xuICBzdGF0aWMgYXN5bmMgZ2V0Tm9kZUluZm8oXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBwZWVyOiBzdHJpbmcgfCBQZWVyLFxuICAgIG9wdHM/OiB7XG4gICAgICBoZWFkZXJzPzpcbiAgICAgICAgfCBIdHRwSGVhZGVyc1xuICAgICAgICB8IHtcbiAgICAgICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xuICAgICAgICAgIH07XG4gICAgICByZXNwb25zZVR5cGU/OiAnanNvbic7XG4gICAgfVxuICApOiBQcm9taXNlPE5vZGVJbmZvPiB7XG4gICAgaWYgKCFwZWVyKSB0aHJvdyBFcnJvcihcIk1pc3NpbmcgYXJndW1lbnQgJ3BlZXInLlwiKTtcblxuICAgIGxldCBwZWVyVXJsID0gcGVlciBpbnN0YW5jZW9mIFBlZXIgPyBwZWVyLnVybCA6IChwZWVyIGFzIHN0cmluZyk7XG4gICAgLy8gUmVtb3ZlIHRyYWlsaW5nIHNsYXNoXG4gICAgaWYgKHBlZXJVcmwuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgcGVlclVybCA9IHBlZXJVcmwuc3Vic3RyKDAsIHBlZXJVcmwubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIEh0dHBVdGlscy5nZXRKc29uKGh0dHAsIHBlZXJVcmwgKyAnL2FwaS9ub2RlL2luZm8nLCBvcHRzKTtcbiAgfVxuXG4gIHN0YXRpYyBpc1BsdWdpbkF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gQ2FwYWNpdG9yLmlzUGx1Z2luQXZhaWxhYmxlKCdOZXR3b3JrJyk7XG4gIH1cblxuICBzdGF0aWMgc3RhdHVzQ2hhbmdlcygpOiBPYnNlcnZhYmxlPENvbm5lY3Rpb25TdGF0dXM+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Q29ubmVjdGlvblN0YXR1cz4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGNvbnN0IGhhbmRsZXIgPSBOZXR3b3JrLmFkZExpc3RlbmVyKCduZXR3b3JrU3RhdHVzQ2hhbmdlJywgKHN0YXR1czogQ29ubmVjdGlvblN0YXR1cykgPT4gc3Vic2NyaWJlci5uZXh0KHN0YXR1cykpO1xuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaGFuZGxlci50aGVuKChsaXN0ZW5lcikgPT4gbGlzdGVuZXIucmVtb3ZlKCkpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBnZXRDb25uZWN0aW9uVHlwZSgpOiBQcm9taXNlPENvbm5lY3Rpb25UeXBlPiB7XG4gICAgaWYgKE5ldHdvcmtVdGlscy5pc1BsdWdpbkF2YWlsYWJsZSgpKSB7XG4gICAgICByZXR1cm4gKGF3YWl0IE5ldHdvcmsuZ2V0U3RhdHVzKCkpPy5jb25uZWN0aW9uVHlwZSB8fCAndW5rbm93bic7XG4gICAgfVxuICAgIHJldHVybiAndW5rbm93bic7XG4gIH1cbn1cbiJdfQ==
@@ -17669,6 +17669,9 @@ class NetworkUtils {
17669
17669
  }
17670
17670
  return HttpUtils.getJson(http, peerUrl + '/api/node/info', opts);
17671
17671
  }
17672
+ static isPluginAvailable() {
17673
+ return Capacitor.isPluginAvailable('Network');
17674
+ }
17672
17675
  static statusChanges() {
17673
17676
  return new Observable((subscriber) => {
17674
17677
  const handler = Network.addListener('networkStatusChange', (status) => subscriber.next(status));
@@ -17677,17 +17680,11 @@ class NetworkUtils {
17677
17680
  };
17678
17681
  });
17679
17682
  }
17680
- static getStatus() {
17681
- return Network.getStatus();
17682
- }
17683
17683
  static async getConnectionType() {
17684
- try {
17685
- return (await Network.getStatus())?.connectionType;
17686
- }
17687
- catch (err) {
17688
- console.error('[network] Failed to get connection type: ' + (err.message || err), err);
17689
- return 'unknown';
17684
+ if (NetworkUtils.isPluginAvailable()) {
17685
+ return (await Network.getStatus())?.connectionType || 'unknown';
17690
17686
  }
17687
+ return 'unknown';
17691
17688
  }
17692
17689
  }
17693
17690
 
@@ -18505,7 +18502,6 @@ class NetworkService extends StartableObservableService {
18505
18502
  onResetNetworkCache = new EventEmitter(true);
18506
18503
  _mobile;
18507
18504
  _logger;
18508
- _isNetworkPluginAvailable = false;
18509
18505
  _timerSubscription;
18510
18506
  _timerRefreshPeriod;
18511
18507
  _timerRefreshCondition;
@@ -18585,8 +18581,8 @@ class NetworkService extends StartableObservableService {
18585
18581
  }
18586
18582
  }
18587
18583
  async tryOnline(opts) {
18588
- // If offline mode not forced, and device says there is no connection: skip
18589
- if (!this._forceOffline || this._deviceConnectionType === 'none')
18584
+ // If offline mode not forced, or if device says there is no connection: skip
18585
+ if (!this._forceOffline || (await NetworkUtils.getConnectionType()) === 'none')
18590
18586
  return false;
18591
18587
  // SHow loading toast
18592
18588
  const now = Date.now();
@@ -18847,8 +18843,8 @@ class NetworkService extends StartableObservableService {
18847
18843
  /* -- protected functions -- */
18848
18844
  async ngOnStart(peer) {
18849
18845
  console.info('[network] Starting network...');
18850
- // CHeck if can use Network plugin
18851
- this._isNetworkPluginAvailable = Capacitor.isPluginAvailable('Network');
18846
+ // Check if can use Network plugin
18847
+ console.debug(`[network] Capacitor Network plugin is ${Capacitor.isPluginAvailable('Network') ? 'available' : 'not available'}`);
18852
18848
  // Restoring local settings
18853
18849
  peer = peer || (await this.restoreLocally());
18854
18850
  if (!peer) {
@@ -18881,19 +18877,17 @@ class NetworkService extends StartableObservableService {
18881
18877
  async ngOnAfterStart(peer) {
18882
18878
  // Wait settings starts, then save peer in settings
18883
18879
  await this.settings.apply({ peerUrl: peer.url });
18884
- if (this._isNetworkPluginAvailable) {
18880
+ // Listen for device network changes
18881
+ if (NetworkUtils.isPluginAvailable()) {
18885
18882
  const connectionType = await NetworkUtils.getConnectionType();
18886
18883
  this.onDeviceConnectionChanged(connectionType);
18884
+ this.registerSubscription(NetworkUtils.statusChanges().subscribe((status) => this.onDeviceConnectionChanged(status?.connectionType || 'unknown')));
18887
18885
  }
18888
18886
  else {
18889
18887
  this.onDeviceConnectionChanged('unknown');
18890
18888
  }
18891
18889
  // Start the refresh timer
18892
18890
  this.startRefreshTimer();
18893
- // Listen for device network changes
18894
- if (this._isNetworkPluginAvailable) {
18895
- this.registerSubscription(NetworkUtils.statusChanges().subscribe((status) => this.onDeviceConnectionChanged(status?.connectionType || 'unknown')));
18896
- }
18897
18891
  }
18898
18892
  ngOnStop() {
18899
18893
  // Stop timer, if cannot refresh anymore
@@ -19840,11 +19834,11 @@ class GraphqlService extends StartableService {
19840
19834
  await this.ready();
19841
19835
  let res;
19842
19836
  try {
19843
- res = await this.client.query({
19837
+ res = (await this.client.query({
19844
19838
  query: opts.query,
19845
19839
  variables: opts.variables,
19846
19840
  fetchPolicy: opts.fetchPolicy || this._defaultFetchPolicy || undefined,
19847
- });
19841
+ }));
19848
19842
  }
19849
19843
  catch (err) {
19850
19844
  res = this.toApolloError(err, opts.error);
@@ -19863,7 +19857,7 @@ class GraphqlService extends StartableService {
19863
19857
  });
19864
19858
  }
19865
19859
  queryRefValuesChanges(queryRef, opts) {
19866
- return queryRef.valueChanges.pipe(catchError((error) => this.onApolloError(error, opts.error)), filter((value) => value.networkStatus === NetworkStatus.ready || value.networkStatus === NetworkStatus.error), map(({ data, errors }) => {
19860
+ return queryRef.valueChanges.pipe(catchError(async (error) => this.toApolloError(error, opts.error)), filter((value) => value.networkStatus === NetworkStatus.ready || value.networkStatus === NetworkStatus.error), map(({ data, errors }) => {
19867
19861
  if (errors) {
19868
19862
  throw errors[0];
19869
19863
  }
@@ -19880,7 +19874,7 @@ class GraphqlService extends StartableService {
19880
19874
  if (typeof opts.offlineResponse === 'function') {
19881
19875
  opts.context = opts.context || {};
19882
19876
  const optimisticResponseFn = opts.offlineResponse;
19883
- opts.optimisticResponse = await optimisticResponseFn(opts.context);
19877
+ opts.optimisticResponse = (await optimisticResponseFn(opts.context));
19884
19878
  if (this._debug)
19885
19879
  console.debug('[graphql] [offline] Using an optimistic response: ', opts.optimisticResponse);
19886
19880
  }
@@ -19890,6 +19884,7 @@ class GraphqlService extends StartableService {
19890
19884
  if (opts.forceOffline) {
19891
19885
  const res = { data: opts.optimisticResponse };
19892
19886
  if (opts.update) {
19887
+ // @ts-ignore
19893
19888
  opts.update(this.apollo.client.cache, res, {});
19894
19889
  }
19895
19890
  return res.data;
@@ -19903,9 +19898,9 @@ class GraphqlService extends StartableService {
19903
19898
  optimisticResponse: opts.optimisticResponse,
19904
19899
  update: opts.update,
19905
19900
  })
19906
- .pipe(catchError((error) => this.onApolloError(error, opts.error)), first()
19901
+ .pipe(catchError(async (error) => this.toApolloError(error, opts.error)), first()
19907
19902
  // To debug, if need:
19908
- //tap((res) => (!res) && console.error('[graphql] Unknown error during mutation. Check errors in console (may be an invalid generated cache id ?)'))
19903
+ //tap((res) => (!res) && console.error('[graphql] Unknown error during mutation. Check errors in console (maybe an invalid generated cache id ?)'))
19909
19904
  ));
19910
19905
  if (Array.isArray(res.errors)) {
19911
19906
  throw res.errors[0];
@@ -19923,7 +19918,7 @@ class GraphqlService extends StartableService {
19923
19918
  useZone: true,
19924
19919
  ...extra,
19925
19920
  })
19926
- .pipe(catchError((error) => this.onApolloError(error, opts.error)), map(({ data, errors }) => {
19921
+ .pipe(catchError(async (error) => this.toApolloError(error, opts.error)), map(({ data, errors }) => {
19927
19922
  if (errors) {
19928
19923
  throw errors[0];
19929
19924
  }
@@ -19942,7 +19937,7 @@ class GraphqlService extends StartableService {
19942
19937
  data = { ...data };
19943
19938
  // Append to result array
19944
19939
  data[opts.arrayFieldName] = [...data[opts.arrayFieldName], { ...opts.data }];
19945
- // Resort, if need
19940
+ // Resort if needed
19946
19941
  if (opts.sortFn) {
19947
19942
  data[opts.arrayFieldName].sort(opts.sortFn);
19948
19943
  }
@@ -23936,7 +23931,7 @@ class BaseEntityService extends BaseGraphqlService {
23936
23931
  },
23937
23932
  error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
23938
23933
  update: (cache, { data }, { context, variables }) => {
23939
- const savedEntities = data && data.data;
23934
+ const savedEntities = data?.data;
23940
23935
  if (savedEntities) {
23941
23936
  // Update entities (id and update date)
23942
23937
  entities.forEach((entity) => {