@o3r/mobile 11.6.0-prerelease.7 → 11.6.0-prerelease.8
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.
- package/capacitor/capacitor-target.service.d.ts.map +1 -1
- package/capacitor/helpers.d.ts.map +1 -1
- package/capacitor/storage/rehydrater.d.ts +1 -1
- package/capacitor/storage/rehydrater.d.ts.map +1 -1
- package/capacitor/storage/rehydrater.module.d.ts.map +1 -1
- package/capacitor/storage/storage.d.ts.map +1 -1
- package/esm2022/capacitor/capacitor-target.service.mjs +6 -6
- package/esm2022/capacitor/helpers.mjs +2 -2
- package/esm2022/capacitor/storage/rehydrater.mjs +7 -6
- package/esm2022/capacitor/storage/rehydrater.module.mjs +5 -5
- package/esm2022/capacitor/storage/storage.mjs +2 -2
- package/fesm2022/o3r-mobile.mjs +4 -3
- package/fesm2022/o3r-mobile.mjs.map +1 -1
- package/package.json +5 -5
- package/pcloudy/pcloudy.api.d.ts +0 -12
- package/pcloudy/pcloudy.api.d.ts.map +1 -1
- package/pcloudy/pcloudy.api.js +9 -20
- package/pcloudy/pcloudy.api.js.map +1 -1
- package/pcloudy/pcloudy.connection.js +3 -10
- package/pcloudy/pcloudy.connection.js.map +1 -1
- package/pcloudy/pcloudy.interfaces.d.ts +1 -1
- package/pcloudy/pcloudy.interfaces.d.ts.map +1 -1
- package/pcloudy/pcloudy.interfaces.js +1 -2
- package/pcloudy/pcloudy.interfaces.js.map +1 -1
- package/pcloudy/pcloudy.service.d.ts +2 -8
- package/pcloudy/pcloudy.service.d.ts.map +1 -1
- package/pcloudy/pcloudy.service.js +5 -11
- package/pcloudy/pcloudy.service.js.map +1 -1
- package/pcloudy/tsconfig.pcloudy.tsbuildinfo +1 -1
- package/schematics/ng-add/index.d.ts.map +1 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/schema.d.ts.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capacitor-target.service.d.ts","sourceRoot":"","sources":["../../src/capacitor/capacitor-target.service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"capacitor-target.service.d.ts","sourceRoot":"","sources":["../../src/capacitor/capacitor-target.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACV,MAAM,eAAe,CAAC;;AAYvB,qBAGa,sBAAuB,YAAW,SAAS;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsB;YAEtC,sBAAsB;IAcpC;;;OAGG;IACI,WAAW,IAAI,IAAI;IASnB,WAAW;yCA9BP,sBAAsB;6CAAtB,sBAAsB;CAiClC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/capacitor/helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/capacitor/helpers.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAE3D;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAGxE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAG3D;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAalD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { Store } from '@ngrx/store';
|
|
3
|
-
import { StorageSyncOptions } from '@o3r/store-sync';
|
|
4
3
|
import { LoggerService } from '@o3r/logger';
|
|
4
|
+
import { StorageSyncOptions } from '@o3r/store-sync';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* Injection token for the storage sync options
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehydrater.d.ts","sourceRoot":"","sources":["../../../src/capacitor/storage/rehydrater.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rehydrater.d.ts","sourceRoot":"","sources":["../../../src/capacitor/storage/rehydrater.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EACf,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,EACN,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAKL,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;;AAEzB;;GAEG;AACH,eAAO,MAAM,oBAAoB,6CAA0E,CAAC;AAI5G,qBACa,mBAAmB;IAG5B,OAAO,CAAC,QAAQ,CAAC,KAAK;IAEtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAE1B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACJ,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACjD,MAAM,EAAE,aAAa;IAKxC;;OAEG;IACU,SAAS;yCAbX,mBAAmB;6CAAnB,mBAAmB;CAgE/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehydrater.module.d.ts","sourceRoot":"","sources":["../../../src/capacitor/storage/rehydrater.module.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"rehydrater.module.d.ts","sourceRoot":"","sources":["../../../src/capacitor/storage/rehydrater.module.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AAOvB,OAAO,KAAK,EACV,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;;;;AAMzB,qBASa,yBAAyB;WACtB,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,CAAC,yBAAyB,CAAC;yCADvF,yBAAyB;0CAAzB,yBAAyB;0CAAzB,yBAAyB;CASrC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/capacitor/storage/storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/capacitor/storage/storage.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACb,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,qBAAa,qBAAsB,YAAW,YAAY;IACxD;;OAEG;IACI,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIpC;;OAEG;IACI,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIhD;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAI1D"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Browser } from '@capacitor/browser';
|
|
3
|
-
import { fromEvent } from 'rxjs';
|
|
4
|
-
import { isCapacitorContext } from './helpers';
|
|
1
|
+
import { Injectable, } from '@angular/core';
|
|
2
|
+
import { Browser, } from '@capacitor/browser';
|
|
3
|
+
import { fromEvent, } from 'rxjs';
|
|
4
|
+
import { isCapacitorContext, } from './helpers';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class CapacitorTargetService {
|
|
7
7
|
constructor() {
|
|
@@ -26,7 +26,7 @@ export class CapacitorTargetService {
|
|
|
26
26
|
* Instead of the default action, it will open the URL using the CapacitorJS Browser plugin.
|
|
27
27
|
*/
|
|
28
28
|
hijackClick() {
|
|
29
|
-
if (
|
|
29
|
+
if (this.subscriptions.length === 0) {
|
|
30
30
|
this.subscriptions.push(fromEvent(document, 'click').subscribe(async (event) => {
|
|
31
31
|
const element = event.target;
|
|
32
32
|
await this.openInCapacitorBrowser(element, event);
|
|
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
45
45
|
providedIn: 'root'
|
|
46
46
|
}]
|
|
47
47
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWNpdG9yLXRhcmdldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NhcGFjaXRvci9jYXBhY2l0b3ItdGFyZ2V0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsR0FFWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsT0FBTyxHQUNSLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUNMLFNBQVMsR0FFVixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxrQkFBa0IsR0FDbkIsTUFBTSxXQUFXLENBQUM7O0FBS25CLE1BQU0sT0FBTyxzQkFBc0I7SUFIbkM7UUFJbUIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0tBZ0NyRDtJQTlCUyxLQUFLLENBQUMsc0JBQXNCLENBQUMsT0FBMkIsRUFBRSxLQUFZO1FBQzVFLElBQUksTUFBTSxrQkFBa0IsRUFBRSxJQUFJLE9BQU8sWUFBWSxPQUFPLEVBQUUsQ0FBQztZQUM3RCxJQUFJLE9BQU8sQ0FBQyxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3pDLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ3ZELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztvQkFDdkIsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQzVELENBQUM7WUFDSCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNsRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUM3RSxNQUFNLE9BQU8sR0FBdUIsS0FBSyxDQUFDLE1BQU0sQ0FBQztnQkFDakQsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNFLENBQUM7a0lBaENVLHNCQUFzQjtzSUFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlLFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQnJvd3Nlcixcbn0gZnJvbSAnQGNhcGFjaXRvci9icm93c2VyJztcbmltcG9ydCB7XG4gIGZyb21FdmVudCxcbiAgU3Vic2NyaXB0aW9uLFxufSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIGlzQ2FwYWNpdG9yQ29udGV4dCxcbn0gZnJvbSAnLi9oZWxwZXJzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQ2FwYWNpdG9yVGFyZ2V0U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBwcml2YXRlIGFzeW5jIG9wZW5JbkNhcGFjaXRvckJyb3dzZXIoZWxlbWVudDogRXZlbnRUYXJnZXQgfCBudWxsLCBldmVudDogRXZlbnQpIHtcbiAgICBpZiAoYXdhaXQgaXNDYXBhY2l0b3JDb250ZXh0KCkgJiYgZWxlbWVudCBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgIGlmIChlbGVtZW50LnRhZ05hbWUgPT09ICdBJykge1xuICAgICAgICBjb25zdCB1cmwgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgICAgICBpZiAoZWxlbWVudC5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpID09PSAnX2JsYW5rJyAmJiB1cmwpIHtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGF3YWl0IEJyb3dzZXIub3Blbih7IHVybCwgcHJlc2VudGF0aW9uU3R5bGU6ICdwb3BvdmVyJyB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vcGVuSW5DYXBhY2l0b3JCcm93c2VyKGVsZW1lbnQucGFyZW50RWxlbWVudCwgZXZlbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBNZXRob2QgY2FsbGVkIGZvciAnaGlqYWNraW5nJyB0aGUgY2xpY2sgZXZlbnQgb24gPGE+IHRhZ3Mgd2l0aCB0YXJnZXQgX2JsYW5rIGF0dHJpYnV0ZS5cbiAgICogSW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb24sIGl0IHdpbGwgb3BlbiB0aGUgVVJMIHVzaW5nIHRoZSBDYXBhY2l0b3JKUyBCcm93c2VyIHBsdWdpbi5cbiAgICovXG4gIHB1YmxpYyBoaWphY2tDbGljaygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdWJzY3JpcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goZnJvbUV2ZW50KGRvY3VtZW50LCAnY2xpY2snKS5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQ6IEV2ZW50VGFyZ2V0IHwgbnVsbCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgYXdhaXQgdGhpcy5vcGVuSW5DYXBhY2l0b3JCcm93c2VyKGVsZW1lbnQsIGV2ZW50KTtcbiAgICAgIH0pKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbikgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Device } from '@capacitor/device';
|
|
1
|
+
import { Device, } from '@capacitor/device';
|
|
2
2
|
/**
|
|
3
3
|
* Returns the capacitor platform
|
|
4
4
|
*/
|
|
@@ -30,4 +30,4 @@ export async function getBaseUrl() {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jYXBhY2l0b3IvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxHQUNQLE1BQU0sbUJBQW1CLENBQUM7QUFPM0I7O0dBRUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQjtJQUN4QyxNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDdkIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxvQkFBb0IsRUFBRSxDQUFDO0lBQzlDLE9BQU8sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxVQUFVO0lBQzlCLE1BQU0sUUFBUSxHQUFHLE1BQU0sb0JBQW9CLEVBQUUsQ0FBQztJQUM5QyxRQUFRLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDYixPQUFPLHVCQUF1QixDQUFDO1FBQ2pDLENBQUM7UUFDRCxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pCLE9BQU8sa0JBQWtCLENBQUM7UUFDNUIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDUixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERldmljZSxcbn0gZnJvbSAnQGNhcGFjaXRvci9kZXZpY2UnO1xuXG4vKipcbiAqIFR5cGUgZm9yIHRoZSAzIGNhcGFjaXRvciBwbGF0Zm9ybXNcbiAqL1xuZXhwb3J0IHR5cGUgQ2FwYWNpdG9yUGxhdGZvcm1zID0gJ2lvcycgfCAnYW5kcm9pZCcgfCAnd2ViJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjYXBhY2l0b3IgcGxhdGZvcm1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldENhcGFjaXRvclBsYXRmb3JtKCk6IFByb21pc2U8Q2FwYWNpdG9yUGxhdGZvcm1zPiB7XG4gIGNvbnN0IGluZm8gPSBhd2FpdCBEZXZpY2UuZ2V0SW5mbygpO1xuICByZXR1cm4gaW5mby5wbGF0Zm9ybTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRydWUgaWYgaW4gYSBjYXBhY2l0b3IgY29udGV4dCAobW9iaWxlIGFwcCkgb3IgZmFsc2UgZm9yIHdlYlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaXNDYXBhY2l0b3JDb250ZXh0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICBjb25zdCBwbGF0Zm9ybSA9IGF3YWl0IGdldENhcGFjaXRvclBsYXRmb3JtKCk7XG4gIHJldHVybiAocGxhdGZvcm0gPT09ICdpb3MnKSB8fCAocGxhdGZvcm0gPT09ICdhbmRyb2lkJyk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgYmFzZVVybCB0aGF0IGNhbiBiZSB1c2VkIGRlcGVuZGluZyBvbiB0aGUgcGxhdGZvcm1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJhc2VVcmwoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcGxhdGZvcm0gPSBhd2FpdCBnZXRDYXBhY2l0b3JQbGF0Zm9ybSgpO1xuICBzd2l0Y2ggKHBsYXRmb3JtKSB7XG4gICAgY2FzZSAoJ2lvcycpOiB7XG4gICAgICByZXR1cm4gJ2NhcGFjaXRvcjovL2xvY2FsaG9zdCc7XG4gICAgfVxuICAgIGNhc2UgKCdhbmRyb2lkJyk6IHtcbiAgICAgIHJldHVybiAnaHR0cDovL2xvY2FsaG9zdCc7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24uaHJlZjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken } from '@angular/core';
|
|
2
|
-
import { Store } from '@ngrx/store';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import { Inject, Injectable, InjectionToken, } from '@angular/core';
|
|
2
|
+
import { Store, } from '@ngrx/store';
|
|
3
|
+
import { LoggerService, } from '@o3r/logger';
|
|
4
|
+
import { dateReviver, isLocalStorageConfig, isSerializer, rehydrateAction, } from '@o3r/store-sync';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "@ngrx/store";
|
|
7
7
|
import * as i2 from "@o3r/logger";
|
|
@@ -9,6 +9,7 @@ import * as i2 from "@o3r/logger";
|
|
|
9
9
|
* Injection token for the storage sync options
|
|
10
10
|
*/
|
|
11
11
|
export const STORAGE_SYNC_OPTIONS = new InjectionToken('STORAGE_SYNC_OPTIONS');
|
|
12
|
+
const noopDeserializer = (raw) => raw;
|
|
12
13
|
export class CapacitorRehydrater {
|
|
13
14
|
constructor(store, options, logger) {
|
|
14
15
|
this.store = store;
|
|
@@ -28,7 +29,7 @@ export class CapacitorRehydrater {
|
|
|
28
29
|
const storeName = Object.keys(key)[0];
|
|
29
30
|
const storeSynchronizer = key[storeName];
|
|
30
31
|
let reviver = this.options.restoreDates ? dateReviver : undefined;
|
|
31
|
-
let deserialize =
|
|
32
|
+
let deserialize = noopDeserializer;
|
|
32
33
|
if (isSerializer(storeSynchronizer)) {
|
|
33
34
|
if (storeSynchronizer.reviver) {
|
|
34
35
|
reviver = storeSynchronizer.reviver;
|
|
@@ -65,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
65
66
|
type: Inject,
|
|
66
67
|
args: [STORAGE_SYNC_OPTIONS]
|
|
67
68
|
}] }, { type: i2.LoggerService }] });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVoeWRyYXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYXBhY2l0b3Ivc3RvcmFnZS9yZWh5ZHJhdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsS0FBSyxHQUNOLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxhQUFhLEdBQ2QsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsWUFBWSxFQUNaLGVBQWUsR0FFaEIsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUV6Qjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUE4QixzQkFBc0IsQ0FBQyxDQUFDO0FBRTVHLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQztBQUc5QyxNQUFNLE9BQU8sbUJBQW1CO0lBRTlCLFlBQ21CLEtBQWlCLEVBQ0osT0FBb0MsRUFDakQsTUFBcUI7UUFGckIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUVqQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRXRDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFNBQVM7UUFDcEIsSUFBSSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1lBQzlFLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxZQUFZLEdBQStDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTthQUMvRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxpQkFBaUIsR0FBSSxHQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xFLElBQUksV0FBVyxHQUFHLGdCQUFnQixDQUFDO1lBRW5DLElBQUksWUFBWSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQztnQkFDdEMsQ0FBQztnQkFDRCxJQUFJLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNsQyxXQUFXLEdBQUcsaUJBQWlCLENBQUMsV0FBVyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0gsQ0FBQztZQUVELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFRLENBQUMsT0FBTyxDQUNwRCxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQjtnQkFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxDQUFDLENBQUMsU0FBUyxDQUNkLENBQUM7WUFDRixJQUFJLFVBQVUsRUFBRSxDQUFDO2dCQUNmLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztnQkFDN0IsSUFBSSxHQUFHLEdBQUcsVUFBVSxDQUFDO2dCQUVyQixJQUFJLFVBQVUsS0FBSyxNQUFNLElBQUksVUFBVSxLQUFLLE1BQU0sSUFBSSxVQUFVLEtBQUssT0FBTyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ3pILEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztnQkFFRCxPQUFPO29CQUNMLENBQUMsU0FBUyxDQUFDLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztpQkFDOUIsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVMLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsZUFBZSxDQUFDO1lBQ2QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQ3BCLENBQUMsR0FBd0IsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLEVBQzNELEVBQUUsQ0FDSDtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztrSUEvRFUsbUJBQW1CLHVDQUlwQixvQkFBb0I7c0lBSm5CLG1CQUFtQjs7NEZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBS04sTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3QsXG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFN0b3JlLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBMb2dnZXJTZXJ2aWNlLFxufSBmcm9tICdAbzNyL2xvZ2dlcic7XG5pbXBvcnQge1xuICBkYXRlUmV2aXZlcixcbiAgaXNMb2NhbFN0b3JhZ2VDb25maWcsXG4gIGlzU2VyaWFsaXplcixcbiAgcmVoeWRyYXRlQWN0aW9uLFxuICBTdG9yYWdlU3luY09wdGlvbnMsXG59IGZyb20gJ0BvM3Ivc3RvcmUtc3luYyc7XG5cbi8qKlxuICogSW5qZWN0aW9uIHRva2VuIGZvciB0aGUgc3RvcmFnZSBzeW5jIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfU1lOQ19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFBhcnRpYWw8U3RvcmFnZVN5bmNPcHRpb25zPj4oJ1NUT1JBR0VfU1lOQ19PUFRJT05TJyk7XG5cbmNvbnN0IG5vb3BEZXNlcmlhbGl6ZXIgPSAocmF3OiBzdHJpbmcpID0+IHJhdztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhcGFjaXRvclJlaHlkcmF0ZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IFN0b3JhZ2VTeW5jT3B0aW9ucztcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBASW5qZWN0KFNUT1JBR0VfU1lOQ19PUFRJT05TKSBvcHRpb25zOiBQYXJ0aWFsPFN0b3JhZ2VTeW5jT3B0aW9ucz4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5vcHRpb25zID0geyBrZXlzOiBbXSwgLi4ub3B0aW9ucyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BhdGNoIGFuIGFjdGlvbiB0byByZWh5ZHJhdGUgdGhlIHN0b3JlIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgc3RvcmFnZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlaHlkcmF0ZSgpIHtcbiAgICBpZiAoaXNMb2NhbFN0b3JhZ2VDb25maWcodGhpcy5vcHRpb25zKSkge1xuICAgICAgdGhpcy5sb2dnZXIud2FybignQSBub24tYXN5bmMgc3RvcmFnZSBpcyB1c2VkLCByZWh5ZHJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHN0b3JhZ2VDYWxsczogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkPltdID0gdGhpcy5vcHRpb25zLmtleXNcbiAgICAgIC5tYXAoYXN5bmMgKGtleSkgPT4ge1xuICAgICAgICBjb25zdCBzdG9yZU5hbWUgPSBPYmplY3Qua2V5cyhrZXkpWzBdO1xuICAgICAgICBjb25zdCBzdG9yZVN5bmNocm9uaXplciA9IChrZXkgYXMgYW55KVtzdG9yZU5hbWVdO1xuICAgICAgICBsZXQgcmV2aXZlciA9IHRoaXMub3B0aW9ucy5yZXN0b3JlRGF0ZXMgPyBkYXRlUmV2aXZlciA6IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGRlc2VyaWFsaXplID0gbm9vcERlc2VyaWFsaXplcjtcblxuICAgICAgICBpZiAoaXNTZXJpYWxpemVyKHN0b3JlU3luY2hyb25pemVyKSkge1xuICAgICAgICAgIGlmIChzdG9yZVN5bmNocm9uaXplci5yZXZpdmVyKSB7XG4gICAgICAgICAgICByZXZpdmVyID0gc3RvcmVTeW5jaHJvbml6ZXIucmV2aXZlcjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHN0b3JlU3luY2hyb25pemVyLmRlc2VyaWFsaXplKSB7XG4gICAgICAgICAgICBkZXNlcmlhbGl6ZSA9IHN0b3JlU3luY2hyb25pemVyLmRlc2VyaWFsaXplO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0YXRlU2xpY2UgPSBhd2FpdCB0aGlzLm9wdGlvbnMuc3RvcmFnZSEuZ2V0SXRlbShcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuc3RvcmFnZUtleVNlcmlhbGl6ZXJcbiAgICAgICAgICAgID8gdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlTZXJpYWxpemVyKHN0b3JlTmFtZSlcbiAgICAgICAgICAgIDogc3RvcmVOYW1lXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzdGF0ZVNsaWNlKSB7XG4gICAgICAgICAgY29uc3QgaXNPYmplY3RSZWdleCA9IC97fFxcWy87XG4gICAgICAgICAgbGV0IHJhdyA9IHN0YXRlU2xpY2U7XG5cbiAgICAgICAgICBpZiAoc3RhdGVTbGljZSA9PT0gJ251bGwnIHx8IHN0YXRlU2xpY2UgPT09ICd0cnVlJyB8fCBzdGF0ZVNsaWNlID09PSAnZmFsc2UnIHx8IGlzT2JqZWN0UmVnZXgudGVzdChzdGF0ZVNsaWNlLmNoYXJBdCgwKSkpIHtcbiAgICAgICAgICAgIHJhdyA9IEpTT04ucGFyc2Uoc3RhdGVTbGljZSwgcmV2aXZlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIFtzdG9yZU5hbWVdOiBkZXNlcmlhbGl6ZShyYXcpXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbChzdG9yYWdlQ2FsbHMpO1xuXG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIHJlaHlkcmF0ZUFjdGlvbih7XG4gICAgICAgIHBheWxvYWQ6IHJlc3VsdC5yZWR1Y2UoXG4gICAgICAgICAgKGFjYzogUmVjb3JkPHN0cmluZywgYW55Piwgc3RvcmUpID0+ICh7IC4uLmFjYywgLi4uc3RvcmUgfSksXG4gICAgICAgICAge31cbiAgICAgICAgKVxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { StoreModule } from '@ngrx/store';
|
|
3
|
-
import { LoggerModule } from '@o3r/logger';
|
|
4
|
-
import { CapacitorRehydrater, STORAGE_SYNC_OPTIONS } from './rehydrater';
|
|
1
|
+
import { NgModule, } from '@angular/core';
|
|
2
|
+
import { StoreModule, } from '@ngrx/store';
|
|
3
|
+
import { LoggerModule, } from '@o3r/logger';
|
|
4
|
+
import { CapacitorRehydrater, STORAGE_SYNC_OPTIONS, } from './rehydrater';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class CapacitorRehydraterModule {
|
|
7
7
|
static forRoot(options) {
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
32
32
|
]
|
|
33
33
|
}]
|
|
34
34
|
}] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVoeWRyYXRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2FwYWNpdG9yL3N0b3JhZ2UvcmVoeWRyYXRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsV0FBVyxHQUNaLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDTCxZQUFZLEdBQ2IsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsR0FDckIsTUFBTSxjQUFjLENBQUM7O0FBV3RCLE1BQU0sT0FBTyx5QkFBeUI7SUFDN0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUEyQjtRQUMvQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLHlCQUF5QjtZQUNuQyxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRTthQUNyRDtTQUNGLENBQUM7SUFDSixDQUFDO2tJQVJVLHlCQUF5QjttSUFBekIseUJBQXlCLFlBUGxDLFdBQVc7WUFDWCxZQUFZO21JQU1ILHlCQUF5QixhQUp6QjtZQUNULG1CQUFtQjtTQUNwQixZQUxDLFdBQVc7WUFDWCxZQUFZOzs0RkFNSCx5QkFBeUI7a0JBVHJDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTtxQkFDYjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE1vZHVsZVdpdGhQcm92aWRlcnMsXG4gIE5nTW9kdWxlLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFN0b3JlTW9kdWxlLFxufSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQge1xuICBMb2dnZXJNb2R1bGUsXG59IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB0eXBlIHtcbiAgU3RvcmFnZVN5bmNPcHRpb25zLFxufSBmcm9tICdAbzNyL3N0b3JlLXN5bmMnO1xuaW1wb3J0IHtcbiAgQ2FwYWNpdG9yUmVoeWRyYXRlcixcbiAgU1RPUkFHRV9TWU5DX09QVElPTlMsXG59IGZyb20gJy4vcmVoeWRyYXRlcic7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTdG9yZU1vZHVsZSxcbiAgICBMb2dnZXJNb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ2FwYWNpdG9yUmVoeWRyYXRlclxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENhcGFjaXRvclJlaHlkcmF0ZXJNb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3Qob3B0aW9uczogU3RvcmFnZVN5bmNPcHRpb25zKTogTW9kdWxlV2l0aFByb3ZpZGVyczxDYXBhY2l0b3JSZWh5ZHJhdGVyTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBDYXBhY2l0b3JSZWh5ZHJhdGVyTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogU1RPUkFHRV9TWU5DX09QVElPTlMsIHVzZVZhbHVlOiBvcHRpb25zIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Preferences as CapacitorStorage } from '@capacitor/preferences';
|
|
1
|
+
import { Preferences as CapacitorStorage, } from '@capacitor/preferences';
|
|
2
2
|
/**
|
|
3
3
|
* Capacitor storage
|
|
4
4
|
*/
|
|
@@ -23,4 +23,4 @@ export class OtterCapacitorStorage {
|
|
|
23
23
|
return value;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jYXBhY2l0b3Ivc3RvcmFnZS9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxXQUFXLElBQUksZ0JBQWdCLEdBQ2hDLE1BQU0sd0JBQXdCLENBQUM7QUFLaEM7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDOztPQUVHO0lBQ0ksVUFBVSxDQUFDLEdBQVc7UUFDM0IsS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU8sQ0FBQyxHQUFXLEVBQUUsS0FBYTtRQUN2QyxLQUFLLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBVztRQUM5QixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUHJlZmVyZW5jZXMgYXMgQ2FwYWNpdG9yU3RvcmFnZSxcbn0gZnJvbSAnQGNhcGFjaXRvci9wcmVmZXJlbmNlcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzeW5jU3RvcmFnZSxcbn0gZnJvbSAnQG8zci9zdG9yZS1zeW5jJztcblxuLyoqXG4gKiBDYXBhY2l0b3Igc3RvcmFnZVxuICovXG5leHBvcnQgY2xhc3MgT3R0ZXJDYXBhY2l0b3JTdG9yYWdlIGltcGxlbWVudHMgQXN5bmNTdG9yYWdlIHtcbiAgLyoqXG4gICAqIEBpbmhlcml0ZG9jXG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIHZvaWQgQ2FwYWNpdG9yU3RvcmFnZS5yZW1vdmUoeyBrZXkgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdm9pZCBDYXBhY2l0b3JTdG9yYWdlLnNldCh7IGtleSwgdmFsdWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGluaGVyaXRkb2NcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gYXdhaXQgQ2FwYWNpdG9yU3RvcmFnZS5nZXQoeyBrZXkgfSk7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG59XG4iXX0=
|
package/fesm2022/o3r-mobile.mjs
CHANGED
|
@@ -5,9 +5,9 @@ import { fromEvent } from 'rxjs';
|
|
|
5
5
|
import { Device } from '@capacitor/device';
|
|
6
6
|
import * as i1 from '@ngrx/store';
|
|
7
7
|
import { StoreModule } from '@ngrx/store';
|
|
8
|
-
import { isLocalStorageConfig, dateReviver, isSerializer, rehydrateAction } from '@o3r/store-sync';
|
|
9
8
|
import * as i2 from '@o3r/logger';
|
|
10
9
|
import { LoggerModule } from '@o3r/logger';
|
|
10
|
+
import { isLocalStorageConfig, dateReviver, isSerializer, rehydrateAction } from '@o3r/store-sync';
|
|
11
11
|
import { Preferences } from '@capacitor/preferences';
|
|
12
12
|
|
|
13
13
|
/**
|
|
@@ -65,7 +65,7 @@ class CapacitorTargetService {
|
|
|
65
65
|
* Instead of the default action, it will open the URL using the CapacitorJS Browser plugin.
|
|
66
66
|
*/
|
|
67
67
|
hijackClick() {
|
|
68
|
-
if (
|
|
68
|
+
if (this.subscriptions.length === 0) {
|
|
69
69
|
this.subscriptions.push(fromEvent(document, 'click').subscribe(async (event) => {
|
|
70
70
|
const element = event.target;
|
|
71
71
|
await this.openInCapacitorBrowser(element, event);
|
|
@@ -89,6 +89,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImpo
|
|
|
89
89
|
* Injection token for the storage sync options
|
|
90
90
|
*/
|
|
91
91
|
const STORAGE_SYNC_OPTIONS = new InjectionToken('STORAGE_SYNC_OPTIONS');
|
|
92
|
+
const noopDeserializer = (raw) => raw;
|
|
92
93
|
class CapacitorRehydrater {
|
|
93
94
|
constructor(store, options, logger) {
|
|
94
95
|
this.store = store;
|
|
@@ -108,7 +109,7 @@ class CapacitorRehydrater {
|
|
|
108
109
|
const storeName = Object.keys(key)[0];
|
|
109
110
|
const storeSynchronizer = key[storeName];
|
|
110
111
|
let reviver = this.options.restoreDates ? dateReviver : undefined;
|
|
111
|
-
let deserialize =
|
|
112
|
+
let deserialize = noopDeserializer;
|
|
112
113
|
if (isSerializer(storeSynchronizer)) {
|
|
113
114
|
if (storeSynchronizer.reviver) {
|
|
114
115
|
reviver = storeSynchronizer.reviver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"o3r-mobile.mjs","sources":["../../src/capacitor/helpers.ts","../../src/capacitor/capacitor-target.service.ts","../../src/capacitor/storage/rehydrater.ts","../../src/capacitor/storage/rehydrater.module.ts","../../src/capacitor/storage/storage.ts","../../src/o3r-mobile.ts"],"sourcesContent":["import { Device } from '@capacitor/device';\n\n/**\n * Type for the 3 capacitor platforms\n */\nexport type CapacitorPlatforms = 'ios' | 'android' | 'web';\n\n\n/**\n * Returns the capacitor platform\n */\nexport async function getCapacitorPlatform(): Promise<CapacitorPlatforms> {\n const info = await Device.getInfo();\n return info.platform;\n}\n\n/**\n * Returns true if in a capacitor context (mobile app) or false for web\n */\nexport async function isCapacitorContext(): Promise<boolean> {\n const platform = await getCapacitorPlatform();\n return (platform === 'ios') || (platform === 'android');\n}\n\n/**\n * Returns the baseUrl that can be used depending on the platform\n */\nexport async function getBaseUrl(): Promise<string> {\n const platform = await getCapacitorPlatform();\n switch (platform) {\n case ('ios'): {\n return 'capacitor://localhost';\n }\n case ('android'): {\n return 'http://localhost';\n }\n default: {\n return window.location.href;\n }\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Browser } from '@capacitor/browser';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { isCapacitorContext } from './helpers';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CapacitorTargetService implements OnDestroy {\n\n private readonly subscriptions: Subscription[] = [];\n\n private async openInCapacitorBrowser(element: EventTarget | null, event: Event) {\n if (await isCapacitorContext() && element instanceof Element) {\n if (element.tagName === 'A') {\n const url = element.getAttribute('href');\n if (element.getAttribute('target') === '_blank' && url) {\n event.preventDefault();\n await Browser.open({url, presentationStyle: 'popover'});\n }\n } else {\n await this.openInCapacitorBrowser(element.parentElement, event);\n }\n }\n }\n\n /**\n * Method called for 'hijacking' the click event on <a> tags with target _blank attribute.\n * Instead of the default action, it will open the URL using the CapacitorJS Browser plugin.\n */\n public hijackClick(): void {\n if (!this.subscriptions.length) {\n this.subscriptions.push(fromEvent(document, 'click').subscribe(async (event) => {\n const element: EventTarget | null = event.target;\n await this.openInCapacitorBrowser(element, event);\n }));\n }\n }\n\n public ngOnDestroy() {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n}\n","import { Inject, Injectable, InjectionToken } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { dateReviver, isLocalStorageConfig, isSerializer, rehydrateAction, StorageSyncOptions } from '@o3r/store-sync';\nimport { LoggerService } from '@o3r/logger';\n\n/**\n * Injection token for the storage sync options\n */\nexport const STORAGE_SYNC_OPTIONS = new InjectionToken<Partial<StorageSyncOptions>>('STORAGE_SYNC_OPTIONS');\n\n@Injectable()\nexport class CapacitorRehydrater {\n private readonly options: StorageSyncOptions;\n constructor(\n private readonly store: Store<any>,\n @Inject(STORAGE_SYNC_OPTIONS) options: Partial<StorageSyncOptions>,\n private readonly logger: LoggerService\n ) {\n this.options = { keys: [], ...options };\n }\n\n /**\n * Dispatch an action to rehydrate the store with the data from the storage\n */\n public async rehydrate() {\n if (isLocalStorageConfig(this.options)) {\n this.logger.warn('A non-async storage is used, rehydration is not supported');\n return;\n }\n const storageCalls: Promise<Record<string, any> | undefined>[] = this.options.keys\n .map(async (key) => {\n const storeName = Object.keys(key)[0];\n const storeSynchronizer = (key as any)[storeName];\n let reviver = this.options.restoreDates ? dateReviver : undefined;\n let deserialize: (raw: string) => any = (raw: string) => raw;\n\n if (isSerializer(storeSynchronizer)) {\n if (storeSynchronizer.reviver) {\n reviver = storeSynchronizer.reviver;\n }\n if (storeSynchronizer.deserialize) {\n deserialize = storeSynchronizer.deserialize;\n }\n }\n\n const stateSlice = await this.options.storage!.getItem(\n this.options.storageKeySerializer\n ? this.options.storageKeySerializer(storeName)\n : storeName\n );\n if (stateSlice) {\n\n const isObjectRegex = /{|\\[/;\n let raw = stateSlice;\n\n if (stateSlice === 'null' || stateSlice === 'true' || stateSlice === 'false' || isObjectRegex.test(stateSlice.charAt(0))) {\n raw = JSON.parse(stateSlice, reviver);\n }\n\n return {\n [storeName]: deserialize(raw)\n };\n }\n });\n\n const result = await Promise.all(storageCalls);\n\n this.store.dispatch(\n rehydrateAction({\n payload: result.reduce(\n (acc: Record<string, any>, store) => ({...acc, ...store}),\n {}\n )\n })\n );\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { StoreModule } from '@ngrx/store';\nimport type { StorageSyncOptions } from '@o3r/store-sync';\nimport { LoggerModule } from '@o3r/logger';\nimport { CapacitorRehydrater, STORAGE_SYNC_OPTIONS } from './rehydrater';\n\n@NgModule({\n imports: [\n StoreModule,\n LoggerModule\n ],\n providers: [\n CapacitorRehydrater\n ]\n})\nexport class CapacitorRehydraterModule {\n public static forRoot(options: StorageSyncOptions): ModuleWithProviders<CapacitorRehydraterModule> {\n return {\n ngModule: CapacitorRehydraterModule,\n providers: [\n { provide: STORAGE_SYNC_OPTIONS , useValue: options }\n ]\n };\n }\n}\n","import { Preferences as CapacitorStorage } from '@capacitor/preferences';\nimport type { AsyncStorage } from '@o3r/store-sync';\n\n/**\n * Capacitor storage\n */\nexport class OtterCapacitorStorage implements AsyncStorage {\n /**\n * @inheritdoc\n */\n public removeItem(key: string): void {\n void CapacitorStorage.remove({ key });\n }\n\n /**\n * @inheritdoc\n */\n public setItem(key: string, value: string): void {\n void CapacitorStorage.set({ key, value });\n }\n\n /**\n * @inheritdoc\n */\n public async getItem(key: string): Promise<string | null> {\n const { value } = await CapacitorStorage.get({ key });\n return value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CapacitorStorage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"o3r-mobile.mjs","sources":["../../src/capacitor/helpers.ts","../../src/capacitor/capacitor-target.service.ts","../../src/capacitor/storage/rehydrater.ts","../../src/capacitor/storage/rehydrater.module.ts","../../src/capacitor/storage/storage.ts","../../src/o3r-mobile.ts"],"sourcesContent":["import {\n Device,\n} from '@capacitor/device';\n\n/**\n * Type for the 3 capacitor platforms\n */\nexport type CapacitorPlatforms = 'ios' | 'android' | 'web';\n\n/**\n * Returns the capacitor platform\n */\nexport async function getCapacitorPlatform(): Promise<CapacitorPlatforms> {\n const info = await Device.getInfo();\n return info.platform;\n}\n\n/**\n * Returns true if in a capacitor context (mobile app) or false for web\n */\nexport async function isCapacitorContext(): Promise<boolean> {\n const platform = await getCapacitorPlatform();\n return (platform === 'ios') || (platform === 'android');\n}\n\n/**\n * Returns the baseUrl that can be used depending on the platform\n */\nexport async function getBaseUrl(): Promise<string> {\n const platform = await getCapacitorPlatform();\n switch (platform) {\n case ('ios'): {\n return 'capacitor://localhost';\n }\n case ('android'): {\n return 'http://localhost';\n }\n default: {\n return window.location.href;\n }\n }\n}\n","import {\n Injectable,\n OnDestroy,\n} from '@angular/core';\nimport {\n Browser,\n} from '@capacitor/browser';\nimport {\n fromEvent,\n Subscription,\n} from 'rxjs';\nimport {\n isCapacitorContext,\n} from './helpers';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CapacitorTargetService implements OnDestroy {\n private readonly subscriptions: Subscription[] = [];\n\n private async openInCapacitorBrowser(element: EventTarget | null, event: Event) {\n if (await isCapacitorContext() && element instanceof Element) {\n if (element.tagName === 'A') {\n const url = element.getAttribute('href');\n if (element.getAttribute('target') === '_blank' && url) {\n event.preventDefault();\n await Browser.open({ url, presentationStyle: 'popover' });\n }\n } else {\n await this.openInCapacitorBrowser(element.parentElement, event);\n }\n }\n }\n\n /**\n * Method called for 'hijacking' the click event on <a> tags with target _blank attribute.\n * Instead of the default action, it will open the URL using the CapacitorJS Browser plugin.\n */\n public hijackClick(): void {\n if (this.subscriptions.length === 0) {\n this.subscriptions.push(fromEvent(document, 'click').subscribe(async (event) => {\n const element: EventTarget | null = event.target;\n await this.openInCapacitorBrowser(element, event);\n }));\n }\n }\n\n public ngOnDestroy() {\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\n }\n}\n","import {\n Inject,\n Injectable,\n InjectionToken,\n} from '@angular/core';\nimport {\n Store,\n} from '@ngrx/store';\nimport {\n LoggerService,\n} from '@o3r/logger';\nimport {\n dateReviver,\n isLocalStorageConfig,\n isSerializer,\n rehydrateAction,\n StorageSyncOptions,\n} from '@o3r/store-sync';\n\n/**\n * Injection token for the storage sync options\n */\nexport const STORAGE_SYNC_OPTIONS = new InjectionToken<Partial<StorageSyncOptions>>('STORAGE_SYNC_OPTIONS');\n\nconst noopDeserializer = (raw: string) => raw;\n\n@Injectable()\nexport class CapacitorRehydrater {\n private readonly options: StorageSyncOptions;\n constructor(\n private readonly store: Store<any>,\n @Inject(STORAGE_SYNC_OPTIONS) options: Partial<StorageSyncOptions>,\n private readonly logger: LoggerService\n ) {\n this.options = { keys: [], ...options };\n }\n\n /**\n * Dispatch an action to rehydrate the store with the data from the storage\n */\n public async rehydrate() {\n if (isLocalStorageConfig(this.options)) {\n this.logger.warn('A non-async storage is used, rehydration is not supported');\n return;\n }\n const storageCalls: Promise<Record<string, any> | undefined>[] = this.options.keys\n .map(async (key) => {\n const storeName = Object.keys(key)[0];\n const storeSynchronizer = (key as any)[storeName];\n let reviver = this.options.restoreDates ? dateReviver : undefined;\n let deserialize = noopDeserializer;\n\n if (isSerializer(storeSynchronizer)) {\n if (storeSynchronizer.reviver) {\n reviver = storeSynchronizer.reviver;\n }\n if (storeSynchronizer.deserialize) {\n deserialize = storeSynchronizer.deserialize;\n }\n }\n\n const stateSlice = await this.options.storage!.getItem(\n this.options.storageKeySerializer\n ? this.options.storageKeySerializer(storeName)\n : storeName\n );\n if (stateSlice) {\n const isObjectRegex = /{|\\[/;\n let raw = stateSlice;\n\n if (stateSlice === 'null' || stateSlice === 'true' || stateSlice === 'false' || isObjectRegex.test(stateSlice.charAt(0))) {\n raw = JSON.parse(stateSlice, reviver);\n }\n\n return {\n [storeName]: deserialize(raw)\n };\n }\n });\n\n const result = await Promise.all(storageCalls);\n\n this.store.dispatch(\n rehydrateAction({\n payload: result.reduce(\n (acc: Record<string, any>, store) => ({ ...acc, ...store }),\n {}\n )\n })\n );\n }\n}\n","import {\n ModuleWithProviders,\n NgModule,\n} from '@angular/core';\nimport {\n StoreModule,\n} from '@ngrx/store';\nimport {\n LoggerModule,\n} from '@o3r/logger';\nimport type {\n StorageSyncOptions,\n} from '@o3r/store-sync';\nimport {\n CapacitorRehydrater,\n STORAGE_SYNC_OPTIONS,\n} from './rehydrater';\n\n@NgModule({\n imports: [\n StoreModule,\n LoggerModule\n ],\n providers: [\n CapacitorRehydrater\n ]\n})\nexport class CapacitorRehydraterModule {\n public static forRoot(options: StorageSyncOptions): ModuleWithProviders<CapacitorRehydraterModule> {\n return {\n ngModule: CapacitorRehydraterModule,\n providers: [\n { provide: STORAGE_SYNC_OPTIONS, useValue: options }\n ]\n };\n }\n}\n","import {\n Preferences as CapacitorStorage,\n} from '@capacitor/preferences';\nimport type {\n AsyncStorage,\n} from '@o3r/store-sync';\n\n/**\n * Capacitor storage\n */\nexport class OtterCapacitorStorage implements AsyncStorage {\n /**\n * @inheritdoc\n */\n public removeItem(key: string): void {\n void CapacitorStorage.remove({ key });\n }\n\n /**\n * @inheritdoc\n */\n public setItem(key: string, value: string): void {\n void CapacitorStorage.set({ key, value });\n }\n\n /**\n * @inheritdoc\n */\n public async getItem(key: string): Promise<string | null> {\n const { value } = await CapacitorStorage.get({ key });\n return value;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["CapacitorStorage"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/mobile",
|
|
3
|
-
"version": "11.6.0-prerelease.
|
|
3
|
+
"version": "11.6.0-prerelease.8",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -43,10 +43,10 @@
|
|
|
43
43
|
"@capacitor/device": "^6.0.0",
|
|
44
44
|
"@capacitor/preferences": "^6.0.0",
|
|
45
45
|
"@ngrx/store": "~18.0.0",
|
|
46
|
-
"@o3r/core": "^11.6.0-prerelease.
|
|
47
|
-
"@o3r/logger": "^11.6.0-prerelease.
|
|
48
|
-
"@o3r/schematics": "^11.6.0-prerelease.
|
|
49
|
-
"@o3r/store-sync": "^11.6.0-prerelease.
|
|
46
|
+
"@o3r/core": "^11.6.0-prerelease.8",
|
|
47
|
+
"@o3r/logger": "^11.6.0-prerelease.8",
|
|
48
|
+
"@o3r/schematics": "^11.6.0-prerelease.8",
|
|
49
|
+
"@o3r/store-sync": "^11.6.0-prerelease.8",
|
|
50
50
|
"@schematics/angular": "~18.2.0",
|
|
51
51
|
"fast-deep-equal": "^3.1.3",
|
|
52
52
|
"rxjs": "^7.8.1"
|
package/pcloudy/pcloudy.api.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export declare class PCloudyApi {
|
|
|
13
13
|
constructor(logger: Logger, userName: string, apiKey: string, server?: string);
|
|
14
14
|
/**
|
|
15
15
|
* Perform POST call to the API - Cannot be used to upload a file
|
|
16
|
-
*
|
|
17
16
|
* @param endpoint
|
|
18
17
|
* @param body
|
|
19
18
|
* @private
|
|
@@ -22,21 +21,18 @@ export declare class PCloudyApi {
|
|
|
22
21
|
/**
|
|
23
22
|
* Authenticate using your account username and apiKey
|
|
24
23
|
* You can find them on your pCloudy account
|
|
25
|
-
*
|
|
26
24
|
* @param username
|
|
27
25
|
* @param apiKey
|
|
28
26
|
*/
|
|
29
27
|
authenticate(username: string, apiKey: string): Promise<string>;
|
|
30
28
|
/**
|
|
31
29
|
* Fetch the list of available devices to book for your automation or manual use
|
|
32
|
-
*
|
|
33
30
|
* @param devicePlatform
|
|
34
31
|
* @param availabilityDuration
|
|
35
32
|
*/
|
|
36
33
|
getDeviceList(devicePlatform: 'android' | 'ios', availabilityDuration?: number): Promise<Device[]>;
|
|
37
34
|
/**
|
|
38
35
|
* Book a device for manual testing.
|
|
39
|
-
*
|
|
40
36
|
* @param device
|
|
41
37
|
* @param bookDuration
|
|
42
38
|
* @returns the reservation id that can be used to relinquish or to retrieve the url to access the device
|
|
@@ -44,20 +40,17 @@ export declare class PCloudyApi {
|
|
|
44
40
|
bookDevice(device: Device, bookDuration?: number): Promise<number>;
|
|
45
41
|
/**
|
|
46
42
|
* Install an application previously uploaded on pCloudy {@link uploadApp} on a device booked for manual testing
|
|
47
|
-
*
|
|
48
43
|
* @param rid Reservation ID returned by the {@link bookDevice} method
|
|
49
44
|
* @param appFileName Name (with extension) under which your application has been uploaded
|
|
50
45
|
*/
|
|
51
46
|
installAndLaunchApp(rid: number, appFileName: string): Promise<string>;
|
|
52
47
|
/**
|
|
53
48
|
* Retrieve the url to perform manual testing on a pCloudy device
|
|
54
|
-
*
|
|
55
49
|
* @param rid Reservation id returned by {@link bookDevice}
|
|
56
50
|
*/
|
|
57
51
|
getDevicePageUrl(rid: number): Promise<string>;
|
|
58
52
|
/**
|
|
59
53
|
* Retrieve the list of applications uploaded under your username on pCloudy
|
|
60
|
-
*
|
|
61
54
|
* @param devicePlatform android or ios - used to filter our irrelevant applications
|
|
62
55
|
* @param limit maximum application returned
|
|
63
56
|
*/
|
|
@@ -65,28 +58,24 @@ export declare class PCloudyApi {
|
|
|
65
58
|
/**
|
|
66
59
|
* Upload an application on pCloudy under its filename
|
|
67
60
|
* If an application is already on pCloudy, will save it under a different name
|
|
68
|
-
*
|
|
69
61
|
* @param filePath
|
|
70
62
|
* @returns file name in the cloud
|
|
71
63
|
*/
|
|
72
64
|
uploadApp(filePath: string): Promise<string>;
|
|
73
65
|
/**
|
|
74
66
|
* Delete an application from pCloudy
|
|
75
|
-
*
|
|
76
67
|
* @param filename
|
|
77
68
|
*/
|
|
78
69
|
deleteApp(filename: string): Promise<void>;
|
|
79
70
|
/**
|
|
80
71
|
* Sign your iOS application under pCloudy signing mechanism
|
|
81
72
|
* This step is mandatory to install your .ipa files on pCloudy device
|
|
82
|
-
*
|
|
83
73
|
* @param filename
|
|
84
74
|
* @returns the token to follow the process
|
|
85
75
|
*/
|
|
86
76
|
resignIosApp(filename: string): Promise<string>;
|
|
87
77
|
/**
|
|
88
78
|
* Check the progress of the re-signing performed in {@link resignIosApp}
|
|
89
|
-
*
|
|
90
79
|
* @param filename
|
|
91
80
|
* @param resignToken
|
|
92
81
|
*/
|
|
@@ -94,7 +83,6 @@ export declare class PCloudyApi {
|
|
|
94
83
|
/**
|
|
95
84
|
* Download the pCloudy re-signed app to the pCloudy cloud.
|
|
96
85
|
* Make it available for installation on pCloudy device
|
|
97
|
-
*
|
|
98
86
|
* @param filename of the original app
|
|
99
87
|
* @param resignToken returned by {@link resignIosApp}
|
|
100
88
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pcloudy.api.d.ts","sourceRoot":"","sources":["../../pcloudy/pcloudy.api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pcloudy.api.d.ts","sourceRoot":"","sources":["../../pcloudy/pcloudy.api.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,EACP,MAAM,EAEP,MAAM,sBAAsB,CAAC;AAE9B;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,SAA+B;IAMnG;;;;;OAKG;YACW,iBAAiB;IAmB/B;;;;;OAKG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB5E;;;;OAIG;IACU,aAAa,CAAC,cAAc,EAAE,SAAS,GAAG,KAAK,EAAE,oBAAoB,SAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU3G;;;;;OAKG;IACU,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ3E;;;;OAIG;IACU,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASnF;;;OAGG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO3D;;;;OAIG;IACU,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAS7E;;;;;OAKG;IACU,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BzD;;;OAGG;IACU,SAAS,CAAC,QAAQ,EAAE,MAAM;IAQvC;;;;;OAKG;IACU,YAAY,CAAC,QAAQ,EAAE,MAAM;IAQ1C;;;;OAIG;IACU,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAS1E;;;;;OAKG;IACU,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAQvE"}
|
package/pcloudy/pcloudy.api.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
3
|
-
/* eslint-disable camelcase */
|
|
4
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
3
|
exports.PCloudyApi = void 0;
|
|
6
4
|
const tslib_1 = require("tslib");
|
|
@@ -21,7 +19,6 @@ class PCloudyApi {
|
|
|
21
19
|
}
|
|
22
20
|
/**
|
|
23
21
|
* Perform POST call to the API - Cannot be used to upload a file
|
|
24
|
-
*
|
|
25
22
|
* @param endpoint
|
|
26
23
|
* @param body
|
|
27
24
|
* @private
|
|
@@ -31,7 +28,7 @@ class PCloudyApi {
|
|
|
31
28
|
const token = yield this.token$;
|
|
32
29
|
this.logger.debug('Request to ' + this.server + endpoint, body);
|
|
33
30
|
if (!token) {
|
|
34
|
-
throw Error('No token of authentication detected, please start with authentication');
|
|
31
|
+
throw new Error('No token of authentication detected, please start with authentication');
|
|
35
32
|
}
|
|
36
33
|
const { result } = yield (yield (0, node_fetch_1.default)(`${this.server}${endpoint}`, {
|
|
37
34
|
method: 'post',
|
|
@@ -39,7 +36,7 @@ class PCloudyApi {
|
|
|
39
36
|
body: JSON.stringify(Object.assign(Object.assign({}, body), { token }))
|
|
40
37
|
})).json();
|
|
41
38
|
if (result.code !== 200) {
|
|
42
|
-
throw Error(`Call to ${this.server}${endpoint} failed with error code ${(result === null || result === void 0 ? void 0 : result.error) || 'undefined'}`);
|
|
39
|
+
throw new Error(`Call to ${this.server}${endpoint} failed with error code ${(result === null || result === void 0 ? void 0 : result.error) || 'undefined'}`);
|
|
43
40
|
}
|
|
44
41
|
this.logger.debug(`Successful response received from ${this.server}${endpoint}`, result);
|
|
45
42
|
return result;
|
|
@@ -48,7 +45,6 @@ class PCloudyApi {
|
|
|
48
45
|
/**
|
|
49
46
|
* Authenticate using your account username and apiKey
|
|
50
47
|
* You can find them on your pCloudy account
|
|
51
|
-
*
|
|
52
48
|
* @param username
|
|
53
49
|
* @param apiKey
|
|
54
50
|
*/
|
|
@@ -57,7 +53,6 @@ class PCloudyApi {
|
|
|
57
53
|
this.logger.debug(`Request authentication for ${username}`);
|
|
58
54
|
const { result } = yield (yield (0, node_fetch_1.default)(`${this.server}/api/access`, {
|
|
59
55
|
headers: {
|
|
60
|
-
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
61
56
|
Authorization: 'Basic ' + Buffer.from(username + ':' + apiKey).toString('base64')
|
|
62
57
|
}
|
|
63
58
|
})).json();
|
|
@@ -66,13 +61,12 @@ class PCloudyApi {
|
|
|
66
61
|
return result.token;
|
|
67
62
|
}
|
|
68
63
|
else {
|
|
69
|
-
throw Error(`Invalid response for ${this.server}/authentication - code ${result === null || result === void 0 ? void 0 : result.code}`);
|
|
64
|
+
throw new Error(`Invalid response for ${this.server}/authentication - code ${result === null || result === void 0 ? void 0 : result.code}`);
|
|
70
65
|
}
|
|
71
66
|
});
|
|
72
67
|
}
|
|
73
68
|
/**
|
|
74
69
|
* Fetch the list of available devices to book for your automation or manual use
|
|
75
|
-
*
|
|
76
70
|
* @param devicePlatform
|
|
77
71
|
* @param availabilityDuration
|
|
78
72
|
*/
|
|
@@ -89,7 +83,6 @@ class PCloudyApi {
|
|
|
89
83
|
// Manual testing
|
|
90
84
|
/**
|
|
91
85
|
* Book a device for manual testing.
|
|
92
|
-
*
|
|
93
86
|
* @param device
|
|
94
87
|
* @param bookDuration
|
|
95
88
|
* @returns the reservation id that can be used to relinquish or to retrieve the url to access the device
|
|
@@ -105,7 +98,6 @@ class PCloudyApi {
|
|
|
105
98
|
}
|
|
106
99
|
/**
|
|
107
100
|
* Install an application previously uploaded on pCloudy {@link uploadApp} on a device booked for manual testing
|
|
108
|
-
*
|
|
109
101
|
* @param rid Reservation ID returned by the {@link bookDevice} method
|
|
110
102
|
* @param appFileName Name (with extension) under which your application has been uploaded
|
|
111
103
|
*/
|
|
@@ -120,11 +112,11 @@ class PCloudyApi {
|
|
|
120
112
|
}
|
|
121
113
|
/**
|
|
122
114
|
* Retrieve the url to perform manual testing on a pCloudy device
|
|
123
|
-
*
|
|
124
115
|
* @param rid Reservation id returned by {@link bookDevice}
|
|
125
116
|
*/
|
|
126
117
|
getDevicePageUrl(rid) {
|
|
127
118
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by PCloudy
|
|
128
120
|
const result = yield this.postCallToPCloudy('/api/get_device_url', { rid });
|
|
129
121
|
return result.URL;
|
|
130
122
|
});
|
|
@@ -132,7 +124,6 @@ class PCloudyApi {
|
|
|
132
124
|
// Apps management
|
|
133
125
|
/**
|
|
134
126
|
* Retrieve the list of applications uploaded under your username on pCloudy
|
|
135
|
-
*
|
|
136
127
|
* @param devicePlatform android or ios - used to filter our irrelevant applications
|
|
137
128
|
* @param limit maximum application returned
|
|
138
129
|
*/
|
|
@@ -148,7 +139,6 @@ class PCloudyApi {
|
|
|
148
139
|
/**
|
|
149
140
|
* Upload an application on pCloudy under its filename
|
|
150
141
|
* If an application is already on pCloudy, will save it under a different name
|
|
151
|
-
*
|
|
152
142
|
* @param filePath
|
|
153
143
|
* @returns file name in the cloud
|
|
154
144
|
*/
|
|
@@ -158,7 +148,7 @@ class PCloudyApi {
|
|
|
158
148
|
const token = yield this.token$;
|
|
159
149
|
const formData = new FormData();
|
|
160
150
|
if (!fs.existsSync(filePath)) {
|
|
161
|
-
throw Error(`${filePath} does not exist`);
|
|
151
|
+
throw new Error(`${filePath} does not exist`);
|
|
162
152
|
}
|
|
163
153
|
Object.entries({
|
|
164
154
|
token,
|
|
@@ -172,7 +162,7 @@ class PCloudyApi {
|
|
|
172
162
|
body: formData
|
|
173
163
|
}))) === null || _a === void 0 ? void 0 : _a.json());
|
|
174
164
|
if (result === null || result === void 0 ? void 0 : result.error) {
|
|
175
|
-
throw Error(`Failed to upload the file - ${result.error}`);
|
|
165
|
+
throw new Error(`Failed to upload the file - ${result.error}`);
|
|
176
166
|
}
|
|
177
167
|
this.logger.debug(`Successful response receive from ${this.server}/api/upload_file`, result);
|
|
178
168
|
return result === null || result === void 0 ? void 0 : result.file;
|
|
@@ -180,7 +170,6 @@ class PCloudyApi {
|
|
|
180
170
|
}
|
|
181
171
|
/**
|
|
182
172
|
* Delete an application from pCloudy
|
|
183
|
-
*
|
|
184
173
|
* @param filename
|
|
185
174
|
*/
|
|
186
175
|
deleteApp(filename) {
|
|
@@ -195,12 +184,12 @@ class PCloudyApi {
|
|
|
195
184
|
/**
|
|
196
185
|
* Sign your iOS application under pCloudy signing mechanism
|
|
197
186
|
* This step is mandatory to install your .ipa files on pCloudy device
|
|
198
|
-
*
|
|
199
187
|
* @param filename
|
|
200
188
|
* @returns the token to follow the process
|
|
201
189
|
*/
|
|
202
190
|
resignIosApp(filename) {
|
|
203
191
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
192
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by PCloudy
|
|
204
193
|
const result = yield this.postCallToPCloudy('/api/resign/initiate', {
|
|
205
194
|
filename
|
|
206
195
|
});
|
|
@@ -209,12 +198,12 @@ class PCloudyApi {
|
|
|
209
198
|
}
|
|
210
199
|
/**
|
|
211
200
|
* Check the progress of the re-signing performed in {@link resignIosApp}
|
|
212
|
-
*
|
|
213
201
|
* @param filename
|
|
214
202
|
* @param resignToken
|
|
215
203
|
*/
|
|
216
204
|
getAppResigningProgress(filename, resignToken) {
|
|
217
205
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
206
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by PCloudy
|
|
218
207
|
const result = yield this.postCallToPCloudy('/api/resign/progress', {
|
|
219
208
|
filename,
|
|
220
209
|
resign_token: resignToken
|
|
@@ -225,12 +214,12 @@ class PCloudyApi {
|
|
|
225
214
|
/**
|
|
226
215
|
* Download the pCloudy re-signed app to the pCloudy cloud.
|
|
227
216
|
* Make it available for installation on pCloudy device
|
|
228
|
-
*
|
|
229
217
|
* @param filename of the original app
|
|
230
218
|
* @param resignToken returned by {@link resignIosApp}
|
|
231
219
|
*/
|
|
232
220
|
downloadResignedApp(filename, resignToken) {
|
|
233
221
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
222
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention -- naming convention imposed by PCloudy
|
|
234
223
|
const result = yield this.postCallToPCloudy('/api/resign/download', {
|
|
235
224
|
filename,
|
|
236
225
|
resign_token: resignToken
|