@progressive-development/pd-spa-helper 0.8.22 → 0.9.0
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/LICENSE +2 -21
- package/dist/PdSpaHelper.js +118 -122
- package/dist/defaultpage/default-confirm-popup.d.ts +1 -1
- package/dist/defaultpage/default-confirm-popup.js +19 -22
- package/dist/defaultpage/default-dialog-popup.d.ts +1 -1
- package/dist/defaultpage/default-dialog-popup.js +22 -22
- package/dist/defaultpage/default-login.d.ts +1 -1
- package/dist/defaultpage/default-login.js +8 -8
- package/dist/defaultpage/default-not-found.d.ts +1 -1
- package/dist/defaultpage/default-not-found.js +7 -7
- package/dist/defaultpage/default-popup.d.ts +1 -1
- package/dist/defaultpage/default-popup.js +17 -16
- package/dist/defaultpage/default-step-address.d.ts +2 -2
- package/dist/defaultpage/default-step-address.js +13 -14
- package/dist/defaultpage/default-step-summary.d.ts +2 -2
- package/dist/defaultpage/default-step-summary.js +20 -19
- package/dist/defaultpage/default-view-page.js +9 -6
- package/dist/defaultpage/default-wizard.d.ts +1 -1
- package/dist/defaultpage/default-wizard.js +32 -41
- package/dist/defaultpage/pd-default-wizard-step.d.ts +3 -1
- package/dist/defaultpage/pd-default-wizard-step.d.ts.map +1 -1
- package/dist/defaultpage/pd-default-wizard-step.js +11 -14
- package/dist/generated/locale-wrapper/be-wrapper.d.ts +2 -1
- package/dist/generated/locale-wrapper/be-wrapper.d.ts.map +1 -1
- package/dist/generated/locale-wrapper/be-wrapper.js +10 -10
- package/dist/generated/locale-wrapper/de-wrapper.d.ts +2 -1
- package/dist/generated/locale-wrapper/de-wrapper.d.ts.map +1 -1
- package/dist/generated/locale-wrapper/de-wrapper.js +10 -10
- package/dist/generated/locale-wrapper/en-wrapper.d.ts +2 -1
- package/dist/generated/locale-wrapper/en-wrapper.d.ts.map +1 -1
- package/dist/generated/locale-wrapper/en-wrapper.js +10 -10
- package/dist/generated/locales/be.js +2 -3
- package/dist/generated/locales/de.js +2 -3
- package/dist/generated/locales/en.js +2 -3
- package/dist/helper/blob-helper.js +2 -4
- package/dist/helper/date-helper.js +7 -16
- package/dist/helper/locale-format.js +2 -5
- package/dist/helper/logger.js +3 -5
- package/dist/helper/number-helper.js +2 -3
- package/dist/helper/offline-watcher-helper.js +5 -6
- package/dist/helper/price-helper.js +6 -9
- package/dist/helper/refresh-id-token.js +6 -6
- package/dist/helper/text-helper.js +2 -4
- package/dist/index.js +42 -78
- package/dist/model/spa-model.js +2 -4
- package/dist/popup/wizard-close-popup.d.ts +1 -1
- package/dist/popup/wizard-close-popup.js +7 -7
- package/dist/popup/wizard-reload-popup.d.ts +1 -1
- package/dist/popup/wizard-reload-popup.js +7 -7
- package/dist/router/PdRouterService.js +11 -15
- package/dist/service-provider/firebase/auth.js +7 -14
- package/dist/service-provider/firebase/firestorage-client.js +23 -34
- package/dist/service-provider/firebase/firestore-client.d.ts +1 -1
- package/dist/service-provider/firebase/firestore-client.d.ts.map +1 -1
- package/dist/service-provider/firebase/firestore-client.js +5 -6
- package/dist/service-provider/firebase/functions-client.js +9 -10
- package/dist/service-provider/firebase/messagingFirebaseClient.js +9 -13
- package/dist/service-provider/mock/auth.js +3 -8
- package/dist/service-provider/mock/function-client.js +8 -10
- package/dist/service-provider/mock/storage-client.js +3 -7
- package/dist/service-provider/service-provider-impl.d.ts +2 -2
- package/dist/service-provider/service-provider-impl.d.ts.map +1 -1
- package/dist/service-provider/service-provider-impl.js +16 -35
- package/dist/service-provider/service-provider-model.js +2 -5
- package/dist/store/indexDB.js +6 -17
- package/dist/store/mini-rx.store.js +7 -8
- package/dist/store/spa-app-actions.js +4 -16
- package/dist/store/spa-app-effects.d.ts +1 -1
- package/dist/store/spa-app-effects.js +9 -12
- package/dist/store/spa-app-reducer.js +10 -14
- package/dist/store/spa-app-selector.js +5 -11
- package/dist/stories/address-edit.stories.d.ts +1 -1
- package/dist/stories/address-new.stories.d.ts +1 -1
- package/dist/stories/default-login.stories.d.ts +1 -1
- package/dist/stories/pd-loading-state.stories.d.ts +1 -1
- package/dist/stories/pd-toast.stories.d.ts +1 -1
- package/dist/stories/routing.stories.d.ts +1 -1
- package/dist/stories/routing.stories.d.ts.map +1 -1
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts +1 -1
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts +1 -1
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts +2 -2
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts +1 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts +1 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts +1 -1
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts +1 -1
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts +1 -1
- package/dist/stories/test-wizard-step.stories.d.ts +1 -1
- package/dist/stories/test-wizard.stories.d.ts +1 -1
- package/dist/tmpown/pd-loading-state.d.ts +2 -2
- package/dist/tmpown/pd-loading-state.js +8 -8
- package/dist/tmpown/pd-login.d.ts +1 -1
- package/dist/tmpown/pd-login.d.ts.map +1 -1
- package/dist/tmpown/pd-login.js +14 -14
- package/dist/tmpown/pd-toast.d.ts +1 -1
- package/dist/tmpown/pd-toast.js +6 -7
- package/package.json +32 -53
package/dist/helper/logger.js
CHANGED
|
@@ -5,7 +5,7 @@ const LOG_LEVEL_MAP = /* @__PURE__ */ new Map([
|
|
|
5
5
|
["error", 3]
|
|
6
6
|
]);
|
|
7
7
|
const isValidLevel = (level) => LOG_LEVEL_MAP.has(level);
|
|
8
|
-
const ENV_LOG_LEVEL =
|
|
8
|
+
const ENV_LOG_LEVEL = undefined ;
|
|
9
9
|
const LOG_LEVEL = isValidLevel(ENV_LOG_LEVEL) ? ENV_LOG_LEVEL : "info";
|
|
10
10
|
class Logger {
|
|
11
11
|
constructor(context = "") {
|
|
@@ -48,7 +48,5 @@ class Logger {
|
|
|
48
48
|
}
|
|
49
49
|
const createLogger = (context) => new Logger(context);
|
|
50
50
|
const defaultLogger = createLogger("PdSpa");
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
defaultLogger
|
|
54
|
-
};
|
|
51
|
+
|
|
52
|
+
export { createLogger, defaultLogger };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { pdStore } from
|
|
2
|
-
import { updateInternetOffline } from
|
|
1
|
+
import { pdStore } from '../store/mini-rx.store.js';
|
|
2
|
+
import { updateInternetOffline } from '../store/spa-app-actions.js';
|
|
3
|
+
|
|
3
4
|
const handleOnlineEvent = () => pdStore().dispatch(updateInternetOffline(false));
|
|
4
5
|
const handleOfflineEvent = () => pdStore().dispatch(updateInternetOffline(true));
|
|
5
6
|
const deactivateOfflineWatcher = () => {
|
|
@@ -13,7 +14,5 @@ const activateOfflineWatcher = (firstCall) => {
|
|
|
13
14
|
pdStore().dispatch(updateInternetOffline(navigator.onLine === false));
|
|
14
15
|
}
|
|
15
16
|
};
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
deactivateOfflineWatcher
|
|
19
|
-
};
|
|
17
|
+
|
|
18
|
+
export { activateOfflineWatcher, deactivateOfflineWatcher };
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { getCurrentFormatLocale } from
|
|
2
|
-
import { isValidNumber } from
|
|
1
|
+
import { getCurrentFormatLocale } from './locale-format.js';
|
|
2
|
+
import { isValidNumber } from './number-helper.js';
|
|
3
|
+
|
|
3
4
|
const EURO_FORMAT = (locale = getCurrentFormatLocale()) => Intl.NumberFormat(locale, {
|
|
4
5
|
style: "currency",
|
|
5
6
|
currency: "EUR"
|
|
6
7
|
});
|
|
7
|
-
const replaceForPriceFormat = (numberString) => numberString
|
|
8
|
+
const replaceForPriceFormat = (numberString) => numberString?.replaceAll(",", ".");
|
|
8
9
|
const formatToPrice = (price) => {
|
|
9
10
|
let resultStr = "-- €";
|
|
10
11
|
if (price) {
|
|
@@ -17,9 +18,5 @@ const toValidNumberOrUndefined = (numberStr) => {
|
|
|
17
18
|
const replacedNumberFixed = isValidNumber(replacedNumber) ? Number(replacedNumber).toFixed(2) : void 0;
|
|
18
19
|
return replacedNumberFixed ? Number(replacedNumberFixed) : void 0;
|
|
19
20
|
};
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
formatToPrice,
|
|
23
|
-
replaceForPriceFormat,
|
|
24
|
-
toValidNumberOrUndefined
|
|
25
|
-
};
|
|
21
|
+
|
|
22
|
+
export { EURO_FORMAT, formatToPrice, replaceForPriceFormat, toValidNumberOrUndefined };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { getUserIdToken } from
|
|
2
|
-
import { update, USER_COLLECTION } from
|
|
3
|
-
import { createLogger } from
|
|
1
|
+
import { getUserIdToken } from '../service-provider/service-provider-impl.js';
|
|
2
|
+
import { update, USER_COLLECTION } from '../store/indexDB.js';
|
|
3
|
+
import { createLogger } from './logger.js';
|
|
4
|
+
|
|
4
5
|
const userLogger = createLogger("PdUserAuth");
|
|
5
6
|
const refreshAndPersistUserIdToken = async () => {
|
|
6
7
|
try {
|
|
@@ -27,6 +28,5 @@ const refreshAndPersistUserIdToken = async () => {
|
|
|
27
28
|
return false;
|
|
28
29
|
}
|
|
29
30
|
};
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
};
|
|
31
|
+
|
|
32
|
+
export { refreshAndPersistUserIdToken };
|
package/dist/index.js
CHANGED
|
@@ -1,31 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
import * as serviceProviderModel from
|
|
3
|
-
|
|
4
|
-
import * as
|
|
5
|
-
|
|
6
|
-
import * as
|
|
7
|
-
|
|
8
|
-
import * as
|
|
9
|
-
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
export { PdSpaHelper, startInit } from './PdSpaHelper.js';
|
|
2
|
+
import * as serviceProviderModel from './service-provider/service-provider-model.js';
|
|
3
|
+
export { serviceProviderModel as pdSpaModel };
|
|
4
|
+
import * as spaModel from './model/spa-model.js';
|
|
5
|
+
export { spaModel as pdSpaModel2 };
|
|
6
|
+
import * as offlineWatcherHelper from './helper/offline-watcher-helper.js';
|
|
7
|
+
export { offlineWatcherHelper as pdOfflineWatcher };
|
|
8
|
+
import * as blobHelper from './helper/blob-helper.js';
|
|
9
|
+
export { blobHelper as pdFileHelper };
|
|
10
|
+
import * as dateHelper from './helper/date-helper.js';
|
|
11
|
+
export { dateHelper as pdDateHelper };
|
|
12
|
+
import * as priceHelper from './helper/price-helper.js';
|
|
13
|
+
export { priceHelper as pdPriceHelper };
|
|
14
|
+
import * as numberHelper from './helper/number-helper.js';
|
|
15
|
+
export { numberHelper as pdNumberHelper };
|
|
16
|
+
import * as textHelper from './helper/text-helper.js';
|
|
17
|
+
export { textHelper as pdTextHelper };
|
|
18
|
+
export { DefaultViewPage } from './defaultpage/default-view-page.js';
|
|
19
|
+
export { ABORT_EVENT_NAME, DefaultConfirmPopup, STORE_EVENT_NAME } from './defaultpage/default-confirm-popup.js';
|
|
20
|
+
export { DefaultDialogPopup } from './defaultpage/default-dialog-popup.js';
|
|
21
|
+
export { DefaultPopup } from './defaultpage/default-popup.js';
|
|
22
|
+
export { DefaultWizard } from './defaultpage/default-wizard.js';
|
|
23
|
+
export { PdDefaultWizardStep } from './defaultpage/pd-default-wizard-step.js';
|
|
24
|
+
export { DefaultStepAddress } from './defaultpage/default-step-address.js';
|
|
25
|
+
export { createLogger, defaultLogger } from './helper/logger.js';
|
|
26
|
+
export { DefaultStepSummary } from './defaultpage/default-step-summary.js';
|
|
27
|
+
export { activateCollectionListener, callFunctionImpl, deleteFile, downloadFile, getApp, getMessagingImpl, getStorageConfiguration, getStorageFile, getStorageFileList, getUser, getUserIdToken, isAuthenticatedImpl, loginImpl, logoutImpl, registerAppDeviceForNotification, uploadFile } from './service-provider/service-provider-impl.js';
|
|
28
|
+
export { refreshAndPersistUserIdToken } from './helper/refresh-id-token.js';
|
|
29
|
+
export { pdStore } from './store/mini-rx.store.js';
|
|
30
|
+
export { setRouteElement } from './store/spa-app-effects.js';
|
|
31
|
+
import * as spaAppActions from './store/spa-app-actions.js';
|
|
32
|
+
export { spaAppActions as pdAction };
|
|
33
|
+
import * as spaAppSelector from './store/spa-app-selector.js';
|
|
34
|
+
export { spaAppSelector as pdSelector };
|
|
35
|
+
import * as indexDB from './store/indexDB.js';
|
|
36
|
+
export { indexDB as pdDB };
|
|
37
|
+
export { templates as beTemplaes } from './generated/locale-wrapper/be-wrapper.js';
|
|
38
|
+
export { templates as deTemplaes } from './generated/locale-wrapper/de-wrapper.js';
|
|
39
|
+
export { templates as enTemplaes } from './generated/locale-wrapper/en-wrapper.js';
|
|
40
|
+
|
|
29
41
|
const dispatchToastEvent = (element, txt, isSuccess, isError) => {
|
|
30
42
|
element.dispatchEvent(
|
|
31
43
|
new CustomEvent("toast-event", {
|
|
@@ -39,53 +51,5 @@ const dispatchToastEvent = (element, txt, isSuccess, isError) => {
|
|
|
39
51
|
})
|
|
40
52
|
);
|
|
41
53
|
};
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
DefaultConfirmPopup,
|
|
45
|
-
DefaultDialogPopup,
|
|
46
|
-
DefaultPopup,
|
|
47
|
-
DefaultStepAddress,
|
|
48
|
-
DefaultStepSummary,
|
|
49
|
-
DefaultViewPage,
|
|
50
|
-
DefaultWizard,
|
|
51
|
-
PdDefaultWizardStep,
|
|
52
|
-
PdSpaHelper,
|
|
53
|
-
STORE_EVENT_NAME,
|
|
54
|
-
activateCollectionListener,
|
|
55
|
-
templates as beTemplaes,
|
|
56
|
-
callFunctionImpl,
|
|
57
|
-
createLogger,
|
|
58
|
-
templates2 as deTemplaes,
|
|
59
|
-
defaultLogger,
|
|
60
|
-
deleteFile,
|
|
61
|
-
dispatchToastEvent,
|
|
62
|
-
downloadFile,
|
|
63
|
-
templates3 as enTemplaes,
|
|
64
|
-
getApp,
|
|
65
|
-
getMessagingImpl,
|
|
66
|
-
getStorageConfiguration,
|
|
67
|
-
getStorageFile,
|
|
68
|
-
getStorageFileList,
|
|
69
|
-
getUser,
|
|
70
|
-
getUserIdToken,
|
|
71
|
-
isAuthenticatedImpl,
|
|
72
|
-
loginImpl,
|
|
73
|
-
logoutImpl,
|
|
74
|
-
spaAppActions as pdAction,
|
|
75
|
-
indexDB as pdDB,
|
|
76
|
-
dateHelper as pdDateHelper,
|
|
77
|
-
blobHelper as pdFileHelper,
|
|
78
|
-
numberHelper as pdNumberHelper,
|
|
79
|
-
offlineWatcherHelper as pdOfflineWatcher,
|
|
80
|
-
priceHelper as pdPriceHelper,
|
|
81
|
-
spaAppSelector as pdSelector,
|
|
82
|
-
serviceProviderModel as pdSpaModel,
|
|
83
|
-
spaModel as pdSpaModel2,
|
|
84
|
-
pdStore,
|
|
85
|
-
textHelper as pdTextHelper,
|
|
86
|
-
refreshAndPersistUserIdToken,
|
|
87
|
-
registerAppDeviceForNotification,
|
|
88
|
-
setRouteElement,
|
|
89
|
-
startInit,
|
|
90
|
-
uploadFile
|
|
91
|
-
};
|
|
54
|
+
|
|
55
|
+
export { dispatchToastEvent };
|
package/dist/model/spa-model.js
CHANGED
|
@@ -6,6 +6,6 @@ export declare class WizardClosePopup extends DefaultConfirmPopup {
|
|
|
6
6
|
_popupTitle: string;
|
|
7
7
|
withStorage: boolean;
|
|
8
8
|
static styles: CSSResultGroup;
|
|
9
|
-
_renderContent(): import('lit
|
|
9
|
+
_renderContent(): import('lit').TemplateResult<1>;
|
|
10
10
|
}
|
|
11
11
|
//# sourceMappingURL=wizard-close-popup.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { css, html } from
|
|
2
|
-
import { property, customElement } from
|
|
3
|
-
import { msg } from
|
|
4
|
-
import { DefaultConfirmPopup } from
|
|
1
|
+
import { css, html } from 'lit';
|
|
2
|
+
import { property, customElement } from 'lit/decorators.js';
|
|
3
|
+
import { msg } from '@lit/localize';
|
|
4
|
+
import { DefaultConfirmPopup } from '../defaultpage/default-confirm-popup.js';
|
|
5
|
+
|
|
5
6
|
var __defProp = Object.defineProperty;
|
|
6
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -58,6 +59,5 @@ __decorateClass([
|
|
|
58
59
|
WizardClosePopup = __decorateClass([
|
|
59
60
|
customElement("wizard-close-popup")
|
|
60
61
|
], WizardClosePopup);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
};
|
|
62
|
+
|
|
63
|
+
export { WizardClosePopup };
|
|
@@ -9,6 +9,6 @@ export declare class WizardReloadPopup extends DefaultConfirmPopup {
|
|
|
9
9
|
wizardStep: number;
|
|
10
10
|
};
|
|
11
11
|
static styles: CSSResultGroup;
|
|
12
|
-
_renderContent(): import('lit
|
|
12
|
+
_renderContent(): import('lit').TemplateResult<1>;
|
|
13
13
|
}
|
|
14
14
|
//# sourceMappingURL=wizard-reload-popup.d.ts.map
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { css, html } from
|
|
2
|
-
import { property, customElement } from
|
|
3
|
-
import { msg } from
|
|
4
|
-
import { DefaultConfirmPopup } from
|
|
1
|
+
import { css, html } from 'lit';
|
|
2
|
+
import { property, customElement } from 'lit/decorators.js';
|
|
3
|
+
import { msg } from '@lit/localize';
|
|
4
|
+
import { DefaultConfirmPopup } from '../defaultpage/default-confirm-popup.js';
|
|
5
|
+
|
|
5
6
|
var __defProp = Object.defineProperty;
|
|
6
7
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
8
|
var __decorateClass = (decorators, target, key, kind) => {
|
|
@@ -71,6 +72,5 @@ __decorateClass([
|
|
|
71
72
|
WizardReloadPopup = __decorateClass([
|
|
72
73
|
customElement("wizard-reload-popup")
|
|
73
74
|
], WizardReloadPopup);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
};
|
|
75
|
+
|
|
76
|
+
export { WizardReloadPopup };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import UniversalRouter from
|
|
2
|
-
import { firstValueFrom, first, filter } from
|
|
3
|
-
import { selectAuthUser } from
|
|
4
|
-
import { pdStore } from
|
|
5
|
-
import { createLogger } from
|
|
1
|
+
import UniversalRouter from 'universal-router';
|
|
2
|
+
import { firstValueFrom, first, filter } from 'rxjs';
|
|
3
|
+
import { selectAuthUser } from '../store/spa-app-selector.js';
|
|
4
|
+
import { pdStore } from '../store/mini-rx.store.js';
|
|
5
|
+
import { createLogger } from '../helper/logger.js';
|
|
6
|
+
|
|
6
7
|
const routingLogger = createLogger("PdRouterService");
|
|
7
8
|
class PdRouterService {
|
|
8
9
|
constructor() {
|
|
@@ -25,25 +26,21 @@ class PdRouterService {
|
|
|
25
26
|
return {
|
|
26
27
|
path: def.pattern,
|
|
27
28
|
action: async (context) => {
|
|
28
|
-
var _a, _b;
|
|
29
29
|
if (def.auth) {
|
|
30
30
|
let authResult;
|
|
31
|
-
if (!
|
|
31
|
+
if (!context.userCheck?.loginCheckFinish) {
|
|
32
32
|
routingLogger.debug("Check login is running, wait for result...");
|
|
33
33
|
authResult = await waitForFinalAuthState();
|
|
34
34
|
routingLogger.debug("Check login is done, go on");
|
|
35
35
|
context.userCheck = authResult;
|
|
36
36
|
}
|
|
37
|
-
if (!
|
|
37
|
+
if (!context.userCheck?.user) {
|
|
38
38
|
const fallbackRoute = def.authFallback ?? "login";
|
|
39
39
|
return { redirect: fallbackRoute };
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
if (def.roles && !def.roles.some(
|
|
43
|
-
(role) =>
|
|
44
|
-
var _a2;
|
|
45
|
-
return ((_a2 = context.userCheck.user.claims) == null ? void 0 : _a2[role]) === true;
|
|
46
|
-
}
|
|
43
|
+
(role) => context.userCheck.user.claims?.[role] === true
|
|
47
44
|
)) {
|
|
48
45
|
return { redirect: "unauthorized" };
|
|
49
46
|
}
|
|
@@ -137,6 +134,5 @@ async function waitForFinalAuthState() {
|
|
|
137
134
|
);
|
|
138
135
|
}
|
|
139
136
|
const pdRouterService = new PdRouterService();
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
};
|
|
137
|
+
|
|
138
|
+
export { pdRouterService };
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { getAuth, onIdTokenChanged, onAuthStateChanged, signInWithEmailAndPassword, signOut } from
|
|
2
|
-
import { createLogger } from
|
|
1
|
+
import { getAuth, onIdTokenChanged, onAuthStateChanged, signInWithEmailAndPassword, signOut } from 'firebase/auth';
|
|
2
|
+
import { createLogger } from '../../helper/logger.js';
|
|
3
|
+
|
|
3
4
|
const authLogger = createLogger("PdUserAuth");
|
|
4
5
|
let auth;
|
|
5
6
|
const initAuth = (appParam) => {
|
|
@@ -35,10 +36,10 @@ const getFirebaseUserIdToken = async (refresh) => {
|
|
|
35
36
|
throw new Error("isAuthenticated: Auth was not initialized");
|
|
36
37
|
}
|
|
37
38
|
const user = auth.currentUser;
|
|
38
|
-
const newIdToken = await
|
|
39
|
+
const newIdToken = await user?.getIdToken(refresh);
|
|
39
40
|
return newIdToken ? {
|
|
40
41
|
userToken: newIdToken,
|
|
41
|
-
userName:
|
|
42
|
+
userName: user?.displayName || ""
|
|
42
43
|
} : void 0;
|
|
43
44
|
};
|
|
44
45
|
const authStateChanged = (callback) => {
|
|
@@ -57,13 +58,5 @@ const login = async (user, sec) => {
|
|
|
57
58
|
const credentials = await signInWithEmailAndPassword(auth, user, sec);
|
|
58
59
|
return credentials.user;
|
|
59
60
|
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
authStateChanged,
|
|
63
|
-
getAuthUser,
|
|
64
|
-
getFirebaseUserIdToken,
|
|
65
|
-
initAuth,
|
|
66
|
-
isAuthenticated,
|
|
67
|
-
login,
|
|
68
|
-
logout
|
|
69
|
-
};
|
|
61
|
+
|
|
62
|
+
export { authIdTokenStateChanged, authStateChanged, getAuthUser, getFirebaseUserIdToken, initAuth, isAuthenticated, login, logout };
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { getStorage, ref, uploadString, getMetadata, getDownloadURL, deleteObject, listAll } from
|
|
2
|
-
import { getUser } from
|
|
3
|
-
import { createLogger } from
|
|
1
|
+
import { getStorage, ref, uploadString, getMetadata, getDownloadURL, deleteObject, listAll } from 'firebase/storage';
|
|
2
|
+
import { getUser } from '../service-provider-impl.js';
|
|
3
|
+
import { createLogger } from '../../helper/logger.js';
|
|
4
|
+
|
|
4
5
|
const storageLogger = createLogger("PdStorage");
|
|
5
6
|
const DEFAULT_STORAGE = "default_storage";
|
|
6
7
|
let storageConf;
|
|
@@ -13,7 +14,7 @@ const initFirestorage = (app, defaultStorage, storageConfig) => {
|
|
|
13
14
|
storage: getStorage(app)
|
|
14
15
|
});
|
|
15
16
|
}
|
|
16
|
-
storageConfig
|
|
17
|
+
storageConfig?.storage.forEach((storeConfig) => {
|
|
17
18
|
const storage = getStorage(app, storeConfig.name);
|
|
18
19
|
const storageRootRef = ref(storage);
|
|
19
20
|
storageMap.set(storeConfig.name, {
|
|
@@ -36,7 +37,6 @@ const initFirestorage = (app, defaultStorage, storageConfig) => {
|
|
|
36
37
|
};
|
|
37
38
|
const getFirestorageConf = () => storageConf;
|
|
38
39
|
const uploadFirestorageFile = (file) => {
|
|
39
|
-
var _a;
|
|
40
40
|
if (!storageMap || storageMap.size === 0) {
|
|
41
41
|
throw new Error("No storage is configured");
|
|
42
42
|
}
|
|
@@ -62,7 +62,7 @@ const uploadFirestorageFile = (file) => {
|
|
|
62
62
|
);
|
|
63
63
|
const metadata = {
|
|
64
64
|
customMetadata: {
|
|
65
|
-
creator:
|
|
65
|
+
creator: getUser()?.displayName,
|
|
66
66
|
comment: file.description,
|
|
67
67
|
name: file.descriptionName,
|
|
68
68
|
readonly: file.readonly ? "true" : "false"
|
|
@@ -75,20 +75,17 @@ const fetchItemsAndFolders = async (usedRef, storageName, refKey, includeMetaDat
|
|
|
75
75
|
const itemRefs = [];
|
|
76
76
|
const metaPromises = [];
|
|
77
77
|
const res = await listAll(usedRef);
|
|
78
|
-
const processMetadata = (item, metadata) => {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
metaData: metadata
|
|
90
|
-
};
|
|
91
|
-
};
|
|
78
|
+
const processMetadata = (item, metadata) => ({
|
|
79
|
+
...item,
|
|
80
|
+
creation: new Date(metadata.timeCreated),
|
|
81
|
+
documentType: metadata.contentType,
|
|
82
|
+
creator: metadata.customMetadata?.creator,
|
|
83
|
+
descriptionName: metadata.customMetadata?.name,
|
|
84
|
+
description: metadata.customMetadata?.comment,
|
|
85
|
+
size: metadata.size,
|
|
86
|
+
readonly: metadata.customMetadata?.readonly === "true",
|
|
87
|
+
metaData: metadata
|
|
88
|
+
});
|
|
92
89
|
res.items.forEach((itemRef) => {
|
|
93
90
|
itemRefs.push({
|
|
94
91
|
fileName: itemRef.name,
|
|
@@ -132,7 +129,6 @@ const fetchItemsAndFolders = async (usedRef, storageName, refKey, includeMetaDat
|
|
|
132
129
|
}
|
|
133
130
|
};
|
|
134
131
|
const getFirestorageFile = async (storageName, refKey, storageURI, includeMetaData = false) => {
|
|
135
|
-
var _a, _b, _c, _d;
|
|
136
132
|
try {
|
|
137
133
|
if (!storageMap || storageMap.size === 0) {
|
|
138
134
|
throw new Error("No storage is configured");
|
|
@@ -154,11 +150,11 @@ const getFirestorageFile = async (storageName, refKey, storageURI, includeMetaDa
|
|
|
154
150
|
...storageDocument,
|
|
155
151
|
creation: new Date(metadata.timeCreated),
|
|
156
152
|
documentType: metadata.contentType,
|
|
157
|
-
creator:
|
|
158
|
-
descriptionName:
|
|
159
|
-
description:
|
|
153
|
+
creator: metadata.customMetadata?.creator,
|
|
154
|
+
descriptionName: metadata.customMetadata?.name,
|
|
155
|
+
description: metadata.customMetadata?.comment,
|
|
160
156
|
size: metadata.size,
|
|
161
|
-
readonly:
|
|
157
|
+
readonly: metadata.customMetadata?.readonly === "true",
|
|
162
158
|
metaData: metadata
|
|
163
159
|
};
|
|
164
160
|
}
|
|
@@ -226,12 +222,5 @@ async function deleteFirestorageDocument(deleteFile) {
|
|
|
226
222
|
throw error;
|
|
227
223
|
}
|
|
228
224
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
downloadFileFirestorage,
|
|
232
|
-
getFirestorageConf,
|
|
233
|
-
getFirestorageFile,
|
|
234
|
-
getFirestorageFileList,
|
|
235
|
-
initFirestorage,
|
|
236
|
-
uploadFirestorageFile
|
|
237
|
-
};
|
|
225
|
+
|
|
226
|
+
export { deleteFirestorageDocument, downloadFileFirestorage, getFirestorageConf, getFirestorageFile, getFirestorageFileList, initFirestorage, uploadFirestorageFile };
|
|
@@ -8,5 +8,5 @@ import { CollectionContraint } from '../service-provider-model';
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const initFirestore: (app: FirebaseApp) => void;
|
|
10
10
|
export declare const getDB: () => Firestore;
|
|
11
|
-
export declare const getFirebaseCollectionListener: (callback: (query: any) => void, col: string, constraints?: CollectionContraint[]) => import('
|
|
11
|
+
export declare const getFirebaseCollectionListener: (callback: (query: any) => void, col: string, constraints?: CollectionContraint[]) => import('firebase/firestore').Unsubscribe;
|
|
12
12
|
//# sourceMappingURL=firestore-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore-client.d.ts","sourceRoot":"","sources":["../../../src/service-provider/firebase/firestore-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,SAAS,EAMV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,SAO7C,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,SAAe,CAAC;AAEzC,eAAO,MAAM,6BAA6B,GACxC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EAC9B,KAAK,MAAM,EACX,cAAc,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"firestore-client.d.ts","sourceRoot":"","sources":["../../../src/service-provider/firebase/firestore-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAEL,SAAS,EAMV,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAMhE;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,WAAW,SAO7C,CAAC;AAEF,eAAO,MAAM,KAAK,QAAO,SAAe,CAAC;AAEzC,eAAO,MAAM,6BAA6B,GACxC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EAC9B,KAAK,MAAM,EACX,cAAc,mBAAmB,EAAE,6CAYpC,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { getFirestore, where, query, collection, onSnapshot } from
|
|
2
|
-
import { defaultLogger } from
|
|
1
|
+
import { getFirestore, where, query, collection, onSnapshot } from 'firebase/firestore';
|
|
2
|
+
import { defaultLogger } from '../../helper/logger.js';
|
|
3
|
+
|
|
3
4
|
let db;
|
|
4
5
|
const initFirestore = (app) => {
|
|
5
6
|
try {
|
|
@@ -20,7 +21,5 @@ const getFirebaseCollectionListener = (callback, col, constraints) => {
|
|
|
20
21
|
const q = query(collection(db, col), ...queryConstraints);
|
|
21
22
|
return onSnapshot(q, (querySnapshot) => callback(querySnapshot));
|
|
22
23
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
initFirestore
|
|
26
|
-
};
|
|
24
|
+
|
|
25
|
+
export { getFirebaseCollectionListener, initFirestore };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { msg } from
|
|
2
|
-
import { getFunctions, httpsCallable } from
|
|
3
|
-
import { SC_INVALID_USER, BusinessError } from
|
|
4
|
-
import { pdStore } from
|
|
5
|
-
import { toastAction } from
|
|
6
|
-
import { createLogger } from
|
|
1
|
+
import { msg } from '@lit/localize';
|
|
2
|
+
import { getFunctions, httpsCallable } from 'firebase/functions';
|
|
3
|
+
import { SC_INVALID_USER, BusinessError } from '../service-provider-model.js';
|
|
4
|
+
import { pdStore } from '../../store/mini-rx.store.js';
|
|
5
|
+
import { toastAction } from '../../store/spa-app-actions.js';
|
|
6
|
+
import { createLogger } from '../../helper/logger.js';
|
|
7
|
+
|
|
7
8
|
const functionLogger = createLogger("PdFunctions");
|
|
8
9
|
const functionMap = /* @__PURE__ */ new Map();
|
|
9
10
|
const initFunctions = (app, functionsConfig) => {
|
|
@@ -58,7 +59,5 @@ const handleInvalidUser = () => {
|
|
|
58
59
|
);
|
|
59
60
|
};
|
|
60
61
|
const callFunction = async (def, functionInput) => internalCallFunction(def, functionInput);
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
initFunctions
|
|
64
|
-
};
|
|
62
|
+
|
|
63
|
+
export { callFunction, initFunctions };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { getMessaging, getToken } from
|
|
2
|
-
import { update, USER_COLLECTION } from
|
|
3
|
-
import { pdStore } from
|
|
4
|
-
import { updateNewNotificationToken } from
|
|
5
|
-
import { authIdTokenStateChanged } from
|
|
6
|
-
import { createLogger } from
|
|
1
|
+
import { getMessaging, getToken } from 'firebase/messaging';
|
|
2
|
+
import { update, USER_COLLECTION } from '../../store/indexDB.js';
|
|
3
|
+
import { pdStore } from '../../store/mini-rx.store.js';
|
|
4
|
+
import { updateNewNotificationToken } from '../../store/spa-app-actions.js';
|
|
5
|
+
import { authIdTokenStateChanged } from './auth.js';
|
|
6
|
+
import { createLogger } from '../../helper/logger.js';
|
|
7
|
+
|
|
7
8
|
const NOTIFICATION_TOKEN = "pd.spa.helper.notification.token";
|
|
8
9
|
const messagingLogger = createLogger("PdMessaging");
|
|
9
10
|
let messaging;
|
|
@@ -64,10 +65,5 @@ const registerDevice = async (registration) => {
|
|
|
64
65
|
}
|
|
65
66
|
};
|
|
66
67
|
const getFirebaseMessaging = () => messaging;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
activateTokenChangeHandler,
|
|
70
|
-
getFirebaseMessaging,
|
|
71
|
-
prepareMessaging,
|
|
72
|
-
registerDevice
|
|
73
|
-
};
|
|
68
|
+
|
|
69
|
+
export { NOTIFICATION_TOKEN, activateTokenChangeHandler, getFirebaseMessaging, prepareMessaging, registerDevice };
|
|
@@ -17,7 +17,7 @@ const logoutMock = async () => {
|
|
|
17
17
|
const isAuthenticatedMock = () => {
|
|
18
18
|
if (loginAvailable === void 0) {
|
|
19
19
|
console.log("MOCK: check authentication");
|
|
20
|
-
loginAvailable = checkLocalStore();
|
|
20
|
+
loginAvailable = checkLocalStore() ;
|
|
21
21
|
}
|
|
22
22
|
return loginAvailable;
|
|
23
23
|
};
|
|
@@ -56,10 +56,5 @@ const loginMock = async (user, sec) => {
|
|
|
56
56
|
error.code = "auth/wrong-password";
|
|
57
57
|
throw error;
|
|
58
58
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
getAuthUserMock,
|
|
62
|
-
isAuthenticatedMock,
|
|
63
|
-
loginMock,
|
|
64
|
-
logoutMock
|
|
65
|
-
};
|
|
59
|
+
|
|
60
|
+
export { authStateChangedMock, getAuthUserMock, isAuthenticatedMock, loginMock, logoutMock };
|