@progressive-development/pd-spa-helper 0.9.0 → 0.9.1
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/dist/auth/AuthController.d.ts +37 -0
- package/dist/auth/AuthController.d.ts.map +1 -0
- package/dist/auth/AuthController.js +65 -0
- package/dist/auth/auth-directives.d.ts +59 -0
- package/dist/auth/auth-directives.d.ts.map +1 -0
- package/dist/auth/auth-directives.js +81 -0
- package/dist/auth/auth-utils.d.ts +45 -0
- package/dist/auth/auth-utils.d.ts.map +1 -0
- package/dist/auth/auth-utils.js +42 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/components/default-login/DefaultLogin.d.ts +15 -0
- package/dist/components/default-login/DefaultLogin.d.ts.map +1 -0
- package/dist/components/default-login/DefaultLogin.js +120 -0
- package/dist/components/default-not-found/DefaultNotFound.d.ts +6 -0
- package/dist/components/default-not-found/DefaultNotFound.d.ts.map +1 -0
- package/dist/{defaultpage/default-not-found.js → components/default-not-found/DefaultNotFound.js} +10 -3
- package/dist/components/pd-section-page/PdSectionPage.d.ts +55 -0
- package/dist/components/pd-section-page/PdSectionPage.d.ts.map +1 -0
- package/dist/components/pd-section-page/PdSectionPage.js +40 -0
- package/dist/components/pd-spa-helper/PdSpaHelper.d.ts +160 -0
- package/dist/components/pd-spa-helper/PdSpaHelper.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/PdSpaHelper.js +651 -0
- package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts +77 -0
- package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/controllers/ScrollController.js +102 -0
- package/dist/components/pd-spa-helper/spa-config.d.ts +87 -0
- package/dist/components/pd-spa-helper/spa-config.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/spa-config.js +167 -0
- package/dist/components/pd-spa-helper/spa-events.d.ts +121 -0
- package/dist/components/pd-spa-helper/spa-events.d.ts.map +1 -0
- package/dist/components/pd-spa-helper/spa-events.js +18 -0
- package/dist/db/index.d.ts +3 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/{store → db}/indexDB.d.ts +9 -9
- package/dist/db/indexDB.d.ts.map +1 -0
- package/dist/{store → db}/indexDB.js +14 -12
- package/dist/generated/locales/be.d.ts +1 -15
- package/dist/generated/locales/be.d.ts.map +1 -1
- package/dist/generated/locales/be.js +1 -15
- package/dist/generated/locales/de.d.ts +1 -15
- package/dist/generated/locales/de.d.ts.map +1 -1
- package/dist/generated/locales/de.js +1 -15
- package/dist/generated/locales/en.d.ts +1 -15
- package/dist/generated/locales/en.d.ts.map +1 -1
- package/dist/generated/locales/en.js +1 -15
- package/dist/helper/logger.d.ts +11 -12
- package/dist/helper/logger.d.ts.map +1 -1
- package/dist/helper/logger.js +10 -49
- package/dist/helper/refresh-id-token.d.ts.map +1 -1
- package/dist/helper/refresh-id-token.js +6 -4
- package/dist/index.d.ts +31 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -50
- package/dist/model/index.d.ts +4 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/spa-model.d.ts +14 -15
- package/dist/model/spa-model.d.ts.map +1 -1
- package/dist/router/PdRouterService.d.ts +4 -1
- package/dist/router/PdRouterService.d.ts.map +1 -1
- package/dist/router/PdRouterService.js +40 -16
- package/dist/router/index.d.ts +3 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/screen-size/ScreenSizeController.d.ts +34 -0
- package/dist/screen-size/ScreenSizeController.d.ts.map +1 -0
- package/dist/screen-size/ScreenSizeController.js +58 -0
- package/dist/screen-size/ScreenSizeService.d.ts +49 -0
- package/dist/screen-size/ScreenSizeService.d.ts.map +1 -0
- package/dist/screen-size/ScreenSizeService.js +107 -0
- package/dist/screen-size/index.d.ts +13 -0
- package/dist/screen-size/index.d.ts.map +1 -0
- package/dist/screen-size/responsive-directives.d.ts +59 -0
- package/dist/screen-size/responsive-directives.d.ts.map +1 -0
- package/dist/screen-size/responsive-directives.js +71 -0
- package/dist/screen-size/types.d.ts +44 -0
- package/dist/screen-size/types.d.ts.map +1 -0
- package/dist/service-provider/ServiceRegistry.d.ts +67 -0
- package/dist/service-provider/ServiceRegistry.d.ts.map +1 -0
- package/dist/service-provider/ServiceRegistry.js +76 -0
- package/dist/service-provider/function-utils.d.ts +55 -0
- package/dist/service-provider/function-utils.d.ts.map +1 -0
- package/dist/service-provider/function-utils.js +30 -0
- package/dist/service-provider/index.d.ts +10 -0
- package/dist/service-provider/index.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IAuthProvider.d.ts +68 -0
- package/dist/service-provider/interfaces/IAuthProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IDatabaseProvider.d.ts +75 -0
- package/dist/service-provider/interfaces/IDatabaseProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IFunctionProvider.d.ts +49 -0
- package/dist/service-provider/interfaces/IFunctionProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/IStorageProvider.d.ts +118 -0
- package/dist/service-provider/interfaces/IStorageProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/ServiceProvider.d.ts +24 -0
- package/dist/service-provider/interfaces/ServiceProvider.d.ts.map +1 -0
- package/dist/service-provider/interfaces/common.d.ts +5 -0
- package/dist/service-provider/interfaces/common.d.ts.map +1 -0
- package/dist/service-provider/service-provider-model.d.ts +26 -7
- package/dist/service-provider/service-provider-model.d.ts.map +1 -1
- package/dist/services/fire-once-service.d.ts +35 -0
- package/dist/services/fire-once-service.d.ts.map +1 -0
- package/dist/services/fire-once-service.js +61 -0
- package/dist/store/async-action-effects.d.ts +179 -0
- package/dist/store/async-action-effects.d.ts.map +1 -0
- package/dist/store/async-action-effects.js +97 -0
- package/dist/store/async-action-utils.d.ts +151 -0
- package/dist/store/async-action-utils.d.ts.map +1 -0
- package/dist/store/async-action-utils.js +41 -0
- package/dist/store/index.d.ts +9 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/mini-rx.store.d.ts.map +1 -1
- package/dist/store/mini-rx.store.js +1 -3
- package/dist/store/spa-app-actions.d.ts +5 -22
- package/dist/store/spa-app-actions.d.ts.map +1 -1
- package/dist/store/spa-app-actions.js +4 -8
- package/dist/store/spa-app-effects.d.ts +0 -17
- package/dist/store/spa-app-effects.d.ts.map +1 -1
- package/dist/store/spa-app-effects.js +2 -40
- package/dist/store/spa-app-reducer.d.ts +5 -10
- package/dist/store/spa-app-reducer.d.ts.map +1 -1
- package/dist/store/spa-app-reducer.js +17 -8
- package/dist/store/spa-app-selector.d.ts +2 -2
- package/dist/store/spa-app-selector.d.ts.map +1 -1
- package/dist/store/spa-app-selector.js +1 -1
- package/dist/stories/introduction.stories.d.ts +11 -0
- package/dist/stories/introduction.stories.d.ts.map +1 -0
- package/package.json +13 -9
- package/dist/PdSpaHelper.d.ts +0 -83
- package/dist/PdSpaHelper.d.ts.map +0 -1
- package/dist/PdSpaHelper.js +0 -492
- package/dist/defaultpage/default-confirm-popup.d.ts +0 -19
- package/dist/defaultpage/default-confirm-popup.d.ts.map +0 -1
- package/dist/defaultpage/default-confirm-popup.js +0 -70
- package/dist/defaultpage/default-dialog-popup.d.ts +0 -19
- package/dist/defaultpage/default-dialog-popup.d.ts.map +0 -1
- package/dist/defaultpage/default-dialog-popup.js +0 -103
- package/dist/defaultpage/default-login.d.ts +0 -6
- package/dist/defaultpage/default-login.d.ts.map +0 -1
- package/dist/defaultpage/default-login.js +0 -33
- package/dist/defaultpage/default-not-found.d.ts +0 -6
- package/dist/defaultpage/default-not-found.d.ts.map +0 -1
- package/dist/defaultpage/default-popup.d.ts +0 -7
- package/dist/defaultpage/default-popup.d.ts.map +0 -1
- package/dist/defaultpage/default-popup.js +0 -24
- package/dist/defaultpage/default-step-address.d.ts +0 -14
- package/dist/defaultpage/default-step-address.d.ts.map +0 -1
- package/dist/defaultpage/default-step-address.js +0 -77
- package/dist/defaultpage/default-step-summary.d.ts +0 -28
- package/dist/defaultpage/default-step-summary.d.ts.map +0 -1
- package/dist/defaultpage/default-step-summary.js +0 -67
- package/dist/defaultpage/default-view-page.d.ts +0 -10
- package/dist/defaultpage/default-view-page.d.ts.map +0 -1
- package/dist/defaultpage/default-view-page.js +0 -70
- package/dist/defaultpage/default-wizard.d.ts +0 -37
- package/dist/defaultpage/default-wizard.d.ts.map +0 -1
- package/dist/defaultpage/default-wizard.js +0 -255
- package/dist/defaultpage/pd-default-wizard-step.d.ts +0 -60
- package/dist/defaultpage/pd-default-wizard-step.d.ts.map +0 -1
- package/dist/defaultpage/pd-default-wizard-step.js +0 -144
- package/dist/generated/locale-wrapper/be-wrapper.d.ts +0 -63
- package/dist/generated/locale-wrapper/be-wrapper.d.ts.map +0 -1
- package/dist/generated/locale-wrapper/de-wrapper.d.ts +0 -63
- package/dist/generated/locale-wrapper/de-wrapper.d.ts.map +0 -1
- package/dist/generated/locale-wrapper/en-wrapper.d.ts +0 -63
- package/dist/generated/locale-wrapper/en-wrapper.d.ts.map +0 -1
- package/dist/helper/blob-helper.d.ts +0 -3
- package/dist/helper/blob-helper.d.ts.map +0 -1
- package/dist/helper/blob-helper.js +0 -35
- package/dist/helper/date-helper.d.ts +0 -27
- package/dist/helper/date-helper.d.ts.map +0 -1
- package/dist/helper/date-helper.js +0 -129
- package/dist/helper/locale-format.d.ts +0 -4
- package/dist/helper/locale-format.d.ts.map +0 -1
- package/dist/helper/locale-format.js +0 -16
- package/dist/helper/number-helper.d.ts +0 -2
- package/dist/helper/number-helper.d.ts.map +0 -1
- package/dist/helper/number-helper.js +0 -13
- package/dist/helper/price-helper.d.ts +0 -5
- package/dist/helper/price-helper.d.ts.map +0 -1
- package/dist/helper/price-helper.js +0 -22
- package/dist/helper/text-helper.d.ts +0 -3
- package/dist/helper/text-helper.d.ts.map +0 -1
- package/dist/helper/text-helper.js +0 -4
- package/dist/popup/wizard-close-popup.d.ts +0 -11
- package/dist/popup/wizard-close-popup.d.ts.map +0 -1
- package/dist/popup/wizard-close-popup.js +0 -63
- package/dist/popup/wizard-reload-popup.d.ts +0 -14
- package/dist/popup/wizard-reload-popup.d.ts.map +0 -1
- package/dist/popup/wizard-reload-popup.js +0 -76
- package/dist/service-provider/firebase/auth.d.ts +0 -19
- package/dist/service-provider/firebase/auth.d.ts.map +0 -1
- package/dist/service-provider/firebase/auth.js +0 -62
- package/dist/service-provider/firebase/firestorage-client.d.ts +0 -22
- package/dist/service-provider/firebase/firestorage-client.d.ts.map +0 -1
- package/dist/service-provider/firebase/firestorage-client.js +0 -226
- package/dist/service-provider/firebase/firestore-client.d.ts +0 -12
- package/dist/service-provider/firebase/firestore-client.d.ts.map +0 -1
- package/dist/service-provider/firebase/firestore-client.js +0 -25
- package/dist/service-provider/firebase/functions-client.d.ts +0 -10
- package/dist/service-provider/firebase/functions-client.d.ts.map +0 -1
- package/dist/service-provider/firebase/functions-client.js +0 -63
- package/dist/service-provider/firebase/messagingFirebaseClient.d.ts +0 -9
- package/dist/service-provider/firebase/messagingFirebaseClient.d.ts.map +0 -1
- package/dist/service-provider/firebase/messagingFirebaseClient.js +0 -69
- package/dist/service-provider/mock/auth.d.ts +0 -6
- package/dist/service-provider/mock/auth.d.ts.map +0 -1
- package/dist/service-provider/mock/auth.js +0 -60
- package/dist/service-provider/mock/function-client.d.ts +0 -7
- package/dist/service-provider/mock/function-client.d.ts.map +0 -1
- package/dist/service-provider/mock/function-client.js +0 -30
- package/dist/service-provider/mock/storage-client.d.ts +0 -11
- package/dist/service-provider/mock/storage-client.d.ts.map +0 -1
- package/dist/service-provider/mock/storage-client.js +0 -106
- package/dist/service-provider/service-provider-impl.d.ts +0 -27
- package/dist/service-provider/service-provider-impl.d.ts.map +0 -1
- package/dist/service-provider/service-provider-impl.js +0 -222
- package/dist/store/indexDB.d.ts.map +0 -1
- package/dist/stories/address-edit.stories.d.ts +0 -27
- package/dist/stories/address-edit.stories.d.ts.map +0 -1
- package/dist/stories/address-new.stories.d.ts +0 -33
- package/dist/stories/address-new.stories.d.ts.map +0 -1
- package/dist/stories/default-confirm-popup.stories.d.ts +0 -24
- package/dist/stories/default-confirm-popup.stories.d.ts.map +0 -1
- package/dist/stories/default-dialog-popup.stories.d.ts +0 -23
- package/dist/stories/default-dialog-popup.stories.d.ts.map +0 -1
- package/dist/stories/default-login.stories.d.ts +0 -10
- package/dist/stories/default-login.stories.d.ts.map +0 -1
- package/dist/stories/default-popup.stories.d.ts +0 -9
- package/dist/stories/default-popup.stories.d.ts.map +0 -1
- package/dist/stories/pd-loading-state.stories.d.ts +0 -30
- package/dist/stories/pd-loading-state.stories.d.ts.map +0 -1
- package/dist/stories/pd-toast.stories.d.ts +0 -27
- package/dist/stories/pd-toast.stories.d.ts.map +0 -1
- package/dist/stories/routing.stories.d.ts +0 -24
- package/dist/stories/routing.stories.d.ts.map +0 -1
- package/dist/stories/test-impls/address-test.d.ts +0 -6
- package/dist/stories/test-impls/address-test.d.ts.map +0 -1
- package/dist/stories/test-impls/test-mock-app.d.ts +0 -15
- package/dist/stories/test-impls/test-mock-app.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts +0 -7
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts +0 -5
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts +0 -17
- package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts.map +0 -1
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts +0 -16
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts +0 -8
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts +0 -8
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts +0 -8
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts +0 -13
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts.map +0 -1
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts +0 -5
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts.map +0 -1
- package/dist/stories/test-wizard-step.stories.d.ts +0 -11
- package/dist/stories/test-wizard-step.stories.d.ts.map +0 -1
- package/dist/stories/test-wizard.stories.d.ts +0 -9
- package/dist/stories/test-wizard.stories.d.ts.map +0 -1
- package/dist/tmpown/pd-loading-state.d.ts +0 -9
- package/dist/tmpown/pd-loading-state.d.ts.map +0 -1
- package/dist/tmpown/pd-loading-state.js +0 -196
- package/dist/tmpown/pd-login.d.ts +0 -13
- package/dist/tmpown/pd-login.d.ts.map +0 -1
- package/dist/tmpown/pd-login.js +0 -165
- package/dist/tmpown/pd-toast.d.ts +0 -13
- package/dist/tmpown/pd-toast.d.ts.map +0 -1
- package/dist/tmpown/pd-toast.js +0 -127
|
@@ -1,226 +0,0 @@
|
|
|
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
|
-
|
|
5
|
-
const storageLogger = createLogger("PdStorage");
|
|
6
|
-
const DEFAULT_STORAGE = "default_storage";
|
|
7
|
-
let storageConf;
|
|
8
|
-
const storageMap = /* @__PURE__ */ new Map();
|
|
9
|
-
const initFirestorage = (app, defaultStorage, storageConfig) => {
|
|
10
|
-
try {
|
|
11
|
-
storageConf = storageConfig;
|
|
12
|
-
if (defaultStorage) {
|
|
13
|
-
storageMap.set(DEFAULT_STORAGE, {
|
|
14
|
-
storage: getStorage(app)
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
storageConfig?.storage.forEach((storeConfig) => {
|
|
18
|
-
const storage = getStorage(app, storeConfig.name);
|
|
19
|
-
const storageRootRef = ref(storage);
|
|
20
|
-
storageMap.set(storeConfig.name, {
|
|
21
|
-
storage,
|
|
22
|
-
references: [
|
|
23
|
-
{
|
|
24
|
-
key: "ROOT",
|
|
25
|
-
storageRef: storageRootRef
|
|
26
|
-
},
|
|
27
|
-
...storeConfig.references.map((refConfigString) => ({
|
|
28
|
-
key: refConfigString,
|
|
29
|
-
storageRef: ref(storageRootRef, refConfigString)
|
|
30
|
-
}))
|
|
31
|
-
]
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
} catch (error) {
|
|
35
|
-
storageLogger.error("Init error", error);
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const getFirestorageConf = () => storageConf;
|
|
39
|
-
const uploadFirestorageFile = (file) => {
|
|
40
|
-
if (!storageMap || storageMap.size === 0) {
|
|
41
|
-
throw new Error("No storage is configured");
|
|
42
|
-
}
|
|
43
|
-
const { storageName, referenceKey, subFolderName, fileName } = file;
|
|
44
|
-
const storageConf2 = storageMap.get(storageName || DEFAULT_STORAGE);
|
|
45
|
-
if (!storageConf2) {
|
|
46
|
-
throw new Error(`Invalid storage name: ${storageName || DEFAULT_STORAGE}`);
|
|
47
|
-
}
|
|
48
|
-
if (!storageConf2.references || storageConf2.references.length === 0) {
|
|
49
|
-
throw new Error(
|
|
50
|
-
`No references configured for storage: ${storageName || DEFAULT_STORAGE}`
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
const uploadRefConf = referenceKey ? storageConf2.references.filter(
|
|
54
|
-
(filterRef) => filterRef.key === referenceKey
|
|
55
|
-
)[0] : storageConf2.references[0];
|
|
56
|
-
if (!uploadRefConf || !uploadRefConf.storageRef) {
|
|
57
|
-
throw new Error(`No valid reference for key: ${referenceKey}`);
|
|
58
|
-
}
|
|
59
|
-
const fileRef = ref(
|
|
60
|
-
uploadRefConf.storageRef,
|
|
61
|
-
subFolderName ? `${subFolderName}/${fileName}` : fileName
|
|
62
|
-
);
|
|
63
|
-
const metadata = {
|
|
64
|
-
customMetadata: {
|
|
65
|
-
creator: getUser()?.displayName,
|
|
66
|
-
comment: file.description,
|
|
67
|
-
name: file.descriptionName,
|
|
68
|
-
readonly: file.readonly ? "true" : "false"
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
return uploadString(fileRef, file.base64DataURL, "data_url", metadata);
|
|
72
|
-
};
|
|
73
|
-
const fetchItemsAndFolders = async (usedRef, storageName, refKey, includeMetaData = false, includeFolder = false) => {
|
|
74
|
-
try {
|
|
75
|
-
const itemRefs = [];
|
|
76
|
-
const metaPromises = [];
|
|
77
|
-
const res = await listAll(usedRef);
|
|
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
|
-
});
|
|
89
|
-
res.items.forEach((itemRef) => {
|
|
90
|
-
itemRefs.push({
|
|
91
|
-
fileName: itemRef.name,
|
|
92
|
-
filePath: itemRef.fullPath,
|
|
93
|
-
storageName,
|
|
94
|
-
refKey
|
|
95
|
-
});
|
|
96
|
-
if (includeMetaData) {
|
|
97
|
-
metaPromises.push(getMetadata(itemRef));
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
if (includeFolder) {
|
|
101
|
-
await Promise.all(
|
|
102
|
-
res.prefixes.map(async (folderRef) => {
|
|
103
|
-
const folderRes = await listAll(folderRef);
|
|
104
|
-
folderRes.items.forEach((subItemRef) => {
|
|
105
|
-
itemRefs.push({
|
|
106
|
-
fileName: subItemRef.name,
|
|
107
|
-
filePath: subItemRef.fullPath,
|
|
108
|
-
storageName,
|
|
109
|
-
refKey,
|
|
110
|
-
subFolderName: folderRef.name
|
|
111
|
-
});
|
|
112
|
-
if (includeMetaData) {
|
|
113
|
-
metaPromises.push(getMetadata(subItemRef));
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
})
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
if (includeMetaData) {
|
|
120
|
-
const metaResults = await Promise.all(metaPromises);
|
|
121
|
-
return itemRefs.map(
|
|
122
|
-
(item, index) => processMetadata(item, metaResults[index])
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
return itemRefs;
|
|
126
|
-
} catch (error) {
|
|
127
|
-
storageLogger.error("Error during file and folder listing:", error);
|
|
128
|
-
throw error;
|
|
129
|
-
}
|
|
130
|
-
};
|
|
131
|
-
const getFirestorageFile = async (storageName, refKey, storageURI, includeMetaData = false) => {
|
|
132
|
-
try {
|
|
133
|
-
if (!storageMap || storageMap.size === 0) {
|
|
134
|
-
throw new Error("No storage is configured");
|
|
135
|
-
}
|
|
136
|
-
const storageConf2 = storageMap.get(storageName);
|
|
137
|
-
if (!storageConf2) {
|
|
138
|
-
throw new Error(`Invalid storage name: ${storageName}`);
|
|
139
|
-
}
|
|
140
|
-
const storageRef = ref(storageConf2.storage, storageURI);
|
|
141
|
-
const storageDocument = {
|
|
142
|
-
fileName: storageRef.name,
|
|
143
|
-
filePath: storageRef.fullPath,
|
|
144
|
-
storageName,
|
|
145
|
-
refKey
|
|
146
|
-
};
|
|
147
|
-
if (includeMetaData) {
|
|
148
|
-
const metadata = await getMetadata(storageRef);
|
|
149
|
-
return {
|
|
150
|
-
...storageDocument,
|
|
151
|
-
creation: new Date(metadata.timeCreated),
|
|
152
|
-
documentType: metadata.contentType,
|
|
153
|
-
creator: metadata.customMetadata?.creator,
|
|
154
|
-
descriptionName: metadata.customMetadata?.name,
|
|
155
|
-
description: metadata.customMetadata?.comment,
|
|
156
|
-
size: metadata.size,
|
|
157
|
-
readonly: metadata.customMetadata?.readonly === "true",
|
|
158
|
-
metaData: metadata
|
|
159
|
-
};
|
|
160
|
-
}
|
|
161
|
-
return storageDocument;
|
|
162
|
-
} catch (error) {
|
|
163
|
-
storageLogger.error("Error creating StorageDocument:", error);
|
|
164
|
-
throw error;
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
const getFirestorageFileList = (storageName, refKey, subFolder, includeMetaData) => {
|
|
168
|
-
if (!storageMap || storageMap.size === 0) {
|
|
169
|
-
throw new Error("No storage is configured");
|
|
170
|
-
}
|
|
171
|
-
const storageConf2 = storageMap.get(storageName);
|
|
172
|
-
if (!storageConf2) {
|
|
173
|
-
throw new Error(`Invalid storage name: ${storageName}`);
|
|
174
|
-
}
|
|
175
|
-
if (!storageConf2.references || storageConf2.references.length === 0) {
|
|
176
|
-
throw new Error(
|
|
177
|
-
`No references configured for storage: ${storageName || DEFAULT_STORAGE}`
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
const storageRef = storageConf2.references.filter(
|
|
181
|
-
(refIt) => refIt.key === refKey
|
|
182
|
-
)[0];
|
|
183
|
-
if (!storageRef) {
|
|
184
|
-
throw new Error(
|
|
185
|
-
`No reference available for storage: ${storageName || DEFAULT_STORAGE} and ref: ${refKey}`
|
|
186
|
-
);
|
|
187
|
-
}
|
|
188
|
-
const usedRef = subFolder ? ref(storageRef.storageRef, subFolder) : storageRef.storageRef;
|
|
189
|
-
return fetchItemsAndFolders(
|
|
190
|
-
usedRef,
|
|
191
|
-
storageName,
|
|
192
|
-
refKey,
|
|
193
|
-
includeMetaData,
|
|
194
|
-
true
|
|
195
|
-
);
|
|
196
|
-
};
|
|
197
|
-
const downloadFileFirestorage = (file) => {
|
|
198
|
-
if (!storageMap || storageMap.size === 0) {
|
|
199
|
-
throw new Error("No storage is configured");
|
|
200
|
-
}
|
|
201
|
-
const storageConf2 = storageMap.get(file.storageName);
|
|
202
|
-
if (!storageConf2) {
|
|
203
|
-
throw new Error(`Invalid storage name: ${file.storageName}`);
|
|
204
|
-
}
|
|
205
|
-
const usedRef = ref(storageConf2.storage, file.filePath);
|
|
206
|
-
return getDownloadURL(usedRef);
|
|
207
|
-
};
|
|
208
|
-
async function deleteFirestorageDocument(deleteFile) {
|
|
209
|
-
if (!deleteFile.filePath) {
|
|
210
|
-
throw new Error("File path is required to delete a document.");
|
|
211
|
-
}
|
|
212
|
-
const storageConf2 = storageMap.get(deleteFile.storageName);
|
|
213
|
-
if (!storageConf2) {
|
|
214
|
-
throw new Error(`Invalid storage name: ${deleteFile.storageName}`);
|
|
215
|
-
}
|
|
216
|
-
const deleteRef = ref(storageConf2.storage, deleteFile.filePath);
|
|
217
|
-
try {
|
|
218
|
-
await deleteObject(deleteRef);
|
|
219
|
-
storageLogger.info(`File ${deleteFile.fileName} successfully deleted.`);
|
|
220
|
-
} catch (error) {
|
|
221
|
-
storageLogger.error("Error deleting file:", error);
|
|
222
|
-
throw error;
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
export { deleteFirestorageDocument, downloadFileFirestorage, getFirestorageConf, getFirestorageFile, getFirestorageFileList, initFirestorage, uploadFirestorageFile };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from 'firebase/app';
|
|
2
|
-
import { Firestore } from 'firebase/firestore';
|
|
3
|
-
import { CollectionContraint } from '../service-provider-model';
|
|
4
|
-
/**
|
|
5
|
-
* During start/load application, initialize functions.
|
|
6
|
-
*
|
|
7
|
-
* @param {*} app - initialized app.
|
|
8
|
-
*/
|
|
9
|
-
export declare const initFirestore: (app: FirebaseApp) => void;
|
|
10
|
-
export declare const getDB: () => Firestore;
|
|
11
|
-
export declare const getFirebaseCollectionListener: (callback: (query: any) => void, col: string, constraints?: CollectionContraint[]) => import('firebase/firestore').Unsubscribe;
|
|
12
|
-
//# sourceMappingURL=firestore-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,25 +0,0 @@
|
|
|
1
|
-
import { getFirestore, where, query, collection, onSnapshot } from 'firebase/firestore';
|
|
2
|
-
import { defaultLogger } from '../../helper/logger.js';
|
|
3
|
-
|
|
4
|
-
let db;
|
|
5
|
-
const initFirestore = (app) => {
|
|
6
|
-
try {
|
|
7
|
-
db = getFirestore(app);
|
|
8
|
-
} catch (error) {
|
|
9
|
-
defaultLogger.error("Error during firestore init", error);
|
|
10
|
-
}
|
|
11
|
-
};
|
|
12
|
-
const getFirebaseCollectionListener = (callback, col, constraints) => {
|
|
13
|
-
const queryConstraints = (constraints || []).map(
|
|
14
|
-
(constraint) => {
|
|
15
|
-
if (constraint.type === "where") {
|
|
16
|
-
return where(constraint.field, constraint.operator, constraint.value);
|
|
17
|
-
}
|
|
18
|
-
throw new Error(`Unkown constraint type: ${constraint.type}`);
|
|
19
|
-
}
|
|
20
|
-
);
|
|
21
|
-
const q = query(collection(db, col), ...queryConstraints);
|
|
22
|
-
return onSnapshot(q, (querySnapshot) => callback(querySnapshot));
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
export { getFirebaseCollectionListener, initFirestore };
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from 'firebase/app';
|
|
2
|
-
import { FunctionDefinition, FunctionResult, FunctionsConfig } from '../service-provider-model.js';
|
|
3
|
-
/**
|
|
4
|
-
* During start/load application, initialize functions.
|
|
5
|
-
*
|
|
6
|
-
* @param {*} app - initialized app.
|
|
7
|
-
*/
|
|
8
|
-
export declare const initFunctions: (app: FirebaseApp, functionsConfig: FunctionsConfig) => void;
|
|
9
|
-
export declare const callFunction: (def: FunctionDefinition, functionInput: any) => Promise<FunctionResult>;
|
|
10
|
-
//# sourceMappingURL=functions-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"functions-client.d.ts","sourceRoot":"","sources":["../../../src/service-provider/firebase/functions-client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAEL,kBAAkB,EAClB,cAAc,EACd,eAAe,EAEhB,MAAM,8BAA8B,CAAC;AAUtC;;;;GAIG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,WAAW,EAChB,iBAAiB,eAAe,SAajC,CAAC;AAgGF,eAAO,MAAM,YAAY,GACvB,KAAK,kBAAkB,EACvB,eAAe,GAAG,KACjB,OAAO,CAAC,cAAc,CAA6C,CAAC"}
|
|
@@ -1,63 +0,0 @@
|
|
|
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
|
-
|
|
8
|
-
const functionLogger = createLogger("PdFunctions");
|
|
9
|
-
const functionMap = /* @__PURE__ */ new Map();
|
|
10
|
-
const initFunctions = (app, functionsConfig) => {
|
|
11
|
-
try {
|
|
12
|
-
const functions = getFunctions(app, functionsConfig.region);
|
|
13
|
-
functionsConfig.functions.forEach((func) => {
|
|
14
|
-
functionMap.set(func, httpsCallable(functions, func.name));
|
|
15
|
-
});
|
|
16
|
-
} catch (error) {
|
|
17
|
-
functionLogger.error("error during function result", error);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const internalCallFunction = async (def, functionInput) => {
|
|
21
|
-
const funcRef = functionMap.get(def);
|
|
22
|
-
if (!funcRef) {
|
|
23
|
-
functionLogger.error("No function available for ", def.name);
|
|
24
|
-
throw new Error("Illegal state, no function available");
|
|
25
|
-
}
|
|
26
|
-
try {
|
|
27
|
-
const funcResult = await funcRef(functionInput);
|
|
28
|
-
if (!funcResult || !funcResult.data) {
|
|
29
|
-
throw new Error("Illegal state, no valid response received");
|
|
30
|
-
}
|
|
31
|
-
const { statusCode, resultData } = funcResult.data;
|
|
32
|
-
if (def.successCodes.includes(statusCode)) {
|
|
33
|
-
return funcResult.data;
|
|
34
|
-
}
|
|
35
|
-
if (statusCode === SC_INVALID_USER) {
|
|
36
|
-
handleInvalidUser();
|
|
37
|
-
throw new BusinessError("Unauthorized access", statusCode);
|
|
38
|
-
}
|
|
39
|
-
if (statusCode && resultData) {
|
|
40
|
-
throw new BusinessError(resultData, statusCode);
|
|
41
|
-
}
|
|
42
|
-
throw new Error(`Unexpected error: ${statusCode} - ${resultData}`);
|
|
43
|
-
} catch (error) {
|
|
44
|
-
functionLogger.error("Error in internalCallFunction:", error);
|
|
45
|
-
throw error;
|
|
46
|
-
}
|
|
47
|
-
};
|
|
48
|
-
const handleInvalidUser = () => {
|
|
49
|
-
pdStore().dispatch(
|
|
50
|
-
toastAction({
|
|
51
|
-
txt: msg(
|
|
52
|
-
"Sie haben nicht die erforderlichen Berechtigungen, um diese Aktion auszuführen. Wenden Sie sich an Ihren Administrator.",
|
|
53
|
-
{ id: "spaH.toast.error.user.invalid" }
|
|
54
|
-
),
|
|
55
|
-
isError: true,
|
|
56
|
-
isSuccess: false,
|
|
57
|
-
duration: -1
|
|
58
|
-
})
|
|
59
|
-
);
|
|
60
|
-
};
|
|
61
|
-
const callFunction = async (def, functionInput) => internalCallFunction(def, functionInput);
|
|
62
|
-
|
|
63
|
-
export { callFunction, initFunctions };
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FirebaseApp } from 'firebase/app';
|
|
2
|
-
import { Messaging } from 'firebase/messaging';
|
|
3
|
-
import { MessagingConfig } from '../service-provider-model.js';
|
|
4
|
-
export declare const NOTIFICATION_TOKEN = "pd.spa.helper.notification.token";
|
|
5
|
-
export declare function prepareMessaging(app: FirebaseApp, messageConfig: MessagingConfig): void;
|
|
6
|
-
export declare const activateTokenChangeHandler: (appName: string) => void;
|
|
7
|
-
export declare const registerDevice: (registration: ServiceWorkerRegistration) => Promise<void>;
|
|
8
|
-
export declare const getFirebaseMessaging: () => Messaging;
|
|
9
|
-
//# sourceMappingURL=messagingFirebaseClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"messagingFirebaseClient.d.ts","sourceRoot":"","sources":["../../../src/service-provider/firebase/messagingFirebaseClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAA0B,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAQ/D,eAAO,MAAM,kBAAkB,qCAAqC,CAAC;AAOrE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,WAAW,EAChB,aAAa,EAAE,eAAe,QAI/B;AAED,eAAO,MAAM,0BAA0B,GAAI,SAAS,MAAM,SAczD,CAAC;AA8BF,eAAO,MAAM,cAAc,GACzB,cAAc,yBAAyB,kBAoBxC,CAAC;AAEF,eAAO,MAAM,oBAAoB,iBAAkB,CAAC"}
|
|
@@ -1,69 +0,0 @@
|
|
|
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
|
-
|
|
8
|
-
const NOTIFICATION_TOKEN = "pd.spa.helper.notification.token";
|
|
9
|
-
const messagingLogger = createLogger("PdMessaging");
|
|
10
|
-
let messaging;
|
|
11
|
-
let firebaseMessagingAppConfigKey;
|
|
12
|
-
function prepareMessaging(app, messageConfig) {
|
|
13
|
-
messaging = getMessaging(app);
|
|
14
|
-
firebaseMessagingAppConfigKey = messageConfig;
|
|
15
|
-
}
|
|
16
|
-
const activateTokenChangeHandler = (appName) => {
|
|
17
|
-
authIdTokenStateChanged(async (user) => {
|
|
18
|
-
if (user) {
|
|
19
|
-
const token = await user.getIdToken();
|
|
20
|
-
if (token) {
|
|
21
|
-
await update(USER_COLLECTION, {
|
|
22
|
-
id: appName,
|
|
23
|
-
userNameToken: user.displayName,
|
|
24
|
-
userIdToken: token
|
|
25
|
-
});
|
|
26
|
-
messagingLogger.info("UserToken stored in local db");
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
};
|
|
31
|
-
const initMessageToken = async (registration) => {
|
|
32
|
-
if (!messaging || !firebaseMessagingAppConfigKey || !registration) {
|
|
33
|
-
throw new Error("Messaging, Registration or Key not available");
|
|
34
|
-
}
|
|
35
|
-
const currentToken = await getToken(messaging, {
|
|
36
|
-
vapidKey: firebaseMessagingAppConfigKey.apidKey,
|
|
37
|
-
serviceWorkerRegistration: registration
|
|
38
|
-
});
|
|
39
|
-
if (currentToken) {
|
|
40
|
-
const storedToken = localStorage.getItem(NOTIFICATION_TOKEN);
|
|
41
|
-
if (storedToken !== currentToken) {
|
|
42
|
-
messagingLogger.info("Update new token in Backend");
|
|
43
|
-
pdStore().dispatch(
|
|
44
|
-
updateNewNotificationToken({
|
|
45
|
-
messagingToken: currentToken
|
|
46
|
-
})
|
|
47
|
-
);
|
|
48
|
-
} else {
|
|
49
|
-
messagingLogger.info("RegisterDevice: Stored token is valid");
|
|
50
|
-
}
|
|
51
|
-
} else {
|
|
52
|
-
messagingLogger.warn("No token received - no new token was generated.");
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const registerDevice = async (registration) => {
|
|
56
|
-
messagingLogger.info("Start registering app for messages and notifications");
|
|
57
|
-
if (Notification.permission === "default") {
|
|
58
|
-
await Notification.requestPermission();
|
|
59
|
-
}
|
|
60
|
-
if (Notification.permission === "granted") {
|
|
61
|
-
await initMessageToken(registration);
|
|
62
|
-
}
|
|
63
|
-
if (Notification.permission === "denied") {
|
|
64
|
-
messagingLogger.warn("Messaging not possible, missing rights");
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
const getFirebaseMessaging = () => messaging;
|
|
68
|
-
|
|
69
|
-
export { NOTIFICATION_TOKEN, activateTokenChangeHandler, getFirebaseMessaging, prepareMessaging, registerDevice };
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export declare const logoutMock: () => Promise<boolean>;
|
|
2
|
-
export declare const isAuthenticatedMock: () => boolean;
|
|
3
|
-
export declare const getAuthUserMock: () => unknown;
|
|
4
|
-
export declare const authStateChangedMock: (callback: (user: any) => void) => void;
|
|
5
|
-
export declare const loginMock: (user: string, sec: string) => Promise<unknown>;
|
|
6
|
-
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/service-provider/mock/auth.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,UAAU,QAAa,OAAO,CAAC,OAAO,CAOlD,CAAC;AAEF,eAAO,MAAM,mBAAmB,QAAO,OAMtC,CAAC;AAEF,eAAO,MAAM,eAAe,QAAO,OAMpB,CAAC;AAGhB,eAAO,MAAM,oBAAoB,GAAI,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,SAMjE,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,MAAM,MAAM,EACZ,KAAK,MAAM,KACV,OAAO,CAAC,OAAO,CA2BjB,CAAC"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
const LOCALSTORE_ITEM_KEY = "pdUserLogin";
|
|
2
|
-
const HARDCODED_USER = "mock@pd-spa-helper.com";
|
|
3
|
-
const HARDCODED_PWD = "mock";
|
|
4
|
-
let loginAvailable;
|
|
5
|
-
const checkLocalStore = () => {
|
|
6
|
-
const userItem = localStorage.getItem(LOCALSTORE_ITEM_KEY);
|
|
7
|
-
return userItem === "true";
|
|
8
|
-
};
|
|
9
|
-
const logoutMock = async () => {
|
|
10
|
-
console.log("Do MOCK logout");
|
|
11
|
-
loginAvailable = void 0;
|
|
12
|
-
{
|
|
13
|
-
localStorage.removeItem(LOCALSTORE_ITEM_KEY);
|
|
14
|
-
}
|
|
15
|
-
return Promise.resolve(true);
|
|
16
|
-
};
|
|
17
|
-
const isAuthenticatedMock = () => {
|
|
18
|
-
if (loginAvailable === void 0) {
|
|
19
|
-
console.log("MOCK: check authentication");
|
|
20
|
-
loginAvailable = checkLocalStore() ;
|
|
21
|
-
}
|
|
22
|
-
return loginAvailable;
|
|
23
|
-
};
|
|
24
|
-
const getAuthUserMock = () => isAuthenticatedMock() ? {
|
|
25
|
-
uid: "34234234",
|
|
26
|
-
displayName: "userMockName"
|
|
27
|
-
} : void 0;
|
|
28
|
-
let callbackLogin;
|
|
29
|
-
const authStateChangedMock = (callback) => {
|
|
30
|
-
callbackLogin = callback;
|
|
31
|
-
console.log("Not implemented for MOCK, do call once if authenticated");
|
|
32
|
-
if (isAuthenticatedMock()) {
|
|
33
|
-
callbackLogin(getAuthUserMock());
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
const loginMock = async (user, sec) => {
|
|
37
|
-
console.log("MOCK: do authentication for user: ", user);
|
|
38
|
-
await new Promise((resolve) => setTimeout(resolve, 2e3));
|
|
39
|
-
let valid = false;
|
|
40
|
-
if (user === HARDCODED_USER && sec === HARDCODED_PWD) {
|
|
41
|
-
{
|
|
42
|
-
localStorage.setItem(LOCALSTORE_ITEM_KEY, "true");
|
|
43
|
-
}
|
|
44
|
-
valid = true;
|
|
45
|
-
loginAvailable = true;
|
|
46
|
-
}
|
|
47
|
-
if (valid) {
|
|
48
|
-
const userMock = getAuthUserMock();
|
|
49
|
-
if (callbackLogin) {
|
|
50
|
-
callbackLogin(userMock);
|
|
51
|
-
}
|
|
52
|
-
return user;
|
|
53
|
-
}
|
|
54
|
-
const err = new Error("Invalid login");
|
|
55
|
-
const error = err;
|
|
56
|
-
error.code = "auth/wrong-password";
|
|
57
|
-
throw error;
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
export { authStateChangedMock, getAuthUserMock, isAuthenticatedMock, loginMock, logoutMock };
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { FunctionDefinition, FunctionResult } from '../service-provider-model.js';
|
|
2
|
-
export declare const callFunctionMock: (def: FunctionDefinition, functionInput: any) => Promise<FunctionResult>;
|
|
3
|
-
export declare const initMockResponse: (mock?: {
|
|
4
|
-
mockResponse?: Map<string, (functionInput: any) => FunctionResult>;
|
|
5
|
-
mockWaitTime?: number;
|
|
6
|
-
}) => void;
|
|
7
|
-
//# sourceMappingURL=function-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"function-client.d.ts","sourceRoot":"","sources":["../../../src/service-provider/mock/function-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAOtC,eAAO,MAAM,gBAAgB,GAC3B,KAAK,kBAAkB,EACvB,eAAe,GAAG,KACjB,OAAO,CAAC,cAAc,CAwBxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO;IACtC,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,EAAE,GAAG,KAAK,cAAc,CAAC,CAAC;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,SAGA,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
const DEFAULT_TIMEOUT = 2e3;
|
|
2
|
-
let mockResponse;
|
|
3
|
-
let mockTimeout = DEFAULT_TIMEOUT;
|
|
4
|
-
const callFunctionMock = async (def, functionInput) => {
|
|
5
|
-
let key;
|
|
6
|
-
if (functionInput?.detailsId) {
|
|
7
|
-
key = `${def.name}_${functionInput?.object}_detailsId`;
|
|
8
|
-
} else if (functionInput?.type) {
|
|
9
|
-
key = `${def.name}_${functionInput.object}_${functionInput.type}`;
|
|
10
|
-
} else {
|
|
11
|
-
key = `${def.name}_${functionInput?.object}`;
|
|
12
|
-
}
|
|
13
|
-
console.log("Mock function call", def, functionInput, key);
|
|
14
|
-
const timeout = () => new Promise((resolve) => {
|
|
15
|
-
window.setTimeout(() => {
|
|
16
|
-
resolve("Done");
|
|
17
|
-
}, mockTimeout);
|
|
18
|
-
});
|
|
19
|
-
await timeout();
|
|
20
|
-
if (mockResponse && mockResponse.has(key)) {
|
|
21
|
-
return Promise.resolve(mockResponse.get(key)(functionInput));
|
|
22
|
-
}
|
|
23
|
-
throw new Error("No data with right state available");
|
|
24
|
-
};
|
|
25
|
-
const initMockResponse = (mock) => {
|
|
26
|
-
mockResponse = mock?.mockResponse || /* @__PURE__ */ new Map();
|
|
27
|
-
mockTimeout = mock?.mockWaitTime || DEFAULT_TIMEOUT;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export { callFunctionMock, initMockResponse };
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { FileStorageConfig, StorageDocument, UploadFile } from '../service-provider-model.js';
|
|
2
|
-
/**
|
|
3
|
-
* During start/load application, initialize functions.
|
|
4
|
-
*
|
|
5
|
-
* @param {*} app - initialized app.
|
|
6
|
-
*/
|
|
7
|
-
export declare const initStorageMock: (defaultStorage?: string, storageConfig?: FileStorageConfig) => void;
|
|
8
|
-
export declare const uploadStorageFileMock: (file: UploadFile) => Promise<any>;
|
|
9
|
-
export declare const downloadFileMock: (file: StorageDocument) => Promise<string>;
|
|
10
|
-
export declare const getMockFileList: (storageName: string, refKey: string, subFolder?: string, includeMetadata?: boolean) => Promise<StorageDocument[]>;
|
|
11
|
-
//# sourceMappingURL=storage-client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage-client.d.ts","sourceRoot":"","sources":["../../../src/service-provider/mock/storage-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,UAAU,EACX,MAAM,8BAA8B,CAAC;AAmDtC;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,iBAAiB,MAAM,EACvB,gBAAgB,iBAAiB,SAiClC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,MAAM,UAAU,KAAG,OAAO,CAAC,GAAG,CA8BnE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,eAAe,oBAGrD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,kBAAkB,OAAO,KACxB,OAAO,CAAC,eAAe,EAAE,CAiB3B,CAAC"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
const DEFAULT_STORAGE = "default_storage";
|
|
2
|
-
const downloadFile = (buffer) => {
|
|
3
|
-
const data = new Blob([buffer], {
|
|
4
|
-
type: "image/png"
|
|
5
|
-
});
|
|
6
|
-
const url = window.URL.createObjectURL(data);
|
|
7
|
-
window.open(url);
|
|
8
|
-
};
|
|
9
|
-
const base64ToArrayBuffer = (base64) => {
|
|
10
|
-
const test = base64.replace("data:image/png;base64,", "");
|
|
11
|
-
const binaryString = atob(test);
|
|
12
|
-
const bytes = new Uint8Array(binaryString.length);
|
|
13
|
-
for (let i = 0; i < binaryString.length; i += 1) {
|
|
14
|
-
bytes[i] = binaryString.charCodeAt(i);
|
|
15
|
-
}
|
|
16
|
-
return bytes.buffer;
|
|
17
|
-
};
|
|
18
|
-
class MockStorage {
|
|
19
|
-
constructor(storageName) {
|
|
20
|
-
this._name = storageName;
|
|
21
|
-
}
|
|
22
|
-
// eslint-disable-next-line class-methods-use-this
|
|
23
|
-
uploadFile(filePath, file) {
|
|
24
|
-
downloadFile(base64ToArrayBuffer(file.base64DataURL));
|
|
25
|
-
return Promise.resolve({
|
|
26
|
-
fullPath: filePath
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
const storageMap = /* @__PURE__ */ new Map();
|
|
31
|
-
const initStorageMock = (defaultStorage, storageConfig) => {
|
|
32
|
-
console.log("Init mock Storage");
|
|
33
|
-
try {
|
|
34
|
-
if (defaultStorage) {
|
|
35
|
-
storageMap.set(DEFAULT_STORAGE, {
|
|
36
|
-
storage: new MockStorage(DEFAULT_STORAGE)
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
storageConfig?.storage.forEach((storeConfig) => {
|
|
40
|
-
const storage = new MockStorage(storeConfig.name);
|
|
41
|
-
const storageRootRef = "/";
|
|
42
|
-
storageMap.set(storeConfig.name, {
|
|
43
|
-
storage,
|
|
44
|
-
references: [
|
|
45
|
-
{
|
|
46
|
-
key: "ROOT",
|
|
47
|
-
storageRef: storageRootRef
|
|
48
|
-
},
|
|
49
|
-
...storeConfig.references.map((refConfigString) => ({
|
|
50
|
-
key: refConfigString,
|
|
51
|
-
storageRef: `${storageRootRef}/${refConfigString}`
|
|
52
|
-
}))
|
|
53
|
-
]
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
} catch (error) {
|
|
57
|
-
console.error(error);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const uploadStorageFileMock = (file) => {
|
|
61
|
-
if (!storageMap || storageMap.size === 0) {
|
|
62
|
-
throw new Error("No storage is configured");
|
|
63
|
-
}
|
|
64
|
-
const { storageName, referenceKey, subFolderName, fileName } = file;
|
|
65
|
-
const storageConf = storageMap.get(storageName || DEFAULT_STORAGE);
|
|
66
|
-
if (!storageConf) {
|
|
67
|
-
throw new Error(`Invalid storage name: ${storageName || DEFAULT_STORAGE}`);
|
|
68
|
-
}
|
|
69
|
-
if (!storageConf.references || storageConf.references.length === 0) {
|
|
70
|
-
throw new Error(
|
|
71
|
-
`No references configured for storage: ${storageName || DEFAULT_STORAGE}`
|
|
72
|
-
);
|
|
73
|
-
}
|
|
74
|
-
const uploadRefConf = referenceKey ? storageConf.references.filter(
|
|
75
|
-
(filterRef) => filterRef.key === referenceKey
|
|
76
|
-
)[0] : storageConf.references[0];
|
|
77
|
-
if (!uploadRefConf || !uploadRefConf.storageRef) {
|
|
78
|
-
throw new Error(`No valid reference for key: ${referenceKey}`);
|
|
79
|
-
}
|
|
80
|
-
const fileRef = `${uploadRefConf.storageRef}/${subFolderName ? `${subFolderName}/${fileName}` : fileName}`;
|
|
81
|
-
return storageConf.storage.uploadFile(fileRef, file);
|
|
82
|
-
};
|
|
83
|
-
const downloadFileMock = (file) => {
|
|
84
|
-
alert("Not implemented for mock");
|
|
85
|
-
return Promise.resolve("");
|
|
86
|
-
};
|
|
87
|
-
const getMockFileList = (storageName, refKey, subFolder, includeMetadata) => {
|
|
88
|
-
console.log(
|
|
89
|
-
"Searching for Documents in ",
|
|
90
|
-
storageName,
|
|
91
|
-
refKey,
|
|
92
|
-
subFolder,
|
|
93
|
-
includeMetadata
|
|
94
|
-
);
|
|
95
|
-
return Promise.resolve([
|
|
96
|
-
{
|
|
97
|
-
fileName: "workReport.png",
|
|
98
|
-
filePath: "workReports/1234234f2fswf/workReport.png",
|
|
99
|
-
documentType: "ToDo",
|
|
100
|
-
storageName,
|
|
101
|
-
refKey
|
|
102
|
-
}
|
|
103
|
-
]);
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
export { downloadFileMock, getMockFileList, initStorageMock, uploadStorageFileMock };
|