@o3r/mobile 14.0.0-prerelease.11 → 14.0.0-prerelease.13

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.
@@ -5,7 +5,7 @@ import { Browser } from '@capacitor/browser';
5
5
  import { fromEvent } from 'rxjs';
6
6
  import { Device } from '@capacitor/device';
7
7
  import { Store, StoreModule } from '@ngrx/store';
8
- import { LoggerService, LoggerModule } from '@o3r/logger';
8
+ import { LoggerService, provideLogger } from '@o3r/logger';
9
9
  import { isLocalStorageConfig, dateReviver, isSerializer, rehydrateAction } from '@o3r/store-sync';
10
10
  import { Preferences } from '@capacitor/preferences';
11
11
 
@@ -148,24 +148,22 @@ class CapacitorRehydraterModule {
148
148
  return {
149
149
  ngModule: CapacitorRehydraterModule,
150
150
  providers: [
151
+ provideLogger(),
151
152
  { provide: STORAGE_SYNC_OPTIONS, useValue: options }
152
153
  ]
153
154
  };
154
155
  }
155
156
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: CapacitorRehydraterModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
156
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: CapacitorRehydraterModule, imports: [StoreModule,
157
- LoggerModule] }); }
157
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: CapacitorRehydraterModule, imports: [StoreModule] }); }
158
158
  /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: CapacitorRehydraterModule, providers: [
159
159
  CapacitorRehydrater
160
- ], imports: [StoreModule,
161
- LoggerModule] }); }
160
+ ], imports: [StoreModule] }); }
162
161
  }
