@sudobility/di_web 0.1.11 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/index.d.ts +1 -10
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +1 -10
  4. package/dist/index.js.map +1 -1
  5. package/dist/info/InfoBanner.d.ts +8 -0
  6. package/dist/info/InfoBanner.d.ts.map +1 -0
  7. package/dist/info/InfoBanner.js +23 -0
  8. package/dist/info/InfoBanner.js.map +1 -0
  9. package/dist/info/index.d.ts +3 -0
  10. package/dist/info/index.d.ts.map +1 -0
  11. package/dist/info/index.js +3 -0
  12. package/dist/info/index.js.map +1 -0
  13. package/dist/info/info.web.d.ts +27 -0
  14. package/dist/info/info.web.d.ts.map +1 -0
  15. package/dist/info/info.web.js +82 -0
  16. package/dist/info/info.web.js.map +1 -0
  17. package/package.json +10 -9
  18. package/dist/firebase/firebase.interface.d.ts +0 -81
  19. package/dist/firebase/firebase.interface.d.ts.map +0 -1
  20. package/dist/firebase/firebase.interface.js +0 -2
  21. package/dist/firebase/firebase.interface.js.map +0 -1
  22. package/dist/firebase/firebase.web.d.ts +0 -19
  23. package/dist/firebase/firebase.web.d.ts.map +0 -1
  24. package/dist/firebase/firebase.web.js +0 -322
  25. package/dist/firebase/firebase.web.js.map +0 -1
  26. package/dist/navigation/navigation.web.d.ts +0 -34
  27. package/dist/navigation/navigation.web.d.ts.map +0 -1
  28. package/dist/navigation/navigation.web.js +0 -176
  29. package/dist/navigation/navigation.web.js.map +0 -1
  30. package/dist/network/network.web.d.ts +0 -12
  31. package/dist/network/network.web.d.ts.map +0 -1
  32. package/dist/network/network.web.js +0 -124
  33. package/dist/network/network.web.js.map +0 -1
  34. package/dist/network-singleton.d.ts +0 -5
  35. package/dist/network-singleton.d.ts.map +0 -1
  36. package/dist/network-singleton.js +0 -21
  37. package/dist/network-singleton.js.map +0 -1
  38. package/dist/storage/storage-singleton.d.ts +0 -5
  39. package/dist/storage/storage-singleton.d.ts.map +0 -1
  40. package/dist/storage/storage-singleton.js +0 -19
  41. package/dist/storage/storage-singleton.js.map +0 -1
  42. package/dist/storage/storage.web.d.ts +0 -22
  43. package/dist/storage/storage.web.d.ts.map +0 -1
  44. package/dist/storage/storage.web.js +0 -107
  45. package/dist/storage/storage.web.js.map +0 -1
  46. package/dist/storage/web-storage.service.d.ts +0 -23
  47. package/dist/storage/web-storage.service.d.ts.map +0 -1
  48. package/dist/storage/web-storage.service.js +0 -137
  49. package/dist/storage/web-storage.service.js.map +0 -1
  50. package/dist/types/ui-navigation.d.ts +0 -51
  51. package/dist/types/ui-navigation.d.ts.map +0 -1
  52. package/dist/types/ui-navigation.js +0 -2
  53. package/dist/types/ui-navigation.js.map +0 -1
  54. package/dist/web-network.service.d.ts +0 -24
  55. package/dist/web-network.service.d.ts.map +0 -1
  56. package/dist/web-network.service.js +0 -150
  57. package/dist/web-network.service.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,11 +1,2 @@
