@esfaenza/extensions 13.1.4 → 13.1.7
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/esm2020/lib/models/ExtensionsModuleConfig.mjs +1 -1
- package/esm2020/lib/models/InboundMessageTypes.mjs +7 -0
- package/esm2020/lib/models/InterComMessage.mjs +14 -0
- package/esm2020/lib/modules/extensions.full.module.mjs +6 -13
- package/esm2020/lib/services/extensions.dates.service.mjs +2 -2
- package/esm2020/lib/services/extensions.intercom.service.mjs +53 -0
- package/esm2020/public-api.mjs +5 -4
- package/fesm2015/esfaenza-extensions.mjs +57 -222
- package/fesm2015/esfaenza-extensions.mjs.map +1 -1
- package/fesm2020/esfaenza-extensions.mjs +57 -220
- package/fesm2020/esfaenza-extensions.mjs.map +1 -1
- package/lib/models/ExtensionsModuleConfig.d.ts +0 -11
- package/lib/models/InboundMessageTypes.d.ts +5 -0
- package/lib/models/InterComMessage.d.ts +12 -0
- package/lib/modules/extensions.full.module.d.ts +2 -2
- package/lib/services/extensions.intercom.service.d.ts +28 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -3
- package/esm2020/lib/models/providers/base/BaseStorageProvider.mjs +0 -25
- package/esm2020/lib/models/providers/implementation/DefaultStorageProvider.mjs +0 -79
- package/esm2020/lib/models/session/base/BaseSessionRetriever.mjs +0 -6
- package/esm2020/lib/models/session/implementation/DefaultSessionRetriever.mjs +0 -28
- package/esm2020/lib/services/extensions.storage.service.mjs +0 -105
- package/lib/models/providers/base/BaseStorageProvider.d.ts +0 -65
- package/lib/models/providers/implementation/DefaultStorageProvider.d.ts +0 -23
- package/lib/models/session/base/BaseSessionRetriever.d.ts +0 -11
- package/lib/models/session/implementation/DefaultSessionRetriever.d.ts +0 -21
- package/lib/services/extensions.storage.service.d.ts +0 -61
|
@@ -3,8 +3,7 @@ import { InjectionToken, NgModule, Injectable, Optional, Inject } from '@angular
|
|
|
3
3
|
import swal from 'sweetalert2';
|
|
4
4
|
import * as i1 from 'ngx-toastr';
|
|
5
5
|
import { Deserialize } from 'cerialize';
|
|
6
|
-
import {
|
|
7
|
-
import { of } from 'rxjs';
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
9
|
* Token che identifica il locale da utilizzare per questa libreria, sono supportati i locali 'it-IT' ed 'en-US'
|
|
@@ -704,7 +703,7 @@ class DateService {
|
|
|
704
703
|
tryThis = toCall(date, this.cfg.smallDate);
|
|
705
704
|
else if (length == this.cfg.fulldateNoSS.length)
|
|
706
705
|
tryThis = toCall(date, this.cfg.fulldateNoSS);
|
|
707
|
-
if (tryThis.isValid())
|
|
706
|
+
if (tryThis && tryThis.isValid())
|
|
708
707
|
return tryThis;
|
|
709
708
|
// Se niente funziona, null.
|
|
710
709
|
// Ricondurre l'Input ad una data non è possibile.
|
|
@@ -1768,235 +1767,66 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
1768
1767
|
type: Injectable
|
|
1769
1768
|
}] });
|
|
1770
1769
|
|
|
1771
|
-
/**
|
|
1772
|
-
|
|
1773
|
-
*/
|
|
1774
|
-
class BaseSessionRetriever {
|
|
1775
|
-
}
|
|
1776
|
-
|
|
1777
|
-
/**
|
|
1778
|
-
* Classe che gestisce la scrittura delle informazioni nello store locale.
|
|
1779
|
-
* Questo store locale potrebbe essere il localStorage (implementazione di default data dal **DefaultStorageProvider**),
|
|
1780
|
-
* oppure un'implementazione custom facente capo a un DB esterno.
|
|
1781
|
-
*
|
|
1782
|
-
* In questo ultimo caso però sarà necessario implementarsi un proprio **BaseSessionRetriever**
|
|
1783
|
-
* che generi una chiave univoca di sessione su cui tutte le operazioni di questa classe saranno eseguite
|
|
1784
|
-
*/
|
|
1785
|
-
class BaseStorageProvider {
|
|
1786
|
-
/** @ignore Costruttore */
|
|
1787
|
-
constructor(session) {
|
|
1788
|
-
this.session = session;
|
|
1789
|
-
}
|
|
1770
|
+
/** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
|
|
1771
|
+
class InterComMessage {
|
|
1790
1772
|
/**
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1773
|
+
* Costruttore
|
|
1774
|
+
*
|
|
1775
|
+
* @param type Tipo di messaggio
|
|
1776
|
+
* @param message Contenuto del messaggio
|
|
1777
|
+
*/
|
|
1778
|
+
constructor(type, message) {
|
|
1779
|
+
this.type = type;
|
|
1780
|
+
this.message = message;
|
|
1799
1781
|
}
|
|
1800
1782
|
}
|
|
1801
1783
|
|
|
1802
1784
|
// Angular
|
|
1803
|
-
/**
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
*/
|
|
1811
|
-
class StorageService {
|
|
1812
|
-
/**
|
|
1813
|
-
* Costruttore
|
|
1814
|
-
*
|
|
1815
|
-
* @ignore
|
|
1816
|
-
*/
|
|
1817
|
-
constructor(APPSEARCH_PREFIX, _session, _storage) {
|
|
1818
|
-
this.APPSEARCH_PREFIX = APPSEARCH_PREFIX;
|
|
1819
|
-
this._session = _session;
|
|
1820
|
-
this._storage = _storage;
|
|
1785
|
+
/** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
|
|
1786
|
+
class InterComService {
|
|
1787
|
+
constructor() {
|
|
1788
|
+
/** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
|
|
1789
|
+
this.outbounds = {};
|
|
1790
|
+
/** Messaggi in entrata, unico per applicazione principale */
|
|
1791
|
+
this.inbounds = new Subject();
|
|
1821
1792
|
}
|
|
1822
1793
|
/**
|
|
1823
|
-
*
|
|
1824
|
-
* salvato, in modo che quando viene recuperato il sistema non pensi che sia un oggetto vuoto ma che sappia che gli oggetti son stati ripuliti per risparmiare spazio
|
|
1794
|
+
* Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
|
|
1825
1795
|
*
|
|
1826
|
-
* @param {
|
|
1827
|
-
* @param {
|
|
1796
|
+
* @param {any} messageType Tipologia di messaggio. Sarà di tipo **InboundMessageTypes** per tutti i messaggi inbound, dinamico per tutti i mesaggi outbound (il tipo dipenderà dagli enum dei messaggi dei moduli esterni)
|
|
1797
|
+
* @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
|
|
1798
|
+
* @param {string} recipient Destinatario del messaggio. Per i messaggi inbound dev'essere lasciato vuoto, per i messaggi outbound sarà valorizzato alla chiave del modulo a cui si vuole inviare il messaggio
|
|
1828
1799
|
*/
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
//Se
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1800
|
+
send(messageType, message, recipient) {
|
|
1801
|
+
let msg = new InterComMessage(messageType, message);
|
|
1802
|
+
// Se non c'è un recipient significa che è un modulo esterno che invia messaggi al modulo main (quindi messaggio in entrata - inbound)
|
|
1803
|
+
// Altrimenti significa che è il modulo main ad inviare messaggi ai moduli esterni (messaggio in uscita - outbound)
|
|
1804
|
+
if (!recipient) {
|
|
1805
|
+
this.inbounds.next(msg);
|
|
1806
|
+
}
|
|
1807
|
+
else {
|
|
1808
|
+
if (!this.outbounds[recipient])
|
|
1809
|
+
console.warn("@esfaenza/extensions - InterComService: Impossibile inviare il messaggio al recipient " + recipient + " assicurarsi che il modulo sia caricato e che effettui la chiamata al metodo 'regisster'");
|
|
1810
|
+
else
|
|
1811
|
+
this.outbounds[recipient].next(msg);
|
|
1837
1812
|
}
|
|
1838
|
-
else
|
|
1839
|
-
finalItem = item;
|
|
1840
|
-
return this._storage.setItem(storeName, finalItem).pipe(first(), tap(res => {
|
|
1841
|
-
if (res == false)
|
|
1842
|
-
console.error("Impossibile effettuare il salvataggio dell'oggetto all'interno dello Storage Locale per la chiave " + storeName);
|
|
1843
|
-
}));
|
|
1844
|
-
}
|
|
1845
|
-
/**
|
|
1846
|
-
* Recupera un oggetto dallo Storage Locale
|
|
1847
|
-
*
|
|
1848
|
-
* @param {string} storeName Chiave del localStorage da cui recuperare l'oggetto
|
|
1849
|
-
*
|
|
1850
|
-
* @returns {any} Oggetto recuperato e deserializzato
|
|
1851
|
-
*/
|
|
1852
|
-
getItem(storeName) {
|
|
1853
|
-
return this._storage.getItem(storeName).pipe(first(), tap(res => {
|
|
1854
|
-
if (res == null)
|
|
1855
|
-
console.warn("Impossibile ottenere l'oggetto salvato con chiave " + storeName);
|
|
1856
|
-
}));
|
|
1857
|
-
}
|
|
1858
|
-
/**
|
|
1859
|
-
* Ripulisce lo Storage Locale
|
|
1860
|
-
*
|
|
1861
|
-
* @param {string} storeName Chiave del localStorage da ripulire
|
|
1862
|
-
*/
|
|
1863
|
-
removeItem(storeName) {
|
|
1864
|
-
return this._storage.removeItem(storeName).pipe(first(), tap(res => {
|
|
1865
|
-
if (res == false)
|
|
1866
|
-
console.warn("Impossibile rimuovere l'oggetto salvato con chiave " + storeName);
|
|
1867
|
-
}));
|
|
1868
|
-
}
|
|
1869
|
-
/**
|
|
1870
|
-
* Ripulisce lo Storage Locale di ogni cosa salvata
|
|
1871
|
-
*
|
|
1872
|
-
* @param {string} storeName Chiave del localStorage da ripulire
|
|
1873
|
-
*/
|
|
1874
|
-
clear() {
|
|
1875
|
-
return this._storage.clear().pipe(first(), tap(res => {
|
|
1876
|
-
if (res == false)
|
|
1877
|
-
console.warn("Impossibile ripulire lo Storage Locale");
|
|
1878
|
-
}));
|
|
1879
|
-
}
|
|
1880
|
-
/**
|
|
1881
|
-
* Restituisce tutte le chiavi-valore associate alla sessione corrente
|
|
1882
|
-
*
|
|
1883
|
-
* @returns {Observable<{ [index: string]: string; }>} Risultato della query
|
|
1884
|
-
*/
|
|
1885
|
-
getAll() {
|
|
1886
|
-
return this._storage.getAll().pipe(first());
|
|
1887
1813
|
}
|
|
1888
|
-
}
|
|
1889
|
-
StorageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StorageService, deps: [{ token: APPSEARCH_PREFIX, optional: true }, { token: BaseSessionRetriever }, { token: BaseStorageProvider }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1890
|
-
StorageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StorageService });
|
|
1891
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: StorageService, decorators: [{
|
|
1892
|
-
type: Injectable
|
|
1893
|
-
}], ctorParameters: function () {
|
|
1894
|
-
return [{ type: undefined, decorators: [{
|
|
1895
|
-
type: Optional
|
|
1896
|
-
}, {
|
|
1897
|
-
type: Inject,
|
|
1898
|
-
args: [APPSEARCH_PREFIX]
|
|
1899
|
-
}] }, { type: BaseSessionRetriever }, { type: BaseStorageProvider }];
|
|
1900
|
-
} });
|
|
1901
|
-
|
|
1902
|
-
/**
|
|
1903
|
-
* Implementazione di default per la classe **BaseSessionRetriever**
|
|
1904
|
-
*/
|
|
1905
|
-
class DefaultSessionRetriever extends BaseSessionRetriever {
|
|
1906
|
-
/**
|
|
1907
|
-
* Costruttore
|
|
1908
|
-
*
|
|
1909
|
-
* @ignore
|
|
1910
|
-
*/
|
|
1911
|
-
constructor() { super(); }
|
|
1912
1814
|
/**
|
|
1913
|
-
*
|
|
1815
|
+
* Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
|
|
1914
1816
|
*
|
|
1915
|
-
* @
|
|
1817
|
+
* @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
|
|
1916
1818
|
*/
|
|
1917
|
-
|
|
1918
|
-
|
|
1819
|
+
register(key) {
|
|
1820
|
+
if (this.outbounds[key])
|
|
1821
|
+
throw "@esfaenza/extensions - InterComService: Impossibile registrare più volte lo stesso modulo";
|
|
1822
|
+
this.outbounds[key] = new Subject();
|
|
1919
1823
|
}
|
|
1920
1824
|
}
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type:
|
|
1825
|
+
InterComService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1826
|
+
InterComService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService });
|
|
1827
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService, decorators: [{
|
|
1924
1828
|
type: Injectable
|
|
1925
|
-
}]
|
|
1926
|
-
|
|
1927
|
-
/** Implementazione di default per la classe **BaseStorageProvider** */
|
|
1928
|
-
class DefaultStorageProvider extends BaseStorageProvider {
|
|
1929
|
-
/** @ignore Costruttore */
|
|
1930
|
-
constructor(session) { super(session); }
|
|
1931
|
-
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
1932
|
-
setItem(key, value) {
|
|
1933
|
-
try {
|
|
1934
|
-
localStorage.setItem(key, JSON.stringify(value));
|
|
1935
|
-
return of(true);
|
|
1936
|
-
}
|
|
1937
|
-
catch (_a) {
|
|
1938
|
-
// Potrebbe arrivarmi un prefisso di salvataggio nella modalità di default. Questo serve per ripulire le stesse cose con quel prefisso e sperare di liberare spazio
|
|
1939
|
-
if (value.savedprefix) {
|
|
1940
|
-
console.warn("Spazio del local Storage insufficiente, prova a ripulirlo e risalvare");
|
|
1941
|
-
//Pulisco tutte le view con nome che parta per "Hot"
|
|
1942
|
-
for (let key in localStorage) {
|
|
1943
|
-
if (localStorage.hasOwnProperty(key) && key.startsWith(value.savedprefix))
|
|
1944
|
-
delete localStorage[key];
|
|
1945
|
-
}
|
|
1946
|
-
try {
|
|
1947
|
-
localStorage.setItem(key, JSON.stringify(value));
|
|
1948
|
-
}
|
|
1949
|
-
catch (e) {
|
|
1950
|
-
console.error("Spazio del local Storage insufficiente per salvare i risultati di ricerca con solo filtri. Non salvo nulla");
|
|
1951
|
-
}
|
|
1952
|
-
}
|
|
1953
|
-
return of(false);
|
|
1954
|
-
}
|
|
1955
|
-
}
|
|
1956
|
-
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
1957
|
-
getItem(key) {
|
|
1958
|
-
try {
|
|
1959
|
-
var ret = JSON.parse(localStorage.getItem(key));
|
|
1960
|
-
return of(ret);
|
|
1961
|
-
}
|
|
1962
|
-
catch (_a) {
|
|
1963
|
-
return of(null);
|
|
1964
|
-
}
|
|
1965
|
-
}
|
|
1966
|
-
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
1967
|
-
removeItem(key) {
|
|
1968
|
-
try {
|
|
1969
|
-
localStorage.removeItem(key);
|
|
1970
|
-
return of(true);
|
|
1971
|
-
}
|
|
1972
|
-
catch (_a) {
|
|
1973
|
-
return of(false);
|
|
1974
|
-
}
|
|
1975
|
-
}
|
|
1976
|
-
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
1977
|
-
clear() {
|
|
1978
|
-
try {
|
|
1979
|
-
localStorage.clear();
|
|
1980
|
-
return of(true);
|
|
1981
|
-
}
|
|
1982
|
-
catch (_a) {
|
|
1983
|
-
return of(false);
|
|
1984
|
-
}
|
|
1985
|
-
}
|
|
1986
|
-
/** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
|
|
1987
|
-
getAll() {
|
|
1988
|
-
var ret = {};
|
|
1989
|
-
for (let key in localStorage) {
|
|
1990
|
-
ret[key] = localStorage[key];
|
|
1991
|
-
}
|
|
1992
|
-
return of(ret);
|
|
1993
|
-
}
|
|
1994
|
-
}
|
|
1995
|
-
DefaultStorageProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultStorageProvider, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1996
|
-
DefaultStorageProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultStorageProvider });
|
|
1997
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: DefaultStorageProvider, decorators: [{
|
|
1998
|
-
type: Injectable
|
|
1999
|
-
}], ctorParameters: function () { return [{ type: BaseSessionRetriever }]; } });
|
|
1829
|
+
}] });
|
|
2000
1830
|
|
|
2001
1831
|
// Angular
|
|
2002
1832
|
/**
|
|
@@ -2006,8 +1836,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
2006
1836
|
* ExportService,
|
|
2007
1837
|
* HashingService,
|
|
2008
1838
|
* MessageService,
|
|
2009
|
-
* UtilityService
|
|
2010
|
-
*
|
|
1839
|
+
* UtilityService
|
|
1840
|
+
* InterComService
|
|
2011
1841
|
*
|
|
2012
1842
|
* con eventuali provider che utilizzano
|
|
2013
1843
|
*/
|
|
@@ -2022,13 +1852,11 @@ class FullExtensionsModule {
|
|
|
2022
1852
|
HashingService,
|
|
2023
1853
|
MessageService,
|
|
2024
1854
|
UtilityService,
|
|
2025
|
-
|
|
1855
|
+
InterComService,
|
|
2026
1856
|
{ provide: EXT_LOCALE, useValue: (config === null || config === void 0 ? void 0 : config.locale) || 'it-IT' },
|
|
2027
1857
|
{ provide: EXT_FANCY_ALERTS, useValue: (config === null || config === void 0 ? void 0 : config.fancy_alerts) || true },
|
|
2028
1858
|
{ provide: APPSEARCH_PREFIX, useValue: (config === null || config === void 0 ? void 0 : config.appsearch_prefix) || 'Hot' },
|
|
2029
|
-
{ provide: EXT_ALLOW_UTC, useValue: (config === null || config === void 0 ? void 0 : config.allow_utc) == null ? false : config === null || config === void 0 ? void 0 : config.allow_utc }
|
|
2030
|
-
{ provide: BaseSessionRetriever, useClass: (config === null || config === void 0 ? void 0 : config.sessionRetriever) || DefaultSessionRetriever },
|
|
2031
|
-
{ provide: BaseStorageProvider, useClass: (config === null || config === void 0 ? void 0 : config.storageProvider) || DefaultStorageProvider },
|
|
1859
|
+
{ provide: EXT_ALLOW_UTC, useValue: (config === null || config === void 0 ? void 0 : config.allow_utc) == null ? false : config === null || config === void 0 ? void 0 : config.allow_utc }
|
|
2032
1860
|
]
|
|
2033
1861
|
};
|
|
2034
1862
|
}
|
|
@@ -2058,6 +1886,13 @@ class CsvHeaders {
|
|
|
2058
1886
|
class GenericItem {
|
|
2059
1887
|
}
|
|
2060
1888
|
|
|
1889
|
+
/** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
|
|
1890
|
+
var InboundMessageTypes;
|
|
1891
|
+
(function (InboundMessageTypes) {
|
|
1892
|
+
/** Evento di navigazione */
|
|
1893
|
+
InboundMessageTypes[InboundMessageTypes["Navigation"] = 0] = "Navigation";
|
|
1894
|
+
})(InboundMessageTypes || (InboundMessageTypes = {}));
|
|
1895
|
+
|
|
2061
1896
|
/*
|
|
2062
1897
|
* Public API Surface of extensions
|
|
2063
1898
|
*/
|
|
@@ -2066,5 +1901,5 @@ class GenericItem {
|
|
|
2066
1901
|
* Generated bundle index. Do not edit.
|
|
2067
1902
|
*/
|
|
2068
1903
|
|
|
2069
|
-
export { APPSEARCH_PREFIX,
|
|
1904
|
+
export { APPSEARCH_PREFIX, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, InboundMessageTypes, InterComMessage, InterComService, MessageService, UtilityService };
|
|
2070
1905
|
//# sourceMappingURL=esfaenza-extensions.mjs.map
|