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.
Files changed (95) hide show
  1. package/README.md +445 -213
  2. package/dist/components/Collection.svelte +150 -0
  3. package/dist/components/Collection.svelte.d.ts +27 -0
  4. package/dist/components/Ddoc.svelte +131 -0
  5. package/dist/components/Ddoc.svelte.d.ts +28 -0
  6. package/dist/components/Node.svelte +97 -0
  7. package/dist/components/Node.svelte.d.ts +23 -0
  8. package/dist/components/auth-guard.svelte +89 -0
  9. package/dist/components/auth-guard.svelte.d.ts +26 -0
  10. package/dist/components/custom-guard.svelte +122 -0
  11. package/dist/components/custom-guard.svelte.d.ts +31 -0
  12. package/dist/components/download-url.svelte +92 -0
  13. package/dist/components/download-url.svelte.d.ts +19 -0
  14. package/dist/components/firebase-app.svelte +30 -0
  15. package/dist/components/firebase-app.svelte.d.ts +7 -0
  16. package/dist/components/node-list.svelte +102 -0
  17. package/dist/components/node-list.svelte.d.ts +27 -0
  18. package/dist/components/signed-in.svelte +42 -0
  19. package/dist/components/signed-in.svelte.d.ts +11 -0
  20. package/dist/components/signed-out.svelte +42 -0
  21. package/dist/components/signed-out.svelte.d.ts +11 -0
  22. package/dist/components/storage-list.svelte +97 -0
  23. package/dist/components/storage-list.svelte.d.ts +26 -0
  24. package/dist/components/upload-task.svelte +108 -0
  25. package/dist/components/upload-task.svelte.d.ts +24 -0
  26. package/dist/config.js +17 -39
  27. package/dist/firebase.d.ts +43 -21
  28. package/dist/firebase.js +121 -35
  29. package/dist/index.d.ts +21 -13
  30. package/dist/index.js +27 -15
  31. package/dist/services/auth.d.ts +397 -0
  32. package/dist/services/auth.js +882 -0
  33. package/dist/services/collection.svelte.d.ts +286 -0
  34. package/dist/services/collection.svelte.js +871 -0
  35. package/dist/services/document.svelte.d.ts +288 -0
  36. package/dist/services/document.svelte.js +555 -0
  37. package/dist/services/mutations.d.ts +336 -0
  38. package/dist/services/mutations.js +1079 -0
  39. package/dist/services/presence.svelte.d.ts +141 -0
  40. package/dist/services/presence.svelte.js +727 -0
  41. package/dist/{realtime → services}/realtime.svelte.d.ts +3 -1
  42. package/dist/{realtime → services}/realtime.svelte.js +13 -7
  43. package/dist/services/storage.svelte.d.ts +257 -0
  44. package/dist/services/storage.svelte.js +374 -0
  45. package/dist/services/user.svelte.d.ts +296 -0
  46. package/dist/services/user.svelte.js +609 -0
  47. package/dist/types/auth.d.ts +158 -0
  48. package/dist/types/auth.js +106 -0
  49. package/dist/types/collection.d.ts +360 -0
  50. package/dist/types/collection.js +167 -0
  51. package/dist/types/document.d.ts +342 -0
  52. package/dist/types/document.js +148 -0
  53. package/dist/types/firebase.d.ts +44 -0
  54. package/dist/types/firebase.js +33 -0
  55. package/dist/types/index.d.ts +6 -0
  56. package/dist/types/index.js +4 -0
  57. package/dist/types/mutations.d.ts +387 -0
  58. package/dist/types/mutations.js +205 -0
  59. package/dist/types/presence.d.ts +282 -0
  60. package/dist/types/presence.js +80 -0
  61. package/dist/utils/errors.d.ts +21 -0
  62. package/dist/utils/errors.js +35 -0
  63. package/dist/utils/firestore.d.ts +9 -0
  64. package/dist/utils/firestore.js +33 -0
  65. package/dist/utils/index.d.ts +4 -0
  66. package/dist/utils/index.js +8 -0
  67. package/dist/utils/providers.d.ts +16 -0
  68. package/dist/utils/providers.js +30 -0
  69. package/dist/utils/user.d.ts +8 -0
  70. package/dist/utils/user.js +29 -0
  71. package/package.json +64 -64
  72. package/dist/auth/auth.d.ts +0 -117
  73. package/dist/auth/auth.js +0 -194
  74. package/dist/auth/presence.svelte.d.ts +0 -139
  75. package/dist/auth/presence.svelte.js +0 -373
  76. package/dist/auth/user.svelte.d.ts +0 -112
  77. package/dist/auth/user.svelte.js +0 -155
  78. package/dist/firestore/awaitable-doc.svelte.d.ts +0 -141
  79. package/dist/firestore/awaitable-doc.svelte.js +0 -183
  80. package/dist/firestore/batch-mutations.svelte.d.ts +0 -140
  81. package/dist/firestore/batch-mutations.svelte.js +0 -218
  82. package/dist/firestore/collection-group.svelte.d.ts +0 -78
  83. package/dist/firestore/collection-group.svelte.js +0 -120
  84. package/dist/firestore/collection.svelte.d.ts +0 -96
  85. package/dist/firestore/collection.svelte.js +0 -137
  86. package/dist/firestore/doc.svelte.d.ts +0 -90
  87. package/dist/firestore/doc.svelte.js +0 -131
  88. package/dist/firestore/document-mutations.svelte.d.ts +0 -164
  89. package/dist/firestore/document-mutations.svelte.js +0 -273
  90. package/dist/storage/download-url.svelte.d.ts +0 -83
  91. package/dist/storage/download-url.svelte.js +0 -114
  92. package/dist/storage/storage-list.svelte.d.ts +0 -89
  93. package/dist/storage/storage-list.svelte.js +0 -123
  94. package/dist/storage/upload-task.svelte.d.ts +0 -94
  95. 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 {};