163
162
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: CapacitorRehydraterModule, decorators: [{
164
163
  type: NgModule,
165
164
  args: [{
166
165
  imports: [
167
- StoreModule,
168
- LoggerModule
166
+ StoreModule
169
167
  ],
170
168
  providers: [
171
169
  CapacitorRehydrater
@@ -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 {\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 DestroyRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n Browser,\n} from '@capacitor/browser';\nimport {\n fromEvent,\n} from 'rxjs';\nimport {\n isCapacitorContext,\n} from './helpers';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CapacitorTargetService {\n private readonly destroyRef = inject(DestroyRef);\n private hijackDone = false;\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.hijackDone) {\n fromEvent(document, 'click').pipe(takeUntilDestroyed(this.destroyRef)).subscribe(async (event) => {\n const element: EventTarget | null = event.target;\n await this.openInCapacitorBrowser(element, event);\n });\n this.hijackDone = true;\n }\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 store = inject<Store<any>>(Store);\n private readonly logger = inject(LoggerService);\n\n private readonly options: StorageSyncOptions;\n constructor() {\n const options = inject<Partial<StorageSyncOptions>>(STORAGE_SYNC_OPTIONS);\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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"}
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 DestroyRef,\n inject,\n Injectable,\n} from '@angular/core';\nimport {\n takeUntilDestroyed,\n} from '@angular/core/rxjs-interop';\nimport {\n Browser,\n} from '@capacitor/browser';\nimport {\n fromEvent,\n} from 'rxjs';\nimport {\n isCapacitorContext,\n} from './helpers';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CapacitorTargetService {\n private readonly destroyRef = inject(DestroyRef);\n private hijackDone = false;\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.hijackDone) {\n fromEvent(document, 'click').pipe(takeUntilDestroyed(this.destroyRef)).subscribe(async (event) => {\n const element: EventTarget | null = event.target;\n await this.openInCapacitorBrowser(element, event);\n });\n this.hijackDone = true;\n }\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 store = inject<Store<any>>(Store);\n private readonly logger = inject(LoggerService);\n\n private readonly options: StorageSyncOptions;\n constructor() {\n const options = inject<Partial<StorageSyncOptions>>(STORAGE_SYNC_OPTIONS);\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 provideLogger,\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 ],\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 provideLogger(),\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": "14.0.0-prerelease.11",
3
+ "version": "14.0.0-prerelease.13",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -26,7 +26,7 @@
26
26
  "otter-module"
27
27
  ],
28
28
  "dependencies": {
29
- "@o3r/schematics": "~14.0.0-prerelease.11",
29
+ "@o3r/schematics": "~14.0.0-prerelease.13",
30
30
  "commander": "^14.0.0",
31
31
  "form-data": "^4.0.0",
32
32
  "node-fetch": "^3.0.0",
@@ -42,10 +42,10 @@
42
42
  "@capacitor/device": "^8.0.0",
43
43
  "@capacitor/preferences": "^8.0.0",
44
44
  "@ngrx/store": "^21.0.0",
45
- "@o3r/core": "~14.0.0-prerelease.11",
46
- "@o3r/logger": "~14.0.0-prerelease.11",
47
- "@o3r/schematics": "~14.0.0-prerelease.11",
48
- "@o3r/store-sync": "~14.0.0-prerelease.11",
45
+ "@o3r/core": "~14.0.0-prerelease.13",
46
+ "@o3r/logger": "~14.0.0-prerelease.13",
47
+ "@o3r/schematics": "~14.0.0-prerelease.13",
48
+ "@o3r/store-sync": "~14.0.0-prerelease.13",
49
49
  "@schematics/angular": "^21.0.0",
50
50
  "fast-deep-equal": "^3.1.3",
51
51
  "rxjs": "^7.8.1",
@@ -2,7 +2,6 @@ import * as i0 from '@angular/core';
2
2
  import { InjectionToken, ModuleWithProviders } from '@angular/core';
3
3
  import { StorageSyncOptions, AsyncStorage } from '@o3r/store-sync';
4
4
  import * as i1 from '@ngrx/store';
5
- import * as i2 from '@o3r/logger';
6
5
 
7
6
  declare class CapacitorTargetService {
8
7
  private readonly destroyRef;
@@ -54,7 +53,7 @@ declare class CapacitorRehydrater {
54
53
  declare class CapacitorRehydraterModule {
55
54
  static forRoot(options: StorageSyncOptions): ModuleWithProviders<CapacitorRehydraterModule>;
56
55
  static ɵfac: i0.ɵɵFactoryDeclaration<CapacitorRehydraterModule, never>;
57
- static ɵmod: i0.ɵɵNgModuleDeclaration<CapacitorRehydraterModule, never, [typeof i1.StoreModule, typeof i2.LoggerModule], never>;
56
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CapacitorRehydraterModule, never, [typeof i1.StoreModule], never>;
58
57
  static ɵinj: i0.ɵɵInjectorDeclaration<CapacitorRehydraterModule>;
59
58
  }
60
59
 
@@ -1 +1 @@
1
- {"version":3,"file":"o3r-mobile.d.ts","sources":["../../src/capacitor/capacitor-target-service.ts","../../src/capacitor/helpers.ts","../../src/capacitor/storage/rehydrater.ts","../../src/capacitor/storage/rehydrater-module.ts","../../src/capacitor/storage/storage.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":";;;;;;AAkBA,cAAA,sBAAA;AAIE;;;AAiBA;;;AAGG;AACI;;;AASR;;AChDD;;AAEG;AACG,KAAA,kBAAA;AAEN;;AAEG;AACH,iBAAA,oBAAA,IAAA,OAAA,CAAA,kBAAA;AAKA;;AAEG;AACH,iBAAA,kBAAA,IAAA,OAAA;AAKA;;AAEG;AACH,iBAAA,UAAA,IAAA,OAAA;;ACTA;;AAEG;AACH,cAAA,oBAAA,EAAA,cAAA,CAAA,OAAA,CAAA,kBAAA;AAIA,cAAA,mBAAA;AAEE;AACA;AAEA;;AAOA;;AAEG;;;;AAoDJ;;AC1ED,cAAA,yBAAA;;;;;AAkBC;;AC7BD;;AAEG;AACH,cAAA,qBAAA,YAAA,YAAA;AACE;;AAEG;AACI;AAIP;;AAEG;;AAKH;;AAEG;;AAKJ;;;;"}
1
+ {"version":3,"file":"o3r-mobile.d.ts","sources":["../../src/capacitor/capacitor-target-service.ts","../../src/capacitor/helpers.ts","../../src/capacitor/storage/rehydrater.ts","../../src/capacitor/storage/rehydrater-module.ts","../../src/capacitor/storage/storage.ts"],"sourcesContent":[null,null,null,null,null],"names":[],"mappings":";;;;;AAkBA,cAAA,sBAAA;AAIE;;;AAiBA;;;AAGG;AACI;;;AASR;;AChDD;;AAEG;AACG,KAAA,kBAAA;AAEN;;AAEG;AACH,iBAAA,oBAAA,IAAA,OAAA,CAAA,kBAAA;AAKA;;AAEG;AACH,iBAAA,kBAAA,IAAA,OAAA;AAKA;;AAEG;AACH,iBAAA,UAAA,IAAA,OAAA;;ACTA;;AAEG;AACH,cAAA,oBAAA,EAAA,cAAA,CAAA,OAAA,CAAA,kBAAA;AAIA,cAAA,mBAAA;AAEE;AACA;AAEA;;AAOA;;AAEG;;;;AAoDJ;;AC1ED,cAAA,yBAAA;;;;;AAkBC;;AC7BD;;AAEG;AACH,cAAA,qBAAA,YAAA,YAAA;AACE;;AAEG;AACI;AAIP;;AAEG;;AAKH;;AAEG;;AAKJ;;;;"}