@sudobility/di_web 0.1.92 → 0.1.94

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { WebInfoService, createWebInfoService, initializeInfoService, getInfoService, resetInfoService, InfoBanner, useInfoBanner, type BannerState, type BannerStateListener, } from './info/index.js';
2
2
  export { FirebaseAnalyticsService, initializeFirebaseAnalytics, getAnalyticsService, resetAnalyticsService, type AnalyticsEventParams, initializeWebApp, type WebAppInitOptions, type RevenueCatConfig, } from './initialize/index.js';
3
- export { getFirebaseService, initializeFirebaseService, resetFirebaseService, WebFirebaseService, createWebFirebaseService, } from './firebase/firebase.web.js';
4
- export type { AnalyticsEvent as FirebaseAnalyticsEvent, AnalyticsService, RemoteConfigValue, RemoteConfigService, FCMNotificationPayload, FCMDataPayload, FCMMessage, FCMPermissionState, FCMState, FCMService, FirebaseService, FirebaseConfig, FirebaseInitOptions, } from './firebase/firebase.interface.js';
3
+ export { getFirebaseService, initializeFirebaseService, resetFirebaseService, WebFirebaseService, createWebFirebaseService, } from '@sudobility/di/web';
4
+ export type { AnalyticsEvent as FirebaseAnalyticsEvent, AnalyticsService, RemoteConfigValue, RemoteConfigService, FCMNotificationPayload, FCMDataPayload, FCMMessage, FCMPermissionState, FCMState, FCMService, FirebaseService, FirebaseConfig, FirebaseInitOptions, } from '@sudobility/di/web';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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;AAGzB,OAAO,EAEL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,oBAAoB,EAEzB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,4BAA4B,CAAC;AAGpC,YAAY,EACV,cAAc,IAAI,sBAAsB,EACxC,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,GACpB,MAAM,kCAAkC,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;AAGzB,OAAO,EAEL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,oBAAoB,EAEzB,gBAAgB,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACV,cAAc,IAAI,sBAAsB,EACxC,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,GACpB,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { WebInfoService, createWebInfoService, initializeInfoService, getInfoService, resetInfoService, InfoBanner, useInfoBanner, } from './info/index.js';
2
2
  export { FirebaseAnalyticsService, initializeFirebaseAnalytics, getAnalyticsService, resetAnalyticsService, initializeWebApp, } from './initialize/index.js';
3
- export { getFirebaseService, initializeFirebaseService, resetFirebaseService, WebFirebaseService, createWebFirebaseService, } from './firebase/firebase.web.js';
3
+ export { getFirebaseService, initializeFirebaseService, resetFirebaseService, WebFirebaseService, createWebFirebaseService, } from '@sudobility/di/web';
4
4
  //# 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":"AAcA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,aAAa,GAGd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EAGrB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,4BAA4B,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;AAGzB,OAAO,EAEL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EAGrB,gBAAgB,GAGjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC"}
