svelte-firekit 0.0.25 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +445 -213
- package/dist/components/Collection.svelte +150 -0
- package/dist/components/Collection.svelte.d.ts +27 -0
- package/dist/components/Ddoc.svelte +131 -0
- package/dist/components/Ddoc.svelte.d.ts +28 -0
- package/dist/components/Node.svelte +97 -0
- package/dist/components/Node.svelte.d.ts +23 -0
- package/dist/components/auth-guard.svelte +89 -0
- package/dist/components/auth-guard.svelte.d.ts +26 -0
- package/dist/components/custom-guard.svelte +122 -0
- package/dist/components/custom-guard.svelte.d.ts +31 -0
- package/dist/components/download-url.svelte +92 -0
- package/dist/components/download-url.svelte.d.ts +19 -0
- package/dist/components/firebase-app.svelte +30 -0
- package/dist/components/firebase-app.svelte.d.ts +7 -0
- package/dist/components/node-list.svelte +102 -0
- package/dist/components/node-list.svelte.d.ts +27 -0
- package/dist/components/signed-in.svelte +42 -0
- package/dist/components/signed-in.svelte.d.ts +11 -0
- package/dist/components/signed-out.svelte +42 -0
- package/dist/components/signed-out.svelte.d.ts +11 -0
- package/dist/components/storage-list.svelte +97 -0
- package/dist/components/storage-list.svelte.d.ts +26 -0
- package/dist/components/upload-task.svelte +108 -0
- package/dist/components/upload-task.svelte.d.ts +24 -0
- package/dist/config.js +17 -39
- package/dist/firebase.d.ts +43 -21
- package/dist/firebase.js +121 -35
- package/dist/index.d.ts +21 -13
- package/dist/index.js +27 -15
- package/dist/services/auth.d.ts +397 -0
- package/dist/services/auth.js +882 -0
- package/dist/services/collection.svelte.d.ts +286 -0
- package/dist/services/collection.svelte.js +871 -0
- package/dist/services/document.svelte.d.ts +288 -0
- package/dist/services/document.svelte.js +555 -0
- package/dist/services/mutations.d.ts +336 -0
- package/dist/services/mutations.js +1079 -0
- package/dist/services/presence.svelte.d.ts +141 -0
- package/dist/services/presence.svelte.js +727 -0
- package/dist/{realtime → services}/realtime.svelte.d.ts +3 -1
- package/dist/{realtime → services}/realtime.svelte.js +13 -7
- package/dist/services/storage.svelte.d.ts +257 -0
- package/dist/services/storage.svelte.js +374 -0
- package/dist/services/user.svelte.d.ts +296 -0
- package/dist/services/user.svelte.js +609 -0
- package/dist/types/auth.d.ts +158 -0
- package/dist/types/auth.js +106 -0
- package/dist/types/collection.d.ts +360 -0
- package/dist/types/collection.js +167 -0
- package/dist/types/document.d.ts +342 -0
- package/dist/types/document.js +148 -0
- package/dist/types/firebase.d.ts +44 -0
- package/dist/types/firebase.js +33 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +4 -0
- package/dist/types/mutations.d.ts +387 -0
- package/dist/types/mutations.js +205 -0
- package/dist/types/presence.d.ts +282 -0
- package/dist/types/presence.js +80 -0
- package/dist/utils/errors.d.ts +21 -0
- package/dist/utils/errors.js +35 -0
- package/dist/utils/firestore.d.ts +9 -0
- package/dist/utils/firestore.js +33 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/providers.d.ts +16 -0
- package/dist/utils/providers.js +30 -0
- package/dist/utils/user.d.ts +8 -0
- package/dist/utils/user.js +29 -0
- package/package.json +64 -64
- package/dist/auth/auth.d.ts +0 -117
- package/dist/auth/auth.js +0 -194
- package/dist/auth/presence.svelte.d.ts +0 -139
- package/dist/auth/presence.svelte.js +0 -373
- package/dist/auth/user.svelte.d.ts +0 -112
- package/dist/auth/user.svelte.js +0 -155
- package/dist/firestore/awaitable-doc.svelte.d.ts +0 -141
- package/dist/firestore/awaitable-doc.svelte.js +0 -183
- package/dist/firestore/batch-mutations.svelte.d.ts +0 -140
- package/dist/firestore/batch-mutations.svelte.js +0 -218
- package/dist/firestore/collection-group.svelte.d.ts +0 -78
- package/dist/firestore/collection-group.svelte.js +0 -120
- package/dist/firestore/collection.svelte.d.ts +0 -96
- package/dist/firestore/collection.svelte.js +0 -137
- package/dist/firestore/doc.svelte.d.ts +0 -90
- package/dist/firestore/doc.svelte.js +0 -131
- package/dist/firestore/document-mutations.svelte.d.ts +0 -164
- package/dist/firestore/document-mutations.svelte.js +0 -273
- package/dist/storage/download-url.svelte.d.ts +0 -83
- package/dist/storage/download-url.svelte.js +0 -114
- package/dist/storage/storage-list.svelte.d.ts +0 -89
- package/dist/storage/storage-list.svelte.js +0 -123
- package/dist/storage/upload-task.svelte.d.ts +0 -94
- package/dist/storage/upload-task.svelte.js +0 -138
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview FirekitPresence - Clean presence tracking for Svelte applications
|
|
3
|
+
* @module FirekitPresence
|
|
4
|
+
* @version 1.0.0
|
|
5
|
+
*/
|
|
6
|
+
import { type PresenceConfig, type Location, type SessionData, type PresenceEventCallback, type PresenceStats, PresenceError } from '../types/presence.js';
|
|
7
|
+
/**
|
|
8
|
+
* Main presence tracking service
|
|
9
|
+
*
|
|
10
|
+
* @class FirekitPresence
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { firekitPresence } from 'svelte-firekit';
|
|
14
|
+
*
|
|
15
|
+
* // Initialize
|
|
16
|
+
* await firekitPresence.initialize(user, {
|
|
17
|
+
* geolocation: { enabled: true, type: 'browser' },
|
|
18
|
+
* sessionTTL: 30 * 60 * 1000
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Listen to events
|
|
22
|
+
* const unsubscribe = firekitPresence.addEventListener((event) => {
|
|
23
|
+
* console.log('Presence event:', event);
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // Access reactive state
|
|
27
|
+
* $: console.log('Status:', firekitPresence.status);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
declare class FirekitPresence {
|
|
31
|
+
private static instance;
|
|
32
|
+
private config;
|
|
33
|
+
private geolocationService;
|
|
34
|
+
private connectedListener;
|
|
35
|
+
private eventListeners;
|
|
36
|
+
private currentUser;
|
|
37
|
+
private _initialized;
|
|
38
|
+
private _status;
|
|
39
|
+
private _loading;
|
|
40
|
+
private _error;
|
|
41
|
+
private _currentSession;
|
|
42
|
+
private _sessions;
|
|
43
|
+
private constructor();
|
|
44
|
+
/**
|
|
45
|
+
* Gets singleton instance of FirekitPresence
|
|
46
|
+
*/
|
|
47
|
+
static getInstance(): FirekitPresence;
|
|
48
|
+
get initialized(): boolean;
|
|
49
|
+
get status(): SessionData['status'];
|
|
50
|
+
get loading(): boolean;
|
|
51
|
+
get error(): PresenceError | null;
|
|
52
|
+
get currentSession(): SessionData | null;
|
|
53
|
+
get sessions(): SessionData[];
|
|
54
|
+
get location(): Location | null;
|
|
55
|
+
get hasLocationConsent(): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Initialize presence tracking
|
|
58
|
+
* @param user Current authenticated user
|
|
59
|
+
* @param config Presence configuration options
|
|
60
|
+
*/
|
|
61
|
+
initialize(user: any, config?: PresenceConfig): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Set up Firebase connection monitoring
|
|
64
|
+
*/
|
|
65
|
+
private setupConnectionMonitoring;
|
|
66
|
+
/**
|
|
67
|
+
* Set up disconnect handler for graceful offline transitions
|
|
68
|
+
*/
|
|
69
|
+
private setupDisconnectHandler;
|
|
70
|
+
/**
|
|
71
|
+
* Set up page visibility listener
|
|
72
|
+
*/
|
|
73
|
+
private setupVisibilityListener;
|
|
74
|
+
/**
|
|
75
|
+
* Set presence status
|
|
76
|
+
*/
|
|
77
|
+
setPresence(status: SessionData['status']): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* Load all sessions for current user
|
|
80
|
+
*/
|
|
81
|
+
private loadSessions;
|
|
82
|
+
/**
|
|
83
|
+
* Get presence statistics
|
|
84
|
+
*/
|
|
85
|
+
getPresenceStats(): PresenceStats;
|
|
86
|
+
/**
|
|
87
|
+
* Request location consent manually
|
|
88
|
+
*/
|
|
89
|
+
requestLocationConsent(): Promise<boolean>;
|
|
90
|
+
/**
|
|
91
|
+
* Get current user's online sessions count
|
|
92
|
+
*/
|
|
93
|
+
getOnlineSessionsCount(): number;
|
|
94
|
+
/**
|
|
95
|
+
* Check if user is online on any device
|
|
96
|
+
*/
|
|
97
|
+
isUserOnline(): boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Get sessions by status
|
|
100
|
+
*/
|
|
101
|
+
getSessionsByStatus(status: SessionData['status']): SessionData[];
|
|
102
|
+
/**
|
|
103
|
+
* Force refresh presence data
|
|
104
|
+
*/
|
|
105
|
+
refresh(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Add event listener
|
|
108
|
+
* @param callback Event callback function
|
|
109
|
+
* @returns Cleanup function to remove listener
|
|
110
|
+
*/
|
|
111
|
+
addEventListener(callback: PresenceEventCallback): () => void;
|
|
112
|
+
/**
|
|
113
|
+
* Emit event to all listeners
|
|
114
|
+
*/
|
|
115
|
+
private emitEvent;
|
|
116
|
+
/**
|
|
117
|
+
* Dispose of all resources and cleanup
|
|
118
|
+
*/
|
|
119
|
+
dispose(): Promise<void>;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Pre-initialized singleton instance of FirekitPresence.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* import { firekitPresence } from 'svelte-firekit';
|
|
127
|
+
*
|
|
128
|
+
* // Initialize presence tracking
|
|
129
|
+
* await firekitPresence.initialize(user, {
|
|
130
|
+
* geolocation: { enabled: true, type: 'browser' },
|
|
131
|
+
* sessionTTL: 30 * 60 * 1000
|
|
132
|
+
* });
|
|
133
|
+
*
|
|
134
|
+
* // Listen to events
|
|
135
|
+
* const unsubscribe = firekitPresence.addEventListener((event) => {
|
|
136
|
+
* console.log('Presence event:', event.type, event.data);
|
|
137
|
+
* });
|
|
138
|
+
* ```
|
|
139
|
+
*/
|
|
140
|
+
export declare const firekitPresence: FirekitPresence;
|
|
141
|
+
export {};
|