1
- export * from './firebase/firebase.interface';
2
- export { WebFirebaseService, createWebFirebaseService, } from './firebase/firebase.web';
3
- export * from './types/ui-navigation';
4
- export { WebUINavigationService, createWebUINavigationService, webNavigationHelpers, } from './navigation/navigation.web';
5
- export { WebNetworkClient, webNetworkClient } from './network/network.web';
6
- export { WebNetworkService } from './web-network.service';
7
- export { getNetworkService, initializeNetworkService, resetNetworkService, } from './network-singleton';
8
- export { WebStorage, AdvancedWebStorage, webStorage, advancedWebStorage, } from './storage/storage.web';
9
- export { WebStorageService, WebSerializedStorageService, } from './storage/web-storage.service';
10
- export { getStorageService, initializeStorageService, resetStorageService, } from './storage/storage-singleton';
1
+ export { WebInfoService, createWebInfoService, initializeInfoService, getInfoService, resetInfoService, InfoBanner, useInfoBanner, type BannerState, type BannerStateListener, } from './info/index.js';
11
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,2 @@
1
- export * from './firebase/firebase.interface';
2
- export { WebFirebaseService, createWebFirebaseService, } from './firebase/firebase.web';
3
- export * from './types/ui-navigation';
4
- export { WebUINavigationService, createWebUINavigationService, webNavigationHelpers, } from './navigation/navigation.web';
5
- export { WebNetworkClient, webNetworkClient } from './network/network.web';
6
- export { WebNetworkService } from './web-network.service';
7
- export { getNetworkService, initializeNetworkService, resetNetworkService, } from './network-singleton';
8
- export { WebStorage, AdvancedWebStorage, webStorage, advancedWebStorage, } from './storage/storage.web';
9
- export { WebStorageService, WebSerializedStorageService, } from './storage/web-storage.service';
10
- export { getStorageService, initializeStorageService, resetStorageService, } from './storage/storage-singleton';
1
+ export { WebInfoService, createWebInfoService, initializeInfoService, getInfoService, resetInfoService, InfoBanner, useInfoBanner, } from './info/index.js';
11
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,OAAO,EACL,sBAAsB,EACtB,4BAA4B,EAC5B,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,kBAAkB,GACnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,GAGd,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { type BannerState } from './info.web.js';
3
+ export declare function useInfoBanner(): {
4
+ state: BannerState;
5
+ dismiss: () => void;
6
+ };
7
+ export declare function InfoBanner(): React.ReactElement | null;
8
+ //# sourceMappingURL=InfoBanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoBanner.d.ts","sourceRoot":"","sources":["../../src/info/InfoBanner.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAEhE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAyBjE,wBAAgB,aAAa,IAAI;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAaA;AAmBD,wBAAgB,UAAU,IAAI,KAAK,CAAC,YAAY,GAAG,IAAI,CAiBtD"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useState, useEffect, useCallback } from 'react';
3
+ import { Banner } from '@sudobility/components';
4
+ import { getInfoService } from './info.web.js';
5
+ export function useInfoBanner() {
6
+ const service = getInfoService();
7
+ const [state, setState] = useState(service.getState());
8
+ useEffect(() => {
9
+ return service.subscribe(setState);
10
+ }, [service]);
11
+ const dismiss = useCallback(() => {
12
+ service.dismiss();
13
+ }, [service]);
14
+ return { state, dismiss };
15
+ }
16
+ export function InfoBanner() {
17
+ const { state, dismiss } = useInfoBanner();
18
+ if (!state.isVisible) {
19
+ return null;
20
+ }
21
+ return (_jsx(Banner, { isVisible: state.isVisible, onDismiss: dismiss, title: state.title, description: state.description, variant: state.variant, duration: 0 }));
22
+ }
23
+ //# sourceMappingURL=InfoBanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoBanner.js","sourceRoot":"","sources":["../../src/info/InfoBanner.tsx"],"names":[],"mappings":";AAOA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAoB,MAAM,eAAe,CAAC;AAyBjE,MAAM,UAAU,aAAa;IAI3B,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAc,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEpE,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,OAAO,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAmBD,MAAM,UAAU,UAAU;IACxB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IAE3C,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,MAAM,IACL,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,SAAS,EAAE,OAAO,EAClB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,CAAC,GACX,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { WebInfoService, createWebInfoService, initializeInfoService, getInfoService, resetInfoService, type BannerState, type BannerStateListener, } from './info.web.js';
2
+ export { InfoBanner, useInfoBanner } from './InfoBanner.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/info/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { WebInfoService, createWebInfoService, initializeInfoService, getInfoService, resetInfoService, } from './info.web.js';
2
+ export { InfoBanner, useInfoBanner } from './InfoBanner.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/info/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,GAGjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,27 @@
1
+ import type { InfoInterface } from '@sudobility/di';
2
+ import { InfoType, Optional } from '@sudobility/types';
3
+ export interface BannerState {
4
+ isVisible: boolean;
5
+ title: string;
6
+ description: string;
7
+ variant: InfoType;
8
+ duration?: number;
9
+ }
10
+ export type BannerStateListener = (state: BannerState) => void;
11
+ export declare class WebInfoService implements InfoInterface {
12
+ private state;
13
+ private listeners;
14
+ private dismissTimeoutId;
15
+ subscribe(listener: BannerStateListener): () => void;
16
+ getState(): BannerState;
17
+ dismiss(): void;
18
+ show(title: string, text: string, type: InfoType, interval?: Optional<number>): void;
19
+ private setState;
20
+ private notifyListeners;
21
+ private clearDismissTimeout;
22
+ }
23
+ export declare function createWebInfoService(): WebInfoService;
24
+ export declare function initializeInfoService(service?: WebInfoService): void;
25
+ export declare function getInfoService(): WebInfoService;
26
+ export declare function resetInfoService(): void;
27
+ //# sourceMappingURL=info.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.web.d.ts","sourceRoot":"","sources":["../../src/info/info.web.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKvD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;AAS/D,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,KAAK,CAKX;IAEF,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,gBAAgB,CAA8C;IAMtE,SAAS,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,IAAI;IAYpD,QAAQ,IAAI,WAAW;IAOvB,OAAO,IAAI,IAAI;IAWf,IAAI,CACF,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,IAAI;IAyBP,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,mBAAmB;CAM5B;AAKD,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AASD,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI,CAKpE;AAMD,wBAAgB,cAAc,IAAI,cAAc,CAO/C;AAKD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC"}
@@ -0,0 +1,82 @@
1
+ import { InfoType } from '@sudobility/types';
2
+ export class WebInfoService {
3
+ constructor() {
4
+ this.state = {
5
+ isVisible: false,
6
+ title: '',
7
+ description: '',
8
+ variant: InfoType.INFO,
9
+ };
10
+ this.listeners = new Set();
11
+ this.dismissTimeoutId = null;
12
+ }
13
+ subscribe(listener) {
14
+ this.listeners.add(listener);
15
+ listener(this.state);
16
+ return () => {
17
+ this.listeners.delete(listener);
18
+ };
19
+ }
20
+ getState() {
21
+ return this.state;
22
+ }
23
+ dismiss() {
24
+ this.clearDismissTimeout();
25
+ this.setState({
26
+ ...this.state,
27
+ isVisible: false,
28
+ });
29
+ }
30
+ show(title, text, type, interval) {
31
+ this.clearDismissTimeout();
32
+ const newState = {
33
+ isVisible: true,
34
+ title,
35
+ description: text,
36
+ variant: type,
37
+ };
38
+ if (interval != null) {
39
+ newState.duration = interval;
40
+ }
41
+ this.setState(newState);
42
+ const dismissAfter = interval ?? 5000;
43
+ if (dismissAfter > 0) {
44
+ this.dismissTimeoutId = setTimeout(() => {
45
+ this.dismiss();
46
+ }, dismissAfter);
47
+ }
48
+ }
49
+ setState(newState) {
50
+ this.state = newState;
51
+ this.notifyListeners();
52
+ }
53
+ notifyListeners() {
54
+ this.listeners.forEach((listener) => listener(this.state));
55
+ }
56
+ clearDismissTimeout() {
57
+ if (this.dismissTimeoutId) {
58
+ clearTimeout(this.dismissTimeoutId);
59
+ this.dismissTimeoutId = null;
60
+ }
61
+ }
62
+ }
63
+ export function createWebInfoService() {
64
+ return new WebInfoService();
65
+ }
66
+ let infoServiceInstance = null;
67
+ export function initializeInfoService(service) {
68
+ if (infoServiceInstance) {
69
+ return;
70
+ }
71
+ infoServiceInstance = service ?? new WebInfoService();
72
+ }
73
+ export function getInfoService() {
74
+ if (!infoServiceInstance) {
75
+ throw new Error('Info service not initialized. Call initializeInfoService() at app startup.');
76
+ }
77
+ return infoServiceInstance;
78
+ }
79
+ export function resetInfoService() {
80
+ infoServiceInstance = null;
81
+ }
82
+ //# sourceMappingURL=info.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.web.js","sourceRoot":"","sources":["../../src/info/info.web.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/di_web",
3
- "version": "0.1.11",
3
+ "version": "0.1.13",
4
4
  "description": "Web implementations of dependency injection services for Sudobility",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -38,10 +38,10 @@
