@progressive-development/pd-spa-helper 0.9.1 → 1.0.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/dist/PdSpaHelper.d.ts +83 -0
- package/dist/PdSpaHelper.d.ts.map +1 -0
- package/dist/PdSpaHelper.js +492 -0
- package/dist/defaultpage/default-confirm-popup.d.ts +19 -0
- package/dist/defaultpage/default-confirm-popup.d.ts.map +1 -0
- package/dist/defaultpage/default-confirm-popup.js +70 -0
- package/dist/defaultpage/default-dialog-popup.d.ts +19 -0
- package/dist/defaultpage/default-dialog-popup.d.ts.map +1 -0
- package/dist/defaultpage/default-dialog-popup.js +103 -0
- package/dist/defaultpage/default-login.d.ts +6 -0
- package/dist/defaultpage/default-login.d.ts.map +1 -0
- package/dist/defaultpage/default-login.js +33 -0
- package/dist/defaultpage/default-not-found.d.ts +6 -0
- package/dist/defaultpage/default-not-found.d.ts.map +1 -0
- package/dist/{components/default-not-found/DefaultNotFound.js → defaultpage/default-not-found.js} +3 -10
- package/dist/defaultpage/default-popup.d.ts +7 -0
- package/dist/defaultpage/default-popup.d.ts.map +1 -0
- package/dist/defaultpage/default-popup.js +24 -0
- package/dist/defaultpage/default-step-address.d.ts +14 -0
- package/dist/defaultpage/default-step-address.d.ts.map +1 -0
- package/dist/defaultpage/default-step-address.js +77 -0
- package/dist/defaultpage/default-step-summary.d.ts +28 -0
- package/dist/defaultpage/default-step-summary.d.ts.map +1 -0
- package/dist/defaultpage/default-step-summary.js +67 -0
- package/dist/defaultpage/default-view-page.d.ts +10 -0
- package/dist/defaultpage/default-view-page.d.ts.map +1 -0
- package/dist/defaultpage/default-view-page.js +70 -0
- package/dist/defaultpage/default-wizard.d.ts +37 -0
- package/dist/defaultpage/default-wizard.d.ts.map +1 -0
- package/dist/defaultpage/default-wizard.js +255 -0
- package/dist/defaultpage/pd-default-wizard-step.d.ts +60 -0
- package/dist/defaultpage/pd-default-wizard-step.d.ts.map +1 -0
- package/dist/defaultpage/pd-default-wizard-step.js +144 -0
- package/dist/generated/locale-wrapper/be-wrapper.d.ts +63 -0
- package/dist/generated/locale-wrapper/be-wrapper.d.ts.map +1 -0
- package/dist/generated/locale-wrapper/de-wrapper.d.ts +63 -0
- package/dist/generated/locale-wrapper/de-wrapper.d.ts.map +1 -0
- package/dist/generated/locale-wrapper/en-wrapper.d.ts +63 -0
- package/dist/generated/locale-wrapper/en-wrapper.d.ts.map +1 -0
- package/dist/generated/locales/be.d.ts +15 -1
- package/dist/generated/locales/be.d.ts.map +1 -1
- package/dist/generated/locales/be.js +15 -1
- package/dist/generated/locales/de.d.ts +15 -1
- package/dist/generated/locales/de.d.ts.map +1 -1
- package/dist/generated/locales/de.js +15 -1
- package/dist/generated/locales/en.d.ts +15 -1
- package/dist/generated/locales/en.d.ts.map +1 -1
- package/dist/generated/locales/en.js +15 -1
- package/dist/helper/blob-helper.d.ts +3 -0
- package/dist/helper/blob-helper.d.ts.map +1 -0
- package/dist/helper/blob-helper.js +35 -0
- package/dist/helper/date-helper.d.ts +27 -0
- package/dist/helper/date-helper.d.ts.map +1 -0
- package/dist/helper/date-helper.js +129 -0
- package/dist/helper/locale-format.d.ts +4 -0
- package/dist/helper/locale-format.d.ts.map +1 -0
- package/dist/helper/locale-format.js +16 -0
- package/dist/helper/logger.d.ts +12 -11
- package/dist/helper/logger.d.ts.map +1 -1
- package/dist/helper/logger.js +49 -10
- package/dist/helper/number-helper.d.ts +2 -0
- package/dist/helper/number-helper.d.ts.map +1 -0
- package/dist/helper/number-helper.js +13 -0
- package/dist/helper/price-helper.d.ts +5 -0
- package/dist/helper/price-helper.d.ts.map +1 -0
- package/dist/helper/price-helper.js +22 -0
- package/dist/helper/refresh-id-token.d.ts.map +1 -1
- package/dist/helper/refresh-id-token.js +4 -6
- package/dist/helper/text-helper.d.ts +3 -0
- package/dist/helper/text-helper.d.ts.map +1 -0
- package/dist/helper/text-helper.js +4 -0
- package/dist/index.d.ts +29 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -27
- package/dist/model/spa-model.d.ts +15 -14
- package/dist/model/spa-model.d.ts.map +1 -1
- package/dist/popup/wizard-close-popup.d.ts +11 -0
- package/dist/popup/wizard-close-popup.d.ts.map +1 -0
- package/dist/popup/wizard-close-popup.js +63 -0
- package/dist/popup/wizard-reload-popup.d.ts +14 -0
- package/dist/popup/wizard-reload-popup.d.ts.map +1 -0
- package/dist/popup/wizard-reload-popup.js +76 -0
- package/dist/router/PdRouterService.d.ts +1 -4
- package/dist/router/PdRouterService.d.ts.map +1 -1
- package/dist/router/PdRouterService.js +16 -40
- package/dist/service-provider/firebase/auth.d.ts +19 -0
- package/dist/service-provider/firebase/auth.d.ts.map +1 -0
- package/dist/service-provider/firebase/auth.js +62 -0
- package/dist/service-provider/firebase/firestorage-client.d.ts +22 -0
- package/dist/service-provider/firebase/firestorage-client.d.ts.map +1 -0
- package/dist/service-provider/firebase/firestorage-client.js +226 -0
- package/dist/service-provider/firebase/firestore-client.d.ts +12 -0
- package/dist/service-provider/firebase/firestore-client.d.ts.map +1 -0
- package/dist/service-provider/firebase/firestore-client.js +25 -0
- package/dist/service-provider/firebase/functions-client.d.ts +10 -0
- package/dist/service-provider/firebase/functions-client.d.ts.map +1 -0
- package/dist/service-provider/firebase/functions-client.js +63 -0
- package/dist/service-provider/firebase/messagingFirebaseClient.d.ts +9 -0
- package/dist/service-provider/firebase/messagingFirebaseClient.d.ts.map +1 -0
- package/dist/service-provider/firebase/messagingFirebaseClient.js +69 -0
- package/dist/service-provider/mock/auth.d.ts +6 -0
- package/dist/service-provider/mock/auth.d.ts.map +1 -0
- package/dist/service-provider/mock/auth.js +60 -0
- package/dist/service-provider/mock/function-client.d.ts +7 -0
- package/dist/service-provider/mock/function-client.d.ts.map +1 -0
- package/dist/service-provider/mock/function-client.js +30 -0
- package/dist/service-provider/mock/storage-client.d.ts +11 -0
- package/dist/service-provider/mock/storage-client.d.ts.map +1 -0
- package/dist/service-provider/mock/storage-client.js +106 -0
- package/dist/service-provider/service-provider-impl.d.ts +27 -0
- package/dist/service-provider/service-provider-impl.d.ts.map +1 -0
- package/dist/service-provider/service-provider-impl.js +222 -0
- package/dist/service-provider/service-provider-model.d.ts +7 -26
- package/dist/service-provider/service-provider-model.d.ts.map +1 -1
- package/dist/{db → store}/indexDB.d.ts +9 -9
- package/dist/store/indexDB.d.ts.map +1 -0
- package/dist/{db → store}/indexDB.js +12 -14
- package/dist/store/mini-rx.store.d.ts.map +1 -1
- package/dist/store/mini-rx.store.js +3 -1
- package/dist/store/spa-app-actions.d.ts +22 -5
- package/dist/store/spa-app-actions.d.ts.map +1 -1
- package/dist/store/spa-app-actions.js +8 -4
- package/dist/store/spa-app-effects.d.ts +17 -0
- package/dist/store/spa-app-effects.d.ts.map +1 -1
- package/dist/store/spa-app-effects.js +40 -2
- package/dist/store/spa-app-reducer.d.ts +10 -5
- package/dist/store/spa-app-reducer.d.ts.map +1 -1
- package/dist/store/spa-app-reducer.js +8 -17
- 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/address-edit.stories.d.ts +27 -0
- package/dist/stories/address-edit.stories.d.ts.map +1 -0
- package/dist/stories/address-new.stories.d.ts +33 -0
- package/dist/stories/address-new.stories.d.ts.map +1 -0
- package/dist/stories/default-confirm-popup.stories.d.ts +24 -0
- package/dist/stories/default-confirm-popup.stories.d.ts.map +1 -0
- package/dist/stories/default-dialog-popup.stories.d.ts +23 -0
- package/dist/stories/default-dialog-popup.stories.d.ts.map +1 -0
- package/dist/stories/default-login.stories.d.ts +10 -0
- package/dist/stories/default-login.stories.d.ts.map +1 -0
- package/dist/stories/default-popup.stories.d.ts +9 -0
- package/dist/stories/default-popup.stories.d.ts.map +1 -0
- package/dist/stories/pd-loading-state.stories.d.ts +30 -0
- package/dist/stories/pd-loading-state.stories.d.ts.map +1 -0
- package/dist/stories/pd-toast.stories.d.ts +27 -0
- package/dist/stories/pd-toast.stories.d.ts.map +1 -0
- package/dist/stories/routing.stories.d.ts +24 -0
- package/dist/stories/routing.stories.d.ts.map +1 -0
- package/dist/stories/test-impls/address-test.d.ts +6 -0
- package/dist/stories/test-impls/address-test.d.ts.map +1 -0
- package/dist/stories/test-impls/test-mock-app.d.ts +15 -0
- package/dist/stories/test-impls/test-mock-app.d.ts.map +1 -0
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts +7 -0
- package/dist/stories/test-impls/test-pages/test-home-page.d.ts.map +1 -0
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts +5 -0
- package/dist/stories/test-impls/test-pages/test-not-found-page.d.ts.map +1 -0
- package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts +17 -0
- package/dist/stories/test-impls/test-pages/test-wizard-step.d.ts.map +1 -0
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts +16 -0
- package/dist/stories/test-impls/test-pages/test-wizard.d.ts.map +1 -0
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts +8 -0
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-error.d.ts.map +1 -0
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts +8 -0
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-info.d.ts.map +1 -0
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts +8 -0
- package/dist/stories/test-impls/test-popups/default-confirm-popup-test-warn.d.ts.map +1 -0
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts +13 -0
- package/dist/stories/test-impls/test-popups/default-dialog-popup-test.d.ts.map +1 -0
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts +5 -0
- package/dist/stories/test-impls/test-popups/default-popup-test.d.ts.map +1 -0
- package/dist/stories/test-wizard-step.stories.d.ts +11 -0
- package/dist/stories/test-wizard-step.stories.d.ts.map +1 -0
- package/dist/stories/test-wizard.stories.d.ts +9 -0
- package/dist/stories/test-wizard.stories.d.ts.map +1 -0
- package/dist/tmpown/pd-loading-state.d.ts +9 -0
- package/dist/tmpown/pd-loading-state.d.ts.map +1 -0
- package/dist/tmpown/pd-loading-state.js +196 -0
- package/dist/tmpown/pd-login.d.ts +13 -0
- package/dist/tmpown/pd-login.d.ts.map +1 -0
- package/dist/tmpown/pd-login.js +165 -0
- package/dist/tmpown/pd-toast.d.ts +13 -0
- package/dist/tmpown/pd-toast.d.ts.map +1 -0
- package/dist/tmpown/pd-toast.js +127 -0
- package/package.json +9 -13
- package/dist/auth/AuthController.d.ts +0 -37
- package/dist/auth/AuthController.d.ts.map +0 -1
- package/dist/auth/AuthController.js +0 -65
- package/dist/auth/auth-directives.d.ts +0 -59
- package/dist/auth/auth-directives.d.ts.map +0 -1
- package/dist/auth/auth-directives.js +0 -81
- package/dist/auth/auth-utils.d.ts +0 -45
- package/dist/auth/auth-utils.d.ts.map +0 -1
- package/dist/auth/auth-utils.js +0 -42
- package/dist/auth/index.d.ts +0 -7
- package/dist/auth/index.d.ts.map +0 -1
- package/dist/components/default-login/DefaultLogin.d.ts +0 -15
- package/dist/components/default-login/DefaultLogin.d.ts.map +0 -1
- package/dist/components/default-login/DefaultLogin.js +0 -120
- package/dist/components/default-not-found/DefaultNotFound.d.ts +0 -6
- package/dist/components/default-not-found/DefaultNotFound.d.ts.map +0 -1
- package/dist/components/pd-section-page/PdSectionPage.d.ts +0 -55
- package/dist/components/pd-section-page/PdSectionPage.d.ts.map +0 -1
- package/dist/components/pd-section-page/PdSectionPage.js +0 -40
- package/dist/components/pd-spa-helper/PdSpaHelper.d.ts +0 -160
- package/dist/components/pd-spa-helper/PdSpaHelper.d.ts.map +0 -1
- package/dist/components/pd-spa-helper/PdSpaHelper.js +0 -651
- package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts +0 -77
- package/dist/components/pd-spa-helper/controllers/ScrollController.d.ts.map +0 -1
- package/dist/components/pd-spa-helper/controllers/ScrollController.js +0 -102
- package/dist/components/pd-spa-helper/spa-config.d.ts +0 -87
- package/dist/components/pd-spa-helper/spa-config.d.ts.map +0 -1
- package/dist/components/pd-spa-helper/spa-config.js +0 -167
- package/dist/components/pd-spa-helper/spa-events.d.ts +0 -121
- package/dist/components/pd-spa-helper/spa-events.d.ts.map +0 -1
- package/dist/components/pd-spa-helper/spa-events.js +0 -18
- package/dist/db/index.d.ts +0 -3
- package/dist/db/index.d.ts.map +0 -1
- package/dist/db/indexDB.d.ts.map +0 -1
- package/dist/model/index.d.ts +0 -4
- package/dist/model/index.d.ts.map +0 -1
- package/dist/router/index.d.ts +0 -3
- package/dist/router/index.d.ts.map +0 -1
- package/dist/screen-size/ScreenSizeController.d.ts +0 -34
- package/dist/screen-size/ScreenSizeController.d.ts.map +0 -1
- package/dist/screen-size/ScreenSizeController.js +0 -58
- package/dist/screen-size/ScreenSizeService.d.ts +0 -49
- package/dist/screen-size/ScreenSizeService.d.ts.map +0 -1
- package/dist/screen-size/ScreenSizeService.js +0 -107
- package/dist/screen-size/index.d.ts +0 -13
- package/dist/screen-size/index.d.ts.map +0 -1
- package/dist/screen-size/responsive-directives.d.ts +0 -59
- package/dist/screen-size/responsive-directives.d.ts.map +0 -1
- package/dist/screen-size/responsive-directives.js +0 -71
- package/dist/screen-size/types.d.ts +0 -44
- package/dist/screen-size/types.d.ts.map +0 -1
- package/dist/service-provider/ServiceRegistry.d.ts +0 -67
- package/dist/service-provider/ServiceRegistry.d.ts.map +0 -1
- package/dist/service-provider/ServiceRegistry.js +0 -76
- package/dist/service-provider/function-utils.d.ts +0 -55
- package/dist/service-provider/function-utils.d.ts.map +0 -1
- package/dist/service-provider/function-utils.js +0 -30
- package/dist/service-provider/index.d.ts +0 -10
- package/dist/service-provider/index.d.ts.map +0 -1
- package/dist/service-provider/interfaces/IAuthProvider.d.ts +0 -68
- package/dist/service-provider/interfaces/IAuthProvider.d.ts.map +0 -1
- package/dist/service-provider/interfaces/IDatabaseProvider.d.ts +0 -75
- package/dist/service-provider/interfaces/IDatabaseProvider.d.ts.map +0 -1
- package/dist/service-provider/interfaces/IFunctionProvider.d.ts +0 -49
- package/dist/service-provider/interfaces/IFunctionProvider.d.ts.map +0 -1
- package/dist/service-provider/interfaces/IStorageProvider.d.ts +0 -118
- package/dist/service-provider/interfaces/IStorageProvider.d.ts.map +0 -1
- package/dist/service-provider/interfaces/ServiceProvider.d.ts +0 -24
- package/dist/service-provider/interfaces/ServiceProvider.d.ts.map +0 -1
- package/dist/service-provider/interfaces/common.d.ts +0 -5
- package/dist/service-provider/interfaces/common.d.ts.map +0 -1
- package/dist/services/fire-once-service.d.ts +0 -35
- package/dist/services/fire-once-service.d.ts.map +0 -1
- package/dist/services/fire-once-service.js +0 -61
- package/dist/store/async-action-effects.d.ts +0 -179
- package/dist/store/async-action-effects.d.ts.map +0 -1
- package/dist/store/async-action-effects.js +0 -97
- package/dist/store/async-action-utils.d.ts +0 -151
- package/dist/store/async-action-utils.d.ts.map +0 -1
- package/dist/store/async-action-utils.js +0 -41
- package/dist/store/index.d.ts +0 -9
- package/dist/store/index.d.ts.map +0 -1
- package/dist/stories/introduction.stories.d.ts +0 -11
- package/dist/stories/introduction.stories.d.ts.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { FirebaseApp } from 'firebase/app';
|
|
2
|
+
import { AppConfiguration, CollectionContraint, FileStorageConfig, FunctionDefinition, FunctionResult, ServiceProviderConfiguration, StorageDocument, UploadFile } from './service-provider-model.js';
|
|
3
|
+
export declare const setServiceProvider: (providerParam?: ServiceProviderConfiguration) => void;
|
|
4
|
+
export declare const initAppImpl: (config: AppConfiguration) => void;
|
|
5
|
+
export declare const callFunctionImpl: (def: FunctionDefinition, functionInput: any) => Promise<FunctionResult>;
|
|
6
|
+
export declare const authStateChangedImpl: (callback: (user: any) => void) => void;
|
|
7
|
+
export declare const isAuthenticatedImpl: () => boolean;
|
|
8
|
+
export declare const isAuthenticatedWithSessionRedirect: (routeName: string) => Promise<boolean>;
|
|
9
|
+
export declare const loginImpl: (user: string, sec: string) => Promise<unknown>;
|
|
10
|
+
export declare const logoutImpl: () => Promise<boolean>;
|
|
11
|
+
export declare const getUser: () => unknown;
|
|
12
|
+
export declare const uploadFile: (file: UploadFile) => Promise<unknown>;
|
|
13
|
+
export declare const getStorageFileList: (storageName: string, keyRef: string, subFolder?: string, includeMetadata?: boolean) => Promise<StorageDocument[]>;
|
|
14
|
+
export declare const getStorageFile: (storageName: string, refKey: string, storageURI: string, includeMetaData: boolean) => Promise<StorageDocument>;
|
|
15
|
+
export declare const downloadFile: (file: StorageDocument) => Promise<unknown>;
|
|
16
|
+
export declare const deleteFile: (file: StorageDocument) => Promise<unknown>;
|
|
17
|
+
export declare const getStorageConfiguration: () => FileStorageConfig | undefined;
|
|
18
|
+
export declare const activateCollectionListener: (callback: (query: any) => void, col: string, constraints?: CollectionContraint[]) => "" | import('firebase/firestore').Unsubscribe;
|
|
19
|
+
export declare const registerAppDeviceForNotification: (registration: ServiceWorkerRegistration) => Promise<void>;
|
|
20
|
+
export declare const getMessagingImpl: () => import('firebase/messaging').Messaging | undefined;
|
|
21
|
+
export declare const getUserIdToken: (refresh: boolean) => Promise<{
|
|
22
|
+
userToken: string;
|
|
23
|
+
userName: string;
|
|
24
|
+
appName: string;
|
|
25
|
+
} | undefined>;
|
|
26
|
+
export declare const getApp: () => FirebaseApp;
|
|
27
|
+
//# sourceMappingURL=service-provider-impl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-provider-impl.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-impl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAiB,MAAM,cAAc,CAAC;AAkB1D,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,4BAA4B,EAC5B,eAAe,EACf,UAAU,EACX,MAAM,6BAA6B,CAAC;AA8CrC,eAAO,MAAM,kBAAkB,GAC7B,gBAAgB,4BAA4B,SAG7C,CAAC;AAqCF,eAAO,MAAM,WAAW,GAAI,QAAQ,gBAAgB,SAWnD,CAAC;AAKF,eAAO,MAAM,gBAAgB,GAC3B,KAAK,kBAAkB,EACvB,eAAe,GAAG,KACjB,OAAO,CAAC,cAAc,CASxB,CAAC;AAMF,eAAO,MAAM,oBAAoB,GAAI,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,SAQjE,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAQ/B,CAAC;AAEF,eAAO,MAAM,kCAAkC,GAC7C,WAAW,MAAM,KAChB,OAAO,CAAC,OAAO,CAMjB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,qBAiBlD,CAAC;AAEF,eAAO,MAAM,UAAU,wBAQtB,CAAC;AAGF,eAAO,MAAM,OAAO,eAQnB,CAAC;AAKF,eAAO,MAAM,UAAU,GAAI,MAAM,UAAU,KAAG,OAAO,CAAC,OAAO,CAQ5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,kBAAkB,OAAO,KACxB,OAAO,CAAC,eAAe,EAAE,CAa3B,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,iBAAiB,OAAO,KACvB,OAAO,CAAC,eAAe,CAKzB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,MAAM,eAAe,KAAG,OAAO,CAAC,OAAO,CAQnE,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,eAAe,KAAG,OAAO,CAAC,OAAO,CAKjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,QAAO,iBAAiB,GAAG,SAK9D,CAAC;AAKF,eAAO,MAAM,0BAA0B,GACrC,UAAU,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,EAC9B,KAAK,MAAM,EACX,cAAc,mBAAmB,EAAE,kDAYpC,CAAC;AAKF,eAAO,MAAM,gCAAgC,GAC3C,cAAc,yBAAyB,kBAYxC,CAAC;AAEF,eAAO,MAAM,gBAAgB,0DAS5B,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,SAAS,OAAO,KACf,OAAO,CACN;IACE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,GACD,SAAS,CAgBZ,CAAC;AAEF,eAAO,MAAM,MAAM,mBAAY,CAAC"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { initializeApp } from 'firebase/app';
|
|
2
|
+
import { initAuth, authStateChanged, isAuthenticated, login, logout, getAuthUser, getFirebaseUserIdToken } from './firebase/auth.js';
|
|
3
|
+
import { authStateChangedMock, isAuthenticatedMock, loginMock, logoutMock, getAuthUserMock } from './mock/auth.js';
|
|
4
|
+
import { initFunctions, callFunction } from './firebase/functions-client.js';
|
|
5
|
+
import { initFirestore, getFirebaseCollectionListener } from './firebase/firestore-client.js';
|
|
6
|
+
import { initMockResponse, callFunctionMock } from './mock/function-client.js';
|
|
7
|
+
import { initFirestorage, uploadFirestorageFile, getFirestorageFileList, getFirestorageFile, downloadFileFirestorage, deleteFirestorageDocument, getFirestorageConf } from './firebase/firestorage-client.js';
|
|
8
|
+
import { initStorageMock, uploadStorageFileMock, getMockFileList, downloadFileMock } from './mock/storage-client.js';
|
|
9
|
+
import { prepareMessaging, activateTokenChangeHandler, registerDevice, getFirebaseMessaging } from './firebase/messagingFirebaseClient.js';
|
|
10
|
+
import '../PdSpaHelper.js';
|
|
11
|
+
import { createLogger } from '../helper/logger.js';
|
|
12
|
+
|
|
13
|
+
const serviceLogger = createLogger("PdServiceProvider");
|
|
14
|
+
let provider;
|
|
15
|
+
let app;
|
|
16
|
+
const throwUndefinedProviderError = () => {
|
|
17
|
+
throw new Error(
|
|
18
|
+
"Undefined service provider, please check configuration. 'firebase' or 'mock' allowed here."
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
const setServiceProvider = (providerParam) => {
|
|
22
|
+
provider = providerParam;
|
|
23
|
+
};
|
|
24
|
+
const initFirebaseApplicationServices = (firebaseApp, config) => {
|
|
25
|
+
initAuth(firebaseApp);
|
|
26
|
+
initFirestore(firebaseApp);
|
|
27
|
+
if (config.functionsConfig) {
|
|
28
|
+
initFunctions(firebaseApp, config.functionsConfig);
|
|
29
|
+
serviceLogger.debug("Init provider functions");
|
|
30
|
+
}
|
|
31
|
+
if (config.firebaseConfig?.storageBucket && config.storageConfig) {
|
|
32
|
+
initFirestorage(
|
|
33
|
+
firebaseApp,
|
|
34
|
+
config.firebaseConfig?.storageBucket,
|
|
35
|
+
config.storageConfig
|
|
36
|
+
);
|
|
37
|
+
serviceLogger.debug("Init provider storage");
|
|
38
|
+
}
|
|
39
|
+
if (config.messagingConfig) {
|
|
40
|
+
prepareMessaging(firebaseApp, config.messagingConfig);
|
|
41
|
+
serviceLogger.debug("Set firebase app and config for messaging");
|
|
42
|
+
activateTokenChangeHandler(firebaseApp.name);
|
|
43
|
+
serviceLogger.debug(
|
|
44
|
+
`idTokenChangeHandler for messaging and app ${firebaseApp.name} activated`
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
serviceLogger.debug("Firebase initialized");
|
|
48
|
+
};
|
|
49
|
+
const initAppImpl = (config) => {
|
|
50
|
+
if (provider === "firebase" && config.firebaseConfig) {
|
|
51
|
+
app = initializeApp(config.firebaseConfig);
|
|
52
|
+
initFirebaseApplicationServices(app, config);
|
|
53
|
+
} else if (provider === "mock") {
|
|
54
|
+
initMockResponse(config.mock);
|
|
55
|
+
initStorageMock("default", config.storageConfig);
|
|
56
|
+
} else {
|
|
57
|
+
throwUndefinedProviderError();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const callFunctionImpl = async (def, functionInput) => {
|
|
61
|
+
if (provider === "firebase") {
|
|
62
|
+
return callFunction(def, functionInput);
|
|
63
|
+
}
|
|
64
|
+
if (provider === "mock") {
|
|
65
|
+
return callFunctionMock(def, functionInput);
|
|
66
|
+
}
|
|
67
|
+
return throwUndefinedProviderError();
|
|
68
|
+
};
|
|
69
|
+
const authStateChangedImpl = (callback) => {
|
|
70
|
+
if (provider === "firebase") {
|
|
71
|
+
authStateChanged(callback);
|
|
72
|
+
} else if (provider === "mock") {
|
|
73
|
+
authStateChangedMock(callback);
|
|
74
|
+
} else {
|
|
75
|
+
throwUndefinedProviderError();
|
|
76
|
+
}
|
|
77
|
+
};
|
|
78
|
+
const isAuthenticatedImpl = () => {
|
|
79
|
+
if (provider === "firebase") {
|
|
80
|
+
return isAuthenticated();
|
|
81
|
+
}
|
|
82
|
+
if (provider === "mock") {
|
|
83
|
+
return isAuthenticatedMock();
|
|
84
|
+
}
|
|
85
|
+
return throwUndefinedProviderError();
|
|
86
|
+
};
|
|
87
|
+
const loginImpl = (user, sec) => {
|
|
88
|
+
if (!user) {
|
|
89
|
+
const returnError = new Error("empty user");
|
|
90
|
+
return Promise.reject(returnError);
|
|
91
|
+
}
|
|
92
|
+
if (!sec) {
|
|
93
|
+
const returnError = new Error("empty password");
|
|
94
|
+
return Promise.reject(returnError);
|
|
95
|
+
}
|
|
96
|
+
if (provider === "firebase") {
|
|
97
|
+
return login(user, sec);
|
|
98
|
+
}
|
|
99
|
+
if (provider === "mock") {
|
|
100
|
+
return loginMock(user, sec);
|
|
101
|
+
}
|
|
102
|
+
return throwUndefinedProviderError();
|
|
103
|
+
};
|
|
104
|
+
const logoutImpl = () => {
|
|
105
|
+
if (provider === "firebase") {
|
|
106
|
+
return logout();
|
|
107
|
+
}
|
|
108
|
+
if (provider === "mock") {
|
|
109
|
+
return logoutMock();
|
|
110
|
+
}
|
|
111
|
+
return throwUndefinedProviderError();
|
|
112
|
+
};
|
|
113
|
+
const getUser = () => {
|
|
114
|
+
if (provider === "firebase") {
|
|
115
|
+
return getAuthUser();
|
|
116
|
+
}
|
|
117
|
+
if (provider === "mock") {
|
|
118
|
+
return getAuthUserMock();
|
|
119
|
+
}
|
|
120
|
+
return throwUndefinedProviderError();
|
|
121
|
+
};
|
|
122
|
+
const uploadFile = (file) => {
|
|
123
|
+
if (provider === "firebase") {
|
|
124
|
+
return uploadFirestorageFile(file);
|
|
125
|
+
}
|
|
126
|
+
if (provider === "mock") {
|
|
127
|
+
return uploadStorageFileMock(file);
|
|
128
|
+
}
|
|
129
|
+
return throwUndefinedProviderError();
|
|
130
|
+
};
|
|
131
|
+
const getStorageFileList = (storageName, keyRef, subFolder, includeMetadata) => {
|
|
132
|
+
if (provider === "firebase") {
|
|
133
|
+
return getFirestorageFileList(
|
|
134
|
+
storageName,
|
|
135
|
+
keyRef,
|
|
136
|
+
subFolder,
|
|
137
|
+
includeMetadata
|
|
138
|
+
);
|
|
139
|
+
}
|
|
140
|
+
if (provider === "mock") {
|
|
141
|
+
return getMockFileList(storageName, keyRef, subFolder, includeMetadata);
|
|
142
|
+
}
|
|
143
|
+
return throwUndefinedProviderError();
|
|
144
|
+
};
|
|
145
|
+
const getStorageFile = (storageName, refKey, storageURI, includeMetaData) => {
|
|
146
|
+
if (provider === "firebase") {
|
|
147
|
+
return getFirestorageFile(storageName, refKey, storageURI, includeMetaData);
|
|
148
|
+
}
|
|
149
|
+
return throwUndefinedProviderError();
|
|
150
|
+
};
|
|
151
|
+
const downloadFile = (file) => {
|
|
152
|
+
if (provider === "firebase") {
|
|
153
|
+
return downloadFileFirestorage(file);
|
|
154
|
+
}
|
|
155
|
+
if (provider === "mock") {
|
|
156
|
+
return downloadFileMock();
|
|
157
|
+
}
|
|
158
|
+
return throwUndefinedProviderError();
|
|
159
|
+
};
|
|
160
|
+
const deleteFile = (file) => {
|
|
161
|
+
if (provider === "firebase") {
|
|
162
|
+
return deleteFirestorageDocument(file);
|
|
163
|
+
}
|
|
164
|
+
return throwUndefinedProviderError();
|
|
165
|
+
};
|
|
166
|
+
const getStorageConfiguration = () => {
|
|
167
|
+
if (provider === "firebase") {
|
|
168
|
+
return getFirestorageConf();
|
|
169
|
+
}
|
|
170
|
+
return throwUndefinedProviderError();
|
|
171
|
+
};
|
|
172
|
+
const activateCollectionListener = (callback, col, constraints) => {
|
|
173
|
+
if (provider === "firebase") {
|
|
174
|
+
return getFirebaseCollectionListener(callback, col, constraints);
|
|
175
|
+
}
|
|
176
|
+
if (provider === "mock") {
|
|
177
|
+
serviceLogger.warn(
|
|
178
|
+
"getCollectionListener not implemented for MOCK, do noting"
|
|
179
|
+
);
|
|
180
|
+
return "";
|
|
181
|
+
}
|
|
182
|
+
return throwUndefinedProviderError();
|
|
183
|
+
};
|
|
184
|
+
const registerAppDeviceForNotification = async (registration) => {
|
|
185
|
+
if (provider === "firebase") {
|
|
186
|
+
return registerDevice(registration);
|
|
187
|
+
}
|
|
188
|
+
if (provider === "mock") {
|
|
189
|
+
serviceLogger.warn(
|
|
190
|
+
"registerAppDeviceForNotification not implemented for MOCK, do noting"
|
|
191
|
+
);
|
|
192
|
+
return Promise.resolve();
|
|
193
|
+
}
|
|
194
|
+
return throwUndefinedProviderError();
|
|
195
|
+
};
|
|
196
|
+
const getMessagingImpl = () => {
|
|
197
|
+
if (provider === "firebase") {
|
|
198
|
+
return getFirebaseMessaging();
|
|
199
|
+
}
|
|
200
|
+
if (provider === "mock") {
|
|
201
|
+
serviceLogger.warn("getMessagingImpl not implemented for MOCK, do noting");
|
|
202
|
+
return void 0;
|
|
203
|
+
}
|
|
204
|
+
return throwUndefinedProviderError();
|
|
205
|
+
};
|
|
206
|
+
const getUserIdToken = async (refresh) => {
|
|
207
|
+
if (provider === "firebase") {
|
|
208
|
+
const userResult = await getFirebaseUserIdToken(refresh);
|
|
209
|
+
return userResult ? {
|
|
210
|
+
...userResult,
|
|
211
|
+
appName: app.name
|
|
212
|
+
} : void 0;
|
|
213
|
+
}
|
|
214
|
+
if (provider === "mock") {
|
|
215
|
+
serviceLogger.warn("getUserIdToken not implemented for MOCK, do noting");
|
|
216
|
+
return void 0;
|
|
217
|
+
}
|
|
218
|
+
return throwUndefinedProviderError();
|
|
219
|
+
};
|
|
220
|
+
const getApp = () => app;
|
|
221
|
+
|
|
222
|
+
export { activateCollectionListener, authStateChangedImpl, callFunctionImpl, deleteFile, downloadFile, getApp, getMessagingImpl, getStorageConfiguration, getStorageFile, getStorageFileList, getUser, getUserIdToken, initAppImpl, isAuthenticatedImpl, loginImpl, logoutImpl, registerAppDeviceForNotification, setServiceProvider, uploadFile };
|
|
@@ -31,14 +31,13 @@ export interface FunctionDefinition {
|
|
|
31
31
|
fadeWindow: boolean;
|
|
32
32
|
successTxt: string | TemplateResult;
|
|
33
33
|
pendingTxt: string | TemplateResult;
|
|
34
|
-
|
|
35
|
-
param?: Record<string, unknown>;
|
|
34
|
+
param?: any;
|
|
36
35
|
redirect?: string;
|
|
37
36
|
logoutOnFail?: boolean;
|
|
38
37
|
}
|
|
39
38
|
export interface FunctionParam {
|
|
40
39
|
func: FunctionDefinition;
|
|
41
|
-
inputData:
|
|
40
|
+
inputData: any;
|
|
42
41
|
}
|
|
43
42
|
export interface FunctionsConfig {
|
|
44
43
|
region: string;
|
|
@@ -53,7 +52,6 @@ export interface MenuElement {
|
|
|
53
52
|
name: string;
|
|
54
53
|
sec?: string;
|
|
55
54
|
route?: string;
|
|
56
|
-
requiredRoles?: string[];
|
|
57
55
|
action?: () => void;
|
|
58
56
|
topItem?: boolean;
|
|
59
57
|
ref?: HTMLElement;
|
|
@@ -65,8 +63,6 @@ export interface NavigationPage {
|
|
|
65
63
|
pattern: Array<string>;
|
|
66
64
|
auth: boolean;
|
|
67
65
|
authFallback?: string;
|
|
68
|
-
/** Required roles (claims) for this page - user must have at least one (OR logic) */
|
|
69
|
-
roles?: string[];
|
|
70
66
|
menu?: Array<MenuElement>;
|
|
71
67
|
topMenu?: Array<MenuElement>;
|
|
72
68
|
withTeaser?: boolean;
|
|
@@ -80,8 +76,6 @@ export interface NavigationConfig {
|
|
|
80
76
|
pages: Array<NavigationPage>;
|
|
81
77
|
includeLogin: boolean;
|
|
82
78
|
defaultPostLoginRoute?: boolean;
|
|
83
|
-
/** Route to redirect to after logout. Defaults to "/" (home) */
|
|
84
|
-
logoutRedirect?: string;
|
|
85
79
|
}
|
|
86
80
|
export interface LinkObj {
|
|
87
81
|
name: string;
|
|
@@ -94,20 +88,10 @@ export interface Footer {
|
|
|
94
88
|
copyright?: string;
|
|
95
89
|
links: Array<LinkObj>;
|
|
96
90
|
}
|
|
97
|
-
/** mini-rx-store reducer function type */
|
|
98
|
-
export type ReducerFunction<S = unknown> = (state: S, action: {
|
|
99
|
-
type: string;
|
|
100
|
-
payload?: unknown;
|
|
101
|
-
}) => S;
|
|
102
91
|
export interface StoreConfig {
|
|
103
92
|
appName: string;
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Effect functions for mini-rx-store.
|
|
108
|
-
* Uses unknown[] as mini-rx-store expects Observable<any> internally.
|
|
109
|
-
*/
|
|
110
|
-
effects: unknown[];
|
|
93
|
+
reducer: any;
|
|
94
|
+
effects: Array<any>;
|
|
111
95
|
}
|
|
112
96
|
export interface FileStorage {
|
|
113
97
|
name: string;
|
|
@@ -122,7 +106,7 @@ export interface MessagingConfig {
|
|
|
122
106
|
export interface AppConfiguration {
|
|
123
107
|
serviceProvider?: ServiceProviderConfiguration;
|
|
124
108
|
mock?: {
|
|
125
|
-
mockResponse?: Map<string, (functionInput:
|
|
109
|
+
mockResponse?: Map<string, (functionInput: any) => FunctionResult>;
|
|
126
110
|
mockWaitTime?: number;
|
|
127
111
|
};
|
|
128
112
|
navigationConfigParam: NavigationConfig;
|
|
@@ -155,15 +139,12 @@ export interface StorageDocument {
|
|
|
155
139
|
creator?: string;
|
|
156
140
|
size?: number;
|
|
157
141
|
readonly?: boolean;
|
|
158
|
-
|
|
159
|
-
metaData?: unknown;
|
|
142
|
+
metaData?: any;
|
|
160
143
|
}
|
|
161
|
-
/** Firestore query constraint value types */
|
|
162
|
-
export type FirestoreValueType = string | number | boolean | null | Date | FirestoreValueType[];
|
|
163
144
|
export interface CollectionContraint {
|
|
164
145
|
type: "where";
|
|
165
146
|
field: string;
|
|
166
147
|
operator: "<" | ">" | ">=" | "<=" | "==" | "!=" | "array-contains" | "array-contains-any" | "in" | "not-in";
|
|
167
|
-
value:
|
|
148
|
+
value: any;
|
|
168
149
|
}
|
|
169
150
|
//# sourceMappingURL=service-provider-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-provider-model.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAErC,eAAO,MAAM,eAAe,OAAO,CAAC;AACpC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,qBAAa,aAAc,SAAQ,KAAK;IACtC,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;;OAKG;gBACS,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAA6B;CAMjE;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC;AACjD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACzC,MAAM,MAAM,4BAA4B,GACpC,uBAAuB,GACvB,mBAAmB,CAAC;AAExB,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE5B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;IACpC,UAAU,EAAE,MAAM,GAAG,cAAc,CAAC;IACpC,
|
|
1
|
+
{"version":3,"file":"service-provider-model.d.ts","sourceRoot":"","sources":["../../src/service-provider/service-provider-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,10 +6,16 @@ export declare const addAll: <T>(table: string, elArray: T[], ignoreDuplicates:
|
|
|
6
6
|
export declare const deleteAllEl: (table: string, elIdArray: string[]) => Promise<unknown>;
|
|
7
7
|
export declare const get: <T>(table: string, id: string) => Promise<T>;
|
|
8
8
|
export declare const getAll: <T>(table: string, index?: string) => Promise<T[]>;
|
|
9
|
-
export declare const getAllIds: (table: string) => Promise<unknown
|
|
9
|
+
export declare const getAllIds: (table: string) => Promise<unknown>;
|
|
10
10
|
export declare const deleteAll: (table: string) => Promise<unknown>;
|
|
11
11
|
export declare const removeDatabase: (dbName: string) => Promise<unknown>;
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Init indexDB for application.
|
|
14
|
+
*
|
|
15
|
+
* @param config - config for index db
|
|
16
|
+
* @param successCallback - callback function after db is successfully initialized
|
|
17
|
+
*/
|
|
18
|
+
export declare const initDB: (config: {
|
|
13
19
|
dbName: string;
|
|
14
20
|
dbVersion: number;
|
|
15
21
|
collections: {
|
|
@@ -18,11 +24,5 @@ export interface IndexDBConfig {
|
|
|
18
24
|
keyPath?: string;
|
|
19
25
|
};
|
|
20
26
|
}[];
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Init indexDB for application.
|
|
24
|
-
*
|
|
25
|
-
* @param config - config for index db
|
|
26
|
-
*/
|
|
27
|
-
export declare const initDB: (config: IndexDBConfig) => void;
|
|
27
|
+
}) => void;
|
|
28
28
|
//# sourceMappingURL=indexDB.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indexDB.d.ts","sourceRoot":"","sources":["../../src/store/indexDB.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAmBhD,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,OAAO,qBAclE,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,CAAC,qBAW1C,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,SAAS,CAAC,EAAE,qBAUpD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,CAAC,EACtB,OAAO,MAAM,EACb,SAAS,CAAC,EAAE,EACZ,kBAAkB,OAAO,qBAWvB,CAAC;AAaL,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,EAAE,WAAW,MAAM,EAAE,qBAU1D,CAAC;AAEL,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,CAAC,CAKxD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,OAAO,MAAM,EAAE,QAAQ,MAAM,KAAG,OAAO,CAAC,CAAC,EAAE,CAwBjE,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,qBAqBnC,CAAC;AAEL,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,qBASnC,CAAC;AAEL,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,qBAMzC,CAAC;AAEL;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE;YACd,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;KACH,EAAE,CAAC;CACL,SAgDA,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLogger } from '../helper/logger.js';
|
|
2
|
-
import { pdStore } from '
|
|
3
|
-
import {
|
|
2
|
+
import { pdStore } from './mini-rx.store.js';
|
|
3
|
+
import { initIndexDBSucess } from './spa-app-actions.js';
|
|
4
4
|
|
|
5
5
|
const dbLogger = createLogger("PdIndexDB");
|
|
6
6
|
const USER_COLLECTION = "dcInternalUser";
|
|
@@ -10,21 +10,19 @@ const add = (table, el, ignoreDuplicates) => new Promise((resolve, reject) => {
|
|
|
10
10
|
const request = db.transaction([table], "readwrite").objectStore(table).add(el);
|
|
11
11
|
request.onsuccess = () => resolve(request.result);
|
|
12
12
|
request.onerror = (event) => {
|
|
13
|
-
|
|
14
|
-
if (target.error?.name === "ConstraintError" && ignoreDuplicates) {
|
|
13
|
+
if (event.target.error.code === 0 && ignoreDuplicates) {
|
|
15
14
|
return resolve("duplicate");
|
|
16
15
|
}
|
|
17
16
|
dbLogger.warn("Unable to add data!", event, el);
|
|
18
|
-
return reject(target.error);
|
|
17
|
+
return reject(event.target.error);
|
|
19
18
|
};
|
|
20
19
|
});
|
|
21
20
|
const update = (table, el) => new Promise((resolve, reject) => {
|
|
22
21
|
const request = db.transaction([table], "readwrite").objectStore(table).put(el);
|
|
23
22
|
request.onsuccess = () => resolve(request.result);
|
|
24
23
|
request.onerror = (event) => {
|
|
25
|
-
const target = event.target;
|
|
26
24
|
dbLogger.warn("Unable to put data!", event, el);
|
|
27
|
-
return reject(target.error);
|
|
25
|
+
return reject(event.target.error);
|
|
28
26
|
};
|
|
29
27
|
});
|
|
30
28
|
const updateAll = (table, elArray) => new Promise((resolve, reject) => {
|
|
@@ -44,7 +42,7 @@ const addAll = (table, elArray, ignoreDuplicates) => new Promise((resolve, rejec
|
|
|
44
42
|
const deleteEl = (table, id) => new Promise((resolve, reject) => {
|
|
45
43
|
const request = db.transaction([table], "readwrite").objectStore(table).delete(id);
|
|
46
44
|
request.onsuccess = () => resolve(request.result);
|
|
47
|
-
request.onerror = (e) => reject(e
|
|
45
|
+
request.onerror = (e) => reject(e);
|
|
48
46
|
});
|
|
49
47
|
const deleteAllEl = (table, elIdArray) => new Promise((resolve, reject) => {
|
|
50
48
|
const promises = [];
|
|
@@ -56,7 +54,7 @@ const deleteAllEl = (table, elIdArray) => new Promise((resolve, reject) => {
|
|
|
56
54
|
const get = (table, id) => new Promise((resolve, reject) => {
|
|
57
55
|
const request = db.transaction([table]).objectStore(table).get(id);
|
|
58
56
|
request.onsuccess = () => resolve(request.result);
|
|
59
|
-
request.onerror = (e) => reject(e
|
|
57
|
+
request.onerror = (e) => reject(e);
|
|
60
58
|
});
|
|
61
59
|
const getAll = (table, index) => new Promise((resolve, reject) => {
|
|
62
60
|
const request = index ? db.transaction([table], "readonly").objectStore(table).index(index).openCursor() : db.transaction([table], "readonly").objectStore(table).openCursor();
|
|
@@ -70,7 +68,7 @@ const getAll = (table, index) => new Promise((resolve, reject) => {
|
|
|
70
68
|
resolve(res);
|
|
71
69
|
}
|
|
72
70
|
};
|
|
73
|
-
request.onerror = (e) => reject(e
|
|
71
|
+
request.onerror = (e) => reject(e);
|
|
74
72
|
});
|
|
75
73
|
const getAllIds = (table) => new Promise((resolve, reject) => {
|
|
76
74
|
const request = db.transaction([table], "readonly").objectStore(table).openCursor();
|
|
@@ -84,18 +82,18 @@ const getAllIds = (table) => new Promise((resolve, reject) => {
|
|
|
84
82
|
resolve(res);
|
|
85
83
|
}
|
|
86
84
|
};
|
|
87
|
-
request.onerror = (e) => reject(e
|
|
85
|
+
request.onerror = (e) => reject(e);
|
|
88
86
|
});
|
|
89
87
|
const deleteAll = (table) => new Promise((resolve, reject) => {
|
|
90
88
|
const request = db.transaction([table], "readwrite").objectStore(table).clear();
|
|
91
89
|
request.onsuccess = () => resolve(request.result);
|
|
92
|
-
request.onerror = (e) => reject(e
|
|
90
|
+
request.onerror = (e) => reject(e);
|
|
93
91
|
});
|
|
94
92
|
const removeDatabase = (dbName) => new Promise((resolve, reject) => {
|
|
95
93
|
db.close();
|
|
96
94
|
const request = indexedDB.deleteDatabase(dbName);
|
|
97
95
|
request.onsuccess = () => resolve(request.result);
|
|
98
|
-
request.onerror = (e) => reject(e
|
|
96
|
+
request.onerror = (e) => reject(e);
|
|
99
97
|
});
|
|
100
98
|
const initDB = (config) => {
|
|
101
99
|
if (!indexedDB) {
|
|
@@ -109,7 +107,7 @@ const initDB = (config) => {
|
|
|
109
107
|
request.onsuccess = () => {
|
|
110
108
|
db = request.result;
|
|
111
109
|
dbLogger.debug(`init success: ${db}`);
|
|
112
|
-
pdStore().dispatch(
|
|
110
|
+
pdStore().dispatch(initIndexDBSucess());
|
|
113
111
|
};
|
|
114
112
|
request.onupgradeneeded = (event) => {
|
|
115
113
|
dbLogger.info("Upgrade needed", event);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mini-rx.store.d.ts","sourceRoot":"","sources":["../../src/store/mini-rx.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"mini-rx.store.d.ts","sourceRoot":"","sources":["../../src/store/mini-rx.store.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,EAIN,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAyB5E,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,SA0BjD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,KAAc,CAAC"}
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { configureStore, LoggerExtension, ReduxDevtoolsExtension, ImmutableStateExtension } from 'mini-rx-store';
|
|
2
2
|
import { spaAppReducer } from './spa-app-reducer.js';
|
|
3
|
-
import { appRouteEffect } from './spa-app-effects.js';
|
|
3
|
+
import { appRouteEffect, appToastEffect, registerNotificationTokenSuccessEffect } from './spa-app-effects.js';
|
|
4
4
|
import { defaultLogger } from '../helper/logger.js';
|
|
5
5
|
|
|
6
6
|
let store;
|
|
7
7
|
const registerEffects = (effects) => {
|
|
8
8
|
if (store) {
|
|
9
9
|
store.effect(appRouteEffect);
|
|
10
|
+
store.effect(appToastEffect);
|
|
11
|
+
store.effect(registerNotificationTokenSuccessEffect);
|
|
10
12
|
effects.forEach((effect) => store.effect(effect));
|
|
11
13
|
} else {
|
|
12
14
|
defaultLogger.error("Store is not initialized. Cannot register effects.");
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LoadingState, LoadingSubTask } from '
|
|
3
|
-
export declare const
|
|
1
|
+
import { TemplateResult } from 'lit';
|
|
2
|
+
import { AppUser, LoadingState, LoadingSubTask } from '../model/spa-model.js';
|
|
3
|
+
export declare const initIndexDBSucess: (() => {
|
|
4
4
|
type: "SPA_INIT_INDEX_DB_SUCCESS";
|
|
5
5
|
}) & {
|
|
6
6
|
type: "SPA_INIT_INDEX_DB_SUCCESS";
|
|
7
7
|
};
|
|
8
|
-
export declare const
|
|
8
|
+
export declare const loginSucess: ((payload: AppUser) => {
|
|
9
9
|
payload: AppUser;
|
|
10
10
|
} & {
|
|
11
11
|
type: "SPA_LOGIN_SUCCESS";
|
|
12
12
|
}) & {
|
|
13
13
|
type: "SPA_LOGIN_SUCCESS";
|
|
14
14
|
};
|
|
15
|
-
export declare const
|
|
15
|
+
export declare const logoutSucess: (() => {
|
|
16
16
|
type: "SPA_LOGOUT_SUCCESS";
|
|
17
17
|
}) & {
|
|
18
18
|
type: "SPA_LOGOUT_SUCCESS";
|
|
@@ -29,6 +29,23 @@ export declare const routeAction: ((payload: string) => {
|
|
|
29
29
|
}) & {
|
|
30
30
|
type: "SPA_APP_ROUTE";
|
|
31
31
|
};
|
|
32
|
+
export declare const toastAction: ((payload: {
|
|
33
|
+
txt: string | TemplateResult;
|
|
34
|
+
isError: boolean;
|
|
35
|
+
isSuccess: boolean;
|
|
36
|
+
duration?: number;
|
|
37
|
+
}) => {
|
|
38
|
+
payload: {
|
|
39
|
+
txt: string | TemplateResult;
|
|
40
|
+
isError: boolean;
|
|
41
|
+
isSuccess: boolean;
|
|
42
|
+
duration?: number;
|
|
43
|
+
};
|
|
44
|
+
} & {
|
|
45
|
+
type: "SPA_APP_TOAST";
|
|
46
|
+
}) & {
|
|
47
|
+
type: "SPA_APP_TOAST";
|
|
48
|
+
};
|
|
32
49
|
export declare const updateInternetOffline: ((payload: boolean) => {
|
|
33
50
|
payload: boolean;
|
|
34
51
|
} & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spa-app-actions.d.ts","sourceRoot":"","sources":["../../src/store/spa-app-actions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spa-app-actions.d.ts","sourceRoot":"","sources":["../../src/store/spa-app-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE9E,eAAO,MAAM,iBAAiB;;;;CAAsC,CAAC;AACrE,eAAO,MAAM,WAAW;;;;;;CAAkD,CAAC;AAC3E,eAAO,MAAM,YAAY;;;;CAA+B,CAAC;AACzD,eAAO,MAAM,OAAO;;;;CAAyB,CAAC;AAE9C,eAAO,MAAM,WAAW;;;;;;CAA6C,CAAC;AAEtE,eAAO,MAAM,WAAW;SAGf,MAAM,GAAG,cAAc;aACnB,OAAO;eACL,OAAO;eACP,MAAM;;;aAHZ,MAAM,GAAG,cAAc;iBACnB,OAAO;mBACL,OAAO;mBACP,MAAM;;;;;;CAEpB,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;CAGjC,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;CAG3B,CAAC;AACF,eAAO,MAAM,aAAa;qBAGL,MAAM;kBACT,cAAc;;;yBADX,MAAM;sBACT,cAAc;;;;;;CAE/B,CAAC;AACF,eAAO,MAAM,kBAAkB;;;;;;CAG9B,CAAC;AAEF,eAAO,MAAM,0BAA0B;oBAGnB,MAAM;;;wBAAN,MAAM;;;;;;CAEzB,CAAC;AACF,eAAO,MAAM,iCAAiC;oBAG1B,MAAM;;;wBAAN,MAAM;;;;;;CAEzB,CAAC;AACF,eAAO,MAAM,8BAA8B;;;;;;CAG1C,CAAC"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { action, payload } from 'ts-action';
|
|
2
2
|
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
3
|
+
const initIndexDBSucess = action("SPA_INIT_INDEX_DB_SUCCESS");
|
|
4
|
+
const loginSucess = action("SPA_LOGIN_SUCCESS", payload());
|
|
5
|
+
const logoutSucess = action("SPA_LOGOUT_SUCCESS");
|
|
6
6
|
const nologin = action("SPA_NO_LOGIN");
|
|
7
7
|
const routeAction = action("SPA_APP_ROUTE", payload());
|
|
8
|
+
const toastAction = action(
|
|
9
|
+
"SPA_APP_TOAST",
|
|
10
|
+
payload()
|
|
11
|
+
);
|
|
8
12
|
const updateInternetOffline = action(
|
|
9
13
|
"SPA_APP_UPDATE_INTERNET_OFFLINE",
|
|
10
14
|
payload()
|
|
@@ -34,4 +38,4 @@ const updateNewNotificationTokenFail = action(
|
|
|
34
38
|
payload()
|
|
35
39
|
);
|
|
36
40
|
|
|
37
|
-
export { addLoadingState, changeSubTask,
|
|
41
|
+
export { addLoadingState, changeSubTask, initIndexDBSucess, loginSucess, logoutSucess, nologin, removeLoadingState, routeAction, toastAction, updateInternetOffline, updateNewNotificationToken, updateNewNotificationTokenFail, updateNewNotificationTokenSuccess };
|
|
@@ -4,4 +4,21 @@ export declare const appRouteEffect: import('rxjs').Observable<{
|
|
|
4
4
|
} & {
|
|
5
5
|
type: "SPA_APP_ROUTE";
|
|
6
6
|
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
7
|
+
export declare const appToastEffect: import('rxjs').Observable<{
|
|
8
|
+
payload: {
|
|
9
|
+
txt: string | import('lit').TemplateResult;
|
|
10
|
+
isError: boolean;
|
|
11
|
+
isSuccess: boolean;
|
|
12
|
+
duration?: number;
|
|
13
|
+
};
|
|
14
|
+
} & {
|
|
15
|
+
type: "SPA_APP_TOAST";
|
|
16
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
17
|
+
export declare const registerNotificationTokenSuccessEffect: import('rxjs').Observable<{
|
|
18
|
+
payload: {
|
|
19
|
+
messagingToken: string;
|
|
20
|
+
};
|
|
21
|
+
} & {
|
|
22
|
+
type: "UPDATE_NOTIFICATION_TOKEN_SUCCESS";
|
|
23
|
+
}> & import('mini-rx-store/lib/models.js').HasEffectMetadata;
|
|
7
24
|
//# sourceMappingURL=spa-app-effects.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spa-app-effects.d.ts","sourceRoot":"","sources":["../../src/store/spa-app-effects.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spa-app-effects.d.ts","sourceRoot":"","sources":["../../src/store/spa-app-effects.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,SAEjD,CAAC;AAIF,eAAO,MAAM,cAAc;;;;4DAoB1B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;4DAyB1B,CAAC;AAEF,eAAO,MAAM,sCAAsC;;;;;;4DAUlD,CAAC"}
|