@@ -1,18 +1,5 @@
1
- import type { FirebaseConfig } from '../firebase/firebase.interface.js';
2
- export interface AnalyticsEventParams {
3
- [key: string]: unknown;
4
- }
5
- export declare class FirebaseAnalyticsService {
6
- trackEvent(eventName: string, params?: AnalyticsEventParams): void;
7
- trackPageView(pagePath: string, pageTitle?: string): void;
8
- trackButtonClick(buttonName: string, params?: AnalyticsEventParams): void;
9
- trackLinkClick(linkUrl: string, linkText?: string, params?: AnalyticsEventParams): void;
10
- trackError(errorMessage: string, errorCode?: string): void;
11
- isEnabled(): boolean;
12
- }
13
- export declare function initializeFirebaseAnalytics(): FirebaseAnalyticsService;
14
- export declare function getAnalyticsService(): FirebaseAnalyticsService;
15
- export declare function resetAnalyticsService(): void;
1
+ import { FirebaseAnalyticsService, initializeFirebaseAnalytics, getAnalyticsService, resetAnalyticsService, type FirebaseConfig, type AnalyticsEventParams } from '@sudobility/di/web';
2
+ export { FirebaseAnalyticsService, initializeFirebaseAnalytics, getAnalyticsService, resetAnalyticsService, type AnalyticsEventParams, };
16
3
  export interface RevenueCatConfig {
17
4
  apiKey: string;
18
5
  apiKeySandbox?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../src/initialize/initialize.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAOxE,MAAM,WAAW,oBAAoB;IACnC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,qBAAa,wBAAwB;IAInC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAiBlE,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAUzD,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAUzE,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,oBAAoB,GAC5B,IAAI;IAWP,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAU1D,SAAS,IAAI,OAAO;CAQrB;AAQD,wBAAgB,2BAA2B,IAAI,wBAAwB,CAKtE;AAMD,wBAAgB,mBAAmB,IAAI,wBAAwB,CAO9D;AAKD,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C;AASD,MAAM,WAAW,gBAAgB;IAE/B,MAAM,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAKD,MAAM,WAAW,iBAAiB;IAEhC,cAAc,EAAE,cAAc,CAAC;IAG/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAGpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAG5B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IAGnC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAsBD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAiEnC"}
1
+ {"version":3,"file":"initialize.d.ts","sourceRoot":"","sources":["../../src/initialize/initialize.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EAC1B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,CAAC;AASF,MAAM,WAAW,gBAAgB;IAE/B,MAAM,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,YAAY,CAAC,EAAE,OAAO,CAAC;IAGvB,eAAe,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAKD,MAAM,WAAW,iBAAiB;IAEhC,cAAc,EAAE,cAAc,CAAC;IAG/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAGpC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAG5B,qBAAqB,CAAC,EAAE,MAAM,IAAI,CAAC;IAGnC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAsBD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,wBAAwB,CAAC,CAiEnC"}
@@ -1,72 +1,6 @@
1
- import { initializeStorageService } from '@sudobility/di/web';
2
- import { initializeNetworkService } from '@sudobility/di/web';
3
- import { initializeFirebaseService, getFirebaseService, } from '../firebase/firebase.web.js';
1
+ import { initializeStorageService, initializeNetworkService, initializeFirebaseService, FirebaseAnalyticsService, initializeFirebaseAnalytics, getAnalyticsService, resetAnalyticsService, } from '@sudobility/di/web';
4
2
  import { initializeInfoService } from '../info/index.js';
5
- export class FirebaseAnalyticsService {
6
- trackEvent(eventName, params) {
7
- try {
8
- const service = getFirebaseService();
9
- if (service.analytics.isSupported()) {
10
- service.analytics.logEvent(eventName, {
11
- ...params,
12
- timestamp: Date.now(),
13
- });
14
- }
15
- }
16
- catch {
17
- }
18
- }
19
- trackPageView(pagePath, pageTitle) {
20
- this.trackEvent('page_view', {
21
- page_path: pagePath,
22
- page_title: pageTitle,
23
- });
24
- }
25
- trackButtonClick(buttonName, params) {
26
- this.trackEvent('button_click', {
27
- button_name: buttonName,
28
- ...params,
29
- });
30
- }
31
- trackLinkClick(linkUrl, linkText, params) {
32
- this.trackEvent('link_click', {
33
- link_url: linkUrl,
34
- link_text: linkText,
35
- ...params,
36
- });
37
- }
38
- trackError(errorMessage, errorCode) {
39
- this.trackEvent('error_occurred', {
40
- error_message: errorMessage,
41
- error_code: errorCode,
42
- });
43
- }
44
- isEnabled() {
45
- try {
46
- const service = getFirebaseService();
47
- return service.analytics.isSupported();
48
- }
49
- catch {
50
- return false;
51
- }
52
- }
53
- }
54
- let analyticsService = null;
55
- export function initializeFirebaseAnalytics() {
56
- if (!analyticsService) {
57
- analyticsService = new FirebaseAnalyticsService();
58
- }
59
- return analyticsService;
60
- }
61
- export function getAnalyticsService() {
62
- if (!analyticsService) {
63
- throw new Error('Analytics service not initialized. Call initializeFirebaseAnalytics() first.');
64
- }
65
- return analyticsService;
66
- }
67
- export function resetAnalyticsService() {
68
- analyticsService = null;
69
- }
3
+ export { FirebaseAnalyticsService, initializeFirebaseAnalytics, getAnalyticsService, resetAnalyticsService, };
70
4
  export async function initializeWebApp(options) {
71
5
  const { firebaseConfig, revenueCatConfig, initializeI18n, registerServiceWorker, initWebVitals, } = options;
72
6
  initializeStorageService();
@@ -1 +1 @@
1
- {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/initialize/initialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../src/initialize/initialize.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,GAGtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EACL,wBAAwB,EACxB,2BAA2B,EAC3B,mBAAmB,EACnB,qBAAqB,GAEtB,CAAC;AA+DF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAA0B;IAE1B,MAAM,EACJ,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,aAAa,GACd,GAAG,OAAO,CAAC;IAGZ,wBAAwB,EAAE,CAAC;IAG3B,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAG1C,MAAM,SAAS,GAAG,2BAA2B,EAAE,CAAC;IAKhD,wBAAwB,EAAE,CAAC;IAG3B,qBAAqB,EAAE,CAAC;IAGxB,IAAI,gBAAgB,EAAE,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAC;YACrE,MAAM,YAAY,GAAG,gBAAgB,CAAC,YAAY,IAAI,IAAI,CAAC;YAC3D,MAAM,MAAM,GAAG,YAAY;gBACzB,CAAC,CAAC,gBAAgB,CAAC,MAAM;gBACzB,CAAC,CAAC,gBAAgB,CAAC,aAAa,IAAI,gBAAgB,CAAC,MAAM,CAAC;YAE9D,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YACnD,eAAe,CAAC,sBAAsB,CAAC;gBACrC,OAAO,EAAE,eAAe,CAAC,uBAAuB,EAAE;gBAClD,QAAQ,EAAE,gBAAgB,CAAC,eAAe,IAAI;oBAC5C,SAAS,EAAE,MAAM;oBACjB,IAAI,EAAE,MAAM;iBACb;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,uFAAuF,EACvF,KAAK,CACN,CAAC;QACJ,CAAC;IACH,CAAC;IAGD,IAAI,cAAc,EAAE,CAAC;QACnB,cAAc,EAAE,CAAC;IACnB,CAAC;IAGD,IAAI,qBAAqB,EAAE,CAAC;QAC1B,qBAAqB,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/di_web",
3
- "version": "0.1.92",
3
+ "version": "0.1.94",
4
4
  "description": "Web implementations of dependency injection services for Sudobility",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -38,10 +38,9 @@
38
38
  "author": "Sudobility Inc",
39
39
  "license": "MIT",
40
40
  "peerDependencies": {
41
- "@sudobility/components": "^5.0.2",
42
- "@sudobility/di": "^1.5.31",
41
+ "@sudobility/components": "^5.0.5",
42
+ "@sudobility/di": "^1.5.33",
43
43
  "@sudobility/types": "^1.9.49",
44
- "firebase": "^12.0.0",
45
44
  "react": "^18.0.0 || ^19.0.0"
46
45
  },
47
46
  "repository": {
@@ -54,11 +53,10 @@
54
53
  }
55
54
  },
56
55
  "devDependencies": {
57
- "firebase": "^12.8.0",
58
56
  "@eslint/js": "^9.38.0",
59
- "@sudobility/components": "^5.0.2",
60
- "@sudobility/di": "^1.5.31",
61
- "@sudobility/subscription_lib": "^0.0.12",
57
+ "@sudobility/components": "^5.0.5",
58
+ "@sudobility/di": "^1.5.33",
59
+ "@sudobility/subscription_lib": "^0.0.13",
62
60
  "@sudobility/types": "^1.9.49",
63
61
  "@types/node": "^24.10.1",
64
62
  "@types/react": "^19.1.8",
@@ -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,22 +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
- export declare function getFirebaseService(): WebFirebaseService;
20
- export declare function initializeFirebaseService(config: FirebaseConfig, options?: FirebaseInitOptions): WebFirebaseService;
21
- export declare function resetFirebaseService(): void;
22
- //# 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;AAoQ9B,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;IAgC1B,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;AAKD,wBAAgB,kBAAkB,IAAI,kBAAkB,CAOvD;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,kBAAkB,CAGpB;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}
@@ -1,355 +0,0 @@
1
- import { initializeApp, getApps, getApp } from 'firebase/app';
2
- import { getAnalytics, logEvent, setUserProperties, setUserId, } from 'firebase/analytics';
3
- import { getRemoteConfig, fetchAndActivate, getValue, getAll, } from 'firebase/remote-config';
4
- import { getMessaging, getToken, onMessage, deleteToken, isSupported as isMessagingSupported, } from 'firebase/messaging';
5
- const DEFAULT_OPTIONS = {
6
- enableAnalytics: true,
7
- enableRemoteConfig: true,
8
- enableMessaging: true,
9
- enableDevelopmentMode: false,
10
- };
11
- function hashUserIdForAnalytics(userId) {
12
- let hash1 = 0;
13
- let hash2 = 0;
14
- for (let i = 0; i < userId.length; i++) {
15
- const char = userId.charCodeAt(i);
16
- hash1 = (hash1 << 5) - hash1 + char;
17
- hash1 = hash1 & hash1;
18
- hash2 = (hash2 << 7) - hash2 + char;
19
- hash2 = hash2 & hash2;
20
- }
21
- const hex1 = Math.abs(hash1).toString(16).padStart(8, '0');
22
- const hex2 = Math.abs(hash2).toString(16).padStart(8, '0');
23
- return (hex1 + hex2).slice(0, 16);
24
- }
25
- class WebAnalyticsService {
26
- constructor(analytics) {
27
- this.analytics = analytics;
28
- }
29
- logEvent(eventName, parameters) {
30
- if (this.analytics && this.isSupported()) {
31
- try {
32
- logEvent(this.analytics, eventName, parameters);
33
- }
34
- catch (error) {
35
- console.error('Error logging analytics event:', error);
36
- }
37
- }
38
- }
39
- setUserProperties(properties) {
40
- if (this.analytics && this.isSupported()) {
41
- try {
42
- setUserProperties(this.analytics, properties);
43
- }
44
- catch (error) {
45
- console.error('Error setting user properties:', error);
46
- }
47
- }
48
- }
49
- setUserId(userId) {
50
- if (this.analytics && this.isSupported()) {
51
- try {
52
- const hashedId = hashUserIdForAnalytics(userId);
53
- setUserId(this.analytics, hashedId);
54
- setUserProperties(this.analytics, { user_hash: hashedId });
55
- }
56
- catch (error) {
57
- console.error('Error setting user ID:', error);
58
- }
59
- }
60
- }
61
- isSupported() {
62
- return typeof window !== 'undefined' && this.analytics !== null;
63
- }
64
- }
65
- class WebRemoteConfigValue {
66
- constructor(value) {
67
- this.value = value;
68
- }
69
- asBoolean() {
70
- return this.value.asBoolean();
71
- }
72
- asString() {
73
- return this.value.asString();
74
- }
75
- asNumber() {
76
- return this.value.asNumber();
77
- }
78
- getSource() {
79
- return this.value.getSource();
80
- }
81
- }
82
- class WebRemoteConfigService {
83
- constructor(remoteConfig) {
84
- this.remoteConfig = remoteConfig;
85
- }
86
- async fetchAndActivate() {
87
- if (this.remoteConfig && this.isSupported()) {
88
- try {
89
- return await fetchAndActivate(this.remoteConfig);
90
- }
91
- catch (error) {
92
- console.error('Error fetching and activating remote config:', error);
93
- return false;
94
- }
95
- }
96
- return false;
97
- }
98
- getValue(key) {
99
- if (this.remoteConfig && this.isSupported()) {
100
- try {
101
- const value = getValue(this.remoteConfig, key);
102
- return new WebRemoteConfigValue(value);
103
- }
104
- catch (error) {
105
- console.error('Error getting remote config value:', error);
106
- }
107
- }
108
- return new WebRemoteConfigValue({
109
- asBoolean: () => false,
110
- asString: () => '',
111
- asNumber: () => 0,
112
- getSource: () => 'default',
113
- });
114
- }
115
- getAll() {
116
- if (this.remoteConfig && this.isSupported()) {
117
- try {
118
- const allValues = getAll(this.remoteConfig);
119
- const result = {};
120
- for (const [key, value] of Object.entries(allValues)) {
121
- result[key] = new WebRemoteConfigValue(value);
122
- }
123
- return result;
124
- }
125
- catch (error) {
126
- console.error('Error getting all remote config values:', error);
127
- }
128
- }
129
- return {};
130
- }
131
- isSupported() {
132
- return this.remoteConfig !== null;
133
- }
134
- }
135
- class WebFCMService {
136
- constructor(messaging, vapidKey) {
137
- this.messaging = messaging;
138
- this.vapidKey = vapidKey;
139
- }
140
- async requestPermission() {
141
- if (!this.isSupported() ||
142
- typeof window === 'undefined' ||
143
- !('Notification' in window)) {
144
- return false;
145
- }
146
- try {
147
- const permission = await Notification.requestPermission();
148
- return permission === 'granted';
149
- }
150
- catch (error) {
151
- console.error('Error requesting notification permission:', error);
152
- return false;
153
- }
154
- }
155
- async getToken() {
156
- if (!this.messaging || !this.isSupported()) {
157
- return null;
158
- }
159
- try {
160
- if (Notification.permission === 'granted') {
161
- const token = await getToken(this.messaging, {
162
- vapidKey: this.vapidKey,
163
- });
164
- return token || null;
165
- }
166
- }
167
- catch (error) {
168
- console.error('Error getting FCM token:', error);
169
- }
170
- return null;
171
- }
172
- async deleteToken() {
173
- if (!this.messaging || !this.isSupported()) {
174
- return false;
175
- }
176
- try {
177
- return await deleteToken(this.messaging);
178
- }
179
- catch (error) {
180
- console.error('Error deleting FCM token:', error);
181
- return false;
182
- }
183
- }
184
- onMessage(callback) {
185
- if (!this.messaging || !this.isSupported()) {
186
- return () => { };
187
- }
188
- try {
189
- this.unsubscribe = onMessage(this.messaging, (payload) => {
190
- const message = {
191
- ...(payload.notification && { notification: payload.notification }),
192
- ...(payload.data && { data: payload.data }),
193
- ...(payload.messageId && { messageId: payload.messageId }),
194
- ...(payload.from && { from: payload.from }),
195
- ...(payload.collapseKey && { collapseKey: payload.collapseKey }),
196
- };
197
- callback(message);
198
- });
199
- const cleanup = () => {
200
- if (this.unsubscribe) {
201
- this.unsubscribe();
202
- delete this.unsubscribe;
203
- }
204
- };
205
- return cleanup;
206
- }
207
- catch (error) {
208
- console.error('Error setting up FCM message listener:', error);
209
- return () => { };
210
- }
211
- }
212
- isSupported() {
213
- return typeof window !== 'undefined' && this.messaging !== null;
214
- }
215
- getPermissionStatus() {
216
- if (!this.isSupported() ||
217
- typeof window === 'undefined' ||
218
- !('Notification' in window)) {
219
- return { status: 'denied', token: null };
220
- }
221
- return {
222
- status: Notification.permission,
223
- token: null,
224
- };
225
- }
226
- }
227
- export class WebFirebaseService {
228
- constructor(config, options = {}) {
229
- this.app = null;
230
- this.configured = false;
231
- this.config = config;
232
- this.options = { ...DEFAULT_OPTIONS, ...options };
233
- this.initializeFirebase();
234
- this.analytics = new WebAnalyticsService(this.initializeAnalytics());
235
- this.remoteConfig = new WebRemoteConfigService(this.initializeRemoteConfig());
236
- this.messaging = new WebFCMService(null, config.vapidKey || '');
237
- this.initializeMessaging()
238
- .then((messaging) => {
239
- if (messaging) {
240
- this.messaging = new WebFCMService(messaging, config.vapidKey || '');
241
- }
242
- })
243
- .catch(console.error);
244
- }
245
- initializeFirebase() {
246
- try {
247
- const requiredFields = [
248
- 'apiKey',
249
- 'authDomain',
250
- 'projectId',
251
- 'storageBucket',
252
- 'messagingSenderId',
253
- 'appId',
254
- ];
255
- const missingFields = requiredFields.filter((field) => !this.config[field]);
256
- if (missingFields.length > 0) {
257
- this.configured = false;
258
- return;
259
- }
260
- this.app =
261
- getApps().length === 0
262
- ? initializeApp(this.config)
263
- : getApp();
264
- this.configured = true;
265
- }
266
- catch (error) {
267
- console.error('Error initializing Firebase:', error);
268
- this.configured = false;
269
- }
270
- }
271
- initializeAnalytics() {
272
- if (!this.app ||
273
- !this.options.enableAnalytics ||
274
- typeof window === 'undefined') {
275
- return null;
276
- }
277
- try {
278
- return getAnalytics(this.app);
279
- }
280
- catch (error) {
281
- console.error('Error initializing Analytics:', error);
282
- return null;
283
- }
284
- }
285
- initializeRemoteConfig() {
286
- if (!this.app || !this.options.enableRemoteConfig) {
287
- return null;
288
- }
289
- try {
290
- return getRemoteConfig(this.app);
291
- }
292
- catch (error) {
293
- console.error('Error initializing Remote Config:', error);
294
- return null;
295
- }
296
- }
297
- async initializeMessaging() {
298
- if (!this.app ||
299
- !this.options.enableMessaging ||
300
- typeof window === 'undefined') {
301
- return null;
302
- }
303
- try {
304
- return new Promise((resolve) => {
305
- isMessagingSupported()
306
- .then((supported) => {
307
- if (supported) {
308
- try {
309
- const messaging = getMessaging(this.app);
310
- resolve(messaging);
311
- }
312
- catch (error) {
313
- console.error('Error getting messaging instance:', error);
314
- resolve(null);
315
- }
316
- }
317
- else {
318
- resolve(null);
319
- }
320
- })
321
- .catch(() => {
322
- resolve(null);
323
- });
324
- });
325
- }
326
- catch (error) {
327
- console.error('Error initializing messaging:', error);
328
- return null;
329
- }
330
- }
331
- isConfigured() {
332
- return this.configured;
333
- }
334
- isDevelopment() {
335
- return this.options.enableDevelopmentMode || !this.configured;
336
- }
337
- }
338
- export function createWebFirebaseService(config, options) {
339
- return new WebFirebaseService(config, options);
340
- }
341
- let firebaseService = null;
342
- export function getFirebaseService() {
343
- if (!firebaseService) {
344
- throw new Error('Firebase service not initialized. Call initializeFirebaseService() first.');
345
- }
346
- return firebaseService;
347
- }
348
- export function initializeFirebaseService(config, options) {
349
- firebaseService = new WebFirebaseService(config, options);
350
- return firebaseService;
351
- }
352
- export function resetFirebaseService() {
353
- firebaseService = null;
354
- }
355
- //# sourceMappingURL=firebase.web.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"firebase.web.js","sourceRoot":"","sources":["../../src/firebase/firebase.web.ts"],"names":[],"mappings":"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"}