38
38
  "author": "Sudobility Inc",
39
39
  "license": "MIT",
40
40
  "peerDependencies": {
41
- "@sudobility/di": "^1.4.14",
42
- "@sudobility/types": "^1.9.5",
43
- "axios": "^1.13.0",
44
- "firebase": "^12.4.0"
41
+ "@sudobility/components": "^4.0.92",
42
+ "@sudobility/di": "^1.5.8",
43
+ "@sudobility/types": "^1.9.32",
44
+ "react": "^18.0.0 || ^19.0.0"
45
45
  },
46
46
  "repository": {
47
47
  "type": "git",
@@ -49,17 +49,18 @@
49
49
  },
50
50
  "devDependencies": {
51
51
  "@eslint/js": "^9.38.0",
52
- "@sudobility/di": "^1.4.30",
53
- "@sudobility/types": "^1.9.31",
52
+ "@sudobility/components": "^4.0.92",
53
+ "@sudobility/di": "^1.5.8",
54
+ "@sudobility/types": "^1.9.32",
54
55
  "@types/node": "^24.10.1",
56
+ "@types/react": "^19.1.8",
57
+ "react": "^19.1.0",
55
58
  "@typescript-eslint/eslint-plugin": "^8.46.2",
56
59
  "@typescript-eslint/parser": "^8.46.2",
57
60
  "@vitest/coverage-v8": "^3.2.4",
58
- "axios": "^1.13.0",
59
61
  "eslint": "^9.38.0",
60
62
  "eslint-config-prettier": "^10.1.8",
61
63
  "eslint-plugin-prettier": "^5.5.4",
62
- "firebase": "^12.4.0",
63
64
  "jsdom": "^27.2.0",
64
65
  "prettier": "^3.6.2",
65
66
  "typescript": "^5.9.3",
@@ -1,81 +0,0 @@
1
- export interface AnalyticsEvent {
2
- name: string;
3
- parameters?: Record<string, unknown>;
4
- }
5
- export interface AnalyticsService {
6
- logEvent(eventName: string, parameters?: Record<string, unknown>): void;
7
- setUserProperties(properties: Record<string, string>): void;
8
- setUserId(userId: string): void;
9
- isSupported(): boolean;
10
- }
11
- export interface RemoteConfigValue {
12
- asBoolean(): boolean;
13
- asString(): string;
14
- asNumber(): number;
15
- getSource(): 'static' | 'default' | 'remote';
16
- }
17
- export interface RemoteConfigService {
18
- fetchAndActivate(): Promise<boolean>;
19
- getValue(key: string): RemoteConfigValue;
20
- getAll(): Record<string, RemoteConfigValue>;
21
- isSupported(): boolean;
22
- }
23
- export interface FCMNotificationPayload {
24
- title?: string;
25
- body?: string;
26
- icon?: string;
27
- badge?: string;
28
- image?: string;
29
- tag?: string;
30
- requireInteraction?: boolean;
31
- }
32
- export interface FCMDataPayload {
33
- [key: string]: string;
34
- }
35
- export interface FCMMessage {
36
- notification?: FCMNotificationPayload;
37
- data?: FCMDataPayload;
38
- messageId?: string;
39
- from?: string;
40
- collapseKey?: string;
41
- }
42
- export interface FCMPermissionState {
43
- status: 'granted' | 'denied' | 'default';
44
- token: string | null;
45
- }
46
- export interface FCMState {
47
- isSupported: boolean;
48
- permission: FCMPermissionState;
49
- }
50
- export interface FCMService {
51
- requestPermission(): Promise<boolean>;
52
- getToken(): Promise<string | null>;
53
- deleteToken(): Promise<boolean>;
54
- onMessage(callback: (message: FCMMessage) => void): () => void;
55
- isSupported(): boolean;
56
- getPermissionStatus(): FCMPermissionState;
57
- }
58
- export interface FirebaseService {
59
- analytics: AnalyticsService;
60
- remoteConfig: RemoteConfigService;
61
- messaging: FCMService;
62
- isConfigured(): boolean;
63
- isDevelopment(): boolean;
64
- }
65
- export interface FirebaseConfig {
66
- apiKey: string;
67
- authDomain: string;
68
- projectId: string;
69
- storageBucket: string;
70
- messagingSenderId: string;
71
- appId: string;
72
- measurementId?: string;
73
- vapidKey?: string;
74
- }
75
- export interface FirebaseInitOptions {
76
- enableAnalytics?: boolean;
77
- enableRemoteConfig?: boolean;
78
- enableMessaging?: boolean;
79
- enableDevelopmentMode?: boolean;
80
- }
81
- //# sourceMappingURL=firebase.interface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firebase.interface.d.ts","sourceRoot":"","sources":["../../src/firebase/firebase.interface.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=firebase.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firebase.interface.js","sourceRoot":"","sources":["../../src/firebase/firebase.interface.ts"],"names":[],"mappings":""}
@@ -1,19 +0,0 @@
1
- import { FirebaseService, AnalyticsService, RemoteConfigService, FCMService, FirebaseConfig, FirebaseInitOptions } from './firebase.interface';
2
- export declare class WebFirebaseService implements FirebaseService {
3
- analytics: AnalyticsService;
4
- remoteConfig: RemoteConfigService;
5
- messaging: FCMService;
6
- private app;
7
- private config;
8
- private options;
9
- private configured;
10
- constructor(config: FirebaseConfig, options?: FirebaseInitOptions);
11
- private initializeFirebase;
12
- private initializeAnalytics;
13
- private initializeRemoteConfig;
14
- private initializeMessaging;
15
- isConfigured(): boolean;
16
- isDevelopment(): boolean;
17
- }
18
- export declare function createWebFirebaseService(config: FirebaseConfig, options?: FirebaseInitOptions): FirebaseService;
19
- //# sourceMappingURL=firebase.web.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firebase.web.d.ts","sourceRoot":"","sources":["../../src/firebase/firebase.web.ts"],"names":[],"mappings":"AA8BA,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,mBAAmB,EAIpB,MAAM,sBAAsB,CAAC;AAwO9B,qBAAa,kBAAmB,YAAW,eAAe;IACjD,SAAS,EAAE,gBAAgB,CAAC;IAC5B,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,UAAU,CAAC;IAE7B,OAAO,CAAC,GAAG,CAA4B;IACvC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,UAAU,CAAkB;gBAExB,MAAM,EAAE,cAAc,EAAE,OAAO,GAAE,mBAAwB;IAsBrE,OAAO,CAAC,kBAAkB;IA6B1B,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,sBAAsB;YAahB,mBAAmB;IAoCjC,YAAY,IAAI,OAAO;IAIvB,aAAa,IAAI,OAAO;CAGzB;AAKD,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,eAAe,CAEjB"}